{ "components": { "schemas": { "AllocationFixedValue": { "properties": { "license": { "$ref": "#/components/schemas/ResourcePoolsLicense" }, "value": { "format": "int64", "type": "string" } }, "type": "object" }, "AllocationThresholds": { "description": "Thresholds define strict quota limits for each metrics license.", "properties": { "all_priorities": { "allOf": [ { "$ref": "#/components/schemas/ResourcePoolsAllocationThreshold" } ], "description": "Threshold limit that defines when to drop new metrics in the pool. This\nthreshold applies to all priorities of metrics: high, default, and low. This\nfield must be set, and have a value equal to or greater than other priority\nfields." }, "default_and_low_priority": { "allOf": [ { "$ref": "#/components/schemas/ResourcePoolsAllocationThreshold" } ], "description": "Threshold limit that defines when to drop new metrics in the pool that are\ndefault and low priority. If this field is set, its value must be equal to\nor greater than the value set for `low_priority`." }, "license": { "allOf": [ { "$ref": "#/components/schemas/ResourcePoolsLicense" } ], "description": "License to which these thresholds apply. If you configure\n`priority_thresholds`, only the `PERSISTED_CARDINALITY_STANDARD` and\n`PERSISTED_CARDINALITY_HISTOGRAM` licenses are supported." }, "low_priority": { "allOf": [ { "$ref": "#/components/schemas/ResourcePoolsAllocationThreshold" } ], "description": "Threshold limit that defines when to drop new metrics in the pool that are\nonly low priority. If this field is set, its value must be equal to or\nlesser than other priority fields." } }, "type": "object" }, "AzureMetricsIntegrationAzurePrincipal": { "properties": { "client_id": { "description": "Specifies the OAuth2 client ID of the managed identity principal.", "type": "string" }, "tenant_id": { "description": "Specifies the ID of the Azure tenant that hosts the managed identity principal.", "type": "string" } }, "type": "object" }, "AzureMetricsIntegrationAzureResourceType": { "properties": { "metric_names": { "description": "List of metric names to be targeted (these apply to this resource type; use empty for all metrics).", "items": { "type": "string" }, "type": "array" }, "name": { "description": "Name of the resource type.", "type": "string" } }, "type": "object" }, "AzureMetricsIntegrationAzureScrapeConfig": { "properties": { "locations": { "description": "Locations to be ingested for this integration (these apply to all subscriptions; use empty for all locations).", "items": { "type": "string" }, "type": "array" }, "resource_types": { "description": "Metric groups to be ingested for this integration.", "items": { "$ref": "#/components/schemas/AzureMetricsIntegrationAzureResourceType" }, "type": "array" }, "subscription_ids": { "description": "Subscriptions to be targeted for this integration (use empty for all subscriptions).", "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "BodyHashAssertionAlgorithm": { "enum": [ "MD5", "SHA1", "SHA256" ], "type": "string" }, "BodyJSONPathAssertionMatchType": { "enum": [ "FIRST_ELEMENT", "EVERY_ELEMENT", "AT_LEAST_ONE_ELEMENT", "SERIALIZATION" ], "type": "string" }, "BodyJSONSchemaAssertionSchemaDraft": { "enum": [ "DRAFT_06", "DRAFT_07" ], "type": "string" }, "ConditionOp": { "enum": [ "GEQ", "GT", "LEQ", "LT", "EQ", "NEQ", "EXISTS", "NOT_EXISTS", "SIGNAL_NOT_EXISTS" ], "type": "string" }, "ConfigV1CreateServiceAttributeBody": { "properties": { "dry_run": { "type": "boolean" }, "service_attribute": { "$ref": "#/components/schemas/configv1ServiceAttribute" } }, "type": "object" }, "ConfigV1UpdateAzureMetricsIntegrationBody": { "properties": { "azure_metrics_integration": { "allOf": [ { "$ref": "#/components/schemas/configv1AzureMetricsIntegration" } ], "description": "The AzureMetricsIntegration to update." }, "create_if_missing": { "description": "If `true`, the AzureMetricsIntegration will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the AzureMetricsIntegration does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the AzureMetricsIntegration. If the specified configuration is valid, the endpoint returns a partial response without the AzureMetricsIntegration. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "ConfigV1UpdateBucketBody": { "properties": { "bucket": { "allOf": [ { "$ref": "#/components/schemas/configv1Bucket" } ], "description": "The Bucket to update." }, "create_if_missing": { "description": "If `true`, the Bucket will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the Bucket does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the Bucket. If the specified configuration is valid, the endpoint returns a partial response without the Bucket. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "ConfigV1UpdateClassicDashboardBody": { "properties": { "classic_dashboard": { "allOf": [ { "$ref": "#/components/schemas/configv1GrafanaDashboard" } ], "description": "The GrafanaDashboard to update." }, "create_if_missing": { "description": "If `true`, the GrafanaDashboard will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the GrafanaDashboard does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the GrafanaDashboard. If the specified configuration is valid, the endpoint returns a partial response without the GrafanaDashboard. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "ConfigV1UpdateCloudIntegrationBody": { "properties": { "cloud_integration": { "allOf": [ { "$ref": "#/components/schemas/configv1CloudIntegration" } ], "description": "The CloudIntegration to update." }, "create_if_missing": { "description": "If `true`, the CloudIntegration will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the CloudIntegration does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the CloudIntegration. If the specified configuration is valid, the endpoint returns a partial response without the CloudIntegration. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "ConfigV1UpdateCollectionBody": { "properties": { "collection": { "allOf": [ { "$ref": "#/components/schemas/configv1Collection" } ], "description": "The Collection to update." }, "create_if_missing": { "description": "If `true`, the Collection will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the Collection does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the Collection. If the specified configuration is valid, the endpoint returns a partial response without the Collection. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "ConfigV1UpdateConsumptionBudgetBody": { "properties": { "consumption_budget": { "allOf": [ { "$ref": "#/components/schemas/configv1ConsumptionBudget" } ], "description": "The ConsumptionBudget to update." }, "create_if_missing": { "description": "If `true`, the ConsumptionBudget will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the ConsumptionBudget does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the ConsumptionBudget. If the specified configuration is valid, the endpoint returns a partial response without the ConsumptionBudget. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "ConfigV1UpdateDashboardBody": { "properties": { "create_if_missing": { "description": "If `true`, the Dashboard will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the Dashboard does not already exist.", "type": "boolean" }, "dashboard": { "allOf": [ { "$ref": "#/components/schemas/configv1Dashboard" } ], "description": "The Dashboard to update." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the Dashboard. If the specified configuration is valid, the endpoint returns a partial response without the Dashboard. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "ConfigV1UpdateDatasetBody": { "properties": { "create_if_missing": { "description": "If `true`, the Dataset will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the Dataset does not already exist.", "type": "boolean" }, "dataset": { "allOf": [ { "$ref": "#/components/schemas/configv1Dataset" } ], "description": "The Dataset to update." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the Dataset. If the specified configuration is valid, the endpoint returns a partial response without the Dataset. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "ConfigV1UpdateDerivedLabelBody": { "properties": { "create_if_missing": { "description": "If `true`, the DerivedLabel will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the DerivedLabel does not already exist.", "type": "boolean" }, "derived_label": { "allOf": [ { "$ref": "#/components/schemas/configv1DerivedLabel" } ], "description": "The DerivedLabel to update." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the DerivedLabel. If the specified configuration is valid, the endpoint returns a partial response without the DerivedLabel. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "ConfigV1UpdateDerivedMetricBody": { "properties": { "create_if_missing": { "description": "If `true`, the DerivedMetric will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the DerivedMetric does not already exist.", "type": "boolean" }, "derived_metric": { "allOf": [ { "$ref": "#/components/schemas/configv1DerivedMetric" } ], "description": "The DerivedMetric to update." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the DerivedMetric. If the specified configuration is valid, the endpoint returns a partial response without the DerivedMetric. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "ConfigV1UpdateDropRuleBody": { "properties": { "create_if_missing": { "description": "If `true`, the DropRule will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the DropRule does not already exist.", "type": "boolean" }, "drop_rule": { "allOf": [ { "$ref": "#/components/schemas/configv1DropRule" } ], "description": "The DropRule to update." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the DropRule. If the specified configuration is valid, the endpoint returns a partial response without the DropRule. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "ConfigV1UpdateExternalConnectionBody": { "properties": { "create_if_missing": { "description": "If `true`, the ExternalConnection will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the ExternalConnection does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the ExternalConnection. If the specified configuration is valid, the endpoint returns a partial response without the ExternalConnection. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "external_connection": { "allOf": [ { "$ref": "#/components/schemas/configv1ExternalConnection" } ], "description": "The ExternalConnection to update." } }, "type": "object" }, "ConfigV1UpdateGcpMetricsIntegrationBody": { "properties": { "create_if_missing": { "description": "If `true`, the GcpMetricsIntegration will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the GcpMetricsIntegration does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the GcpMetricsIntegration. If the specified configuration is valid, the endpoint returns a partial response without the GcpMetricsIntegration. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "gcp_metrics_integration": { "allOf": [ { "$ref": "#/components/schemas/configv1GcpMetricsIntegration" } ], "description": "The GcpMetricsIntegration to update." } }, "type": "object" }, "ConfigV1UpdateGrafanaDashboardBody": { "properties": { "create_if_missing": { "description": "If `true`, the GrafanaDashboard will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the GrafanaDashboard does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the GrafanaDashboard. If the specified configuration is valid, the endpoint returns a partial response without the GrafanaDashboard. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "grafana_dashboard": { "allOf": [ { "$ref": "#/components/schemas/configv1GrafanaDashboard" } ], "description": "The GrafanaDashboard to update." } }, "type": "object" }, "ConfigV1UpdateLogRetentionConfigBody": { "properties": { "create_if_missing": { "description": "If `true`, the LogRetentionConfig will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the LogRetentionConfig does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the LogRetentionConfig. If the specified configuration is valid, the endpoint returns a partial response without the LogRetentionConfig. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "log_retention_config": { "allOf": [ { "$ref": "#/components/schemas/configv1LogRetentionConfig" } ], "description": "The LogRetentionConfig to update." } }, "type": "object" }, "ConfigV1UpdateMappingRuleBody": { "properties": { "create_if_missing": { "description": "If `true`, the MappingRule will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the MappingRule does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the MappingRule. If the specified configuration is valid, the endpoint returns a partial response without the MappingRule. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "mapping_rule": { "allOf": [ { "$ref": "#/components/schemas/configv1MappingRule" } ], "description": "The MappingRule to update." } }, "type": "object" }, "ConfigV1UpdateMonitorBody": { "properties": { "create_if_missing": { "description": "If `true`, the Monitor will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the Monitor does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the Monitor. If the specified configuration is valid, the endpoint returns a partial response without the Monitor. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "monitor": { "allOf": [ { "$ref": "#/components/schemas/configv1Monitor" } ], "description": "The Monitor to update." } }, "type": "object" }, "ConfigV1UpdateMutingRuleBody": { "properties": { "create_if_missing": { "description": "If `true`, the MutingRule will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the MutingRule does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the MutingRule. If the specified configuration is valid, the endpoint returns a partial response without the MutingRule. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "muting_rule": { "allOf": [ { "$ref": "#/components/schemas/configv1MutingRule" } ], "description": "The MutingRule to update." } }, "type": "object" }, "ConfigV1UpdateNotificationPolicyBody": { "properties": { "create_if_missing": { "description": "If `true`, the NotificationPolicy will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the NotificationPolicy does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the NotificationPolicy. If the specified configuration is valid, the endpoint returns a partial response without the NotificationPolicy. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "notification_policy": { "allOf": [ { "$ref": "#/components/schemas/configv1NotificationPolicy" } ], "description": "The NotificationPolicy to update." } }, "type": "object" }, "ConfigV1UpdateNotifierBody": { "properties": { "create_if_missing": { "description": "If `true`, the Notifier will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the Notifier does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the Notifier. If the specified configuration is valid, the endpoint returns a partial response without the Notifier. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "notifier": { "allOf": [ { "$ref": "#/components/schemas/configv1Notifier" } ], "description": "The Notifier to update." } }, "type": "object" }, "ConfigV1UpdateRecordingRuleBody": { "properties": { "create_if_missing": { "description": "If `true`, the RecordingRule will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the RecordingRule does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the RecordingRule. If the specified configuration is valid, the endpoint returns a partial response without the RecordingRule. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "recording_rule": { "allOf": [ { "$ref": "#/components/schemas/configv1RecordingRule" } ], "description": "The RecordingRule to update." } }, "type": "object" }, "ConfigV1UpdateRollupRuleBody": { "properties": { "create_if_missing": { "description": "If `true`, the RollupRule will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the RollupRule does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the RollupRule. If the specified configuration is valid, the endpoint returns a partial response without the RollupRule. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "rollup_rule": { "allOf": [ { "$ref": "#/components/schemas/configv1RollupRule" } ], "description": "The RollupRule to update." } }, "type": "object" }, "ConfigV1UpdateSLOBody": { "properties": { "create_if_missing": { "description": "If `true`, the SLO will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the SLO does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the SLO. If the specified configuration is valid, the endpoint returns a partial response without the SLO. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "slo": { "allOf": [ { "$ref": "#/components/schemas/configv1SLO" } ], "description": "The SLO to update." } }, "type": "object" }, "ConfigV1UpdateServiceAttributeBody": { "properties": { "create_if_missing": { "type": "boolean" }, "dry_run": { "type": "boolean" }, "service_attribute": { "$ref": "#/components/schemas/configv1ServiceAttribute" } }, "type": "object" }, "ConfigV1UpdateSyntheticTestBody": { "properties": { "create_if_missing": { "description": "If `true`, the SyntheticTest will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the SyntheticTest does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the SyntheticTest. If the specified configuration is valid, the endpoint returns a partial response without the SyntheticTest. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "synthetic_test": { "allOf": [ { "$ref": "#/components/schemas/configv1SyntheticTest" } ], "description": "The SyntheticTest to update." } }, "type": "object" }, "ConfigV1UpdateTeamBody": { "properties": { "create_if_missing": { "description": "If `true`, the Team will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the Team does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the Team. If the specified configuration is valid, the endpoint returns a partial response without the Team. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "team": { "allOf": [ { "$ref": "#/components/schemas/configv1Team" } ], "description": "The Team to update." } }, "type": "object" }, "ConfigV1UpdateTraceBehaviorBody": { "properties": { "create_if_missing": { "description": "If `true`, the TraceBehavior will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the TraceBehavior does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the TraceBehavior. If the specified configuration is valid, the endpoint returns a partial response without the TraceBehavior. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "trace_behavior": { "allOf": [ { "$ref": "#/components/schemas/configv1TraceBehavior" } ], "description": "The TraceBehavior to update." } }, "type": "object" }, "ConfigV1UpdateTraceJaegerRemoteSamplingStrategyBody": { "properties": { "create_if_missing": { "description": "If `true`, the TraceJaegerRemoteSamplingStrategy will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the TraceJaegerRemoteSamplingStrategy does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the TraceJaegerRemoteSamplingStrategy. If the specified configuration is valid, the endpoint returns a partial response without the TraceJaegerRemoteSamplingStrategy. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "trace_jaeger_remote_sampling_strategy": { "allOf": [ { "$ref": "#/components/schemas/configv1TraceJaegerRemoteSamplingStrategy" } ], "description": "The TraceJaegerRemoteSamplingStrategy to update." } }, "type": "object" }, "ConfigV1UpdateTraceMetricsRuleBody": { "properties": { "create_if_missing": { "description": "If `true`, the TraceMetricsRule will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the TraceMetricsRule does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the TraceMetricsRule. If the specified configuration is valid, the endpoint returns a partial response without the TraceMetricsRule. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "trace_metrics_rule": { "allOf": [ { "$ref": "#/components/schemas/configv1TraceMetricsRule" } ], "description": "The TraceMetricsRule to update." } }, "type": "object" }, "ConnectionAssertionConnectionStatus": { "enum": [ "ESTABLISHED", "REFUSED", "TIMEOUT" ], "type": "string" }, "ConstructedLabelValueDefinition": { "properties": { "filters": { "description": "Determine when to apply `name_mappings`, filtering out all other values.", "items": { "$ref": "#/components/schemas/configv1LabelFilter" }, "type": "array" }, "value": { "type": "string" } }, "type": "object" }, "ConsumptionBudgetAlertActionConfig": { "properties": { "annotations": { "additionalProperties": { "type": "string" }, "description": "Additional annotations to set on the generated monitor. By default, the\nmonitors already contain \"description\", \"dashboard\", \"resource\",\n\"consumption_budget_slug\", \"threshold_type\", and \"partition\" annotations.\nSetting any of these annotations will override its default value.", "type": "object" }, "instant_rate_sustain_secs": { "description": "How long instant rate consumption must sustain above the threshold in\norder to fire an alert. By default, the sustain is 0: any consumption\nover the threshold will fire an alert.", "format": "int32", "type": "integer" }, "labels": { "additionalProperties": { "type": "string" }, "description": "Additional labels to set on the generated monitor, which can be used for\nnotification routing. The following labels are reserved and cannot be\noverride: \"resource\", \"partition\", and \"threshold_type\".", "type": "object" } }, "type": "object" }, "ConsumptionBudgetPriority": { "properties": { "filters": { "description": "Criteria that defines which data matches the `priority`. Filters are\nconcatenated together as implied `AND` operators. A request must match every\nfilter to match the `priority`.", "items": { "$ref": "#/components/schemas/ConsumptionBudgetPriorityFilter" }, "type": "array" }, "priority": { "description": "Priority order that determines when to drop data. A priority of `10` is\ndropped first, and a priority of `1` is dropped last.", "format": "int32", "type": "integer" } }, "required": [ "filters", "priority" ], "type": "object" }, "ConsumptionBudgetPriorityFilter": { "properties": { "dataset_slug": { "description": "Deprecated. Use `log_filter` instead.", "type": "string" }, "log_filter": { "allOf": [ { "$ref": "#/components/schemas/configv1LogSearchFilter" } ], "description": "If set, matches incoming log data by log query." } }, "type": "object" }, "ConsumptionBudgetResourceGroup": { "enum": [ "LOG_PERSISTED_BYTES", "LOG_PROCESSED_BYTES", "METRIC_PERSISTED_SERIES", "METRIC_ALL", "LOG_ALL", "TRACE_PROCESSED_BYTES", "TRACE_PERSISTED_BYTES", "TRACE_ALL", "ALL" ], "type": "string" }, "ConsumptionBudgetThresholdAction": { "enum": [ "ALERT_WARN", "ALERT_CRITICAL", "DROP" ], "type": "string" }, "ConsumptionBudgetThresholdType": { "enum": [ "DAILY_VOLUME", "INSTANT_RATE", "WEEKLY_VOLUME", "MONTHLY_VOLUME", "HOURLY_VOLUME", "ROLLING_1_HOUR_VOLUME", "ROLLING_3_HOUR_VOLUME", "ROLLING_1_DAY_VOLUME", "ROLLING_7_DAY_VOLUME", "ROLLING_30_MINUTE_VOLUME" ], "type": "string" }, "ConsumptionBudgetUnit": { "enum": [ "NATIVE", "CREDITS" ], "type": "string" }, "ConsumptionConfigPartition": { "properties": { "filters": { "description": "Criteria that defines which data matches the `partition`. Filters are\nconcatenated together as implied `AND` operators. A request must match every\nfilter to match the `partition`. At most one `IN` filter and one `NOT_IN`\nfilter is allowed, since multiple filters of the same operator type are\nalways reducible to a single filter.", "items": { "$ref": "#/components/schemas/ConsumptionConfigPartitionFilter" }, "type": "array" }, "name": { "description": "Name of the partition. Must be unique within the parent partition. You can\nmodify this value after the partition is created.", "type": "string" }, "partitions": { "description": "Optional. Child partitions of this partition. If set, requests that match the\ncurrent partition are allocated to the first child partition that matches.\nRequests that don't match any child partition are assigned to an implicit `default`\nchild partition.", "items": { "$ref": "#/components/schemas/ConsumptionConfigPartition" }, "type": "array" }, "slug": { "description": "Immutable identifier of the partition. Must be unique within the parent\npartition. You can't modify this value after the partition is created.", "type": "string" } }, "required": [ "filters" ], "type": "object" }, "ConsumptionConfigPartitionFilter": { "properties": { "conditions": { "description": "Conditions for the query to match.", "items": { "$ref": "#/components/schemas/PartitionFilterCondition" }, "type": "array" }, "operator": { "allOf": [ { "$ref": "#/components/schemas/PartitionFilterOperator" } ], "description": "Specifies the match operator for the request:\n- `IN`: the request must match at least one of the conditions.\n- `NOT_IN`: the request must not match any of the conditions." } }, "required": [ "operator" ], "type": "object" }, "DatasetDatasetConfiguration": { "properties": { "log_dataset": { "allOf": [ { "$ref": "#/components/schemas/configv1LogDataset" } ], "description": "If the dataset type is `LOGS`, this configuration defines the semantics for\nthe log dataset." }, "trace_dataset": { "allOf": [ { "$ref": "#/components/schemas/configv1TraceDataset" } ], "description": "If the dataset type is `TRACES`, this configuration defines the semantics for\nthe trace dataset." }, "type": { "allOf": [ { "$ref": "#/components/schemas/DatasetDatasetType" } ], "description": "The type of dataset." } }, "type": "object" }, "DatasetDatasetType": { "enum": [ "TRACES", "LOGS" ], "type": "string" }, "DefinitionBurnRateDefinition": { "properties": { "budget": { "description": "The amount of allowed errors during a given time window, expressed as a\npercentage of the error budget. Must be a value between `0.0` and `100.0`,\nexclusive.", "example": "50.0", "format": "double", "type": "number" }, "labels": { "additionalProperties": { "type": "string" }, "description": "Labels to attach when this burn rate triggers. If you add these labels to\n`signal_groupings`, you can route them in the notification policy, and can\nroute different burn rates to other notifiers.", "type": "object" }, "severity": { "description": "Defines the alert severity level, which can only be one of `critical` or\n`warn`.", "type": "string" }, "window": { "description": "Time window for the burn rate calculation.", "type": "string" } }, "required": [ "window" ], "type": "object" }, "DefinitionTimeWindow": { "properties": { "duration": { "description": "Time window that defines the evaluation period as a string, in the format\nlike `\"28d\"` (28 days) or `\"24h\"` (24 hours).", "example": "\"30d\"", "type": "string" } }, "type": "object" }, "DerivedLabelMetricLabel": { "properties": { "constructed_label": { "allOf": [ { "$ref": "#/components/schemas/MetricLabelConstructedLabel" } ], "description": "A constructed label creates a label where none previously existed, in contrast\nto a mapping derived label. For example, this mapping constructs a label\nthat's defined only when an `instance` begins with\n`m3coordinator-{read,write,admin}`, and where the value is statically\ndefined.\n```yaml\nlabel_name: tier\nconstructed_label:\n value_definitions:\n - filters:\n - name: instance\n value_glob: m3coordinator-read*\n value: read\n - filters:\n - name: instance\n value_glob: m3coordinator-write*\n value: write\n - filters:\n - name: instance\n value_glob: m3coordinator-admin*\n value: admin\n```" }, "mapping_label": { "allOf": [ { "$ref": "#/components/schemas/MetricLabelMappingLabel" } ], "description": "A mapping label is a type of derived label that's generated by pulling values\nfrom some other label on the time series. For example, this mapping matches a\nlabel that's defined only when `__name__` begins with `envoy_` or `grpc_,` and\nwhere the value is copied from `backend_service` or `grpc_service`:\n```yaml\nlabel_name: chronosphere_service\nmapping_label:\n name_mappings:\n - filters:\n - name: __name__\n value_glob: grpc_*\n source_label: grpc_service\n - filters:\n - name: __name__\n value_glob: envoy_*\n source_label: backend_service\n```" } }, "type": "object" }, "DerivedLabelSpanTag": { "properties": { "name_mappings": { "description": "Determines where the input data for a derived label comes from. For each\nname mapping, you must define a `source_label`. If multiple name mappings\nare defined, the first name mapping that matches is used to map the source\ntag to the derived tag.", "items": { "$ref": "#/components/schemas/DerivedLabelSpanTagNameMapping" }, "type": "array" } }, "type": "object" }, "DerivedLabelSpanTagNameMapping": { "properties": { "source_tag": { "description": "The source span tag name.", "type": "string" } }, "type": "object" }, "DerivedMetricQuery": { "properties": { "prometheus_expr": { "description": "PromQL expression the derived metric executes. The expression should\ninclude all configured variables.", "example": "cpu_usage{$service, $instance} / sum(cpu_usage{$service})", "type": "string" }, "variables": { "description": "Optional. Specifies the variables that can be used in the derived metric as\nlabel selectors.", "items": { "$ref": "#/components/schemas/DerivedMetricVariable" }, "type": "array" } }, "required": [ "prometheus_expr" ], "type": "object" }, "DerivedMetricSelector": { "properties": { "labels": { "description": "Labels that must match in the derived metric usage for the selector to match.", "items": { "$ref": "#/components/schemas/configv1DerivedMetricLabelMatcher" }, "type": "array" } }, "type": "object" }, "DerivedMetricSelectorQuery": { "properties": { "query": { "allOf": [ { "$ref": "#/components/schemas/DerivedMetricQuery" } ], "description": "The query to run when the selector matches." }, "selector": { "allOf": [ { "$ref": "#/components/schemas/DerivedMetricSelector" } ], "description": "Optional. Defines the selection criteria to select which query to use for the\ngiven derived metric. If selector is empty, then the corresponding query is\nthe default query used for the derived metric. Exactly one default query must\nbe configured." } }, "required": [ "query" ], "type": "object" }, "DerivedMetricVariable": { "properties": { "default_prometheus_selector": { "description": "PromQL label selector, which must match the given variable name. If the\nvariable is not specified in the derived metric usage, then the default\nselector is used.", "example": "service=~\".*\"", "type": "string" }, "name": { "description": "Name of the variable.", "example": "service", "type": "string" } }, "required": [ "default_prometheus_selector", "name" ], "type": "object" }, "DestinationEmailTarget": { "properties": { "addresses": { "description": "The email addresses to send notifications to.", "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "DestinationOpsGenieTarget": { "properties": { "external_connection_slug": { "description": "The slug of the ExternalConnection that holds OpsGenie credentials.", "type": "string" } }, "type": "object" }, "DestinationPagerdutyTarget": { "properties": { "external_connection_slug": { "description": "The slug of the ExternalConnection that holds PagerDuty credentials.", "type": "string" } }, "type": "object" }, "DestinationSlackTarget": { "properties": { "channels": { "description": "The Slack channels to send notifications to.", "items": { "type": "string" }, "type": "array" }, "external_connection_slug": { "description": "The slug of the ExternalConnection that holds Slack credentials.", "type": "string" } }, "type": "object" }, "DestinationVictorOpsTarget": { "properties": { "external_connection_slug": { "description": "The slug of the ExternalConnection that holds VictorOps credentials.", "type": "string" }, "routing_keys": { "description": "The VictorOps routing keys that determine where notifications are routed.\nA separate notification is sent for each routing key.", "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "DestinationWebhookTarget": { "properties": { "external_connection_slug": { "description": "The slug of the ExternalConnection that holds webhook credentials.", "type": "string" }, "query_parameters": { "description": "Query parameters to add to the webhook URL.\nIf the webhook URL already contains parameters, these will be appended.", "items": { "$ref": "#/components/schemas/WebhookTargetQueryParameter" }, "type": "array" } }, "type": "object" }, "DnsRecordAssertionMatchScope": { "enum": [ "EVERY_AVAILABLE", "AT_LEAST_ONE" ], "type": "string" }, "DnsRecordAssertionRecordType": { "enum": [ "A", "AAAA", "CNAME", "MX", "NS", "TXT", "SOA", "SRV" ], "type": "string" }, "DropRuleValueBasedDrop": { "properties": { "enabled": { "description": "Enables dropping metrics based on a set value.", "type": "boolean" }, "target_drop_value": { "description": "The target data point value at which to drop metrics.", "format": "double", "type": "number" } }, "type": "object" }, "EmitMetricsCounter": { "properties": { "value": { "allOf": [ { "$ref": "#/components/schemas/configv1LogFieldPath" } ], "description": "Optional. Specifies the name of the log field whose value you want to use as\nthe metric value. If unset, the counter increments by one." } }, "type": "object" }, "EmitMetricsGauge": { "properties": { "aggregation_type": { "allOf": [ { "$ref": "#/components/schemas/GaugeAggregationType" } ], "description": "The aggregation type to use for the gauge. Must be one of the following\nvalues:" }, "value": { "allOf": [ { "$ref": "#/components/schemas/configv1LogFieldPath" } ], "description": "The name of the log field whose value you want to use as the metric value." } }, "required": [ "value" ], "type": "object" }, "EmitMetricsHistogram": { "properties": { "value": { "allOf": [ { "$ref": "#/components/schemas/configv1LogFieldPath" } ], "description": "The name of the log field whose value you want to use as the metric value." } }, "required": [ "value" ], "type": "object" }, "EmitMetricsMetricMode": { "enum": [ "COUNTER", "GAUGE", "HISTOGRAM" ], "type": "string" }, "ExternalConnectionCloudflareConfig": { "properties": { "api_token": { "description": "Cloudflare API Token. Accepts User API Tokens (cfut_ prefix) and\nAccount API Tokens (cfat_ prefix).", "type": "string" } }, "type": "object" }, "ExternalConnectionMongoDbAtlasConfig": { "properties": { "client_id": { "description": "Service Account client ID.", "type": "string" }, "client_secret": { "description": "Service Account client secret.", "type": "string" } }, "type": "object" }, "ExternalConnectionSendgridConfig": { "properties": { "api_key": { "description": "SendGrid API key (Bearer token).", "type": "string" } }, "type": "object" }, "GaugeAggregationType": { "enum": [ "LAST", "MIN", "MAX" ], "type": "string" }, "GcpMetricsIntegrationLabelContext": { "description": "LabelContext represents the scope of a label in GCP (used for filters and aggregations).\n\n - RESOURCE_LABELS: Scopes labels to resources.\n - METRIC_LABELS: Scopes labels to metrics.\n - METADATA_SYSTEM_LABELS: Scopes labels to system metadata.\n - METADATA_USER_LABELS: Scopes labels to user metadata.", "enum": [ "RESOURCE_LABELS", "METRIC_LABELS", "METADATA_SYSTEM_LABELS", "METADATA_USER_LABELS" ], "type": "string" }, "GcpMetricsIntegrationMetricGroup": { "properties": { "filters": { "description": "Rollup rules to apply server-side aggregations to metrics in this group.", "items": { "$ref": "#/components/schemas/configv1GcpMetricsIntegrationFilter" }, "type": "array" }, "prefixes": { "description": "A list of Google Cloud metric prefixes to ingest.\n\nFilters to apply to metrics in this group.", "items": { "type": "string" }, "type": "array" }, "project_id": { "description": "The Google Cloud project ID that can access the metric data.", "type": "string" }, "rollup_rules": { "items": { "$ref": "#/components/schemas/configv1GcpMetricsIntegrationRollupRule" }, "type": "array" } }, "type": "object" }, "GcpMetricsIntegrationRollupRuleLabel": { "description": "Specifies a label to keep during aggregation.", "properties": { "context": { "allOf": [ { "$ref": "#/components/schemas/GcpMetricsIntegrationLabelContext" } ], "description": "Specifies the scope of the label, such as `resource.labels` or `metric.labels`." }, "name": { "description": "Name of the label.", "type": "string" } }, "type": "object" }, "GcpMetricsIntegrationRollupRuleLabelPolicy": { "description": "Specifies which labels to preserve during aggregation.", "properties": { "keep": { "description": "Labels to keep during aggregation.", "items": { "$ref": "#/components/schemas/GcpMetricsIntegrationRollupRuleLabel" }, "type": "array" } }, "type": "object" }, "GraphiteLabelPolicyReplace": { "properties": { "name": { "description": "Name of the label to replace the value for. Only positional Graphite labels\nsuch as `__gX__` are allowed.", "example": "__g1__", "type": "string" }, "new_value": { "description": "New value of the replaced label.", "example": "ALL_HOSTS", "type": "string" } }, "required": [ "name", "new_value" ], "type": "object" }, "GroupByGroupByKey": { "description": "GroupByKey describes a key to group by.", "properties": { "named_key": { "description": "For named key types, such as span tags, indicates the name of the key to\ngroup by.", "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/GroupByKeyGroupByKeyType" } ], "description": "Type of key to group by." } }, "type": "object" }, "GroupByKeyGroupByKeyType": { "description": " - SERVICE: The service to group by.\n - OPERATION: The operation to group by.\n - TAG: The span tag to group by.\n - PARENT_SERVICE: The parent service to group by.\n - PARENT_OPERATION: The parent operation to group by.\n - ROOT_SERVICE: The root service to group by.\n - ROOT_OPERATION: The root operation to group by.", "enum": [ "SERVICE", "OPERATION", "TAG", "PARENT_SERVICE", "PARENT_OPERATION", "ROOT_SERVICE", "ROOT_OPERATION" ], "type": "string" }, "HttpTestConfigContentType": { "description": "Content type sent with the request, mapped to a `Content-Type` request\nheader. Setting both this field and an explicit `Content-Type` header\nreturns an error.", "enum": [ "CONTENT_TYPE_APPLICATION_JSON", "CONTENT_TYPE_APPLICATION_X_WWW_FORM_URLENCODED", "CONTENT_TYPE_TEXT_PLAIN", "CONTENT_TYPE_TEXT_XML", "CONTENT_TYPE_TEXT_HTML", "CONTENT_TYPE_MULTIPART_FORM_DATA", "CONTENT_TYPE_APPLICATION_OCTET_STREAM", "CONTENT_TYPE_GRAPHQL" ], "type": "string" }, "HttpTestConfigCookie": { "description": "Single cookie sent with the request. All cookies are combined in order\ninto one `Cookie` request header, such as `name=value; name2=value2`.\nDuplicate names are rejected. Unlike header names, cookie names are\nmatched with case sensitivity. Setting cookies alongside an explicit\n`Cookie` header returns an error.", "properties": { "name": { "type": "string" }, "value": { "type": "string" } }, "type": "object" }, "HttpTestConfigHeader": { "description": "Single HTTP request header. Headers are sent in the order listed.\nDuplicate names are rejected, ignoring case.", "properties": { "name": { "type": "string" }, "value": { "type": "string" } }, "type": "object" }, "HttpTestConfigHttpAuth": { "description": "Authentication applied to the request. Set any combination of these\nmethods. Each method you set must carry its own required fields.", "properties": { "api_token_auth": { "$ref": "#/components/schemas/configv1APITokenAuth" }, "basic_auth": { "$ref": "#/components/schemas/configv1BasicAuth" }, "client_certificate": { "$ref": "#/components/schemas/configv1ClientCertificate" }, "oauth2_client_credentials": { "$ref": "#/components/schemas/configv1OAuth2ClientCredentials" }, "oauth2_resource_owner_password": { "$ref": "#/components/schemas/configv1OAuth2ResourceOwnerPassword" } }, "type": "object" }, "HttpTestConfigHttpMethod": { "enum": [ "GET", "POST" ], "type": "string" }, "HttpTestConfigHttpVersion": { "description": "HTTP protocol version used for the request. When unset, the request\nnegotiates HTTP/2 and falls back to HTTP/1.1.", "enum": [ "HTTP_VERSION_HTTP_1_1", "HTTP_VERSION_HTTP_2" ], "type": "string" }, "LogAllocationConfigDatasetAllocation": { "properties": { "allocation": { "allOf": [ { "$ref": "#/components/schemas/configv1LogAllocationConfigAllocation" } ], "description": "Specifies the percentage of the budget to allocate to this dataset." }, "dataset_slug": { "description": "Slug of the dataset.", "type": "string" }, "priorities": { "allOf": [ { "$ref": "#/components/schemas/LogAllocationConfigHighLowPriorities" } ], "description": "Defines explicit high and low priority match criteria to specify which logs to\ndrop first (low) and last (high). Anything not matched by either set of rules\nis considered default priority and is dropped after low priority but before\nhigh priority data." } }, "type": "object" }, "LogAllocationConfigDefaultDataset": { "description": "Configuration for default dataset.", "properties": { "allocation": { "allOf": [ { "$ref": "#/components/schemas/configv1LogAllocationConfigAllocation" } ], "description": "Sets the percentage of the license limit to allocate to this dataset." }, "priorities": { "allOf": [ { "$ref": "#/components/schemas/LogAllocationConfigHighLowPriorities" } ], "description": "Defines explicit high and low priority match criteria to specify which logs to\ndrop first (low) and last (high). Anything not matched by either set of rules\nis considered default priority and is dropped after low priority but before\nhigh priority data." } }, "type": "object" }, "LogAllocationConfigHighLowPriorities": { "description": "Defines explicit high and low priority match criteria to specify which logs to\ndrop first (low) and last (high). Anything not matched by either set of rules is\nconsidered default priority and is dropped after low priority but before high\npriority data.", "properties": { "high_priority_filters": { "description": "A list of search filters defining which logs are considered high priority in\nthis dataset. Filters are combined as OR statements so only one filter needs\nto match.", "items": { "$ref": "#/components/schemas/configv1LogSearchFilter" }, "type": "array" }, "low_priority_filters": { "description": "A list of search filters defining which logs are considered low priority in\nthis dataset. Filters are combined as OR statements so only one filter needs\nto match.", "items": { "$ref": "#/components/schemas/configv1LogSearchFilter" }, "type": "array" } }, "type": "object" }, "LogControlRuleDropField": { "description": "DropField is the configuration for a drop field action.", "properties": { "field_regex": { "description": "Defines the the regular expression that determines which fields to drop.", "type": "string" }, "parent_path": { "allOf": [ { "$ref": "#/components/schemas/configv1LogFieldPath" } ], "description": "Optional. Specifies the level of depth in the log to apply the regular\nexpression to. For example, if you want to apply the regular expression to\nfields under `httpRequest`, such as `httpRequest.status`, enter `httpRequest`\nin the `parent_path` field. If empty, the fields to drop are at the root level\nof the log." } }, "required": [ "field_regex" ], "type": "object" }, "LogControlRuleEmitMetrics": { "description": "EmitMetrics is the configuration for emit metrics action.", "properties": { "counter": { "allOf": [ { "$ref": "#/components/schemas/EmitMetricsCounter" } ], "description": "Generates a metric that counts the number of times a certain event has\noccurred." }, "drop_log": { "description": "Optional. If `true`, drops the entire log after emitting the defined metric.", "type": "boolean" }, "gauge": { "allOf": [ { "$ref": "#/components/schemas/EmitMetricsGauge" } ], "description": "Generates a metric that tracks a value, which changes over time. Choose `LAST`\n(most recent), `MIN` (minimum value), or `MAX` (maximum value) to define which\nvalue to use." }, "histogram": { "allOf": [ { "$ref": "#/components/schemas/EmitMetricsHistogram" } ], "description": "Generates a metric that tracks the distribution of values across data\ngroupings with exponentially increasing size." }, "labels": { "description": "The labels to emit with the metric, specified as key/value pairs. The\ngenerated label is a valid Prometheus label name, mapped to a log key.", "items": { "$ref": "#/components/schemas/LogControlRuleEmitMetricsLabel" }, "type": "array" }, "mode": { "allOf": [ { "$ref": "#/components/schemas/EmitMetricsMetricMode" } ], "description": "Indicates the mode of the generated metric. Must be one of the following\nvalues:" }, "name": { "description": "A unique name for the generated metric. This name must conform to Prometheus\nnaming conventions.", "type": "string" } }, "required": [ "mode", "name" ], "type": "object" }, "LogControlRuleEmitMetricsLabel": { "properties": { "key": { "type": "string" }, "value": { "$ref": "#/components/schemas/configv1LogFieldPath" } }, "type": "object" }, "LogControlRuleParseField": { "description": "ParseField is the configuration for a parse field action.", "properties": { "destination": { "allOf": [ { "$ref": "#/components/schemas/configv1LogFieldPath" } ], "description": "The destination field where parsed structured data will be written.\nIf the key already exists, the value will be overwritten.\nIf unset, the log will be updated at the root level and any conflicting \nkeys will be overwritten." }, "parser": { "allOf": [ { "$ref": "#/components/schemas/LogIngestConfigLogParser" } ], "description": "The parser to apply to the source field." }, "source": { "allOf": [ { "$ref": "#/components/schemas/configv1LogFieldPath" } ], "description": "The source field to parse." } }, "type": "object" }, "LogControlRuleReplaceField": { "description": "ReplaceField is the configuration for a replace field action.", "properties": { "field": { "allOf": [ { "$ref": "#/components/schemas/configv1LogFieldPath" } ], "description": "Specifies the field inside the log data to apply the rule to." }, "mapped_value": { "allOf": [ { "$ref": "#/components/schemas/ReplaceFieldMappedValue" } ], "description": "Defines the configuration for the mapped value replacement mode." }, "replace_all": { "description": "Determines whether to replace all matches or just the first match.", "type": "boolean" }, "replace_mode": { "allOf": [ { "$ref": "#/components/schemas/ReplaceFieldReplaceMode" } ], "description": "Defines the replacement mode to use in the replace rule. Must be one of the\nfollowing values:" }, "replace_regex": { "description": "Defines the the regular expression that determines which part of the field to\nreplace.", "type": "string" }, "static_value": { "allOf": [ { "$ref": "#/components/schemas/ReplaceFieldStaticValue" } ], "description": "Defines the configuration for the fixed value replacement mode." } }, "required": [ "field", "replace_mode", "replace_regex" ], "type": "object" }, "LogControlRuleSample": { "description": "Sample is the configuration for the sample logs action.", "properties": { "rate": { "description": "Percentage of matching logs to keep. Must be in the range `[0, 1]`, where `1`\nis equal to 100% of logs. For example, to keep 25% of logs, enter `0.25` as\nthe `rate`.", "format": "double", "type": "number" } }, "required": [ "rate" ], "type": "object" }, "LogIngestConfigFieldNormalization": { "description": "FieldNormalization allows you to map and normalize well-known fields from your logs.\nThese mappings run after parsing to standardize common fields like timestamp,\nseverity level, and message across different log formats.", "properties": { "custom_field_normalization": { "description": "Maps additional custom fields from your logs. These will not be indexed.\nUse these for any other fields you want to normalize, such as environment, region, or user ID.", "items": { "$ref": "#/components/schemas/LogIngestConfigNamedStringNormalization" }, "type": "array" }, "message": { "allOf": [ { "$ref": "#/components/schemas/LogIngestConfigStringNormalization" } ], "description": "Maps the main message field from your logs.\nThis is typically the human-readable description of the log event." }, "service": { "allOf": [ { "$ref": "#/components/schemas/LogIngestConfigStringNormalization" } ], "description": "Maps the service field from your logs.\nThe mapped value will be indexed and can be used for filtering and grouping." }, "severity": { "allOf": [ { "$ref": "#/components/schemas/LogIngestConfigStringNormalization" } ], "description": "Maps severity or log level fields (e.g., ERROR, WARN, INFO, DEBUG).\nUse value mapping to normalize different severity formats across your logs." }, "timestamp": { "allOf": [ { "$ref": "#/components/schemas/LogIngestConfigTimestampNormalization" } ], "description": "Maps timestamp fields from your logs to ensure consistent time ordering.\nThe system will try each specified field in order until a valid timestamp is found." } }, "type": "object" }, "LogIngestConfigLogFieldParser": { "properties": { "destination": { "allOf": [ { "$ref": "#/components/schemas/configv1LogFieldPath" } ], "description": "The destination field for storing parsed structured data.\nIf the specified key already exists, its value is overwritten.\nIf this value is unset, the log is updated at the root level and any\nconflicting keys are overwritten." }, "mode": { "allOf": [ { "$ref": "#/components/schemas/LogIngestConfigLogFieldParserMode" } ], "description": "Specifies whether the field parser is enabled or disabled." }, "parser": { "allOf": [ { "$ref": "#/components/schemas/LogIngestConfigLogParser" } ], "description": "The parser to apply to the source field." }, "source": { "allOf": [ { "$ref": "#/components/schemas/configv1LogFieldPath" } ], "description": "The source field to parse." } }, "type": "object" }, "LogIngestConfigLogFieldParserMode": { "enum": [ "ENABLED", "DISABLED" ], "type": "string" }, "LogIngestConfigLogParser": { "properties": { "grok_parser": { "$ref": "#/components/schemas/LogParserGrokParser" }, "key_value_parser": { "$ref": "#/components/schemas/LogParserKeyValueParser" }, "parser_type": { "allOf": [ { "$ref": "#/components/schemas/LogParserParserType" } ], "description": "The type of parser to use." }, "regex_parser": { "allOf": [ { "$ref": "#/components/schemas/LogParserRegexParser" } ], "description": "This object contains settings relevant to `REGEX` parsers." } }, "type": "object" }, "LogIngestConfigNamedStringNormalization": { "description": "NamedStringNormalization maps a field to a named target with optional transformations.", "properties": { "normalization": { "allOf": [ { "$ref": "#/components/schemas/LogIngestConfigStringNormalization" } ], "description": "The normalization configuration for this field." }, "target": { "description": "The name of the target field where the normalized value will be stored.", "type": "string" } }, "type": "object" }, "LogIngestConfigPlaintextParser": { "properties": { "keep_original": { "description": "If `true`, the original log is retained after parsing and stored in the\nkey `plaintext_log`. If `false`, the original log is dropped after parsing.\nDefault value: `false`.", "type": "boolean" }, "mode": { "allOf": [ { "$ref": "#/components/schemas/LogIngestConfigPlaintextParserMode" } ], "description": "Specifies whether the parser is enabled or disabled." }, "name": { "description": "The name of the parser. Must be unique within the configuration.", "type": "string" }, "parser": { "allOf": [ { "$ref": "#/components/schemas/LogIngestConfigLogParser" } ], "description": "The parser configuration to apply to plaintext logs." } }, "type": "object" }, "LogIngestConfigPlaintextParserMode": { "enum": [ "ENABLED", "DISABLED" ], "type": "string" }, "LogIngestConfigStringNormalization": { "description": "StringNormalization defines how to extract and transform string values from log fields.", "properties": { "default_value": { "description": "Default value to use when no source fields contain values.", "type": "string" }, "sanitize_patterns": { "description": "Optional regex patterns to extract and sanitize values.\nEach pattern must have exactly one capturing group that will be used as the result.\nFor example: \"^.*level=([A-Z]+).*$\" to extract log level from a string.", "items": { "type": "string" }, "type": "array" }, "source": { "description": "List of field paths to check for values, in priority order.\nThe first non-empty value found will be used.", "items": { "$ref": "#/components/schemas/configv1LogFieldPath" }, "type": "array" }, "value_map": { "additionalProperties": { "type": "string" }, "description": "Optional mapping to normalize values.\nFor example: {\"warn\": \"WARNING\", \"err\": \"ERROR\"} to standardize severity levels.", "type": "object" } }, "type": "object" }, "LogIngestConfigTimestampNormalization": { "description": "TimestampNormalization specifies which fields to check for timestamp values.", "properties": { "source": { "description": "List of field paths to check for timestamp values, in priority order.\nCommon fields include \"timestamp\", \"@timestamp\", \"time\", \"datetime\".", "items": { "$ref": "#/components/schemas/configv1LogFieldPath" }, "type": "array" } }, "type": "object" }, "LogParserGrokParser": { "properties": { "pattern": { "description": "The grok pattern to apply. Named capture groups become named fields in \nthe extracted log.", "type": "string" } }, "type": "object" }, "LogParserKeyValueParser": { "description": "A parser to extract key/value pairs from a string.\nIf duplicate keys are found, the first instance is used.", "properties": { "delimiter": { "description": "The string for splitting the input into key/value pairs.", "type": "string" }, "pair_separator": { "description": "The string for splitting each pair into its key and value.", "type": "string" }, "trim_set": { "description": "Specifies the code points of any Unicode characters to trim from the\nbeginning and end of keys and values.", "type": "string" } }, "required": [ "delimiter", "pair_separator" ], "type": "object" }, "LogParserParserType": { "enum": [ "JSON", "REGEX", "KEY_VALUE", "GROK" ], "type": "string" }, "LogParserRegexParser": { "properties": { "regex": { "description": "The regular expression parser pattern to apply. Must use RE2 syntax.\nNamed capturing groups become named fields in the extracted log.", "type": "string" } }, "type": "object" }, "MappedValueReplacePair": { "properties": { "key": { "type": "string" }, "value": { "type": "string" } }, "type": "object" }, "MappingLabelValueMapping": { "properties": { "source_value_globs": { "description": "Defines the source label values that map into the given `target_value`.", "items": { "type": "string" }, "type": "array" }, "target_value": { "description": "The value that `source_value_globs` are mapped into. For example, this\nmapping indicates that the target value `cat` maps to the source label's\nvalues of `Cat` and `CAT`.:\n```yaml\nvalue_mappings:\n - source_value_globs:\n - Cat\n - CAT\n target_value: cat\n```", "type": "string" } }, "type": "object" }, "MappingRuleAggregationPolicy": { "properties": { "aggregation": { "allOf": [ { "$ref": "#/components/schemas/configv1AggregationType" } ], "description": "Defines the method by which metrics are aggregated." }, "drop_timestamp": { "description": "Deprecated: This parameter is no longer supported.", "type": "boolean" }, "interval": { "description": "The interval between aggregated data points.", "type": "string" }, "storage_policy": { "allOf": [ { "$ref": "#/components/schemas/configv1MappingRuleStoragePolicy" } ], "description": "Deprecated: Use `interval` instead." } }, "type": "object" }, "MetricLabelConstructedLabel": { "properties": { "value_definitions": { "items": { "$ref": "#/components/schemas/ConstructedLabelValueDefinition" }, "type": "array" } }, "type": "object" }, "MetricLabelMappingLabel": { "properties": { "name_mappings": { "description": "Determines where the input data for a derived label comes from. For each\nname mapping, you must define a `source_label`. If multiple name mappings\nare defined, the first name mapping that matches is used to map the source\nlabel to the derived label.", "items": { "$ref": "#/components/schemas/MetricLabelMappingLabelNameMapping" }, "type": "array" }, "value_mappings": { "description": "These value mappings apply to the whole mapping label.\nIf there's no name_mappings, these value mappings apply to the label that exists on the metric.", "items": { "$ref": "#/components/schemas/MappingLabelValueMapping" }, "type": "array" } }, "required": [ "name_mappings" ], "type": "object" }, "MetricLabelMappingLabelNameMapping": { "properties": { "filters": { "items": { "$ref": "#/components/schemas/configv1LabelFilter" }, "type": "array" }, "source_label": { "description": "The source label name on the time series from when it was ingested.", "type": "string" }, "value_mappings": { "description": "These value mappings apply only to the name mapping they belong to.", "items": { "$ref": "#/components/schemas/MappingLabelValueMapping" }, "type": "array" } }, "type": "object" }, "MetricsRestrictionPermission": { "enum": [ "READ", "WRITE", "READ_WRITE" ], "type": "string" }, "MonitorNotificationTemplate": { "properties": { "description": { "description": "Go template for the alert description.", "type": "string" }, "title": { "description": "Go template for the alert title.", "type": "string" } }, "type": "object" }, "MonitorSchedule": { "properties": { "timezone": { "description": "The timezone of the time ranges.", "type": "string" }, "weekly_schedule": { "allOf": [ { "$ref": "#/components/schemas/ScheduleWeeklySchedule" } ], "description": "Specifies the monitor schedule for each day of the week. You must include\nevery day of the week. Specify `active: NEVER` for days when you don't want\nthe monitor to be active." } }, "type": "object" }, "MonitorSeriesConditions": { "description": "Conditions evaluated against each queried series to determine the severity of each series.", "properties": { "defaults": { "allOf": [ { "$ref": "#/components/schemas/SeriesConditionsSeverityConditions" } ], "description": "Mapping of alert severity to its conditions. All conditions are\nevaluated for every series. If multiple conditions match, the highest\nseverity is chosen." }, "overrides": { "description": "Optional. Specifies a list of overrides to use for series having matching\nlabels. Each override defines labels that potentially match a series' labels.\nIf one or more overrides match a series, the severity conditions of the first\nmatching override are used instead of the defaults.\n\nCannot be used if `graphite_query` is set.", "items": { "$ref": "#/components/schemas/MonitorSeriesConditionsOverride" }, "type": "array" } }, "type": "object" }, "MonitorSeriesConditionsOverride": { "properties": { "label_matchers": { "description": "Set of matchers on a series' labels. If all labels match, then the conditions\ndefined in this override are used.", "items": { "$ref": "#/components/schemas/configv1LabelMatcher" }, "type": "array" }, "severity_conditions": { "allOf": [ { "$ref": "#/components/schemas/SeriesConditionsSeverityConditions" } ], "description": "Mapping of alert severity to its conditions for series that match this\noverride. These conditions supersede the default conditions, and are not\nmerged with the default conditions." } }, "type": "object" }, "MonitorSignalGrouping": { "description": "SignalGrouping defines how the set of series from the query are split into signals.", "properties": { "label_names": { "description": "Set of label names used to split series into signals. Each unique combination\nof labels result in its own signal. For example, if `label_names` is\n`[\"service\", \"code\"]`, then all series including labels\n`{service=\"foo\",code=\"404\"}` will be grouped together in the same signal.\n\nCannot be used if `graphite_query` is set.", "items": { "type": "string" }, "type": "array" }, "signal_per_series": { "description": "If set to `true`, each series will have its own signal. Cannot be used with\n`label_names`.", "type": "boolean" } }, "type": "object" }, "NotificationPolicyRoutes": { "properties": { "defaults": { "allOf": [ { "$ref": "#/components/schemas/RoutesSeverityNotifiers" } ], "description": "The default notifiers to use if no override is found." }, "overrides": { "description": "A list of overrides to use for alert notification policies. Each\noverride defines the labels that potentially match an alert. If an alert has\nmatching labels, the override notification policy is used for that alert\ninstead of the default notification policy. If multiple overrides match\nthe same alert, the first matching override notification policy is used.", "items": { "$ref": "#/components/schemas/NotificationPolicyRoutesOverride" }, "type": "array" } }, "required": [ "defaults" ], "type": "object" }, "NotificationPolicyRoutesOverride": { "properties": { "alert_label_matchers": { "description": "The alert labels to match against. If an alert matches all of these labels,\nthe override notifier is applied to that alert.", "items": { "$ref": "#/components/schemas/configv1LabelMatcher" }, "type": "array" }, "notifiers": { "allOf": [ { "$ref": "#/components/schemas/RoutesSeverityNotifiers" } ], "description": "The notifiers that will receive the alerts matched by overrides." } }, "type": "object" }, "NotifierEmailConfig": { "properties": { "html": { "description": "The body of the email to send, in HTML format.", "type": "string" }, "text": { "description": "The body of the email to send, in plain text format.", "type": "string" }, "to": { "description": "The email address to send notifications to. Required if including an\n`email` object in your request body.", "type": "string" } }, "type": "object" }, "NotifierSlackConfigAction": { "properties": { "confirm_field": { "$ref": "#/components/schemas/SlackConfigConfirmationField" }, "name": { "type": "string" }, "style": { "type": "string" }, "text": { "type": "string" }, "type": { "type": "string" }, "url": { "type": "string" }, "value": { "type": "string" } }, "type": "object" }, "NumericFilterComparisonType": { "enum": [ "EQUAL", "NOT_EQUAL", "GREATER_THAN", "GREATER_THAN_OR_EQUAL", "LESS_THAN", "LESS_THAN_OR_EQUAL" ], "type": "string" }, "OpsGenieConfigResponder": { "properties": { "id": { "description": "The ID of the responder. Cannot be set if `name` or `username` are set.", "type": "string" }, "name": { "description": "The name of the responder. Cannot be set if `id` or `username` are set.", "type": "string" }, "responder_type": { "allOf": [ { "$ref": "#/components/schemas/ResponderResponderType" } ], "description": "The type of the responder." }, "username": { "description": "The username of the responder. Cannot be set if `id` or `name` are set.", "type": "string" } }, "type": "object" }, "OtelMetricsIngestionResourceAttributes": { "properties": { "exclude_keys": { "description": "Specifies resource attributes to exclude. If a resource attribute's key\nmatches any of the strings in this array, that resource attribute is\nexcluded.", "items": { "type": "string" }, "type": "array" }, "filter_mode": { "allOf": [ { "$ref": "#/components/schemas/ResourceAttributesFilterMode" } ], "description": "Specifies which filter mode to use for copying resource attributes into\nthe label set. The `APPEND_DEFAULT_EXCLUDE_KEYS` mode copies all resource\nattributes, excluding any that match either the user-supplied\n`exclude_keys` list or a Chronosphere-managed list of suggested\nexclusions. The `CUSTOM_EXCLUDE_KEYS` mode copies all resource\nattributes, excluding any that match the user-supplied `exclude_keys`\nlist, but is not affected by the Chronosphere-managed list of exclusions.\nDefault: `APPEND_DEFAULT_EXCLUDE_KEYS`." }, "flatten_mode": { "allOf": [ { "$ref": "#/components/schemas/ResourceAttributesFlattenMode" } ], "description": "Specifies how to combine hierarchical OpenTelemetry attributes into a\nsingle set of of labels for a given time series. The `MERGE` mode copies\nresource attributes only if there is no conflicting attribute on the\nindividual data point. The `OVERWRITE` mode gives resource attributes\nprecedence over data point attributes. The `IGNORE` mode doesn't copy any\nresource attributes into the time series label set. Default: `MERGE`." }, "generate_target_info": { "description": "If `true`, generates a `target_info` time series with labels derived from\nresource attributes. The `filter_mode` and `exclude_keys` settings apply\nin the same manner that they apply to the `flatten` operation. Default:\n`false`.", "type": "boolean" } }, "type": "object" }, "PagerdutyConfigImage": { "properties": { "alt": { "type": "string" }, "href": { "type": "string" }, "src": { "type": "string" } }, "type": "object" }, "PagerdutyConfigLink": { "properties": { "href": { "type": "string" }, "text": { "type": "string" } }, "type": "object" }, "PagerdutyConfigPagerdutyEventsConfig": { "properties": { "api_key": { "description": "The PagerDuty integration key used to authenticate with the Events API.\nPagerDuty calls this the \"routing key\" in Events v2 and the\n\"service key\" in Events v1.", "type": "string" }, "version": { "allOf": [ { "$ref": "#/components/schemas/configv1PagerdutyEventsVersion" } ], "description": "The PagerDuty Events API version to use. Defaults to V2 if unset.\nV2 is recommended for new integrations." } }, "type": "object" }, "PagerdutyConfigPagerdutyRESTConfig": { "properties": { "api_key": { "description": "The PagerDuty REST API token used to authenticate note polling.", "type": "string" } }, "type": "object" }, "PartitionFilterCondition": { "properties": { "dataset_slug": { "description": "Deprecated. Use `log_filter`, `metric_filters`, or `trace_span_filters` instead.", "type": "string" }, "log_filter": { "allOf": [ { "$ref": "#/components/schemas/configv1LogSearchFilter" } ], "description": "If set, matches incoming log data by log query.\n\nExactly one of `log_filter`, `metric_filters`, or `trace_span_filters` must be set." }, "metric_filters": { "description": "If set, matches incoming metric data by label. If multiple label\nfilters are specified, an incoming metric must match every label\nfilter to match the condition. Label values support glob patterns,\nincluding matching multiple patterns with an `OR`, such as\n`service:{svc1,svc2}`.\n\nExactly one of `log_filter`, `metric_filters`, or `trace_span_filters` must be set.", "items": { "$ref": "#/components/schemas/configv1LabelFilter" }, "type": "array" }, "trace_span_filters": { "description": "If set, matches incoming trace data at the span level: a span\nmatches the condition only if it satisfies every span filter.\nMatch alternatives with an `IN` string filter or with separate\nconditions.\n\nExactly one of `log_filter`, `metric_filters`, or `trace_span_filters` must be set.", "items": { "$ref": "#/components/schemas/configv1ConsumptionSpanFilter" }, "type": "array" } }, "type": "object" }, "PartitionFilterOperator": { "enum": [ "IN", "NOT_IN" ], "type": "string" }, "PerOperationSamplingStrategiesPerOperationSamplingStrategy": { "properties": { "operation": { "description": "The operation to which this specific strategy applies.", "type": "string" }, "probabilistic_sampling_strategy": { "allOf": [ { "$ref": "#/components/schemas/TraceJaegerRemoteSamplingStrategyProbabilisticStrategy" } ], "description": "Defines the probabilistic strategy to apply to traces matching this\noperation." } }, "type": "object" }, "RecordingRuleExecutionMode": { "description": "ExecutionMode controls how a recording rule is assigned to shards for execution.\n\n - EXECUTION_MODE_SYNCHRONIZED: Synchronized: shard rule by execution group, which ensures that all\nsynchronized rules in the same group execute on the same shard.", "enum": [ "EXECUTION_MODE_SYNCHRONIZED" ], "type": "string" }, "ReplaceFieldMappedValue": { "description": "MappedValue is the configuration for mapped value replace mode.", "properties": { "default_value": { "description": "The value to use if no matching value is found.", "type": "string" }, "pairs": { "description": "A list of key/value pairs to replace matched content with.", "items": { "$ref": "#/components/schemas/MappedValueReplacePair" }, "type": "array" }, "use_default": { "description": "If `true`, specifies a default value if no matching key is found. If\n`false`, the value will be unchanged if no matching key is found.", "type": "boolean" } }, "type": "object" }, "ReplaceFieldReplaceMode": { "description": " - HASH: Replace the matched content with a hashed string, which can help reduce the\nsize of large strings. After replacing the original content with a string,\nthere’s no way to recover that information.\n - STATIC_VALUE: Replace the matched content with a static string. For example, replace\npunctuation in a field with an empty string, or truncate the ends of long\nstack traces.\n - MAPPED_VALUE: Replace the matched content with specified key/value pairs. For example,\nreduce log volume by replacing a string error with a specific error code. If\nnone of the key/value pairs match, the provided default value is used.\n\n@REQUIRED", "enum": [ "HASH", "STATIC_VALUE", "MAPPED_VALUE" ], "type": "string" }, "ReplaceFieldStaticValue": { "description": "StaticValue is the configuration for the replace field control rule in static value\nmode. Used to replace the selected content with a static value.", "properties": { "value": { "description": "The value to replace selected content with. If empty, the action removes the\nselected content.", "type": "string" } }, "type": "object" }, "ResourceAttributesFilterMode": { "enum": [ "APPEND_DEFAULT_EXCLUDE_KEYS", "CUSTOM_EXCLUDE_KEYS" ], "type": "string" }, "ResourceAttributesFlattenMode": { "enum": [ "MERGE", "OVERWRITE", "IGNORE" ], "type": "string" }, "ResourceChange": { "properties": { "action": { "$ref": "#/components/schemas/ResourceChangeAction" }, "resource": { "$ref": "#/components/schemas/configv1ResourceType" }, "slug": { "type": "string" } }, "type": "object" }, "ResourceChangeAction": { "enum": [ "CREATED", "UPDATED", "DELETED", "NOOP" ], "type": "string" }, "ResourcePoolsAllocationThreshold": { "properties": { "fixed_value": { "description": "Threshold expressed as a fixed value of the license.", "format": "int64", "type": "string" }, "percent_of_pool_allocation": { "description": "Threshold expressed as a percent of the license allocated to a pool. A value\nof `100` represents a threshold that is the pool's full allocation. Values\nover `100` indicate thresholds that exceed the pool's allocation. For\nexample, a value of `50` represents a threshold that is half the pool's\nallocation, and a value of `200` represents a threshold that is double the\npool's allocation.", "format": "double", "type": "number" } }, "type": "object" }, "ResourcePoolsDefaultPool": { "properties": { "allocation": { "allOf": [ { "$ref": "#/components/schemas/configv1ResourcePoolsAllocation" } ], "description": "**DEPRECATED**. The default pool receives any remaining allocation after\naccounting for the sum total allocation across pools." }, "priorities": { "allOf": [ { "$ref": "#/components/schemas/ResourcePoolsPriorities" } ], "description": "Optional. Sets priorities that define which metrics within the default pool\nshould be dropped first (low priority) and dropped last (high priority) when\nthe license limit is exceeded. Any metric not matched by either\n`low_priority_filters` or `high_priority_filters` is considered default\npriority, where it is dropped after low but before high.\nSee the [product documentation](https://docs.chronosphere.io/control/shaping/shape-metrics/quotas/define-pools#configure-priority)\nfor more information." }, "priority_thresholds": { "description": "Optional. For supported licenses, defines thresholds with strict limits for\nwhen to drop new consumption of the license for a pool. Only\n`PERSISTED_CARDINALITY_STANDARD` and `PERSISTED_CARDINALITY_HISTOGRAM` are\nsupported. See the [product documentation](https://docs.chronosphere.io/control/shaping/shape-metrics/quotas/define-pools#pool-thresholds)\nfor more information.", "items": { "$ref": "#/components/schemas/AllocationThresholds" }, "type": "array" } }, "type": "object" }, "ResourcePoolsLicense": { "enum": [ "PERSISTED_WRITES_STANDARD", "PERSISTED_WRITES_HISTOGRAM", "PERSISTED_CARDINALITY_STANDARD", "PERSISTED_CARDINALITY_HISTOGRAM", "MATCHED_WRITES_STANDARD", "MATCHED_WRITES_HISTOGRAM" ], "type": "string" }, "ResourcePoolsPool": { "properties": { "allocation": { "allOf": [ { "$ref": "#/components/schemas/configv1ResourcePoolsAllocation" } ], "description": "Defines the allocation of the pool." }, "filters": { "description": "Filters that define which metrics map to this pool, where any metric that\nmatches at least one filter will map to the pool.", "items": { "$ref": "#/components/schemas/configv1LabelFilter" }, "type": "array" }, "name": { "description": "Name of the pool, which must be unique.", "type": "string" }, "priorities": { "allOf": [ { "$ref": "#/components/schemas/ResourcePoolsPriorities" } ], "description": "Optional. Sets priorities that define which metrics within the default pool\nshould be dropped first (low priority) and dropped last (high priority) when\nthe license limit is exceeded. Any metric not matched by either\n`low_priority_filters` or `high_priority_filters` is considered default\npriority, where it is dropped after low but before high." } }, "required": [ "allocation", "filters", "name" ], "type": "object" }, "ResourcePoolsPriorities": { "properties": { "high_priority_filters": { "description": "Optional. Filters that define which metrics are high priority. Any metric that\nmatches at least one filter is considered high priority. High priority metrics\nare dropped last when the license limit is exceeded.", "items": { "$ref": "#/components/schemas/configv1LabelFilter" }, "type": "array" }, "low_priority_filters": { "description": "Optional. Filters that define which metrics are low priority. Any metric that\nmatches at least one filter is considered low priority. Low priority metrics\nare dropped first when the license limit is exceeded.", "items": { "$ref": "#/components/schemas/configv1LabelFilter" }, "type": "array" } }, "type": "object" }, "ResponderResponderType": { "enum": [ "TEAM", "USER", "ESCALATION", "SCHEDULE" ], "type": "string" }, "ResponseTimeAssertionScope": { "enum": [ "INCLUDING_DNS", "WITHOUT_DNS" ], "type": "string" }, "RollupRuleGraphiteLabelPolicy": { "properties": { "replace": { "description": "List of labels to replace. Use to discard high-cardinality values while still\npreserving the original positions of the Graphite metric.", "items": { "$ref": "#/components/schemas/GraphiteLabelPolicyReplace" }, "type": "array" } }, "required": [ "replace" ], "type": "object" }, "RollupRuleLabelReplace": { "description": "Must keep this around for backwards compatibility because terraform will\nstill send this key w/ a null value.", "type": "object" }, "RollupRuleMetricType": { "description": " - CUMULATIVE_COUNTER: Alias of COUNTER.\n - DELTA_COUNTER: Alias of DELTA.", "enum": [ "COUNTER", "GAUGE", "DELTA", "DISTRIBUTION", "CUMULATIVE_EXPONENTIAL_HISTOGRAM", "MEASUREMENT", "CUMULATIVE_COUNTER", "DELTA_COUNTER", "DELTA_EXPONENTIAL_HISTOGRAM" ], "type": "string" }, "RoutesDestination": { "properties": { "disable_resolves": { "description": "If true, do not send notifications when alerts resolve.\nDefaults to false (resolve notifications are sent).", "type": "boolean" }, "email": { "$ref": "#/components/schemas/DestinationEmailTarget" }, "ops_genie": { "$ref": "#/components/schemas/DestinationOpsGenieTarget" }, "pagerduty": { "$ref": "#/components/schemas/DestinationPagerdutyTarget" }, "slack": { "$ref": "#/components/schemas/DestinationSlackTarget" }, "victor_ops": { "$ref": "#/components/schemas/DestinationVictorOpsTarget" }, "webhook": { "$ref": "#/components/schemas/DestinationWebhookTarget" } }, "type": "object" }, "RoutesNotifierList": { "properties": { "destinations": { "description": "Notification destinations. Cannot be set if notifier_slugs is set.", "items": { "$ref": "#/components/schemas/RoutesDestination" }, "type": "array" }, "disable_repeat": { "description": "If true, alerts are notified once and on state changes (new firing alerts,\nresolves) but are never re-sent on the repeat_interval timer.\nDefaults to false (alerts repeat on repeat_interval_secs).", "type": "boolean" }, "notifier_slugs": { "description": "The slugs of the notifiers that will receive the alerts.", "items": { "type": "string" }, "type": "array" }, "repeat_interval_secs": { "description": "The frequency at which to resend alerts. Ignored when disable_repeat is true.", "format": "int32", "type": "integer" } }, "type": "object" }, "RoutesSeverityNotifiers": { "properties": { "critical": { "allOf": [ { "$ref": "#/components/schemas/RoutesNotifierList" } ], "description": "The notifiers that will receive `critical` alerts." }, "warn": { "allOf": [ { "$ref": "#/components/schemas/RoutesNotifierList" } ], "description": "The notifiers that will receive `warn` alerts." } }, "type": "object" }, "SLICustomIndicatorConfig": { "description": "Configuration for error ratio SLIs. You can include these variables in PromQL\nqueries for SLIs:\n- `{{.Window}}`: Specifies the window of time that the PromQL query operates on.\n- `{{.GroupBy}}`: Specifies a comma-separated list of signal and dimension\n labels to group the results by.\n- `{{.AdditionalFilters}}`: Requires setting `additional_promql_filters`.", "properties": { "bad_query_template": { "description": "A PromQL query that measures the number of \"bad\" events for this SLI.\nEither this or `good_query_template` must be set.", "type": "string" }, "good_query_template": { "description": "A PromQL query that measures the number of \"good\" events for this SLI.\nEither this or `bad_query_template` must be set.", "type": "string" }, "total_query_template": { "description": "A PromQL query that measures the total number of events for this SLI.\nThis is required for all error ratio SLOs.", "type": "string" } }, "required": [ "total_query_template" ], "type": "object" }, "SLICustomTimeSliceIndicatorConfig": { "description": "Defines the configuration for time slice SLIs. Time slice SLIs are evaluated by\nrunning a PromQL query over a certain time window and comparing the result against\na condition. You can include these variables in PromQL queries for SLIs:\n- `{{.Window}}`: Specifies the window of time that the PromQL query operates on.\n- `{{.GroupBy}}`: Specifies a comma-separated list of signal and dimension labels\n to group the results by.\n- `{{.TimeSlice}}`: The time slice being evaluated, such as `1m` or `5m`.\n- `{{.AdditionalFilters}}`: Requires setting `additional_promql_filters`.", "properties": { "condition": { "allOf": [ { "$ref": "#/components/schemas/SLITimeSliceCondition" } ], "description": "The condition to use for the SLI." }, "query_template": { "description": "A PromQL query template for the time slice SLI.", "type": "string" }, "timeslice_size": { "allOf": [ { "$ref": "#/components/schemas/SLITimeSliceSize" } ], "description": "The size of the time slice to use for the SLI." } }, "type": "object" }, "SLISLOType": { "description": "What the SLO measures. No query generation depends on it: the queries are\nstill authored through `custom_indicator` or `custom_timeslice_indicator`,\nand this only records the intent behind them.", "enum": [ "ENDPOINT_AVAILABILITY", "LATENCY" ], "type": "string" }, "SLITimeSliceCondition": { "description": "Defines the condition for evaluating time slice SLIs.", "properties": { "op": { "allOf": [ { "$ref": "#/components/schemas/ConditionOp" } ], "description": "The comparison operation to use." }, "value": { "description": "The value to compare against.", "format": "double", "type": "number" } }, "type": "object" }, "SLITimeSliceSize": { "description": "Defines the supported time slice sizes for time slice SLIs.", "enum": [ "TIMESLICE_SIZE_ONE_MINUTE", "TIMESLICE_SIZE_FIVE_MINUTES" ], "type": "string" }, "SLODefinition": { "properties": { "burn_rate_alerting_config": { "description": "Provides the burn rate alert configuration for the SLO. If not provided, the\ndefault burn rates are used. The configuration is only valid if the\n`enable_burn_rate_alerting` flag is set to `true`.", "items": { "$ref": "#/components/schemas/DefinitionBurnRateDefinition" }, "type": "array" }, "enable_burn_rate_alerting": { "description": "If `true`, enables burn rate alerting.", "type": "boolean" }, "objective": { "description": "The SLO target percentage, which represents the availability of the SLO.", "example": "99.9995", "format": "double", "type": "number" }, "time_window": { "allOf": [ { "$ref": "#/components/schemas/DefinitionTimeWindow" } ], "description": "Specifies the duration over which the SLO is evaluated. The SLO is considered\nbreached if the error budget is depleted in this window. Default: `4w` (4\nweeks).", "example": "4w" } }, "type": "object" }, "ScheduleDayActive": { "enum": [ "ALL_DAY", "ONLY_DURING_RANGES", "NEVER" ], "type": "string" }, "ScheduleDayTimeRange": { "properties": { "end_hh_mm": { "description": "End time in the in format `\"\u003chour\u003e:\u003cminute\u003e\"`. For example, `\"15:30\"`.", "type": "string" }, "start_hh_mm": { "description": "Start time in the in format `\"\u003chour\u003e:\u003cminute\u003e\"`. For example, `\"15:30\"`.", "type": "string" } }, "type": "object" }, "ScheduleScheduleDay": { "properties": { "active": { "allOf": [ { "$ref": "#/components/schemas/ScheduleDayActive" } ], "description": "Determines when the monitor is active for the specified day. Accepts these\nvalues:\n- `ALL_DAY`: The monitor is active all day.\n- `ONLY_DURING_RANGES`: The monitor is only active during the given ranges.\n- `NEVER`: The monitor is never active during the selected day." }, "ranges": { "description": "The time ranges that the monitor is active on this day. Required if `active`\nis set to `ONLY_DURING_RANGES`. Otherwise, this field must be empty.", "items": { "$ref": "#/components/schemas/ScheduleDayTimeRange" }, "type": "array" } }, "type": "object" }, "ScheduleWeeklySchedule": { "properties": { "friday": { "$ref": "#/components/schemas/ScheduleScheduleDay" }, "monday": { "$ref": "#/components/schemas/ScheduleScheduleDay" }, "saturday": { "$ref": "#/components/schemas/ScheduleScheduleDay" }, "sunday": { "$ref": "#/components/schemas/ScheduleScheduleDay" }, "thursday": { "$ref": "#/components/schemas/ScheduleScheduleDay" }, "tuesday": { "$ref": "#/components/schemas/ScheduleScheduleDay" }, "wednesday": { "$ref": "#/components/schemas/ScheduleScheduleDay" } }, "type": "object" }, "SeriesConditionsConditions": { "properties": { "conditions": { "description": "List of conditions to evaluate against a series. Only one condition must\nmatch to assign a severity to a signal.", "items": { "$ref": "#/components/schemas/configv1MonitorCondition" }, "type": "array" } }, "type": "object" }, "SeriesConditionsSeverityConditions": { "properties": { "critical": { "allOf": [ { "$ref": "#/components/schemas/SeriesConditionsConditions" } ], "description": "Defines the criteria that must be met to trigger a critical condition." }, "warn": { "allOf": [ { "$ref": "#/components/schemas/SeriesConditionsConditions" } ], "description": "Defines the criteria that must be met to trigger a warning condition." } }, "type": "object" }, "ServiceAccountMetricsRestriction": { "properties": { "labels": { "additionalProperties": { "type": "string" }, "description": "Optional. Specifies labels that further restrict the service account to only\nread or write metrics with the given label names and values.", "type": "object" }, "permission": { "allOf": [ { "$ref": "#/components/schemas/MetricsRestrictionPermission" } ], "description": "Permission that defines the access level of the service account to only metric data:\n- `READ` grants read-only access.\n- `WRITE` grants write-only access.\n- `READ_WRITE` grants read and write access." } }, "required": [ "permission" ], "type": "object" }, "SlackConfigConfirmationField": { "properties": { "dismiss_text": { "type": "string" }, "ok_text": { "type": "string" }, "text": { "type": "string" }, "title": { "type": "string" } }, "type": "object" }, "SlackConfigField": { "properties": { "short": { "type": "boolean" }, "title": { "type": "string" }, "value": { "type": "string" } }, "type": "object" }, "SpanFilterSpanFilterMatchType": { "enum": [ "INCLUDE", "EXCLUDE" ], "type": "string" }, "StringFilterStringFilterMatchType": { "enum": [ "EXACT", "REGEX", "EXACT_NEGATION", "REGEX_NEGATION", "IN", "NOT_IN" ], "type": "string" }, "SyntheticTestBodyAssertion": { "description": "Asserts that the raw response body matches the target string.", "properties": { "operator": { "$ref": "#/components/schemas/SyntheticTestBodyAssertionOperator" }, "target": { "type": "string" } }, "type": "object" }, "SyntheticTestBodyAssertionOperator": { "enum": [ "CONTAINS", "NOT_CONTAINS", "EQUALS", "NOT_EQUALS", "REGEX_EQUALS", "REGEX_NOT_EQUALS" ], "type": "string" }, "SyntheticTestBodyHashAssertion": { "description": "Asserts that a hash of the response body equals the target.", "properties": { "algorithm": { "$ref": "#/components/schemas/BodyHashAssertionAlgorithm" }, "target": { "type": "string" } }, "type": "object" }, "SyntheticTestBodyJSONPathAssertion": { "description": "Asserts that a value extracted with JSONPath matches the target. The\n`match_type` field controls how multiple matches are evaluated.", "properties": { "json_path": { "type": "string" }, "match_type": { "$ref": "#/components/schemas/BodyJSONPathAssertionMatchType" }, "operator": { "$ref": "#/components/schemas/SyntheticTestBodyJSONPathAssertionOperator" }, "target": { "type": "string" } }, "type": "object" }, "SyntheticTestBodyJSONPathAssertionOperator": { "enum": [ "CONTAINS", "NOT_CONTAINS", "EQUALS", "NOT_EQUALS", "REGEX_EQUALS", "REGEX_NOT_EQUALS", "LESS_THAN", "GREATER_THAN", "IS_UNDEFINED" ], "type": "string" }, "SyntheticTestBodyJSONSchemaAssertion": { "description": "Asserts that the JSON response body conforms to a JSON schema.", "properties": { "draft": { "$ref": "#/components/schemas/BodyJSONSchemaAssertionSchemaDraft" }, "schema": { "type": "string" } }, "type": "object" }, "SyntheticTestBodyXPathAssertion": { "description": "Asserts that a value extracted with XPath 1.0 matches the target.", "properties": { "operator": { "$ref": "#/components/schemas/SyntheticTestBodyXPathAssertionOperator" }, "target": { "type": "string" }, "xpath": { "type": "string" } }, "type": "object" }, "SyntheticTestBodyXPathAssertionOperator": { "enum": [ "CONTAINS", "NOT_CONTAINS", "EQUALS", "NOT_EQUALS", "REGEX_EQUALS", "REGEX_NOT_EQUALS", "LESS_THAN", "GREATER_THAN", "IS_UNDEFINED" ], "type": "string" }, "SyntheticTestCertificateAssertion": { "description": "Asserts on the leaf certificate's expiration window, in days.", "properties": { "operator": { "$ref": "#/components/schemas/SyntheticTestCertificateAssertionOperator" }, "target_days": { "format": "int32", "type": "integer" } }, "type": "object" }, "SyntheticTestCertificateAssertionOperator": { "enum": [ "EXPIRES_IN_MORE_THAN_DAYS", "EXPIRES_IN_LESS_THAN_DAYS" ], "type": "string" }, "SyntheticTestCertificatePropertyAssertion": { "description": "Asserts on a named property of the leaf certificate, for example\n`subject`, `issuer`, or a Subject Alternative Name (SAN).", "properties": { "operator": { "$ref": "#/components/schemas/SyntheticTestCertificatePropertyAssertionOperator" }, "property": { "type": "string" }, "target": { "type": "string" } }, "type": "object" }, "SyntheticTestCertificatePropertyAssertionOperator": { "enum": [ "CONTAINS", "NOT_CONTAINS", "EQUALS", "NOT_EQUALS", "REGEX_EQUALS", "REGEX_NOT_EQUALS" ], "type": "string" }, "SyntheticTestConnectionAssertion": { "description": "Asserts on the outcome of the TCP connection attempt. Only the `EQUALS`\noperator is supported, for example a target of `ESTABLISHED`.", "properties": { "operator": { "$ref": "#/components/schemas/SyntheticTestConnectionAssertionOperator" }, "target": { "$ref": "#/components/schemas/ConnectionAssertionConnectionStatus" } }, "type": "object" }, "SyntheticTestConnectionAssertionOperator": { "enum": [ "EQUALS" ], "type": "string" }, "SyntheticTestDnsRecordAssertion": { "description": "Asserts on DNS records returned for the query. The `match_scope` field\nselects whether the operator must hold for every record of `record_type`\nor for at least one. The `SOA` and `SRV` record types are valid only with\n`AT_LEAST_ONE`.", "properties": { "match_scope": { "$ref": "#/components/schemas/DnsRecordAssertionMatchScope" }, "operator": { "$ref": "#/components/schemas/SyntheticTestDnsRecordAssertionOperator" }, "record_type": { "$ref": "#/components/schemas/DnsRecordAssertionRecordType" }, "target": { "type": "string" } }, "type": "object" }, "SyntheticTestDnsRecordAssertionOperator": { "enum": [ "CONTAINS", "EQUALS", "REGEX_EQUALS", "REGEX_NOT_EQUALS" ], "type": "string" }, "SyntheticTestDnsTestConfig": { "properties": { "assertions": { "description": "Conditions the response must satisfy for the test to pass.", "items": { "$ref": "#/components/schemas/SyntheticTestDnsTestConfigAssertion" }, "type": "array" }, "dns_server": { "description": "Nameserver to query. When unset, the test uses the default resolver for\nthe probe location.", "type": "string" }, "dns_server_port": { "description": "Port of the nameserver in `dns_server`, from 1 to 65535. Required when\n`dns_server` is set, and rejected when it isn't.", "format": "int64", "type": "integer" }, "domain": { "description": "Domain the test resolves.", "example": "api.example.com", "type": "string" } }, "required": [ "domain" ], "type": "object" }, "SyntheticTestDnsTestConfigAssertion": { "description": "Assertion types valid for DNS tests. Set exactly one assertion field\nper entry.", "properties": { "dns_record_assertion": { "$ref": "#/components/schemas/SyntheticTestDnsRecordAssertion" }, "response_time_assertion": { "$ref": "#/components/schemas/SyntheticTestResponseTimeAssertion" } }, "type": "object" }, "SyntheticTestHeaderAssertion": { "description": "Asserts that the named response header satisfies the operator.", "properties": { "name": { "type": "string" }, "operator": { "$ref": "#/components/schemas/SyntheticTestHeaderAssertionOperator" }, "target": { "type": "string" } }, "type": "object" }, "SyntheticTestHeaderAssertionOperator": { "enum": [ "CONTAINS", "NOT_CONTAINS", "EQUALS", "NOT_EQUALS", "REGEX_EQUALS", "REGEX_NOT_EQUALS", "NOT_EXISTS", "LESS_THAN", "LESS_THAN_OR_EQUAL", "GREATER_THAN", "GREATER_THAN_OR_EQUAL" ], "type": "string" }, "SyntheticTestHttpTestConfig": { "properties": { "allow_insecure_tls": { "description": "If `true`, the test skips TLS certificate verification for HTTPS\nrequests. If `false`, an invalid certificate fails the test.\nDefault: `false`.", "type": "boolean" }, "assertions": { "description": "Conditions the response must satisfy for the test to pass.", "items": { "$ref": "#/components/schemas/SyntheticTestHttpTestConfigAssertion" }, "type": "array" }, "authentication": { "allOf": [ { "$ref": "#/components/schemas/HttpTestConfigHttpAuth" } ], "description": "Credentials presented with the request." }, "content_type": { "allOf": [ { "$ref": "#/components/schemas/HttpTestConfigContentType" } ], "description": "Content type sent with the request." }, "cookies": { "description": "Cookies sent with the request.", "items": { "$ref": "#/components/schemas/HttpTestConfigCookie" }, "type": "array" }, "do_not_save_response_body_on_failure": { "description": "If `true`, the response body captured on a failed execution isn't stored.\nIf `false`, the captured body is stored with the failed execution.\nDefault: `false`.", "type": "boolean" }, "follow_redirects": { "description": "If `true`, the test follows HTTP redirects up to `max_redirects`. If\n`false, the test doesn't follow redirects. Default: `false`.", "type": "boolean" }, "headers": { "description": "Headers sent with the request.", "items": { "$ref": "#/components/schemas/HttpTestConfigHeader" }, "type": "array" }, "http_version": { "allOf": [ { "$ref": "#/components/schemas/HttpTestConfigHttpVersion" } ], "description": "HTTP protocol version used for the request." }, "max_redirects": { "description": "Maximum number of redirects to follow, from 0 to 10. Applies only when\n`follow_redirects` is `true`. Default: `10`.", "format": "int32", "type": "integer" }, "max_response_body_bytes": { "description": "Maximum size of the captured response body, in bytes, up to 51200.\nA value of `0` lets the probe apply its own capture limit.", "format": "int64", "type": "integer" }, "method": { "allOf": [ { "$ref": "#/components/schemas/HttpTestConfigHttpMethod" } ], "description": "HTTP method used for the request. Must be `GET` or `POST`." }, "query_params": { "additionalProperties": { "type": "string" }, "description": "Query parameters appended to the URL.", "type": "object" }, "request_body": { "description": "Body sent with the request.", "format": "byte", "type": "string" }, "url": { "description": "URL the test requests.", "example": "https://api.example.com/health", "type": "string" } }, "required": [ "method", "url" ], "type": "object" }, "SyntheticTestHttpTestConfigAssertion": { "description": "Assertion types valid for HTTP tests. Set exactly one assertion field\nper entry.", "properties": { "body_assertion": { "$ref": "#/components/schemas/SyntheticTestBodyAssertion" }, "body_hash_assertion": { "$ref": "#/components/schemas/SyntheticTestBodyHashAssertion" }, "body_json_path_assertion": { "$ref": "#/components/schemas/SyntheticTestBodyJSONPathAssertion" }, "body_json_schema_assertion": { "$ref": "#/components/schemas/SyntheticTestBodyJSONSchemaAssertion" }, "body_xpath_assertion": { "$ref": "#/components/schemas/SyntheticTestBodyXPathAssertion" }, "header_assertion": { "$ref": "#/components/schemas/SyntheticTestHeaderAssertion" }, "response_time_assertion": { "$ref": "#/components/schemas/SyntheticTestResponseTimeAssertion" }, "status_code_assertion": { "$ref": "#/components/schemas/SyntheticTestStatusCodeAssertion" } }, "type": "object" }, "SyntheticTestMonitorConfig": { "description": "Alerting configuration for the test. An alert fires when at least\n`min_failing_locations` locations fail simultaneously within the\n`failing_duration_secs` window. Alerts resolve automatically, and there\nis no separate resolve duration.", "properties": { "annotations": { "additionalProperties": { "type": "string" }, "description": "Annotations attached to the generated alert.", "type": "object" }, "failing_duration_secs": { "description": "Failure-duration window, in seconds. 0 alerts on the first failure. Any\nother value must be at least `interval_secs`.", "format": "int32", "type": "integer" }, "min_failing_locations": { "description": "Peak number of locations failing simultaneously within the window that\nis required to fire an alert. Must be between 1 and the number of test\nlocations.", "format": "int32", "type": "integer" }, "notification_policy_slug": { "description": "Slug of the notification policy that routes the generated alert.", "type": "string" } }, "required": [ "failing_duration_secs", "min_failing_locations", "notification_policy_slug" ], "type": "object" }, "SyntheticTestNetworkHopsAssertion": { "description": "Asserts on the number of network hops to the target.", "properties": { "operator": { "$ref": "#/components/schemas/SyntheticTestNetworkHopsAssertionOperator" }, "target": { "format": "int32", "type": "integer" } }, "type": "object" }, "SyntheticTestNetworkHopsAssertionOperator": { "enum": [ "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUAL", "GREATER_THAN", "GREATER_THAN_OR_EQUAL" ], "type": "string" }, "SyntheticTestResponseTimeAssertion": { "description": "Asserts that the request response time is below the target, in\nmilliseconds. The `scope` field selects whether DNS resolution time is\nincluded, and doesn't apply to DNS tests.", "properties": { "operator": { "$ref": "#/components/schemas/SyntheticTestResponseTimeAssertionOperator" }, "scope": { "$ref": "#/components/schemas/ResponseTimeAssertionScope" }, "target_ms": { "format": "int32", "type": "integer" } }, "type": "object" }, "SyntheticTestResponseTimeAssertionOperator": { "enum": [ "LESS_THAN" ], "type": "string" }, "SyntheticTestRetryConfig": { "description": "Per-location retry behavior after a failed attempt. When unset, the test\ndoesn't retry.", "properties": { "max_retries": { "description": "Number of retries after the initial failed attempt, from 0 to 3. A value\nof `0` disables retries.", "format": "int32", "type": "integer" }, "retry_interval_ms": { "description": "Delay between attempts, in milliseconds, up to 5000. Applies only when\n`max_retries` is set. Default: `300`.", "format": "int32", "type": "integer" } }, "type": "object" }, "SyntheticTestStatusCodeAssertion": { "description": "Asserts that the HTTP response status code matches the target. The\n`target` field accepts a literal code such as `200`, or a regular\nexpression such as `2..` when the operator is `REGEX_EQUALS` or\n`REGEX_NOT_EQUALS`.", "properties": { "operator": { "$ref": "#/components/schemas/SyntheticTestStatusCodeAssertionOperator" }, "target": { "type": "string" } }, "type": "object" }, "SyntheticTestStatusCodeAssertionOperator": { "enum": [ "EQUALS", "NOT_EQUALS", "REGEX_EQUALS", "REGEX_NOT_EQUALS" ], "type": "string" }, "SyntheticTestTcpTestConfig": { "properties": { "assertions": { "description": "Conditions the connection must satisfy for the test to pass.", "items": { "$ref": "#/components/schemas/SyntheticTestTcpTestConfigAssertion" }, "type": "array" }, "host": { "description": "Host the test connects to.", "example": "db.example.com", "type": "string" }, "port": { "description": "Port the test connects to, from 1 to 65535.", "format": "int64", "type": "integer" } }, "required": [ "host", "port" ], "type": "object" }, "SyntheticTestTcpTestConfigAssertion": { "description": "Assertion types valid for TCP tests. Set exactly one assertion field\nper entry.", "properties": { "connection_assertion": { "$ref": "#/components/schemas/SyntheticTestConnectionAssertion" }, "network_hops_assertion": { "$ref": "#/components/schemas/SyntheticTestNetworkHopsAssertion" }, "response_time_assertion": { "$ref": "#/components/schemas/SyntheticTestResponseTimeAssertion" } }, "type": "object" }, "SyntheticTestTestLocation": { "enum": [ "GCP_US_OREGON", "GCP_US_VIRGINIA", "GCP_BR_SAO_PAULO", "GCP_SG_SINGAPORE", "GCP_AU_SYDNEY", "GCP_IN_MUMBAI", "GCP_JP_TOKYO", "GCP_GB_LONDON", "GCP_DE_FRANKFURT", "GCP_ZA_JOHANNESBURG", "GCP_ID_JAKARTA", "GCP_CA_MONTREAL", "GCP_KR_SEOUL", "GCP_IT_MILAN", "GCP_QA_DOHA", "GCP_JP_OSAKA", "GCP_FR_PARIS" ], "type": "string" }, "SyntheticTestTestStatus": { "enum": [ "ENABLED", "PAUSED" ], "type": "string" }, "SyntheticTestTestType": { "enum": [ "HTTP", "DNS", "TCP", "TLS" ], "type": "string" }, "SyntheticTestTlsTestConfig": { "properties": { "accept_self_signed": { "description": "If `true`, a self-signed certificate passes verification. If `false`, a\nself-signed certificate fails the test. Default: `false`.", "type": "boolean" }, "assertions": { "description": "Conditions the handshake and certificate must satisfy for the test to\npass.", "items": { "$ref": "#/components/schemas/SyntheticTestTlsTestConfigAssertion" }, "type": "array" }, "authentication": { "allOf": [ { "$ref": "#/components/schemas/TlsTestConfigTlsAuth" } ], "description": "Credentials presented during the handshake." }, "fail_on_incomplete_chain": { "description": "If `true`, a certificate chain that omits intermediates fails the test.\nIf false, an incomplete chain passes. Default: `false`.", "type": "boolean" }, "host": { "description": "Host the test connects to.", "example": "api.example.com", "type": "string" }, "port": { "description": "Port the test connects to, from 1 to 65535.", "format": "int64", "type": "integer" }, "server_name": { "description": "Server Name Indication (SNI) value sent during the handshake.\nDefault: the value of `host`.", "type": "string" } }, "required": [ "host", "port" ], "type": "object" }, "SyntheticTestTlsTestConfigAssertion": { "description": "Assertion types valid for TLS tests. Set exactly one assertion field\nper entry.", "properties": { "cert_property_assertion": { "$ref": "#/components/schemas/SyntheticTestCertificatePropertyAssertion" }, "certificate_assertion": { "$ref": "#/components/schemas/SyntheticTestCertificateAssertion" }, "response_time_assertion": { "$ref": "#/components/schemas/SyntheticTestResponseTimeAssertion" }, "tls_version_assertion": { "$ref": "#/components/schemas/SyntheticTestTlsVersionAssertion" } }, "type": "object" }, "SyntheticTestTlsVersionAssertion": { "description": "Asserts on the negotiated TLS version. The `bound` field selects whether\nthe assertion constrains the maximum or the minimum acceptable version.", "properties": { "bound": { "$ref": "#/components/schemas/TlsVersionAssertionBound" }, "operator": { "$ref": "#/components/schemas/SyntheticTestTlsVersionAssertionOperator" }, "target": { "$ref": "#/components/schemas/TlsVersionAssertionVersion" } }, "type": "object" }, "SyntheticTestTlsVersionAssertionOperator": { "enum": [ "EQUALS", "LESS_THAN", "LESS_THAN_OR_EQUAL", "GREATER_THAN", "GREATER_THAN_OR_EQUAL" ], "type": "string" }, "ThresholdInstantRate": { "properties": { "fixed_value_per_sec": { "description": "Value of the fixed rate threshold.", "format": "int64", "type": "string" } }, "required": [ "fixed_value_per_sec" ], "type": "object" }, "ThresholdVolume": { "properties": { "fixed_value": { "description": "Value of the volume threshold.", "format": "int64", "type": "string" } }, "required": [ "fixed_value" ], "type": "object" }, "TlsTestConfigTlsAuth": { "description": "Credentials presented during the TLS handshake.", "properties": { "client_certificate": { "$ref": "#/components/schemas/configv1ClientCertificate" } }, "type": "object" }, "TlsVersionAssertionBound": { "enum": [ "MAX", "MIN" ], "type": "string" }, "TlsVersionAssertionVersion": { "enum": [ "TLS_1_0", "TLS_1_1", "TLS_1_2", "TLS_1_3" ], "type": "string" }, "TraceBehaviorConfigMainBehaviorAssignment": { "properties": { "behavior_slug": { "description": "The slug reference of a trace behavior.", "type": "string" }, "created_at": { "description": "The timestamp of when the trace behavior was created.", "format": "date-time", "type": "string" }, "created_by": { "description": "The author or creator of the behavior assignment.", "type": "string" }, "dataset_slug": { "description": "The slug reference of a trace dataset.", "type": "string" }, "description": { "description": "A description of the behavior assignment.", "type": "string" }, "updated_at": { "description": "The timestamp of when the trace behavior was updated.", "format": "date-time", "type": "string" } }, "type": "object" }, "TraceBehaviorConfigOverrideBehaviorAssignment": { "properties": { "behavior_slug": { "description": "The slug reference of a trace behavior.", "type": "string" }, "created_at": { "description": "The timestamp of when the override behavior assignment was created.", "format": "date-time", "type": "string" }, "created_by": { "description": "The author or creator of the override.", "type": "string" }, "dataset_slug": { "description": "The slug reference of a trace dataset.", "type": "string" }, "description": { "description": "A description of the override.", "type": "string" }, "end_time": { "description": "The ending time of the override.", "format": "date-time", "type": "string" }, "start_time": { "description": "The starting time of the override.", "format": "date-time", "type": "string" }, "updated_at": { "description": "The timestamp of when the override behavior assignment was updated.", "format": "date-time", "type": "string" } }, "type": "object" }, "TraceBehaviorErrorSampleOptions": { "properties": { "enabled": { "description": "Determines whether or not to define options for error traces.", "type": "boolean" }, "sample_rate": { "description": "Specifies the sample rate for traces with errors.", "format": "double", "type": "number" }, "sampling_type": { "allOf": [ { "$ref": "#/components/schemas/TraceBehaviorSamplingType" } ], "description": "Specifies the sampling type." } }, "type": "object" }, "TraceBehaviorFastSampleOptions": { "properties": { "enabled": { "description": "Determines whether or not to define options for fast traces.", "type": "boolean" }, "max_duration_seconds": { "description": "Duration in seconds under which traces are sampled according to the given\nsample rate.", "format": "double", "type": "number" }, "sample_rate": { "description": "Defines the sample rate for traces during a specified duration.", "format": "double", "type": "number" }, "sampling_type": { "allOf": [ { "$ref": "#/components/schemas/TraceBehaviorSamplingType" } ], "description": "Specifies the sampling type." } }, "type": "object" }, "TraceBehaviorLargeTraceSampleOptions": { "properties": { "enabled": { "description": "Determines whether or not to define options for large traces.", "type": "boolean" }, "sample_rate": { "description": "Defines the sample rate for traces during a specified duration.", "format": "double", "type": "number" }, "sampling_type": { "allOf": [ { "$ref": "#/components/schemas/TraceBehaviorSamplingType" } ], "description": "Specifies the sampling type." }, "span_count_threshold": { "description": "Defines the sampling rate for large traces. If the number of spans in the\ntrace is grater than or equal to (`\u003e=`) the `span_count_threshold`, the trace\nis sampled according to the given sample rate.", "format": "int64", "type": "integer" } }, "type": "object" }, "TraceBehaviorSamplingType": { "description": " - LOW_VALUE: Match indicates a low value trace. With multiple low value matches sample at the lowest rate.\n - HIGH_VALUE: Match indicates a high value trace. With multiple high value matches sample at the highest rate.", "enum": [ "LOW_VALUE", "HIGH_VALUE" ], "type": "string" }, "TraceBehaviorSlowSampleOptions": { "properties": { "enabled": { "description": "Determines whether or not to define options for slow traces.", "type": "boolean" }, "min_duration_seconds": { "description": "Duration in seconds under which traces are sampled according to the given\nsample rate.", "format": "double", "type": "number" }, "sample_rate": { "description": "Defines the sample rate for traces during a specified duration.", "format": "double", "type": "number" }, "sampling_type": { "allOf": [ { "$ref": "#/components/schemas/TraceBehaviorSamplingType" } ], "description": "Specifies the sampling type." } }, "type": "object" }, "TraceBehaviorSmallTraceSampleOptions": { "properties": { "enabled": { "description": "Determines whether or not to define options for small traces.", "type": "boolean" }, "sample_rate": { "description": "Defines the sample rate for traces during a specified duration.", "format": "double", "type": "number" }, "sampling_type": { "allOf": [ { "$ref": "#/components/schemas/TraceBehaviorSamplingType" } ], "description": "Specifies the sampling type." }, "span_count_threshold": { "description": "Defines the sampling rate for small traces. If the number of spans in the\ntrace is less than or equal to (`\u003c=`) the `span_count_threshold`, the trace is\nsampled according to the given sample rate.", "format": "int64", "type": "integer" } }, "type": "object" }, "TraceJaegerRemoteSamplingStrategyAppliedStrategy": { "properties": { "per_operation_strategies": { "allOf": [ { "$ref": "#/components/schemas/TraceJaegerRemoteSamplingStrategyPerOperationSamplingStrategies" } ], "description": "Applies an operation-granularity strategy. If this strategy is set, no other strategy\ncan be set." }, "probabilistic_strategy": { "allOf": [ { "$ref": "#/components/schemas/TraceJaegerRemoteSamplingStrategyProbabilisticStrategy" } ], "description": "Applies a probabilistic strategy. If this strategy is set, no other strategy\ncan be set." }, "rate_limiting_strategy": { "allOf": [ { "$ref": "#/components/schemas/TraceJaegerRemoteSamplingStrategyRateLimitingSamplingStrategy" } ], "description": "Applies a rate-limiting strategy. If this strategy is set, no other strategy\ncan be set." } }, "type": "object" }, "TraceJaegerRemoteSamplingStrategyPerOperationSamplingStrategies": { "properties": { "default_lower_bound_traces_per_second": { "description": "Defines a minimum number of traces to send for any operation in the service,\nregardless of matching per operation strategy.", "format": "double", "type": "number" }, "default_sampling_rate": { "description": "Defines the service-wide sampling probability (in the range `[0, 1]`) when\nspecific operations are not matched.", "format": "double", "type": "number" }, "default_upper_bound_traces_per_second": { "description": "Defines a maximum number of traces to send for any operation in the service,\nregardless of matching per operation strategy.", "format": "double", "type": "number" }, "per_operation_strategies": { "description": "Defines explicit operations-specific strategies that take precedence over the\ndefault sampling rate.", "items": { "$ref": "#/components/schemas/PerOperationSamplingStrategiesPerOperationSamplingStrategy" }, "type": "array" } }, "type": "object" }, "TraceJaegerRemoteSamplingStrategyProbabilisticStrategy": { "properties": { "sampling_rate": { "description": "Value in the range `[0, 1]` that defines the percentage probability of\nsampling any trace, where `0` is zero percent and `1` equals 100 percent.", "format": "double", "type": "number" } }, "type": "object" }, "TraceJaegerRemoteSamplingStrategyRateLimitingSamplingStrategy": { "properties": { "max_traces_per_second": { "description": "Maximum number of traces to sample per second.", "format": "int32", "type": "integer" } }, "type": "object" }, "TraceSearchFilterBoolFilter": { "properties": { "value": { "description": "The value of the filter compared to the target trace or span field.", "type": "boolean" } }, "type": "object" }, "TraceSearchFilterCountFilter": { "properties": { "max": { "description": "Maximum number of spans that must match a span query, inclusive.", "format": "int32", "type": "integer" }, "min": { "description": "Minimum number of spans that must match a span query, inclusive.", "format": "int32", "type": "integer" } }, "type": "object" }, "TraceSearchFilterDurationFilter": { "properties": { "max_secs": { "description": "Maximum duration, in seconds, required for a span or trace to match.", "format": "double", "type": "number" }, "min_secs": { "description": "Minimum duration, in seconds, required for a span or trace to match.", "format": "double", "type": "number" } }, "type": "object" }, "TraceSearchFilterNumericFilter": { "properties": { "comparison": { "allOf": [ { "$ref": "#/components/schemas/NumericFilterComparisonType" } ], "description": "The comparison operation to apply to an input against the given query value." }, "value": { "description": "The filter value used in comparison against match candidates.", "format": "double", "type": "number" } }, "type": "object" }, "TraceSearchFilterScopeFilter": { "properties": { "span_scopes": { "description": "Specifies the span filters that define which spans contribute to the metrics calculation.\nOnly spans matching these filters will be included in the metrics aggregation.", "items": { "$ref": "#/components/schemas/TraceSearchFilterSpanFilter" }, "type": "array" } }, "type": "object" }, "TraceSearchFilterSpanFilter": { "properties": { "duration": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterDurationFilter" } ], "description": "Matches the duration of the candidate span." }, "error": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterBoolFilter" } ], "description": "Matches the error status of the candidate span." }, "is_root_span": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterBoolFilter" } ], "description": "Matches the root span of a trace. For example, if the parent span has no child\nspans." }, "match_type": { "allOf": [ { "$ref": "#/components/schemas/SpanFilterSpanFilterMatchType" } ], "description": "If `INCLUDE`, includes all traces that have at least one (or `span_count`)\nspans matching the query. If `EXCLUDE`, excludes all traces that have at least\none (or `span_count`) spans matching the query." }, "operation": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterStringFilter" } ], "description": "Matches the operation of the candidate span." }, "parent_operation": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterStringFilter" } ], "description": "If not a root span, matches the operation of the candidate span's parent span" }, "parent_service": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterStringFilter" } ], "description": "If not a root span, matches the service of the candidate span's parent span." }, "service": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterStringFilter" } ], "description": "Matches the service of the candidate span." }, "span_count": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterCountFilter" } ], "description": "Defines the number of spans that must match the criteria defined by the span\nquery. Defaults to requiring that at least one span matches the span query." }, "tags": { "description": "Matches the tags of the candidate span.", "items": { "$ref": "#/components/schemas/TraceSearchFilterTagFilter" }, "type": "array" } }, "type": "object" }, "TraceSearchFilterStringFilter": { "properties": { "in_values": { "description": "Values the filter tests against when using `IN` or `NOT_IN` match type.", "items": { "type": "string" }, "type": "array" }, "match": { "allOf": [ { "$ref": "#/components/schemas/StringFilterStringFilterMatchType" } ], "description": "Specifies the comparison operator for the query. If `EXACT`, compared strings\nmust have the exact value of the query value." }, "value": { "description": "The value of the filter compared to the target trace or span field.", "type": "string" } }, "type": "object" }, "TraceSearchFilterTagFilter": { "properties": { "key": { "description": "The key or name of the span tag that this filter inspects.", "type": "string" }, "numeric_value": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterNumericFilter" } ], "description": "If the query matches the tag with the specified key, and the value type is\n`numeric`, specifies the matcher used to evaluate the span tag value." }, "value": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterStringFilter" } ], "description": "If the query matches the tag with the specified key, and the value type is a\n`string`, specifies the matcher used to evaluate the span tag value." } }, "type": "object" }, "TraceSearchFilterTraceFilter": { "properties": { "duration": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterDurationFilter" } ], "description": "Matches traces based on the duration of the entire trace." }, "error": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterBoolFilter" } ], "description": "Matches traces based on the top-level error status." } }, "type": "object" }, "WebhookTargetQueryParameter": { "properties": { "key": { "type": "string" }, "value": { "type": "string" } }, "type": "object" }, "apiError": { "properties": { "message": { "description": "An error message describing what went wrong.", "type": "string" } }, "type": "object" }, "commonPromQLMatcher": { "properties": { "name": { "description": "Prometheus label name for the matcher", "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/commonPromQLMatcherType" } ], "description": "The type of match to be performed" }, "value": { "description": "Prometheus label value for the matcher", "type": "string" } }, "type": "object" }, "commonPromQLMatcherType": { "enum": [ "MatchEqual", "MatchRegexp", "MatchNotEqual", "MatchNotRegexp" ], "type": "string" }, "configv1APITokenAuth": { "description": "Configures static API-token authentication. Each request carries a\n`key: token` header. The whole token is treated as a secret.", "properties": { "key": { "description": "Name of the header that carries the token. Must be a valid HTTP header\nname.", "example": "Authorization", "type": "string" }, "token": { "description": "Full value of the header, including any scheme prefix.", "example": "Bearer TOKEN", "type": "string" } }, "required": [ "key", "token" ], "type": "object" }, "configv1AggregationType": { "enum": [ "LAST", "MIN", "MAX", "MEAN", "MEDIAN", "COUNT", "SUM", "SUMSQ", "STDEV", "P10", "P20", "P30", "P40", "P50", "P60", "P70", "P80", "P90", "P95", "P99", "P999", "P9999", "P25", "P75", "COUNT_SAMPLES", "HISTOGRAM" ], "type": "string" }, "configv1AzureMetricsIntegration": { "properties": { "count_metrics_enabled": { "description": "Enables Azure count metrics for the configured resources.", "type": "boolean" }, "created_at": { "description": "Timestamp of when the AzureMetricsIntegration was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "name": { "description": "The name of the AzureMetricsIntegration. You can modify this value after the AzureMetricsIntegration is created.", "type": "string" }, "principal": { "allOf": [ { "$ref": "#/components/schemas/AzureMetricsIntegrationAzurePrincipal" } ], "description": "The Azure principal that should be used for this config." }, "propagate_tags": { "description": "Specifies whether Azure resource, group, and subscription tags should be propagated as metric labels.", "type": "boolean" }, "scrape_config": { "allOf": [ { "$ref": "#/components/schemas/AzureMetricsIntegrationAzureScrapeConfig" } ], "description": "Specifies the scrape config for this integration." }, "slug": { "description": "The unique identifier of the AzureMetricsIntegration. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the AzureMetricsIntegration is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the AzureMetricsIntegration was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "usage_metrics_enabled": { "description": "Enables collection of azure usage metrics under this principal (Microsoft.Compute, Microsoft.Network, Microsoft.Storage).", "type": "boolean" } }, "required": [ "name" ], "type": "object" }, "configv1BasicAuth": { "description": "HTTP basic authentication credentials used by a synthetic test.", "properties": { "password": { "description": "Password sent with the request.", "type": "string" }, "username": { "description": "User name sent with the request.", "type": "string" } }, "required": [ "password", "username" ], "type": "object" }, "configv1Bucket": { "properties": { "created_at": { "description": "Timestamp of when the Bucket was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Optional description of the bucket.", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, "description": "Optional labels marking the bucket.", "type": "object" }, "name": { "description": "The name of the Bucket. You can modify this value after the Bucket is created.", "type": "string" }, "notification_policy_slug": { "description": "Slug of the notification policy used by default for monitors in this bucket.\nThis is optional if the bucket does not contain monitors or all of its monitors explicitly reference a policy.\nThis policy takes precedence over a bucket-owned notification policy.\nThis does not override the policy used when a monitor explicitly references a policy.", "type": "string" }, "slug": { "description": "The unique identifier of the Bucket. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the Bucket is created.", "type": "string" }, "team_slug": { "description": "Optional slug of the team the bucket belongs to.", "type": "string" }, "updated_at": { "description": "Timestamp of when the Bucket was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1ClientCertificate": { "description": "Certificate presented during the TLS handshake for mutual TLS (mTLS).", "properties": { "certificate": { "description": "PEM leaf certificate plus any intermediates.", "type": "string" }, "private_key": { "description": "Matching unencrypted PEM key, in PKCS#8, PKCS#1, or SEC1 format. This\nfield is write-only: reads return `**REDACTED**`, and writing that\nsentinel value back preserves the stored key.", "type": "string" } }, "required": [ "certificate", "private_key" ], "type": "object" }, "configv1CloudIntegration": { "description": "CloudIntegration represents a configuration for collecting metrics from a\ncloud provider. Each integration contains provider-specific configuration.", "properties": { "created_at": { "description": "Timestamp of when the CloudIntegration was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "external_connection_slug": { "description": "Slug of the ExternalConnection used for credentials. Optional depending on\nthe provider.", "type": "string" }, "metric_labels": { "additionalProperties": { "type": "string" }, "description": "Labels applied to all metrics emitted from this integration.", "type": "object" }, "name": { "description": "The name of the CloudIntegration. You can modify this value after the CloudIntegration is created.", "type": "string" }, "provider_config": { "description": "Provider-specific configuration. Structure depends on provider_type.", "type": "object" }, "provider_type": { "description": "Required on create/update. Identifies the cloud provider.", "type": "string" }, "slug": { "description": "The unique identifier of the CloudIntegration. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the CloudIntegration is created.", "type": "string" }, "state": { "allOf": [ { "$ref": "#/components/schemas/configv1CloudIntegrationState" } ], "description": "Operational state of the integration." }, "updated_at": { "description": "Timestamp of when the CloudIntegration was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1CloudIntegrationState": { "description": "State represents the operational state of a CloudIntegration.\n\n - STATE_ENABLED: Integration is fully enabled and actively collecting metrics.\n - STATE_DISABLED: Integration is disabled and not collecting metrics.\n - STATE_PREVIEW: Integration is in preview mode for estimating cardinality/license\nimpact before full enablement.", "enum": [ "STATE_ENABLED", "STATE_DISABLED", "STATE_PREVIEW" ], "type": "string" }, "configv1Collection": { "properties": { "created_at": { "description": "Timestamp of when the Collection was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "A description of the collection.", "type": "string" }, "name": { "description": "The name of the Collection. You can modify this value after the Collection is created.", "type": "string" }, "notification_policy_slug": { "description": "The slug of the default notification policy for monitors in this collection.\nThis value is only required when the collection contains monitors and one\nor more of those monitors don't explicitly reference a policy. This value does\nnot override the policy used when a monitor explicitly references a different\npolicy.", "type": "string" }, "slug": { "description": "The unique identifier of the Collection. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the Collection is created.", "type": "string" }, "team_slug": { "description": "The slug of the team that the collection belongs to.", "type": "string" }, "updated_at": { "description": "Timestamp of when the Collection was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name", "team_slug" ], "type": "object" }, "configv1CollectionReference": { "properties": { "slug": { "type": "string" }, "type": { "$ref": "#/components/schemas/configv1CollectionReferenceType" } }, "type": "object" }, "configv1CollectionReferenceType": { "enum": [ "SIMPLE", "SERVICE" ], "title": "Type values must match entitiespb.Collection.CollectionType.", "type": "string" }, "configv1ConsumptionBudget": { "properties": { "alert_action_config": { "allOf": [ { "$ref": "#/components/schemas/ConsumptionBudgetAlertActionConfig" } ], "description": "Optional. Configures all `ALERT_WARN` \u0026 `ALERT_CRITICAL` actions for this budget." }, "created_at": { "description": "Timestamp of when the ConsumptionBudget was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "default_priority": { "description": "Optional. The default priority for requests that don't match any priority in the\n`priorities` list. If not set, then `priority=10` (dropped first) is used as the\ndefault.", "format": "int32", "type": "integer" }, "name": { "description": "The name of the ConsumptionBudget. You can modify this value after the ConsumptionBudget is created.", "type": "string" }, "notification_policy_slug": { "description": "Notification policy slug for routing alerts. Required only if `ALERT_WARN` or\n`ALERT_CRITICAL` actions are configured.", "type": "string" }, "partition_slug_path": { "description": "Path of the budget's partition, delimited by forward slashes (`/`), in the\nformat `global/SLUG1/SLUG2`, where `SLUG1` is a top-level partition, and `SLUG2`\nis a child partition of `SLUG1`.\n\nA well-formed partition path always starts with the `global` partition slug, and\nhas no leading or trailing forward slashes.", "type": "string" }, "priorities": { "description": "Optional. Controls the order in which data is dropped when a drop action is\napplied. For example, a priority of 10 is dropped first, and a priority of 1 is\ndropped last. Priorities are evaluated in match order, and the first priority to\nmatch is applied. All other priorities are ignored. If a request does not match\nany priority, then it is assigned the `default_priority`.", "items": { "$ref": "#/components/schemas/ConsumptionBudgetPriority" }, "type": "array" }, "resource": { "allOf": [ { "$ref": "#/components/schemas/ConsumptionBudgetResourceGroup" } ], "description": "Resource of the budget.\nDeprecated: use thresholds.resource_group and unit instead." }, "slug": { "description": "The unique identifier of the ConsumptionBudget. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the ConsumptionBudget is created.", "type": "string" }, "thresholds": { "description": "Optional. Defines which actions to take when a threshold is exceeded.", "items": { "$ref": "#/components/schemas/configv1ConsumptionBudgetThreshold" }, "type": "array" }, "updated_at": { "description": "Timestamp of when the ConsumptionBudget was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name", "partition_slug_path" ], "type": "object" }, "configv1ConsumptionBudgetThreshold": { "properties": { "action": { "allOf": [ { "$ref": "#/components/schemas/ConsumptionBudgetThresholdAction" } ], "description": "The specified action to take when the threshold is exceeded." }, "instant_rate": { "allOf": [ { "$ref": "#/components/schemas/ThresholdInstantRate" } ], "description": "Configures the `INSTANT_RATE` threshold type." }, "resource_group": { "allOf": [ { "$ref": "#/components/schemas/ConsumptionBudgetResourceGroup" } ], "description": "Specifies which resource group this threshold applies to." }, "type": { "allOf": [ { "$ref": "#/components/schemas/ConsumptionBudgetThresholdType" } ], "description": "Specifies the threshold type, which can be one of the following values.\n\n`INSTANT_RATE` sets an instantaneous rate threshold. The configured action\ntriggers when consumption exceeds the configured rate threshold, defined by\nthe `instant_rate` field. The `DROP` action accepts requests up to the\nthreshold, and drops any data over the threshold in priority order.\n\n`ROLLING_30_MINUTE_VOLUME`, `ROLLING_1_HOUR_VOLUME`,\n`ROLLING_3_HOUR_VOLUME`, `ROLLING_1_DAY_VOLUME`, and\n`ROLLING_7_DAY_VOLUME` set a volume threshold over a rolling time\nperiod. The configured action triggers when consumption over the last\ntime period (30 minutes, 1 hour, 3 hours, 1 day, or 7 days) exceeds\nthe configured threshold, defined by the `volume` field.\n\n`HOURLY_VOLUME`, `DAILY_VOLUME`, `WEEKLY_VOLUME`, and `MONTHLY_VOLUME` set a volume threshold\nover a fixed, non-overlapping time period. The configured action triggers when consumption\nover the specified time period (hourly, daily, weekly, or monthly) exceeds the\nconfigured threshold, defined by the `volume` field. Volumes reset\nto zero at the start of each time period. The `DROP` action drops all requests\nwhen a volume threshold is exceeded, regardless of priority.\n\n- `HOURLY_VOLUME` sums the consumption volume from `00:00:00` UTC` to `00:59:59` UTC\n every hour.\n- `DAILY_VOLUME` sums the consumption volume from `00:00:00` UTC to `23:59:59` UTC\n every day.\n- `WEEKLY_VOLUME` sums the consumption volume from `00:00:00` UTC Monday morning\n to `23:59:59` UTC Sunday night.\n- `MONTHLY_VOLUME` sums the consumption volume from `00:00:00` UTC on the first\n day of the month to `23:59:59` UTC on the last day of the month. For example,\n `Jan 1 00:00:00` to `Jan 31 23:59:59`. Month thresholds are evaluated equally,\n regardless of how many days are in the month. For example, thresholds for\n January and February are the same, even though February has fewer days." }, "unit": { "allOf": [ { "$ref": "#/components/schemas/ConsumptionBudgetUnit" } ], "description": "Specifies the unit of the threshold value. `NATIVE` uses the native\nunit of the resource group, e.g. bytes for `LOG_PERSISTED_BYTES`. `CREDITS`\nuses the credits cost of the resource group, if available." }, "volume": { "allOf": [ { "$ref": "#/components/schemas/ThresholdVolume" } ], "description": "Configures the `VOLUME` threshold type." } }, "required": [ "action", "type" ], "type": "object" }, "configv1ConsumptionConfig": { "properties": { "created_at": { "description": "Timestamp of when the ConsumptionConfig was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "partitions": { "description": "Partitions define non-overlapping groupings of telemetry data. Partitions are\ndefined in order of precedence, where incoming requests are allocated to the\nfirst partition that matches. Requests that don't match any partition use an\nimplicit `default` partition.", "items": { "$ref": "#/components/schemas/ConsumptionConfigPartition" }, "type": "array" }, "updated_at": { "description": "Timestamp of when the ConsumptionConfig was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "type": "object" }, "configv1ConsumptionSpanFilter": { "properties": { "duration": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterDurationFilter" } ], "description": "Matches the duration of the candidate span. An omitted or zero bound\nis unbounded on that side." }, "error": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterBoolFilter" } ], "description": "Matches the error status of the candidate span." }, "is_root_span": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterBoolFilter" } ], "description": "Matches on whether the candidate span is the root span of its trace,\nwhich is the span with no parent span." }, "operation": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterStringFilter" } ], "description": "Matches the operation of the candidate span." }, "parent_operation": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterStringFilter" } ], "description": "Matches the operation of the candidate span's parent span. Spans without\na parent span, including root spans, don't match." }, "parent_service": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterStringFilter" } ], "description": "Matches the service of the candidate span's parent span. Spans without\na parent span, including root spans, don't match." }, "service": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterStringFilter" } ], "description": "Matches the service of the candidate span." }, "tags": { "description": "Matches the tags of the candidate span. A numeric matcher also\ncompares numeric-looking string tag values. To match alternatives,\nuse separate conditions.", "items": { "$ref": "#/components/schemas/TraceSearchFilterTagFilter" }, "type": "array" } }, "type": "object" }, "configv1CreateAzureMetricsIntegrationRequest": { "properties": { "azure_metrics_integration": { "allOf": [ { "$ref": "#/components/schemas/configv1AzureMetricsIntegration" } ], "description": "The AzureMetricsIntegration to create." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating the AzureMetricsIntegration. If the specified configuration is valid, the endpoint returns a partial response without the AzureMetricsIntegration. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "configv1CreateAzureMetricsIntegrationResponse": { "properties": { "azure_metrics_integration": { "$ref": "#/components/schemas/configv1AzureMetricsIntegration" } }, "type": "object" }, "configv1CreateBucketRequest": { "properties": { "bucket": { "allOf": [ { "$ref": "#/components/schemas/configv1Bucket" } ], "description": "The Bucket to create." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating the Bucket. If the specified configuration is valid, the endpoint returns a partial response without the Bucket. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "configv1CreateBucketResponse": { "properties": { "bucket": { "$ref": "#/components/schemas/configv1Bucket" } }, "type": "object" }, "configv1CreateClassicDashboardRequest": { "properties": { "classic_dashboard": { "allOf": [ { "$ref": "#/components/schemas/configv1GrafanaDashboard" } ], "description": "The GrafanaDashboard to create." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating the GrafanaDashboard. If the specified configuration is valid, the endpoint returns a partial response without the GrafanaDashboard. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "configv1CreateClassicDashboardResponse": { "properties": { "classic_dashboard": { "$ref": "#/components/schemas/configv1GrafanaDashboard" } }, "type": "object" }, "configv1CreateCloudIntegrationRequest": { "properties": { "cloud_integration": { "allOf": [ { "$ref": "#/components/schemas/configv1CloudIntegration" } ], "description": "The CloudIntegration to create." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating the CloudIntegration. If the specified configuration is valid, the endpoint returns a partial response without the CloudIntegration. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "configv1CreateCloudIntegrationResponse": { "properties": { "cloud_integration": { "$ref": "#/components/schemas/configv1CloudIntegration" } }, "type": "object" }, "configv1CreateCollectionRequest": { "properties": { "collection": { "allOf": [ { "$ref": "#/components/schemas/configv1Collection" } ], "description": "The Collection to create." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating the Collection. If the specified configuration is valid, the endpoint returns a partial response without the Collection. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "configv1CreateCollectionResponse": { "properties": { "collection": { "$ref": "#/components/schemas/configv1Collection" } }, "type": "object" }, "configv1CreateConsumptionBudgetRequest": { "properties": { "consumption_budget": { "allOf": [ { "$ref": "#/components/schemas/configv1ConsumptionBudget" } ], "description": "The ConsumptionBudget to create." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating the ConsumptionBudget. If the specified configuration is valid, the endpoint returns a partial response without the ConsumptionBudget. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "configv1CreateConsumptionBudgetResponse": { "properties": { "consumption_budget": { "$ref": "#/components/schemas/configv1ConsumptionBudget" } }, "type": "object" }, "configv1CreateConsumptionConfigRequest": { "properties": { "consumption_config": { "allOf": [ { "$ref": "#/components/schemas/configv1ConsumptionConfig" } ], "description": "The ConsumptionConfig to create." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating the ConsumptionConfig. If the specified configuration is valid, the endpoint returns a partial response without the ConsumptionConfig. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "configv1CreateConsumptionConfigResponse": { "properties": { "consumption_config": { "$ref": "#/components/schemas/configv1ConsumptionConfig" } }, "type": "object" }, "configv1CreateDashboardRequest": { "properties": { "dashboard": { "allOf": [ { "$ref": "#/components/schemas/configv1Dashboard" } ], "description": "The Dashboard to create." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating the Dashboard. If the specified configuration is valid, the endpoint returns a partial response without the Dashboard. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "configv1CreateDashboardResponse": { "properties": { "dashboard": { "$ref": "#/components/schemas/configv1Dashboard" } }, "type": "object" }, "configv1CreateDatasetRequest": { "properties": { "dataset": { "allOf": [ { "$ref": "#/components/schemas/configv1Dataset" } ], "description": "The Dataset to create." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating the Dataset. If the specified configuration is valid, the endpoint returns a partial response without the Dataset. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "configv1CreateDatasetResponse": { "properties": { "dataset": { "$ref": "#/components/schemas/configv1Dataset" } }, "type": "object" }, "configv1CreateDerivedLabelRequest": { "properties": { "derived_label": { "allOf": [ { "$ref": "#/components/schemas/configv1DerivedLabel" } ], "description": "The DerivedLabel to create." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating the DerivedLabel. If the specified configuration is valid, the endpoint returns a partial response without the DerivedLabel. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "configv1CreateDerivedLabelResponse": { "properties": { "derived_label": { "$ref": "#/components/schemas/configv1DerivedLabel" } }, "type": "object" }, "configv1CreateDerivedMetricRequest": { "properties": { "derived_metric": { "allOf": [ { "$ref": "#/components/schemas/configv1DerivedMetric" } ], "description": "The DerivedMetric to create." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating the DerivedMetric. If the specified configuration is valid, the endpoint returns a partial response without the DerivedMetric. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "configv1CreateDerivedMetricResponse": { "properties": { "derived_metric": { "$ref": "#/components/schemas/configv1DerivedMetric" } }, "type": "object" }, "configv1CreateDropRuleRequest": { "properties": { "drop_rule": { "allOf": [ { "$ref": "#/components/schemas/configv1DropRule" } ], "description": "The DropRule to create." }, "dry_run": { "description": "If `true`, validates the specified configuration without creating the DropRule. If the specified configuration is valid, the endpoint returns a partial response without the DropRule. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "configv1CreateDropRuleResponse": { "properties": { "drop_rule": { "$ref": "#/components/schemas/configv1DropRule" } }, "type": "object" }, "configv1CreateExternalConnectionRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the ExternalConnection. If the specified configuration is valid, the endpoint returns a partial response without the ExternalConnection. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "external_connection": { "allOf": [ { "$ref": "#/components/schemas/configv1ExternalConnection" } ], "description": "The ExternalConnection to create." } }, "type": "object" }, "configv1CreateExternalConnectionResponse": { "properties": { "external_connection": { "$ref": "#/components/schemas/configv1ExternalConnection" } }, "type": "object" }, "configv1CreateGcpMetricsIntegrationRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the GcpMetricsIntegration. If the specified configuration is valid, the endpoint returns a partial response without the GcpMetricsIntegration. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "gcp_metrics_integration": { "allOf": [ { "$ref": "#/components/schemas/configv1GcpMetricsIntegration" } ], "description": "The GcpMetricsIntegration to create." } }, "type": "object" }, "configv1CreateGcpMetricsIntegrationResponse": { "properties": { "gcp_metrics_integration": { "$ref": "#/components/schemas/configv1GcpMetricsIntegration" } }, "type": "object" }, "configv1CreateGrafanaDashboardRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the GrafanaDashboard. If the specified configuration is valid, the endpoint returns a partial response without the GrafanaDashboard. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "grafana_dashboard": { "allOf": [ { "$ref": "#/components/schemas/configv1GrafanaDashboard" } ], "description": "The GrafanaDashboard to create." } }, "type": "object" }, "configv1CreateGrafanaDashboardResponse": { "properties": { "grafana_dashboard": { "$ref": "#/components/schemas/configv1GrafanaDashboard" } }, "type": "object" }, "configv1CreateLogAllocationConfigRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the LogAllocationConfig. If the specified configuration is valid, the endpoint returns a partial response without the LogAllocationConfig. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "log_allocation_config": { "allOf": [ { "$ref": "#/components/schemas/configv1LogAllocationConfig" } ], "description": "The LogAllocationConfig to create." } }, "type": "object" }, "configv1CreateLogAllocationConfigResponse": { "properties": { "log_allocation_config": { "$ref": "#/components/schemas/configv1LogAllocationConfig" } }, "type": "object" }, "configv1CreateLogControlConfigRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the LogControlConfig. If the specified configuration is valid, the endpoint returns a partial response without the LogControlConfig. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "log_control_config": { "allOf": [ { "$ref": "#/components/schemas/configv1LogControlConfig" } ], "description": "The LogControlConfig to create." } }, "type": "object" }, "configv1CreateLogControlConfigResponse": { "properties": { "log_control_config": { "$ref": "#/components/schemas/configv1LogControlConfig" } }, "type": "object" }, "configv1CreateLogIngestConfigRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the LogIngestConfig. If the specified configuration is valid, the endpoint returns a partial response without the LogIngestConfig. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "log_ingest_config": { "allOf": [ { "$ref": "#/components/schemas/configv1LogIngestConfig" } ], "description": "The LogIngestConfig to create." } }, "type": "object" }, "configv1CreateLogIngestConfigResponse": { "properties": { "log_ingest_config": { "$ref": "#/components/schemas/configv1LogIngestConfig" } }, "type": "object" }, "configv1CreateLogRetentionConfigRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the LogRetentionConfig. If the specified configuration is valid, the endpoint returns a partial response without the LogRetentionConfig. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "log_retention_config": { "allOf": [ { "$ref": "#/components/schemas/configv1LogRetentionConfig" } ], "description": "The LogRetentionConfig to create." } }, "type": "object" }, "configv1CreateLogRetentionConfigResponse": { "properties": { "log_retention_config": { "$ref": "#/components/schemas/configv1LogRetentionConfig" } }, "type": "object" }, "configv1CreateMappingRuleRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the MappingRule. If the specified configuration is valid, the endpoint returns a partial response without the MappingRule. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "mapping_rule": { "allOf": [ { "$ref": "#/components/schemas/configv1MappingRule" } ], "description": "The MappingRule to create." } }, "type": "object" }, "configv1CreateMappingRuleResponse": { "properties": { "mapping_rule": { "$ref": "#/components/schemas/configv1MappingRule" } }, "type": "object" }, "configv1CreateMonitorRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the Monitor. If the specified configuration is valid, the endpoint returns a partial response without the Monitor. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "monitor": { "allOf": [ { "$ref": "#/components/schemas/configv1Monitor" } ], "description": "The Monitor to create." } }, "type": "object" }, "configv1CreateMonitorResponse": { "properties": { "monitor": { "$ref": "#/components/schemas/configv1Monitor" } }, "type": "object" }, "configv1CreateMutingRuleRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the MutingRule. If the specified configuration is valid, the endpoint returns a partial response without the MutingRule. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "muting_rule": { "allOf": [ { "$ref": "#/components/schemas/configv1MutingRule" } ], "description": "The MutingRule to create." } }, "type": "object" }, "configv1CreateMutingRuleResponse": { "properties": { "muting_rule": { "$ref": "#/components/schemas/configv1MutingRule" } }, "type": "object" }, "configv1CreateNotificationPolicyRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the NotificationPolicy. If the specified configuration is valid, the endpoint returns a partial response without the NotificationPolicy. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "notification_policy": { "allOf": [ { "$ref": "#/components/schemas/configv1NotificationPolicy" } ], "description": "The NotificationPolicy to create." } }, "type": "object" }, "configv1CreateNotificationPolicyResponse": { "properties": { "notification_policy": { "$ref": "#/components/schemas/configv1NotificationPolicy" } }, "type": "object" }, "configv1CreateNotifierRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the Notifier. If the specified configuration is valid, the endpoint returns a partial response without the Notifier. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "notifier": { "allOf": [ { "$ref": "#/components/schemas/configv1Notifier" } ], "description": "The Notifier to create." } }, "type": "object" }, "configv1CreateNotifierResponse": { "properties": { "notifier": { "$ref": "#/components/schemas/configv1Notifier" } }, "type": "object" }, "configv1CreateOtelMetricsIngestionRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the OtelMetricsIngestion. If the specified configuration is valid, the endpoint returns a partial response without the OtelMetricsIngestion. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "otel_metrics_ingestion": { "allOf": [ { "$ref": "#/components/schemas/configv1OtelMetricsIngestion" } ], "description": "The OtelMetricsIngestion to create." } }, "type": "object" }, "configv1CreateOtelMetricsIngestionResponse": { "properties": { "otel_metrics_ingestion": { "$ref": "#/components/schemas/configv1OtelMetricsIngestion" } }, "type": "object" }, "configv1CreateRecordingRuleRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the RecordingRule. If the specified configuration is valid, the endpoint returns a partial response without the RecordingRule. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "recording_rule": { "allOf": [ { "$ref": "#/components/schemas/configv1RecordingRule" } ], "description": "The RecordingRule to create." } }, "type": "object" }, "configv1CreateRecordingRuleResponse": { "properties": { "recording_rule": { "$ref": "#/components/schemas/configv1RecordingRule" } }, "type": "object" }, "configv1CreateResourcePoolsRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the ResourcePools. If the specified configuration is valid, the endpoint returns a partial response without the ResourcePools. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "resource_pools": { "allOf": [ { "$ref": "#/components/schemas/configv1ResourcePools" } ], "description": "The ResourcePools to create." } }, "type": "object" }, "configv1CreateResourcePoolsResponse": { "properties": { "resource_pools": { "$ref": "#/components/schemas/configv1ResourcePools" } }, "type": "object" }, "configv1CreateRollupRuleRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the RollupRule. If the specified configuration is valid, the endpoint returns a partial response without the RollupRule. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "rollup_rule": { "allOf": [ { "$ref": "#/components/schemas/configv1RollupRule" } ], "description": "The RollupRule to create." } }, "type": "object" }, "configv1CreateRollupRuleResponse": { "properties": { "rollup_rule": { "$ref": "#/components/schemas/configv1RollupRule" } }, "type": "object" }, "configv1CreateSLORequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the SLO. If the specified configuration is valid, the endpoint returns a partial response without the SLO. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "slo": { "allOf": [ { "$ref": "#/components/schemas/configv1SLO" } ], "description": "The SLO to create." } }, "type": "object" }, "configv1CreateSLOResponse": { "properties": { "slo": { "$ref": "#/components/schemas/configv1SLO" } }, "type": "object" }, "configv1CreateServiceAccountRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the ServiceAccount. If the specified configuration is valid, the endpoint returns a partial response without the ServiceAccount. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "service_account": { "allOf": [ { "$ref": "#/components/schemas/configv1ServiceAccount" } ], "description": "The ServiceAccount to create." } }, "type": "object" }, "configv1CreateServiceAccountResponse": { "properties": { "service_account": { "$ref": "#/components/schemas/configv1ServiceAccount" } }, "type": "object" }, "configv1CreateServiceAttributeResponse": { "properties": { "service_attribute": { "$ref": "#/components/schemas/configv1ServiceAttribute" }, "service_slug": { "type": "string" } }, "type": "object" }, "configv1CreateSyntheticTestRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the SyntheticTest. If the specified configuration is valid, the endpoint returns a partial response without the SyntheticTest. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "synthetic_test": { "allOf": [ { "$ref": "#/components/schemas/configv1SyntheticTest" } ], "description": "The SyntheticTest to create." } }, "type": "object" }, "configv1CreateSyntheticTestResponse": { "properties": { "synthetic_test": { "$ref": "#/components/schemas/configv1SyntheticTest" } }, "type": "object" }, "configv1CreateTeamRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the Team. If the specified configuration is valid, the endpoint returns a partial response without the Team. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "team": { "allOf": [ { "$ref": "#/components/schemas/configv1Team" } ], "description": "The Team to create." } }, "type": "object" }, "configv1CreateTeamResponse": { "properties": { "team": { "$ref": "#/components/schemas/configv1Team" } }, "type": "object" }, "configv1CreateTraceBehaviorConfigRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the TraceBehaviorConfig. If the specified configuration is valid, the endpoint returns a partial response without the TraceBehaviorConfig. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "trace_behavior_config": { "allOf": [ { "$ref": "#/components/schemas/configv1TraceBehaviorConfig" } ], "description": "The TraceBehaviorConfig to create." } }, "type": "object" }, "configv1CreateTraceBehaviorConfigResponse": { "properties": { "trace_behavior_config": { "$ref": "#/components/schemas/configv1TraceBehaviorConfig" } }, "type": "object" }, "configv1CreateTraceBehaviorRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the TraceBehavior. If the specified configuration is valid, the endpoint returns a partial response without the TraceBehavior. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "trace_behavior": { "allOf": [ { "$ref": "#/components/schemas/configv1TraceBehavior" } ], "description": "The TraceBehavior to create." } }, "type": "object" }, "configv1CreateTraceBehaviorResponse": { "properties": { "trace_behavior": { "$ref": "#/components/schemas/configv1TraceBehavior" } }, "type": "object" }, "configv1CreateTraceJaegerRemoteSamplingStrategyRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the TraceJaegerRemoteSamplingStrategy. If the specified configuration is valid, the endpoint returns a partial response without the TraceJaegerRemoteSamplingStrategy. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "trace_jaeger_remote_sampling_strategy": { "allOf": [ { "$ref": "#/components/schemas/configv1TraceJaegerRemoteSamplingStrategy" } ], "description": "The TraceJaegerRemoteSamplingStrategy to create." } }, "type": "object" }, "configv1CreateTraceJaegerRemoteSamplingStrategyResponse": { "properties": { "trace_jaeger_remote_sampling_strategy": { "$ref": "#/components/schemas/configv1TraceJaegerRemoteSamplingStrategy" } }, "type": "object" }, "configv1CreateTraceMetricsRuleRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the TraceMetricsRule. If the specified configuration is valid, the endpoint returns a partial response without the TraceMetricsRule. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "trace_metrics_rule": { "allOf": [ { "$ref": "#/components/schemas/configv1TraceMetricsRule" } ], "description": "The TraceMetricsRule to create." } }, "type": "object" }, "configv1CreateTraceMetricsRuleResponse": { "properties": { "trace_metrics_rule": { "$ref": "#/components/schemas/configv1TraceMetricsRule" } }, "type": "object" }, "configv1CreateTraceTailSamplingRulesRequest": { "properties": { "dry_run": { "description": "If `true`, validates the specified configuration without creating the TraceTailSamplingRules. If the specified configuration is valid, the endpoint returns a partial response without the TraceTailSamplingRules. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "trace_tail_sampling_rules": { "allOf": [ { "$ref": "#/components/schemas/configv1TraceTailSamplingRules" } ], "description": "The TraceTailSamplingRules to create." } }, "type": "object" }, "configv1CreateTraceTailSamplingRulesResponse": { "properties": { "trace_tail_sampling_rules": { "$ref": "#/components/schemas/configv1TraceTailSamplingRules" } }, "type": "object" }, "configv1Dashboard": { "properties": { "collection": { "allOf": [ { "$ref": "#/components/schemas/configv1CollectionReference" } ], "description": "Collection that the dashboard belongs to. Required if `collection_slug` is not\nset." }, "collection_slug": { "description": "Optional. Slug of the collection the dashboard belongs to.", "type": "string" }, "created_at": { "description": "Timestamp of when the Dashboard was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "dashboard_json": { "description": "Raw JSON representation that defines the structure of the dashboard.", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, "description": "Optional. Defines tags that add metadata about the dashboard.", "type": "object" }, "name": { "description": "The name of the Dashboard. You can modify this value after the Dashboard is created.", "type": "string" }, "slug": { "description": "The unique identifier of the Dashboard. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the Dashboard is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the Dashboard was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1Dataset": { "properties": { "configuration": { "allOf": [ { "$ref": "#/components/schemas/DatasetDatasetConfiguration" } ], "description": "Required. Defines the configuration of the dataset." }, "created_at": { "description": "Timestamp of when the Dataset was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Required. Description of the dataset.", "type": "string" }, "name": { "description": "The name of the Dataset. You can modify this value after the Dataset is created.", "type": "string" }, "slug": { "description": "The unique identifier of the Dataset. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the Dataset is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the Dataset was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1DefaultSampleRate": { "properties": { "enabled": { "description": "Determines whether to override the default sample rate.", "type": "boolean" }, "sample_rate": { "description": "Specifies the percentage of traces to keep, which must be a number between `0`\nand `1`, inclusive, where `1` equates to 100 percent.", "format": "double", "type": "number" } }, "type": "object" }, "configv1DeleteAzureMetricsIntegrationResponse": { "type": "object" }, "configv1DeleteBucketResponse": { "properties": { "changes": { "description": "Changes contains what resources are deleted. The bucket being deleted will\nalways be included. When force_delete is used, the changelog will include\nall resources that reference the bucket that were deleted.", "items": { "$ref": "#/components/schemas/ResourceChange" }, "type": "array" } }, "type": "object" }, "configv1DeleteClassicDashboardResponse": { "type": "object" }, "configv1DeleteCloudIntegrationResponse": { "type": "object" }, "configv1DeleteCollectionResponse": { "type": "object" }, "configv1DeleteConsumptionBudgetResponse": { "type": "object" }, "configv1DeleteConsumptionConfigResponse": { "type": "object" }, "configv1DeleteDashboardResponse": { "type": "object" }, "configv1DeleteDatasetResponse": { "type": "object" }, "configv1DeleteDerivedLabelResponse": { "type": "object" }, "configv1DeleteDerivedMetricResponse": { "type": "object" }, "configv1DeleteDropRuleResponse": { "type": "object" }, "configv1DeleteExternalConnectionResponse": { "type": "object" }, "configv1DeleteGcpMetricsIntegrationResponse": { "type": "object" }, "configv1DeleteGrafanaDashboardResponse": { "type": "object" }, "configv1DeleteLogAllocationConfigResponse": { "type": "object" }, "configv1DeleteLogControlConfigResponse": { "type": "object" }, "configv1DeleteLogIngestConfigResponse": { "type": "object" }, "configv1DeleteLogRetentionConfigResponse": { "type": "object" }, "configv1DeleteMappingRuleResponse": { "type": "object" }, "configv1DeleteMonitorResponse": { "type": "object" }, "configv1DeleteMutingRuleResponse": { "type": "object" }, "configv1DeleteNotificationPolicyResponse": { "type": "object" }, "configv1DeleteNotifierResponse": { "type": "object" }, "configv1DeleteOtelMetricsIngestionResponse": { "type": "object" }, "configv1DeleteRecordingRuleResponse": { "type": "object" }, "configv1DeleteResourcePoolsResponse": { "type": "object" }, "configv1DeleteRollupRuleResponse": { "type": "object" }, "configv1DeleteSLOResponse": { "type": "object" }, "configv1DeleteServiceAccountResponse": { "type": "object" }, "configv1DeleteServiceAttributeResponse": { "type": "object" }, "configv1DeleteSyntheticTestResponse": { "type": "object" }, "configv1DeleteTeamResponse": { "type": "object" }, "configv1DeleteTraceBehaviorConfigResponse": { "type": "object" }, "configv1DeleteTraceBehaviorResponse": { "type": "object" }, "configv1DeleteTraceJaegerRemoteSamplingStrategyResponse": { "type": "object" }, "configv1DeleteTraceMetricsRuleResponse": { "type": "object" }, "configv1DeleteTraceTailSamplingRulesResponse": { "type": "object" }, "configv1DerivedLabel": { "properties": { "created_at": { "description": "Timestamp of when the DerivedLabel was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Optional. Description of the derived label.", "type": "string" }, "existing_label_policy": { "allOf": [ { "$ref": "#/components/schemas/configv1DerivedLabelLabelPolicy" } ], "description": "Specifies the action taken when there's a metric label with the same name as\nthis derived label, on the same time series. If the label is present on another\ntime series, this field doesn't apply. Default: `KEEP`.\n- If set to `KEEP`, the label that already exists on the metric is used instead of the derived label.\n- If set to `OVERRIDE`, the derived label is used instead of the metric's existing label." }, "label_name": { "description": "Name of the derived label. Must be unique across the system.", "type": "string" }, "metric_label": { "allOf": [ { "$ref": "#/components/schemas/DerivedLabelMetricLabel" } ], "description": "Sets the metric labels to map to `label_name`." }, "name": { "description": "The name of the DerivedLabel. You can modify this value after the DerivedLabel is created.", "type": "string" }, "slug": { "description": "The unique identifier of the DerivedLabel. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the DerivedLabel is created.", "type": "string" }, "span_tag": { "allOf": [ { "$ref": "#/components/schemas/DerivedLabelSpanTag" } ], "description": "Sets the span tags to map to `label_name`." }, "updated_at": { "description": "Timestamp of when the DerivedLabel was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "label_name", "name" ], "type": "object" }, "configv1DerivedLabelLabelPolicy": { "enum": [ "KEEP", "OVERRIDE" ], "type": "string" }, "configv1DerivedMetric": { "properties": { "created_at": { "description": "Timestamp of when the DerivedMetric was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Optional. Description of the derived metric.", "type": "string" }, "metric_name": { "description": "Name of the derived metric, which must be unique across the system.", "example": "cpu_usage:instance", "type": "string" }, "name": { "description": "The name of the DerivedMetric. You can modify this value after the DerivedMetric is created.", "type": "string" }, "queries": { "description": "Defines the queries that the derived metric can map to.", "items": { "$ref": "#/components/schemas/DerivedMetricSelectorQuery" }, "type": "array" }, "slug": { "description": "The unique identifier of the DerivedMetric. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the DerivedMetric is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the DerivedMetric was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "metric_name", "name", "queries" ], "type": "object" }, "configv1DerivedMetricLabelMatcher": { "properties": { "name": { "description": "name always matches against an exact label name.", "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/configv1DerivedMetricLabelMatcherMatcherType" } ], "description": "type determines how the label value is matched." }, "value": { "description": "value matches against a label value based on the configured type.", "type": "string" } }, "type": "object" }, "configv1DerivedMetricLabelMatcherMatcherType": { "enum": [ "EXACT" ], "type": "string" }, "configv1DropRule": { "properties": { "created_at": { "description": "Timestamp of when the DropRule was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "drop_nan_value": { "description": "Drops data points if values are Not a Number (NaN). If set to true, Chronosphere\ndrops NaN data points, along with any published staleness markers. See the\n[drop rules\ndocumentation](https://docs.chronosphere.io/control/shaping/shape-metrics/rules/drop-rules#define-a-value-based-drop-rule)\nfor more information.", "type": "boolean" }, "filters": { "description": "Defines the conditions that determine whether to drop a metric. Drop rules can\nhave multiple filter conditions on different labels, making it possible to drop\na subset of the series matching a particular metric name.", "items": { "$ref": "#/components/schemas/configv1LabelFilter" }, "type": "array" }, "mode": { "allOf": [ { "$ref": "#/components/schemas/configv1DropRuleMode" } ], "description": "If set to `DISABLED`, then the rule isn't applied when ingesting data points\nand metrics won't be dropped on the basis of this rule." }, "name": { "description": "The name of the DropRule. You can modify this value after the DropRule is created.", "type": "string" }, "slug": { "description": "The unique identifier of the DropRule. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the DropRule is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the DropRule was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "value_based_drop": { "allOf": [ { "$ref": "#/components/schemas/DropRuleValueBasedDrop" } ], "description": "Drops metrics based on values of `0` or `1`. This type of drop rule can\nsignificantly reduce data points per second, but changes metrics from continuous\nseries to sparse metrics. Adding a rule of this type can change the behavior of\nexisting monitors or dashboards that use the target metric." } }, "required": [ "name" ], "type": "object" }, "configv1DropRuleMode": { "enum": [ "ENABLED", "DISABLED", "PREVIEW" ], "type": "string" }, "configv1ExternalConnection": { "properties": { "cloudflare": { "$ref": "#/components/schemas/ExternalConnectionCloudflareConfig" }, "created_at": { "description": "Timestamp of when the ExternalConnection was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "mongodb_atlas": { "$ref": "#/components/schemas/ExternalConnectionMongoDbAtlasConfig" }, "name": { "description": "The name of the ExternalConnection. You can modify this value after the ExternalConnection is created.", "type": "string" }, "ops_genie": { "$ref": "#/components/schemas/configv1ExternalConnectionOpsGenieConfig" }, "pagerduty": { "$ref": "#/components/schemas/configv1ExternalConnectionPagerdutyConfig" }, "sendgrid": { "$ref": "#/components/schemas/ExternalConnectionSendgridConfig" }, "slack": { "$ref": "#/components/schemas/configv1ExternalConnectionSlackConfig" }, "slug": { "description": "The unique identifier of the ExternalConnection. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the ExternalConnection is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the ExternalConnection was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "victor_ops": { "$ref": "#/components/schemas/configv1ExternalConnectionVictorOpsConfig" }, "webhook": { "$ref": "#/components/schemas/configv1ExternalConnectionWebhookConfig" } }, "required": [ "name" ], "type": "object" }, "configv1ExternalConnectionHTTPConfig": { "properties": { "basic_auth": { "$ref": "#/components/schemas/configv1ExternalConnectionHTTPConfigBasicAuth" }, "bearer_token": { "type": "string" }, "tls_config": { "$ref": "#/components/schemas/configv1ExternalConnectionHTTPConfigTLSConfig" } }, "type": "object" }, "configv1ExternalConnectionHTTPConfigBasicAuth": { "properties": { "password": { "type": "string" }, "username": { "type": "string" } }, "type": "object" }, "configv1ExternalConnectionHTTPConfigTLSConfig": { "properties": { "insecure_skip_verify": { "type": "boolean" } }, "type": "object" }, "configv1ExternalConnectionOpsGenieConfig": { "properties": { "api_key": { "type": "string" }, "api_url": { "type": "string" }, "http_config": { "$ref": "#/components/schemas/configv1ExternalConnectionHTTPConfig" } }, "type": "object" }, "configv1ExternalConnectionPagerdutyConfig": { "properties": { "events": { "allOf": [ { "$ref": "#/components/schemas/PagerdutyConfigPagerdutyEventsConfig" } ], "description": "PagerDuty Events API configuration for outbound alert delivery." }, "rest": { "allOf": [ { "$ref": "#/components/schemas/PagerdutyConfigPagerdutyRESTConfig" } ], "description": "PagerDuty REST API configuration for inbound incident/note polling." } }, "type": "object" }, "configv1ExternalConnectionSlackConfig": { "properties": { "api_url": { "type": "string" }, "token": { "type": "string" } }, "type": "object" }, "configv1ExternalConnectionVictorOpsConfig": { "properties": { "api_key": { "type": "string" }, "api_url": { "type": "string" } }, "type": "object" }, "configv1ExternalConnectionWebhookConfig": { "properties": { "http_config": { "$ref": "#/components/schemas/configv1ExternalConnectionHTTPConfig" }, "url": { "type": "string" } }, "type": "object" }, "configv1GcpMetricsIntegration": { "properties": { "created_at": { "description": "Timestamp of when the GcpMetricsIntegration was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "metric_groups": { "description": "An array of metric groups to be ingested for this integration.", "items": { "$ref": "#/components/schemas/GcpMetricsIntegrationMetricGroup" }, "type": "array" }, "name": { "description": "The name of the GcpMetricsIntegration. You can modify this value after the GcpMetricsIntegration is created.", "type": "string" }, "service_account": { "allOf": [ { "$ref": "#/components/schemas/configv1GcpMetricsIntegrationServiceAccount" } ], "description": "The Google Cloud service account to use for API authentication." }, "slug": { "description": "The unique identifier of the GcpMetricsIntegration. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the GcpMetricsIntegration is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the GcpMetricsIntegration was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1GcpMetricsIntegrationAggregation": { "description": "Specifies the cross-series aggregation method.", "enum": [ "MEAN", "MIN", "MAX", "SUM", "COUNT" ], "type": "string" }, "configv1GcpMetricsIntegrationFilter": { "description": "Defines a filter to apply to metrics.", "properties": { "context": { "allOf": [ { "$ref": "#/components/schemas/GcpMetricsIntegrationLabelContext" } ], "description": "Specifies the scope of the label, such as `resource.labels` or `metric.labels`." }, "name": { "description": "Label name to filter on.", "type": "string" }, "value_glob": { "description": "Value pattern using glob syntax, such as `\"prod-*\"` or `\"us-east-?\"`.\nIf a glob pattern isn't specified, an exact match is applied.", "type": "string" } }, "type": "object" }, "configv1GcpMetricsIntegrationRollupRule": { "description": "Defines server-side aggregation rules for metrics.", "properties": { "aggregation": { "allOf": [ { "$ref": "#/components/schemas/configv1GcpMetricsIntegrationAggregation" } ], "description": "Aggregation method to use for cross-series aggregation." }, "label_policy": { "allOf": [ { "$ref": "#/components/schemas/GcpMetricsIntegrationRollupRuleLabelPolicy" } ], "description": "Specifies which labels to preserve during aggregation." }, "metric_name": { "description": "Metric name to apply the aggregation to, such as `\"cloudsql.googleapis.com/database/uptime\"`.", "type": "string" } }, "type": "object" }, "configv1GcpMetricsIntegrationServiceAccount": { "properties": { "client_email": { "description": "The email address of the Google Cloud service account to impersonate for authentication.", "type": "string" } }, "type": "object" }, "configv1GrafanaDashboard": { "properties": { "bucket_slug": { "description": "Slug of the bucket the dashboard belongs to. Required if collection_slug\nis not set.", "type": "string" }, "collection": { "allOf": [ { "$ref": "#/components/schemas/configv1CollectionReference" } ], "description": "Collection that the monitor belongs to. Required if bucket_slug and\ncollection_slug are not set." }, "collection_slug": { "description": "Slug of the collection the dashboard belongs to. Required if bucket_slug\nis not set.", "type": "string" }, "created_at": { "description": "Timestamp of when the GrafanaDashboard was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "dashboard_json": { "description": "Required raw JSON of the Grafana dashboard.", "type": "string" }, "name": { "description": "The name of the GrafanaDashboard. You can modify this value after the GrafanaDashboard is created.", "type": "string" }, "slug": { "description": "The unique identifier of the GrafanaDashboard. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the GrafanaDashboard is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the GrafanaDashboard was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1LabelFilter": { "properties": { "name": { "description": "The name of the label to match.", "example": "job", "type": "string" }, "value_glob": { "description": "The glob value of the label to match.", "example": "myservice*", "type": "string" } }, "type": "object" }, "configv1LabelMatcher": { "properties": { "name": { "description": "The name of the label to match against. This always matches against an\nexact label name, regardless of the value of `type`.", "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/configv1LabelMatcherMatcherType" } ], "description": "Determines how the label `value` is matched. This parameter doesn't\naffect how the label `name` is matched." }, "value": { "description": "The value of the label to match against. If `type` is set to `EXACT`, this\nmatches against an exact label value. If `type` is set to `REGEX`, this\nparameter is treated as a regular expression for parsing label values.", "type": "string" } }, "type": "object" }, "configv1LabelMatcherMatcherType": { "enum": [ "EXACT", "REGEX" ], "type": "string" }, "configv1ListAzureMetricsIntegrationsResponse": { "properties": { "azure_metrics_integrations": { "items": { "$ref": "#/components/schemas/configv1AzureMetricsIntegration" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListBucketsResponse": { "properties": { "buckets": { "items": { "$ref": "#/components/schemas/configv1Bucket" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListClassicDashboardsResponse": { "properties": { "classic_dashboards": { "items": { "$ref": "#/components/schemas/configv1GrafanaDashboard" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListCloudIntegrationsResponse": { "properties": { "cloud_integrations": { "items": { "$ref": "#/components/schemas/configv1CloudIntegration" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListCollectionsResponse": { "properties": { "collections": { "items": { "$ref": "#/components/schemas/configv1Collection" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListConsumptionBudgetsResponse": { "properties": { "consumption_budgets": { "items": { "$ref": "#/components/schemas/configv1ConsumptionBudget" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListDashboardsResponse": { "properties": { "dashboards": { "items": { "$ref": "#/components/schemas/configv1Dashboard" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListDatasetsResponse": { "properties": { "datasets": { "items": { "$ref": "#/components/schemas/configv1Dataset" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListDerivedLabelsResponse": { "properties": { "derived_labels": { "items": { "$ref": "#/components/schemas/configv1DerivedLabel" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListDerivedMetricsResponse": { "properties": { "derived_metrics": { "items": { "$ref": "#/components/schemas/configv1DerivedMetric" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListDropRulesResponse": { "properties": { "drop_rules": { "items": { "$ref": "#/components/schemas/configv1DropRule" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListExternalConnectionsResponse": { "properties": { "external_connections": { "items": { "$ref": "#/components/schemas/configv1ExternalConnection" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListGcpMetricsIntegrationsResponse": { "properties": { "gcp_metrics_integrations": { "items": { "$ref": "#/components/schemas/configv1GcpMetricsIntegration" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListGrafanaDashboardsResponse": { "properties": { "grafana_dashboards": { "items": { "$ref": "#/components/schemas/configv1GrafanaDashboard" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListLogRetentionConfigsResponse": { "properties": { "log_retention_configs": { "items": { "$ref": "#/components/schemas/configv1LogRetentionConfig" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListMappingRulesResponse": { "properties": { "mapping_rules": { "items": { "$ref": "#/components/schemas/configv1MappingRule" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListMonitorsResponse": { "properties": { "monitors": { "items": { "$ref": "#/components/schemas/configv1Monitor" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListMutingRulesResponse": { "properties": { "muting_rules": { "items": { "$ref": "#/components/schemas/configv1MutingRule" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListNotificationPoliciesResponse": { "properties": { "notification_policies": { "items": { "$ref": "#/components/schemas/configv1NotificationPolicy" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListNotifiersResponse": { "properties": { "notifiers": { "items": { "$ref": "#/components/schemas/configv1Notifier" }, "type": "array" }, "page": { "$ref": "#/components/schemas/configv1PageResult" } }, "type": "object" }, "configv1ListRecordingRulesResponse": { "properties": { "page": { "$ref": "#/components/schemas/configv1PageResult" }, "recording_rules": { "items": { "$ref": "#/components/schemas/configv1RecordingRule" }, "type": "array" } }, "type": "object" }, "configv1ListRollupRulesResponse": { "properties": { "page": { "$ref": "#/components/schemas/configv1PageResult" }, "rollup_rules": { "items": { "$ref": "#/components/schemas/configv1RollupRule" }, "type": "array" } }, "type": "object" }, "configv1ListSLOsResponse": { "properties": { "page": { "$ref": "#/components/schemas/configv1PageResult" }, "slos": { "items": { "$ref": "#/components/schemas/configv1SLO" }, "type": "array" } }, "type": "object" }, "configv1ListServiceAccountsResponse": { "properties": { "page": { "$ref": "#/components/schemas/configv1PageResult" }, "service_accounts": { "items": { "$ref": "#/components/schemas/configv1ServiceAccount" }, "type": "array" } }, "type": "object" }, "configv1ListServiceAttributesResponse": { "properties": { "page": { "$ref": "#/components/schemas/configv1PageResult" }, "service_attributes": { "items": { "$ref": "#/components/schemas/configv1ServiceAttribute" }, "type": "array" } }, "type": "object" }, "configv1ListServicesResponse": { "properties": { "page": { "$ref": "#/components/schemas/configv1PageResult" }, "services": { "items": { "$ref": "#/components/schemas/configv1Service" }, "type": "array" } }, "type": "object" }, "configv1ListSyntheticTestsResponse": { "properties": { "page": { "$ref": "#/components/schemas/configv1PageResult" }, "synthetic_tests": { "items": { "$ref": "#/components/schemas/configv1SyntheticTest" }, "type": "array" } }, "type": "object" }, "configv1ListTeamsResponse": { "properties": { "page": { "$ref": "#/components/schemas/configv1PageResult" }, "teams": { "items": { "$ref": "#/components/schemas/configv1Team" }, "type": "array" } }, "type": "object" }, "configv1ListTraceBehaviorsResponse": { "properties": { "page": { "$ref": "#/components/schemas/configv1PageResult" }, "trace_behaviors": { "items": { "$ref": "#/components/schemas/configv1TraceBehavior" }, "type": "array" } }, "type": "object" }, "configv1ListTraceJaegerRemoteSamplingStrategiesResponse": { "properties": { "page": { "$ref": "#/components/schemas/configv1PageResult" }, "trace_jaeger_remote_sampling_strategies": { "items": { "$ref": "#/components/schemas/configv1TraceJaegerRemoteSamplingStrategy" }, "type": "array" } }, "type": "object" }, "configv1ListTraceMetricsRulesResponse": { "properties": { "page": { "$ref": "#/components/schemas/configv1PageResult" }, "trace_metrics_rules": { "description": "Found trace metrics rules.", "items": { "$ref": "#/components/schemas/configv1TraceMetricsRule" }, "type": "array" } }, "type": "object" }, "configv1LogAllocationConfig": { "description": "LogAllocationConfig is a singleton configuration object that specifies the\nconfiguration for Log budget allocations.", "properties": { "created_at": { "description": "Timestamp of when the LogAllocationConfig was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "dataset_allocations": { "description": "Defines datasets and budget allocations. Datasets are evaluated in order.", "items": { "$ref": "#/components/schemas/LogAllocationConfigDatasetAllocation" }, "type": "array" }, "default_dataset": { "allOf": [ { "$ref": "#/components/schemas/LogAllocationConfigDefaultDataset" } ], "description": "The default dataset applies to logs that aren't included in any other dataset." }, "updated_at": { "description": "Timestamp of when the LogAllocationConfig was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "type": "object" }, "configv1LogAllocationConfigAllocation": { "description": "Configuration for allocating resources to a dataset.", "properties": { "percent_of_license": { "description": "Sets the percentage of the license limit to allocate to the default dataset.", "format": "double", "type": "number" } }, "type": "object" }, "configv1LogControlConfig": { "description": "LogControlConfig is a singleton configuration object that specifies the\nconfiguration for log control.", "properties": { "created_at": { "description": "Timestamp of when the LogControlConfig was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "rules": { "description": "Control Rules are the ordered list of control rules.", "items": { "$ref": "#/components/schemas/configv1LogControlRule" }, "type": "array" }, "updated_at": { "description": "Timestamp of when the LogControlConfig was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "type": "object" }, "configv1LogControlRule": { "description": "LogControlRule is the configuration for a log control rule.", "properties": { "drop_field": { "allOf": [ { "$ref": "#/components/schemas/LogControlRuleDropField" } ], "description": "Defines the action to drop fields from logs that match specified conditions,\nwhich helps reduce the size of individual logs. If a log contains no data after\nfields are dropped, you can choose to drop the entire log." }, "emit_metrics": { "allOf": [ { "$ref": "#/components/schemas/LogControlRuleEmitMetrics" } ], "description": "Defines the action to convert log data to metric data. Use this control rule\nwhen you want to reduce the volume of logs, retain data for a longer period, and\nincrease the speed of querying and filtering for metrics instead of logs" }, "filter": { "description": "Log query filter to return log data for the control rule. The control action\napplies to only matching logs.", "type": "string" }, "mode": { "allOf": [ { "$ref": "#/components/schemas/configv1LogControlRuleMode" } ], "description": "Specifies whether the control rule is enabled or disabled. Default: `ENABLED`." }, "name": { "description": "User-defined name of the control rule.", "type": "string" }, "parse_field": { "allOf": [ { "$ref": "#/components/schemas/LogControlRuleParseField" } ], "description": "Defines the action to parse a field in your structured log data. Use this \ncontrol rule when you want to parse a field in your log data and store the \nparsed data in a field or multiple new fields." }, "replace_field": { "allOf": [ { "$ref": "#/components/schemas/LogControlRuleReplaceField" } ], "description": "Defines the action to identify a specified field in your log data and uses a\nregular expression to replace any matches based on the selected replacement\nmode. Use this control rule to truncate long fields and preserve your log\nstructure." }, "sample": { "allOf": [ { "$ref": "#/components/schemas/LogControlRuleSample" } ], "description": "Defines the action to retain a certain percentage of matching logs and drop the\nremainder, which can significantly reduce volume and maintain visibility." }, "type": { "allOf": [ { "$ref": "#/components/schemas/configv1LogControlRuleType" } ], "description": "The type of action to take on matching logs. Must be one of the following\nvalues." } }, "type": "object" }, "configv1LogControlRuleMode": { "enum": [ "ENABLED", "DISABLED" ], "type": "string" }, "configv1LogControlRuleType": { "enum": [ "DROP", "SAMPLE", "DROP_FIELD", "REPLACE_FIELD", "EMIT_METRICS", "PARSE_FIELD" ], "type": "string" }, "configv1LogDataset": { "properties": { "match_criteria": { "allOf": [ { "$ref": "#/components/schemas/configv1LogSearchFilter" } ], "description": "Required. Defines the criteria to match logs to a dataset." } }, "type": "object" }, "configv1LogFieldPath": { "properties": { "selector": { "description": "The log filter used to indicate the field path. Use `parent[child]` syntax to\nindicate nesting.", "type": "string" } }, "type": "object" }, "configv1LogIngestConfig": { "description": "LogIngestConfig is a singleton configuration object that specifies the configuration for log ingest.", "properties": { "created_at": { "description": "Timestamp of when the LogIngestConfig was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "field_normalization": { "allOf": [ { "$ref": "#/components/schemas/LogIngestConfigFieldNormalization" } ], "description": "Maps and normalizes well-known fields from parsed logs." }, "field_parsers": { "description": "The parsers to apply to specific fields within structured logs or plaintext logs after those logs are parsed.", "items": { "$ref": "#/components/schemas/LogIngestConfigLogFieldParser" }, "type": "array" }, "plaintext_parsers": { "description": "The parsers to apply to plaintext logs. The first parser that matches the log is used.", "items": { "$ref": "#/components/schemas/LogIngestConfigPlaintextParser" }, "type": "array" }, "updated_at": { "description": "Timestamp of when the LogIngestConfig was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "type": "object" }, "configv1LogRetentionConfig": { "description": "LogRetentionConfig configures long-term retention policies for log data.\nEach config specifies a filter to match logs and retention parameters for\ncold storage (Iceberg). Multiple configs per tenant are supported; when\nconfigs overlap, the longest retention wins.", "properties": { "created_at": { "description": "Timestamp of when the LogRetentionConfig was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "filter": { "description": "Log query filter. Only matching logs will have the retention config applied.", "type": "string" }, "mode": { "allOf": [ { "$ref": "#/components/schemas/configv1LogRetentionConfigMode" } ], "description": "Specifies whether the retention config is enabled or disabled." }, "name": { "description": "The name of the LogRetentionConfig. You can modify this value after the LogRetentionConfig is created.", "type": "string" }, "retention_days": { "description": "Number of days to retain matching logs in long-term (Iceberg) storage\nafter they are exported. Once this period elapses, data is expired from\nIceberg by the IcebergDeleter.", "format": "int64", "type": "integer" }, "slug": { "description": "The unique identifier of the LogRetentionConfig. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the LogRetentionConfig is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the LogRetentionConfig was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "filter", "mode", "name", "retention_days", "slug" ], "type": "object" }, "configv1LogRetentionConfigMode": { "enum": [ "ENABLED", "DISABLED" ], "type": "string" }, "configv1LogSearchFilter": { "properties": { "query": { "description": "Returns logs that match this query. The query can include only top-level\noperations. Nested clauses aren't supported. Only one type of `AND` or `OR`\noperator is allowed.", "type": "string" } }, "type": "object" }, "configv1MappingRule": { "properties": { "aggregation_policy": { "allOf": [ { "$ref": "#/components/schemas/MappingRuleAggregationPolicy" } ], "description": "Specifies how to aggregate the metric. Cannot be set if the `drop`\nparameter is set." }, "bucket_slug": { "description": "The slug of the bucket the MappingRule belongs to.", "type": "string" }, "created_at": { "description": "Timestamp of when the MappingRule was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "drop": { "description": "Specifies whether to drop the given set of metrics. Cannot be set if the\n`aggregation_policy` object is set.", "type": "boolean" }, "filters": { "description": "The filters that determine which metrics should have rules applied to them.\nTo be considered a match, a metric must meet the criteria for all of the\nfilters specified in this array.", "items": { "$ref": "#/components/schemas/configv1LabelFilter" }, "type": "array" }, "mode": { "allOf": [ { "$ref": "#/components/schemas/configv1MappingRuleMode" } ], "description": "The operational mode for this mapping rule. If set to `enabled`, the rule\nis applied. If set to `preview`, the rule is not applied, but shaping\nimpact statistics for the rule are recorded. Default: `enabled`." }, "name": { "description": "The name of the MappingRule. You can modify this value after the MappingRule is created.", "type": "string" }, "slug": { "description": "The unique identifier of the MappingRule. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the MappingRule is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the MappingRule was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "filters", "name" ], "type": "object" }, "configv1MappingRuleMode": { "description": " - ENABLED: ENABLED rules are applied. Rules default to ENABLED.\n - PREVIEW: PREVIEW rules are not applied, but shaping impact stats\nfor them rule are recorded.", "enum": [ "ENABLED", "PREVIEW" ], "type": "string" }, "configv1MappingRuleStoragePolicy": { "properties": { "resolution": { "description": "Deprecated: This parameter is no longer supported.", "type": "string" }, "retention": { "description": "Deprecated: This parameter is no longer supported.", "type": "string" } }, "type": "object" }, "configv1Monitor": { "properties": { "annotations": { "additionalProperties": { "type": "string" }, "description": "Annotations are visible in notifications generated by this monitor.\nThey can be be templated with labels from notifications.", "type": "object" }, "bucket_slug": { "description": "Slug of the bucket the monitor belongs to. Required if `collection_slug` isn't\nset.", "type": "string" }, "collection": { "allOf": [ { "$ref": "#/components/schemas/configv1CollectionReference" } ], "description": "Collection that the monitor belongs to. Required if `bucket_slug` and\n`collection_slug` aren't set." }, "collection_slug": { "description": "Slug of the collection the monitor belongs to. Required if `bucket_slug` isn't\nset.", "type": "string" }, "created_at": { "description": "Timestamp of when the Monitor was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "graphite_query": { "description": "Graphite query to evaluate for the alert. If set, no other queries can be set.", "example": "sumSeries(stats.timers.*.mean_90)", "type": "string" }, "interval_secs": { "description": "Specifies how often alerts are evaluated. Default: `60s`.", "format": "int32", "type": "integer" }, "labels": { "additionalProperties": { "type": "string" }, "description": "Required. Labels to include in notifications generated by this monitor, and can\nbe used to route alerts with notification overrides.", "type": "object" }, "logging_query": { "description": "Logging query to evaluate for the alert. If set, no other queries can be set.", "type": "string" }, "name": { "description": "The name of the Monitor. You can modify this value after the Monitor is created.", "type": "string" }, "notification_policy_slug": { "description": "Specifies the notification policy used to route alerts generated by the monitor.\nIf omitted, the notification policy is inherited from the monitor.", "type": "string" }, "notification_template": { "allOf": [ { "$ref": "#/components/schemas/MonitorNotificationTemplate" } ], "description": "Optional Go templates for customizing notification title and description.\nTemplates are expanded at notification time with alert context.\n\nAvailable template variables:\n - `.Severity` — alert severity (`\"critical\"` or `\"warn\"`)\n - `.Status` — `\"firing\"` or `\"resolved\"`\n - `.Labels.\u003cname\u003e` — signal labels (e.g. `.Labels.env`)\n - `.Threshold` — threshold value for the active severity\n - `.ThresholdOp` — threshold comparison operator (e.g. `\"\u003e=\"`, `\"\u003c\"`)\n - `.ResolveThreshold` — effective resolve threshold; defaults to `.Threshold` when no separate resolve threshold is configured\n - `.StartsAtEpoch` — start time of the earliest alert in `.Alerts`, in epoch milliseconds\n - `.Alerts` — list of alerts in this notification group; each alert has:\n - `.Status` — `\"firing\"` or `\"resolved\"`\n - `.Labels` — per-alert labels\n - `.Annotations` — per-alert annotations\n - `.Threshold` / `.ThresholdOp` / `.ResolveThreshold` — per-alert threshold fields\n - `.StartsAt` / `.EndsAt` — timestamps\n - `.Alerts.Firing` / `.Alerts.Resolved` — filtered subsets\n\nAvailable template functions:\n - `add`, `sub`, `mul` — integer arithmetic\n - `toUpper`, `toLower`, `title` — string casing\n - `match` — regexp matching\n - `join` — join a string slice with a separator\n - `reReplaceAll` — regexp replace", "example": "{\"title\": \"[{{.Severity}}] {{.Labels.service}} threshold exceeded\", \"description\": \"{{.Labels.env}} crossed {{.ThresholdOp}} {{.Threshold}}\"}" }, "prometheus_query": { "description": "PromQL query to evaluate for the alert. If set, no other queries can be set.", "example": "up{job=\"prometheus\"} == 0", "type": "string" }, "schedule": { "allOf": [ { "$ref": "#/components/schemas/MonitorSchedule" } ], "description": "Defines the schedule for when the monitor should be evaluated. If not set, the\nmonitor defaults to always being active." }, "series_conditions": { "allOf": [ { "$ref": "#/components/schemas/MonitorSeriesConditions" } ], "description": "Required. Conditions to determine the severity of each series. The highest\nseverity series of a signal determines that signal's severity." }, "signal_grouping": { "allOf": [ { "$ref": "#/components/schemas/MonitorSignalGrouping" } ], "description": "Specifies the grouping of series into signals. If omitted, all series are\ngrouped into a single signal." }, "slug": { "description": "The unique identifier of the Monitor. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the Monitor is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the Monitor was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1MonitorCondition": { "properties": { "new_series_delay_secs": { "description": "How long a newly observed series is suppressed before it can trigger an\nalert. A series counts as new until `new_series_delay_secs` has elapsed\nsince it was first seen. It need not be present continuously over that\nperiod, but it must return at least one datapoint every 24 hours to stay\ntracked: a series that goes missing for longer than 24 hours is forgotten\nand counts as new again when it comes back. Existence is tracked by\nobserving the series whether or not it violates the condition.\n\nThis is additive with `sustain_secs`: the sustain clock only starts once\nthe delay has elapsed. A delay of `3600` combined with a sustain of `300`\nmeans a new violating series becomes pending after 60 minutes and fires\nafter 65 minutes. A newly created monitor therefore does not alert for up\nto `new_series_delay_secs`.\n\n`0`, the default, disables the delay. Must be at least `0` and at most 1\nweek (604800 seconds).\n\nNot supported for `EXISTS`, `NOT_EXISTS`, or `SIGNAL_NOT_EXISTS`\nconditions, or for Graphite monitors.", "format": "int32", "type": "integer" }, "op": { "allOf": [ { "$ref": "#/components/schemas/ConditionOp" } ], "description": "Required. Specifies the comparison operator for the metric value and the configured\nvalue:\n- `GEQ`: Greater than or equal to\n- `GT`: Greater than\n- `LEQ`: Less than or equal to\n- `LT`: Less than\n- `EQ`: Equal to\n- `NEQ`: Not equal to\n- `EXISTS`: Specified value exists\n- `NOT_EXISTS`: Specified value doesn't exist\n- `SIGNAL_NOT_EXISTS`: Signal no longer exists. Behavior varies by alert type:\n single monitor alerts trigger if all series are missing; signal-based alerts\n trigger if all series in the signal go missing; alert-on-every-series alerts\n trigger if any individual series disappears." }, "resolve_sustain_secs": { "description": "Amount of time the query needs to no longer fire before resolving. Must be an\ninteger. Accepts one of `s` (seconds), `m` (minutes), or `h` (hours) as units.", "format": "int32", "type": "integer" }, "resolve_value": { "allOf": [ { "$ref": "#/components/schemas/configv1OptionalDouble" } ], "description": "Value the query must reach to resolve the alert. When enabled is true,\nthe alert resolves when the query reaches the specified value instead of\nwhen the triggering condition is no longer true." }, "sustain_secs": { "description": "Amount of time the query needs to fail the condition check before an alert is\ntriggered. Must be an integer. Accepts one of `s` (seconds), `m` (minutes), or\n`h` (hours) as units.", "format": "int32", "type": "integer" }, "value": { "description": "Required. The value to compare to the metric value using the `op` operation.", "format": "double", "type": "number" } }, "type": "object" }, "configv1MutingRule": { "properties": { "comment": { "description": "Descriptive comment that explains why the muting rule was created.", "type": "string" }, "created_at": { "description": "Timestamp of when the MutingRule was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "ends_at": { "description": "Required. Timestamp of when the muting rule stops being active.", "format": "date-time", "type": "string" }, "label_matchers": { "description": "Required. Specifies which series are silenced by the muting rule. Alerting\nseries must match all muting rule matchers to be silenced. You can't update this\nvalue. Updates must specify the original value.", "items": { "$ref": "#/components/schemas/configv1MutingRuleLabelMatcher" }, "type": "array" }, "name": { "description": "The name of the MutingRule. You can modify this value after the MutingRule is created.", "type": "string" }, "slug": { "description": "The unique identifier of the MutingRule. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the MutingRule is created.", "type": "string" }, "starts_at": { "description": "Required. Timestamp of when the muting rule becomes active. You can't update\nthis value. Updates must specify the original value.", "format": "date-time", "type": "string" }, "updated_at": { "description": "Timestamp of when the MutingRule was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1MutingRuleLabelMatcher": { "properties": { "name": { "description": "Required. Always matches against an exact label name.", "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/configv1MutingRuleLabelMatcherMatcherType" } ], "description": "Required. Determines how the label value is matched." }, "value": { "description": "Required. Matches against a label value based on the configured type.", "type": "string" } }, "type": "object" }, "configv1MutingRuleLabelMatcherMatcherType": { "enum": [ "EXACT", "REGEX", "NOT_EXACT", "NOT_REGEXP" ], "type": "string" }, "configv1NotificationPolicy": { "properties": { "bucket_slug": { "description": "The slug of the bucket that the notification policy belongs to. Required if\n`team_slug` is not set.", "type": "string" }, "created_at": { "description": "Timestamp of when the NotificationPolicy was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "name": { "description": "The name of the NotificationPolicy. You can modify this value after the NotificationPolicy is created.", "type": "string" }, "routes": { "allOf": [ { "$ref": "#/components/schemas/NotificationPolicyRoutes" } ], "description": "The routing configuration for alerts that use this notification policy." }, "slug": { "description": "The unique identifier of the NotificationPolicy. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the NotificationPolicy is created.", "type": "string" }, "team_slug": { "description": "The slug of the team that the notification policy belongs to. Required if\n`bucket_slug` is not set.", "type": "string" }, "updated_at": { "description": "Timestamp of when the NotificationPolicy was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1Notifier": { "properties": { "created_at": { "description": "Timestamp of when the Notifier was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "discard": { "description": "If `true`, enables the `discard` integration, which discards all\nnotifications. Cannot be set if another integration is set.", "type": "boolean" }, "email": { "allOf": [ { "$ref": "#/components/schemas/NotifierEmailConfig" } ], "description": "If an object is specified, sends notifications through an email integration.\nCannot be set if another integration is set." }, "name": { "description": "The name of the Notifier. You can modify this value after the Notifier is created.", "type": "string" }, "ops_genie": { "allOf": [ { "$ref": "#/components/schemas/configv1NotifierOpsGenieConfig" } ], "description": "If an object is specified, sends notifications through an Opsgenie integration.\nCannot be set if another integration is set." }, "pagerduty": { "allOf": [ { "$ref": "#/components/schemas/configv1NotifierPagerdutyConfig" } ], "description": "If an object is specified, sends notifications through a PagerDuty integration.\nCannot be set if another integration is set." }, "skip_resolved": { "description": "If `true`, disables notifications for resolved alerts. Cannot be set if\n`discard` equals `true`.", "type": "boolean" }, "slack": { "allOf": [ { "$ref": "#/components/schemas/configv1NotifierSlackConfig" } ], "description": "If an object is specified, sends notifications through a Slack integration.\nCannot be set if another integration is set." }, "slug": { "description": "The unique identifier of the Notifier. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the Notifier is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the Notifier was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "victor_ops": { "allOf": [ { "$ref": "#/components/schemas/configv1NotifierVictorOpsConfig" } ], "description": "If an object is specified, sends notifications through a VictorOps integration.\nCannot be set if another integration is set." }, "webhook": { "allOf": [ { "$ref": "#/components/schemas/configv1NotifierWebhookConfig" } ], "description": "If an object is specified, sends notifications through a webhook integration.\nCannot be set if another integration is set." } }, "required": [ "name" ], "type": "object" }, "configv1NotifierHTTPConfig": { "properties": { "basic_auth": { "allOf": [ { "$ref": "#/components/schemas/configv1NotifierHTTPConfigBasicAuth" } ], "description": "If an object is specified, sets an `Authorization` header with the\nvalues of `password` and `username`. Cannot be set if `bearer_token` is\nset." }, "bearer_token": { "description": "Sets a token for bearer authentication. Cannot be set if `basic_auth` is set.", "type": "string" }, "proxy_url": { "description": "Your proxy URL. (This parameter is deprecated, and custom proxies are\nunsupported.)", "type": "string" }, "tls_config": { "allOf": [ { "$ref": "#/components/schemas/configv1NotifierHTTPConfigTLSConfig" } ], "description": "Your TLS configuration." } }, "type": "object" }, "configv1NotifierHTTPConfigBasicAuth": { "properties": { "password": { "type": "string" }, "username": { "type": "string" } }, "type": "object" }, "configv1NotifierHTTPConfigTLSConfig": { "properties": { "insecure_skip_verify": { "description": "If `true`, disables validation of the server certificate.", "type": "boolean" } }, "type": "object" }, "configv1NotifierOpsGenieConfig": { "properties": { "api_key": { "description": "Your Opsgenie API key. Required if including an `ops_genie` object in your\nrequest body.", "type": "string" }, "api_url": { "description": "The Opsgenie API URL to send requests to. Required if including an\n`ops_genie` object in your request body.", "example": "https://api.opsgenie.com/", "type": "string" }, "description": { "description": "A description of the alert.", "type": "string" }, "details": { "additionalProperties": { "type": "string" }, "description": "A set of key/value pairs with additional information about the alert. These\nkey/value pairs can include any arbitrary data.", "type": "object" }, "http_config": { "allOf": [ { "$ref": "#/components/schemas/configv1NotifierHTTPConfig" } ], "description": "Your HTTP client configuration." }, "message": { "description": "The alert text.", "type": "string" }, "note": { "description": "A note about the alert.", "type": "string" }, "priority": { "description": "The priority level of alert. Possible values are `P1`, `P2`, `P3`, `P4`, and `P5`.", "type": "string" }, "responders": { "description": "List of responders responsible for notifications.", "items": { "$ref": "#/components/schemas/OpsGenieConfigResponder" }, "type": "array" }, "source": { "description": "A backlink to the sender of the notification.", "type": "string" }, "tags": { "description": "A comma-separated list of tags attached to the notifications.", "type": "string" } }, "type": "object" }, "configv1NotifierPagerdutyConfig": { "properties": { "class": { "description": "The class of the event.", "type": "string" }, "client": { "description": "The client identification of the notification sender.", "type": "string" }, "client_url": { "description": "A backlink to the sender of the notification.", "type": "string" }, "component": { "description": "The part or component of the affected system that is broken.", "type": "string" }, "description": { "description": "A description of the incident.", "type": "string" }, "details": { "additionalProperties": { "type": "string" }, "description": "A set of key/value pairs with additional information about the incident. These\nkey/value pairs can include any arbitrary data.", "type": "object" }, "group": { "description": "A cluster or grouping of services.", "type": "string" }, "http_config": { "allOf": [ { "$ref": "#/components/schemas/configv1NotifierHTTPConfig" } ], "description": "Your HTTP client configuration." }, "images": { "description": "Images to attach to the incident.", "items": { "$ref": "#/components/schemas/PagerdutyConfigImage" }, "type": "array" }, "links": { "description": "Links to attach to the incident.", "items": { "$ref": "#/components/schemas/PagerdutyConfigLink" }, "type": "array" }, "routing_key": { "description": "Your PagerDuty integration key, if using the PagerDuty integration type\n`Events API v2`. Cannot be set if `service_key` is set.", "type": "string" }, "service_key": { "description": "Your PagerDuty integration key, if using the PagerDuty integration type\n`Prometheus`. Cannot be set if `routing_key` is set.", "type": "string" }, "severity": { "description": "The severity of the incident. Possible values: `critical`, `error`,\n`warning`, or `info`.", "type": "string" }, "url": { "description": "The Pagerduty URL to send API requests to.", "type": "string" } }, "type": "object" }, "configv1NotifierSlackConfig": { "properties": { "actions": { "items": { "$ref": "#/components/schemas/NotifierSlackConfigAction" }, "type": "array" }, "api_url": { "description": "Your Slack webhook API URL. Required if including a `slack` object in\nyour request body.", "type": "string" }, "callback_id": { "type": "string" }, "channel": { "description": "The channel to send notifications to.", "type": "string" }, "color": { "type": "string" }, "fallback": { "type": "string" }, "fields": { "items": { "$ref": "#/components/schemas/SlackConfigField" }, "type": "array" }, "footer": { "type": "string" }, "http_config": { "allOf": [ { "$ref": "#/components/schemas/configv1NotifierHTTPConfig" } ], "description": "Your HTTP client configuration." }, "icon_emoji": { "type": "string" }, "icon_url": { "type": "string" }, "image_url": { "type": "string" }, "link_names": { "type": "boolean" }, "mrkdwn_in": { "items": { "type": "string" }, "type": "array" }, "pretext": { "type": "string" }, "short_fields": { "type": "boolean" }, "text": { "type": "string" }, "thumb_url": { "type": "string" }, "title": { "type": "string" }, "title_link": { "type": "string" }, "username": { "description": "The user to send notifications to.", "type": "string" } }, "type": "object" }, "configv1NotifierVictorOpsConfig": { "properties": { "api_key": { "description": "Your VictorOps API key. Required if including a `victor_ops` object in\nyour request body.", "type": "string" }, "api_url": { "description": "The VictorOps API URL. Required if including a `victor_ops` object in your\nrequest body.", "type": "string" }, "custom_fields": { "additionalProperties": { "type": "string" }, "type": "object" }, "entity_display_name": { "description": "A summary of the alerted problem.", "type": "string" }, "http_config": { "allOf": [ { "$ref": "#/components/schemas/configv1NotifierHTTPConfig" } ], "description": "Your HTTP client configuration." }, "message_type": { "description": "The behavior of the alert. Possible values are `CRITICAL`, `WARNING`, and\n`INFO`.", "type": "string" }, "monitoring_tool": { "description": "The monitoring tool from which the state message originated.", "type": "string" }, "routing_key": { "description": "Your VictorOps routing key. Required if including a `victor_ops` object in\nyour request body.", "type": "string" }, "state_message": { "description": "A detailed explanation of the alerted problem.", "type": "string" } }, "type": "object" }, "configv1NotifierWebhookConfig": { "properties": { "http_config": { "allOf": [ { "$ref": "#/components/schemas/configv1NotifierHTTPConfig" } ], "description": "Your HTTP client configuration." }, "url": { "description": "Your webhook URL. This URL will be called as a `POST` request. Required\nif including a `webhook` object in your request body.", "type": "string" } }, "type": "object" }, "configv1OAuth2ClientCredentials": { "description": "Configures the OAuth 2.0 client-credentials grant.", "properties": { "client_id": { "description": "Client identifier issued to the test.", "type": "string" }, "client_secret": { "description": "Client secret issued to the test.", "type": "string" }, "common": { "allOf": [ { "$ref": "#/components/schemas/configv1OAuth2Common" } ], "description": "Token-endpoint parameters for the grant." } }, "required": [ "client_id", "client_secret", "common" ], "type": "object" }, "configv1OAuth2Common": { "description": "OAuth 2.0 token-endpoint parameters shared by the OAuth 2.0 grant types.", "properties": { "access_token_url": { "description": "URL of the token endpoint that issues the access token.", "example": "https://auth.example.com/oauth2/token", "type": "string" }, "audience": { "description": "Intended recipient of the access token.", "type": "string" }, "resource": { "description": "Resource the access token grants access to.", "type": "string" }, "scopes": { "description": "Scopes requested with the access token.", "items": { "type": "string" }, "type": "array" }, "token_auth_method": { "$ref": "#/components/schemas/configv1OAuth2TokenAuthMethod" } }, "required": [ "access_token_url" ], "type": "object" }, "configv1OAuth2ResourceOwnerPassword": { "description": "Configures the OAuth 2.0 resource-owner password-credentials grant. Set\n`client_id` and `client_secret` when the token endpoint also authenticates\nthe client.", "properties": { "client_id": { "description": "Client identifier issued to the test.", "type": "string" }, "client_secret": { "description": "Client secret issued to the test.", "type": "string" }, "common": { "allOf": [ { "$ref": "#/components/schemas/configv1OAuth2Common" } ], "description": "Token-endpoint parameters for the grant." }, "password": { "description": "Password of the resource owner.", "type": "string" }, "username": { "description": "User name of the resource owner.", "type": "string" } }, "required": [ "common", "password", "username" ], "type": "object" }, "configv1OAuth2TokenAuthMethod": { "description": "Selects how client credentials are sent to the OAuth 2.0 token endpoint.\nWhen unset, credentials are sent in an HTTP basic authentication header, as\ndescribed in RFC 6749 section 2.3.1.", "enum": [ "OTAM_BASIC_AUTH_HEADER", "OTAM_REQUEST_BODY" ], "type": "string" }, "configv1OptionalDouble": { "properties": { "enabled": { "description": "Whether the value is enabled.", "type": "boolean" }, "value": { "description": "The configured value, which is ignored if enabled is false.", "format": "double", "type": "number" } }, "type": "object" }, "configv1OtelMetricsIngestion": { "properties": { "created_at": { "description": "Timestamp of when the OtelMetricsIngestion was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "resource_attributes": { "allOf": [ { "$ref": "#/components/schemas/OtelMetricsIngestionResourceAttributes" } ], "description": "Specifies how to ingest OpenTelemetry resource attributes. These attributes\nhave no direct equivalent in the internal data model of Chronosphere\nObservability Platform." }, "updated_at": { "description": "Timestamp of when the OtelMetricsIngestion was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "type": "object" }, "configv1PageResult": { "properties": { "next_token": { "description": "An opaque page token that identifies the next page of items that the\nclient should request. An empty value indicates that there are no\nmore items to return.", "type": "string" } }, "type": "object" }, "configv1PagerdutyEventsVersion": { "description": "PagerdutyEventsVersion selects the PagerDuty Events API version.\nThe version determines which PagerDuty Events API payload format is used\nwhen delivering alerts through this external connection.\n\n - PAGERDUTY_EVENTS_VERSION_V1: V1 is the legacy PagerDuty Events API version.\n - PAGERDUTY_EVENTS_VERSION_V2: V2 is the default and recommended version.", "enum": [ "PAGERDUTY_EVENTS_VERSION_V1", "PAGERDUTY_EVENTS_VERSION_V2" ], "type": "string" }, "configv1ReadAzureMetricsIntegrationResponse": { "properties": { "azure_metrics_integration": { "$ref": "#/components/schemas/configv1AzureMetricsIntegration" } }, "type": "object" }, "configv1ReadBucketResponse": { "properties": { "bucket": { "$ref": "#/components/schemas/configv1Bucket" } }, "type": "object" }, "configv1ReadClassicDashboardResponse": { "properties": { "classic_dashboard": { "$ref": "#/components/schemas/configv1GrafanaDashboard" } }, "type": "object" }, "configv1ReadCloudIntegrationResponse": { "properties": { "cloud_integration": { "$ref": "#/components/schemas/configv1CloudIntegration" } }, "type": "object" }, "configv1ReadCollectionResponse": { "properties": { "collection": { "$ref": "#/components/schemas/configv1Collection" } }, "type": "object" }, "configv1ReadConsumptionBudgetResponse": { "properties": { "consumption_budget": { "$ref": "#/components/schemas/configv1ConsumptionBudget" } }, "type": "object" }, "configv1ReadConsumptionConfigResponse": { "properties": { "consumption_config": { "$ref": "#/components/schemas/configv1ConsumptionConfig" } }, "type": "object" }, "configv1ReadDashboardResponse": { "properties": { "dashboard": { "$ref": "#/components/schemas/configv1Dashboard" } }, "type": "object" }, "configv1ReadDatasetResponse": { "properties": { "dataset": { "$ref": "#/components/schemas/configv1Dataset" } }, "type": "object" }, "configv1ReadDerivedLabelResponse": { "properties": { "derived_label": { "$ref": "#/components/schemas/configv1DerivedLabel" } }, "type": "object" }, "configv1ReadDerivedMetricResponse": { "properties": { "derived_metric": { "$ref": "#/components/schemas/configv1DerivedMetric" } }, "type": "object" }, "configv1ReadDropRuleResponse": { "properties": { "drop_rule": { "$ref": "#/components/schemas/configv1DropRule" } }, "type": "object" }, "configv1ReadExternalConnectionResponse": { "properties": { "external_connection": { "$ref": "#/components/schemas/configv1ExternalConnection" } }, "type": "object" }, "configv1ReadGcpMetricsIntegrationResponse": { "properties": { "gcp_metrics_integration": { "$ref": "#/components/schemas/configv1GcpMetricsIntegration" } }, "type": "object" }, "configv1ReadGrafanaDashboardResponse": { "properties": { "grafana_dashboard": { "$ref": "#/components/schemas/configv1GrafanaDashboard" } }, "type": "object" }, "configv1ReadLogAllocationConfigResponse": { "properties": { "log_allocation_config": { "$ref": "#/components/schemas/configv1LogAllocationConfig" } }, "type": "object" }, "configv1ReadLogControlConfigResponse": { "properties": { "log_control_config": { "$ref": "#/components/schemas/configv1LogControlConfig" } }, "type": "object" }, "configv1ReadLogIngestConfigResponse": { "properties": { "log_ingest_config": { "$ref": "#/components/schemas/configv1LogIngestConfig" } }, "type": "object" }, "configv1ReadLogRetentionConfigResponse": { "properties": { "log_retention_config": { "$ref": "#/components/schemas/configv1LogRetentionConfig" } }, "type": "object" }, "configv1ReadMappingRuleResponse": { "properties": { "mapping_rule": { "$ref": "#/components/schemas/configv1MappingRule" } }, "type": "object" }, "configv1ReadMonitorResponse": { "properties": { "monitor": { "$ref": "#/components/schemas/configv1Monitor" } }, "type": "object" }, "configv1ReadMutingRuleResponse": { "properties": { "muting_rule": { "$ref": "#/components/schemas/configv1MutingRule" } }, "type": "object" }, "configv1ReadNotificationPolicyResponse": { "properties": { "notification_policy": { "$ref": "#/components/schemas/configv1NotificationPolicy" } }, "type": "object" }, "configv1ReadNotifierResponse": { "properties": { "notifier": { "$ref": "#/components/schemas/configv1Notifier" } }, "type": "object" }, "configv1ReadOtelMetricsIngestionResponse": { "properties": { "otel_metrics_ingestion": { "$ref": "#/components/schemas/configv1OtelMetricsIngestion" } }, "type": "object" }, "configv1ReadRecordingRuleResponse": { "properties": { "recording_rule": { "$ref": "#/components/schemas/configv1RecordingRule" } }, "type": "object" }, "configv1ReadResourcePoolsResponse": { "properties": { "resource_pools": { "$ref": "#/components/schemas/configv1ResourcePools" } }, "type": "object" }, "configv1ReadRollupRuleResponse": { "properties": { "rollup_rule": { "$ref": "#/components/schemas/configv1RollupRule" } }, "type": "object" }, "configv1ReadSLOResponse": { "properties": { "slo": { "$ref": "#/components/schemas/configv1SLO" } }, "type": "object" }, "configv1ReadServiceAccountResponse": { "properties": { "service_account": { "$ref": "#/components/schemas/configv1ServiceAccount" } }, "type": "object" }, "configv1ReadServiceAttributeResponse": { "properties": { "service_attribute": { "$ref": "#/components/schemas/configv1ServiceAttribute" }, "service_slug": { "type": "string" } }, "type": "object" }, "configv1ReadServiceResponse": { "properties": { "service": { "$ref": "#/components/schemas/configv1Service" } }, "type": "object" }, "configv1ReadSyntheticTestResponse": { "properties": { "synthetic_test": { "$ref": "#/components/schemas/configv1SyntheticTest" } }, "type": "object" }, "configv1ReadTeamResponse": { "properties": { "team": { "$ref": "#/components/schemas/configv1Team" } }, "type": "object" }, "configv1ReadTraceBehaviorConfigResponse": { "properties": { "trace_behavior_config": { "$ref": "#/components/schemas/configv1TraceBehaviorConfig" } }, "type": "object" }, "configv1ReadTraceBehaviorResponse": { "properties": { "trace_behavior": { "$ref": "#/components/schemas/configv1TraceBehavior" } }, "type": "object" }, "configv1ReadTraceJaegerRemoteSamplingStrategyResponse": { "properties": { "trace_jaeger_remote_sampling_strategy": { "$ref": "#/components/schemas/configv1TraceJaegerRemoteSamplingStrategy" } }, "type": "object" }, "configv1ReadTraceMetricsRuleResponse": { "properties": { "trace_metrics_rule": { "$ref": "#/components/schemas/configv1TraceMetricsRule" } }, "type": "object" }, "configv1ReadTraceTailSamplingRulesResponse": { "properties": { "trace_tail_sampling_rules": { "$ref": "#/components/schemas/configv1TraceTailSamplingRules" } }, "type": "object" }, "configv1RecordingRule": { "properties": { "bucket_slug": { "description": "The slug of the bucket the recording rule belongs to. Required if\n`execution_group` is not set. If both `bucket_slug` and `execution_group`\nare set, their values must match.", "type": "string" }, "created_at": { "description": "Timestamp of when the RecordingRule was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "execution_group": { "description": "The slug of the execution group in which the recording rule will be evaluated.\nRules in the same execution group run at intervals. All rules in a group must\ncomplete before the rules in that group run again. Required if `bucket_slug`\nisn't set. If both `bucket_slug` and `execution_group` are set, their values\nmust match.\n\nCreating too many rules in an execution group can cause delays in execution of\nthe next iteration. Chronosphere recommends limiting the number of rules in an\nexecution group to 200-300 maximum.", "type": "string" }, "execution_mode": { "allOf": [ { "$ref": "#/components/schemas/RecordingRuleExecutionMode" } ], "description": "Controls how this rule is assigned to shards for execution.\nWhen set to SYNCHRONIZED, all rules in the same execution group with\nthis mode are assigned to the same shard, which ensures that they execute\ntogether with the same evaluation timestamp." }, "interval_secs": { "description": "Specifies how often to evaluate the recording rule. Default: `60s`.", "format": "int32", "type": "integer" }, "label_policy": { "allOf": [ { "$ref": "#/components/schemas/configv1RecordingRuleLabelPolicy" } ], "description": "Specifies label names to add to the output metric. If you attempt to add an\nexisting label, the label isn't added. For example, `add (instance123:instance)`." }, "metric_name": { "description": "The name of the time series to use for the output of `prometheus_expr`.\nThis value must be a valid metric name. If you don't set this value,\nthe output of `prometheus_expr` is output to a time series with a name\ndefined by the value of `name`.", "type": "string" }, "name": { "description": "The name of the RecordingRule. You can modify this value after the RecordingRule is created.", "type": "string" }, "prometheus_expr": { "description": "The PromQL expression to evaluate at the time of each evaluation cycle. The\nresult is output to a new time series with a name defined by the value of\n`metric_name`. If `metric_name` is unset, the result is output to a\ntime series defined by the value of `name`.", "type": "string" }, "slug": { "description": "The unique identifier of the RecordingRule. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the RecordingRule is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the RecordingRule was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1RecordingRuleLabelPolicy": { "properties": { "add": { "additionalProperties": { "type": "string" }, "description": "A list of labels to add or overwrite before storing the result.", "type": "object" } }, "type": "object" }, "configv1ResourcePools": { "properties": { "created_at": { "description": "Timestamp of when the ResourcePools was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "default_pool": { "allOf": [ { "$ref": "#/components/schemas/ResourcePoolsDefaultPool" } ], "description": "Defines the default pool. Metrics that don't match any of the configured pools\nmap to the default pool." }, "pools": { "description": "Optional. Defines additional pools, which can't exceed 20 pools.", "items": { "$ref": "#/components/schemas/ResourcePoolsPool" }, "type": "array" }, "updated_at": { "description": "Timestamp of when the ResourcePools was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "default_pool" ], "type": "object" }, "configv1ResourcePoolsAllocation": { "properties": { "fixed_values": { "description": "Optional. Specifies overrides for the `percent_of_license` allocations for\nspecified licenses. When defining fixed values for a license, all pools must\nhave an explicit fixed value specification for that given license. The default\npool receives all remaining quota left within the license, after subtracting\nthe sum of fixed values across pools for that license.", "items": { "$ref": "#/components/schemas/AllocationFixedValue" }, "type": "array" }, "percent_of_license": { "description": "Percent of the license to allocate to this pool. This value must be between\n`0` and `100`, inclusive. The `percent_of_license` values across all pools,\nexcluding the default pool, must be less than or equal to 100. The\n`default_pool` receives any remaining allocation, so you don't need to specify\na value for it explicitly. If you specify an allocation for the\n`default_pool`, the sum of `percent_of_license` across all pools (including\nthe default pool) must exactly equal `100`.", "format": "double", "type": "number" }, "priority_thresholds": { "description": "Defines thresholds with strict limits for when to drop new consumption of the\npersisted cardinality license for a pool. Setting `priority_thresholds` is\nrequired to set limits for cardinality licenses. Only\n`PERSISTED_CARDINALITY_STANDARD` and `PERSISTED_CARDINALITY_HISTOGRAM` are\nsupported.", "items": { "$ref": "#/components/schemas/AllocationThresholds" }, "type": "array" } }, "type": "object" }, "configv1ResourceType": { "enum": [ "BUCKET", "DASHBOARD", "GRAFANA_DASHBOARD", "MONITOR", "NOTIFICATION_POLICY", "RECORDING_RULE", "MAPPING_RULE", "ROLLUP_RULE" ], "type": "string" }, "configv1RollupRule": { "properties": { "add_metric_type_label": { "description": "Defines whether to add a `__rollup_type__` label in the new metric.", "type": "boolean" }, "aggregation": { "allOf": [ { "$ref": "#/components/schemas/configv1AggregationType" } ], "description": "Defines the method by which metrics are aggregated." }, "bucket_slug": { "description": "The slug of the bucket the RollupRule belongs to.", "type": "string" }, "created_at": { "description": "Timestamp of when the RollupRule was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "drop_raw": { "description": "Defines whether to automatically generate drop rules for this rollup rule. Set\nto `true` to remove raw metrics that match this rollup rule. Default: `false`.", "type": "boolean" }, "expansive_match": { "description": "**DEPRECATED**.\nA series matches and aggregates only if each label defined by filters and\n`label_policy.keep` or `graphite_label_policy.replace` (respectively) exist in\nthe series. Setting `expansive_match=true` removes this restriction. Default:\n`expansive_match=false`.\n\nIf `false`, a series matches and aggregates only if each label defined by the\nprovided `filters` and the `label_policy.keep` or\n`graphite_label_policy.replace` settings exist in the series.", "type": "boolean" }, "filters": { "description": "Filters incoming metrics by label. If multiple label filters are specified, an\nincoming metric must match every label filter to match the rule. Label values\nsupport glob patterns, including matching multiple patterns with an `OR`, such\nas `service:{svc1,svc2}`. These special filters are available for matching\nmetrics by non-label request metadata:\n * `__metric_type__`: Matches the incoming metric's [Observability Platform\n metric\n type](https://docs.chronosphere.io/control/shaping/shape-metrics/types#observability-platform-types).\n This is the recommended method for filtering on metric type. Valid values:\n `cumulative_counter`, `cumulative_exponential_histogram`, `delta_counter`,\n `delta_exponential_histogram`, `gauge`, `measurement`.\n * `__metric_source__`: Matches the incoming metric's [source\n format](https://docs.chronosphere.io/control/shaping/shape-metrics/types#supported-formats).\n Valid values: `carbon`, `chrono_gcp`, `dogstatsd`, `open_metrics`,\n `open_telemetry`, `prometheus`, `signalfx`, `statsd`, `wavefront`.\n * `__m3_prom_type__`: When ingesting metric data with Prometheus, matches the\n incoming metric's [Prometheus metric\n type](https://docs.chronosphere.io/control/shaping/shape-metrics/types#prometheus). Valid\n values: `counter`, `gauge`, `histogram`, `gauge_histogram`, `summary`,\n `info`, `state_set`, `quantile`.\n * `__otel_type__`: When ingesting with OpenTelemetry, matches on the incoming\n metric's [OpenTelemetry metric\n type](https://docs.chronosphere.io/control/shaping/shape-metrics/types#opentelemetry).\n Valid values: `sum`, `monotonic_sum`, `gauge`, `histogram`, `exp_histogram`,\n `summary`. For example, the following filter matches any cumulative counter\n metric with a `service=gateway` label whose metric name starts with\n `http_requests_`:\n```\n__metric_type__:cumulative_counter service:gateway __name__:http_requests_*\n```", "items": { "$ref": "#/components/schemas/configv1LabelFilter" }, "type": "array" }, "graphite_label_policy": { "allOf": [ { "$ref": "#/components/schemas/RollupRuleGraphiteLabelPolicy" } ], "description": "Optional. Label aggregation policy for Graphite metrics. If set, new\nrestrictions will apply to the rule:\n- `label_policy` cannot be set.\n- `metric_name` cannot be set.\n- `filters` can reference only positional Graphite labels, such as `__gX__`,\n and synthetic labels, such as `__metric_type__`." }, "interval": { "description": "Optional. Sets a custom interval that defines the amount of\ntime between aggregated data points. Intervals are based on your\n[retention policy](https://docs.chronosphere.io/administer/limits-licensing/licensing).\nThis field was known as `storage_policies` in version\n0.286.0-2023-01-06-release.1\nand earlier.", "type": "string" }, "label_policy": { "allOf": [ { "$ref": "#/components/schemas/configv1RollupRuleLabelPolicy" } ], "description": "Label aggregation policy, which acts as a filter, defining which labels to\npreserve in the resulting metric. Use `keep` to keep one or more labels, or\n`discard` to ignore one or more labels. Required for non-Graphite rules." }, "label_replace": { "allOf": [ { "$ref": "#/components/schemas/RollupRuleLabelReplace" } ], "description": "**DEPRECATED**." }, "metric_name": { "description": "The name of the new metric to create and persist to the database. You can use\nthe template string `{{.MetricName }}` to create a new metric name that\nreferences the original metric name. For example, `new_metric: '{{ .MetricName\n}}:by_instance'` outputs a metric with the name `my_metric:by_instance` if the\nmatched metric is `my_metric`.\nThis field is optional for Graphite rollup rules.", "type": "string" }, "metric_type": { "allOf": [ { "$ref": "#/components/schemas/RollupRuleMetricType" } ], "description": "Declares the metric type of the input metrics. Each rollup rule must declare the\ntype of metric it aggregates by setting the `metric_type` field, because each\nmetric type aggregates differently. Choosing the wrong `metric_type` for your\nrule can produce unexpected results.\n\n`COUNTER` is deprecated; use `CUMULATIVE_COUNTER` instead.\n\n`DELTA` is deprecated; use `DELTA_COUNTER` instead." }, "mode": { "allOf": [ { "$ref": "#/components/schemas/configv1RollupRuleMode" } ], "description": "The operational mode for this rollup rule. If `mode=ENABLED`, the rule is\napplied. If `mode=PREVIEW`, the rule is not applied, but shaping impact stats\nfor the rule are recorded. If empty, defaults to `mode=ENABLED`." }, "name": { "description": "The name of the RollupRule. You can modify this value after the RollupRule is created.", "type": "string" }, "skip_on_conflict": { "description": "If true, this rollup rule is skipped if another rollup rule produces a\nmetric with the same output name. Use this flag to write rollup rules that\nproduce metrics only if no other rollup rule produces a series with the\nsame name.", "type": "boolean" }, "slug": { "description": "The unique identifier of the RollupRule. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the RollupRule is created.", "type": "string" }, "storage_policy": { "allOf": [ { "$ref": "#/components/schemas/configv1RollupRuleStoragePolicy" } ], "description": "**DEPRECATED**.\nUse `interval` instead. Storage policy applied to the resulting\nrollup rule, which must match a known storage policy. If empty, the default\nstorage policy is used. If set, `interval` can't be set." }, "updated_at": { "description": "Timestamp of when the RollupRule was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "bucket_slug", "name" ], "type": "object" }, "configv1RollupRuleLabelPolicy": { "description": "TODO: consolidate w/ RecordingRule.LabelPolicy once both of these\n entities implement the same label semantics.", "properties": { "discard": { "description": "Labels to discard in the output metric. If set, the `keep` field must be\nempty.", "items": { "type": "string" }, "type": "array" }, "keep": { "description": "Labels to retain in the output metric. If set, the `discard` field must\nbe empty.", "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "configv1RollupRuleMode": { "enum": [ "ENABLED", "PREVIEW" ], "title": "- PREVIEW: TODO: DISABLED = 2;", "type": "string" }, "configv1RollupRuleStoragePolicy": { "properties": { "resolution": { "description": "Resolution of the aggregated metrics.", "type": "string" }, "retention": { "description": "Retention of the aggregated metrics.", "type": "string" } }, "required": [ "resolution", "retention" ], "type": "object" }, "configv1SLI": { "properties": { "additional_promql_filters": { "description": "Specifies additional PromQL filters, which are made available to the SLO queries.\nUse these filters to reduce the number of metrics used by the SLO.", "example": "cluster!~\"dev\"", "items": { "$ref": "#/components/schemas/commonPromQLMatcher" }, "type": "array" }, "custom_dimension_labels": { "description": "Configures additional labels to export from the underlying queries. This feature\nprovides a logical budget to group unique combinations of dimensions. For\nexample, if you want to track a budget per endpoint, add the endpoint label as a\ndimension. These dimensions are provided on the top-level SLI so that SLOs will\nreceive them in the `.GroupBy` variable.", "items": { "type": "string" }, "type": "array" }, "custom_indicator": { "allOf": [ { "$ref": "#/components/schemas/SLICustomIndicatorConfig" } ], "description": "Indicates an error ratio SLI, which measures a count of events matching some\ncondition against a total number of events. For example, measuring a ratio of\nsuccessful requests against the total number of requests. Use `custom_indicator`\nto track error ratio SLOs. You can set only one of `custom_indicator` or\n`custom_timeslice_indicator`." }, "custom_timeslice_indicator": { "allOf": [ { "$ref": "#/components/schemas/SLICustomTimeSliceIndicatorConfig" } ], "description": "Indicates a TimeSlice SLI, which measures a count of time slices that meet a\ndefined condition, compared against the total number of time slices in a\nspecific time period. Use `custom_timeslice_indicator` to track TimeSlice SLOs.\nYou can set only one of `custom_indicator` or `custom_timeslice_indicator`." }, "latency_threshold_nanos": { "description": "Optional. The latency that requests are measured against, in nanoseconds:\n50000000 is the \"50ms\" in \"P99 \u003c 50ms\". Required when `slo_type` is\n`LATENCY`, rejected otherwise.", "example": "50000000", "format": "int64", "type": "string" }, "slo_type": { "allOf": [ { "$ref": "#/components/schemas/SLISLOType" } ], "description": "Optional. Unset means the type was never declared, and consumers render\nthe SLO the same way they did before this field existed.", "example": "LATENCY" } }, "type": "object" }, "configv1SLO": { "properties": { "annotations": { "additionalProperties": { "type": "string" }, "description": "Annotations are visible in notifications generated by this SLO.\nYou can template annotations with labels from notifications.", "type": "object" }, "collection_ref": { "$ref": "#/components/schemas/configv1CollectionReference" }, "created_at": { "description": "Timestamp of when the SLO was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "definition": { "allOf": [ { "$ref": "#/components/schemas/SLODefinition" } ], "description": "Defines the core criteria the SLO measures." }, "description": { "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, "description": "Labels are visible in notifications generated by this SLO,\nand can be used to route alerts with notification overrides.", "type": "object" }, "name": { "description": "The name of the SLO. You can modify this value after the SLO is created.", "type": "string" }, "notification_policy_slug": { "description": "Optional. Slug of the notification policy to use for the SLO. If you don't\nspecify a value, then the collection or service this SLO belongs to must have a\nnotification policy. Required if alerting is enabled for this SLO.", "example": "alerting_notification_policy", "type": "string" }, "signal_grouping": { "$ref": "#/components/schemas/MonitorSignalGrouping" }, "sli": { "$ref": "#/components/schemas/configv1SLI" }, "slug": { "description": "The unique identifier of the SLO. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the SLO is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the SLO was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1Service": { "properties": { "created_at": { "description": "Timestamp of when the Service was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Optional. Description of the service collection.", "type": "string" }, "name": { "description": "The name of the Service. You can modify this value after the Service is created.", "type": "string" }, "notification_policy_slug": { "description": "Slug of the notification policy used by default for monitors in this service\ncollection. This parameter is optional if the collection doesn't contain\nmonitors, or if all of its monitors explicitly reference a policy. This\nparameter doesn't override the policy used if a monitor explicitly references\na policy.", "type": "string" }, "slug": { "description": "The unique identifier of the Service. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the Service is created.", "type": "string" }, "team_slug": { "description": "Slug of the team the service collection belongs to.", "type": "string" }, "updated_at": { "description": "Timestamp of when the Service was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name", "team_slug" ], "type": "object" }, "configv1ServiceAccount": { "properties": { "created_at": { "description": "Timestamp of when the ServiceAccount was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "email": { "description": "The unique email user for this service account. Cannot be set by clients.", "readOnly": true, "type": "string" }, "metrics_restriction": { "allOf": [ { "$ref": "#/components/schemas/ServiceAccountMetricsRestriction" } ], "description": "If set, restricts access of the service account to only metric data.\n\nOnly one of `unrestricted` or `metrics_restriction` must be set." }, "name": { "description": "The name of the ServiceAccount. You can modify this value after the ServiceAccount is created.", "type": "string" }, "slug": { "description": "The unique identifier of the ServiceAccount. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the ServiceAccount is created.", "type": "string" }, "token": { "description": "Generated API token of the service account. Cannot be set by clients.\n\nThe token is set only once by the server in the `CreateServiceAccount` response.\nThe `ReadServiceAccount` response always returns an empty token. Therefore, when\ncreating a service account, ensure you securely store the response token.\nIf you lose the token, you must delete and recreate the service account to\ngenerate a new token.", "readOnly": true, "type": "string" }, "unrestricted": { "description": "If set, grants the service account access to all Chronosphere APIs, including\nresource configuration and metric data within the access controls defined by the\nservice account's team membership.\n\nOnly one of `unrestricted` or `metrics_restriction` must be set.", "type": "boolean" }, "updated_at": { "description": "Timestamp of when the ServiceAccount was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1ServiceAttribute": { "properties": { "created_at": { "description": "Timestamp of when the service attributes were created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "A description of the service.", "type": "string" }, "name": { "description": "The name of the service. You can modify this value after the service\nattributes are created.", "type": "string" }, "notification_policy_slug": { "description": "The slug of the notification policy for the associated service.", "type": "string" }, "service_slug": { "description": "The slug of the service.", "type": "string" }, "team_slug": { "description": "The slug of the team that the associated service belongs to.", "type": "string" }, "updated_at": { "description": "Timestamp of when the service attributes were updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "type": "object" }, "configv1SyntheticTest": { "properties": { "collection": { "allOf": [ { "$ref": "#/components/schemas/configv1CollectionReference" } ], "description": "Collection that owns the test. Required if `collection_slug` isn't set." }, "collection_slug": { "description": "Slug of the collection that owns the test. Required if `collection` isn't\nset.", "type": "string" }, "created_at": { "description": "Timestamp of when the SyntheticTest was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Description of what the test verifies.", "type": "string" }, "dns_test": { "allOf": [ { "$ref": "#/components/schemas/SyntheticTestDnsTestConfig" } ], "description": "Configuration for a DNS test. Set only when `test_type` is `DNS`." }, "http_test": { "allOf": [ { "$ref": "#/components/schemas/SyntheticTestHttpTestConfig" } ], "description": "Configuration for an HTTP test. Set only when `test_type` is `HTTP`." }, "interval_secs": { "description": "How often each location runs the test, in seconds.", "example": "60", "format": "int32", "type": "integer" }, "labels": { "additionalProperties": { "type": "string" }, "description": "Labels attached to the test, used to filter the synthetic test list.", "type": "object" }, "locations": { "description": "Probe locations that run the test. Specify at least one.", "items": { "$ref": "#/components/schemas/SyntheticTestTestLocation" }, "type": "array" }, "monitor_config": { "allOf": [ { "$ref": "#/components/schemas/SyntheticTestMonitorConfig" } ], "description": "Alerting configuration. Every synthetic test alerts through a managed\nmonitor, so set this field on create and update." }, "name": { "description": "The name of the SyntheticTest. You can modify this value after the SyntheticTest is created.", "type": "string" }, "retry_config": { "allOf": [ { "$ref": "#/components/schemas/SyntheticTestRetryConfig" } ], "description": "Retry behavior after a failed attempt. When unset, the test doesn't\nretry." }, "slug": { "description": "The unique identifier of the SyntheticTest. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the SyntheticTest is created.", "type": "string" }, "status": { "allOf": [ { "$ref": "#/components/schemas/SyntheticTestTestStatus" } ], "description": "Whether the test runs on its schedule. `ENABLED` runs the test, and\n`PAUSED` stops execution without deleting the test." }, "tcp_test": { "allOf": [ { "$ref": "#/components/schemas/SyntheticTestTcpTestConfig" } ], "description": "Configuration for a TCP test. Set only when `test_type` is `TCP`." }, "test_type": { "allOf": [ { "$ref": "#/components/schemas/SyntheticTestTestType" } ], "description": "Protocol the test exercises. Determines which of the `http_test`,\n`dns_test`, `tcp_test`, and `tls_test` configurations you must set." }, "timeout_secs": { "description": "How long a single execution can run before it times out, in seconds, from\n1 to 60. Default: `60`.", "format": "int32", "type": "integer" }, "tls_test": { "allOf": [ { "$ref": "#/components/schemas/SyntheticTestTlsTestConfig" } ], "description": "Configuration for a TLS test. Set only when `test_type` is `TLS`." }, "updated_at": { "description": "Timestamp of when the SyntheticTest was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "interval_secs", "locations", "monitor_config", "name", "test_type" ], "type": "object" }, "configv1Team": { "properties": { "created_at": { "description": "Timestamp of when the Team was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "description": "Optional. Short description of the team.", "type": "string" }, "name": { "description": "The name of the Team. You can modify this value after the Team is created.", "type": "string" }, "slug": { "description": "The unique identifier of the Team. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the Team is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the Team was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "user_emails": { "description": "Unordered set of emails whose users are members of this team.", "items": { "type": "string" }, "type": "array" } }, "required": [ "name" ], "type": "object" }, "configv1TraceBehavior": { "properties": { "base_head_sample_rate": { "description": "Specifies the sample rate for head sampling. This rate applies to all root spans\nthat are enrolled in head sampling, but don't have a specific rule defined for\ntheir service.", "format": "double", "type": "number" }, "base_tail_sample_rate": { "description": "Specifies the base sample rate for fully assembled traces that don't apply to\nthe `error_sample_options`, `fast_sample_options`, `slow_sample_options`,\n`large_trace_sample_options`, or `small_trace_sample_options` sampling options.", "format": "double", "type": "number" }, "created_at": { "description": "Timestamp of when the TraceBehavior was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "description": { "type": "string" }, "error_sample_options": { "allOf": [ { "$ref": "#/components/schemas/TraceBehaviorErrorSampleOptions" } ], "description": "Optional. Specifies sampling options for traces whose root span is an error." }, "fast_sample_options": { "allOf": [ { "$ref": "#/components/schemas/TraceBehaviorFastSampleOptions" } ], "description": "Optional. Specifies sampling options for traces whose root span duration is less\nthan the specified threshold." }, "large_trace_sample_options": { "allOf": [ { "$ref": "#/components/schemas/TraceBehaviorLargeTraceSampleOptions" } ], "description": "Optional. Specifies sampling options for traces with spans greater than or equal\nto the specified threshold." }, "name": { "description": "The name of the TraceBehavior. You can modify this value after the TraceBehavior is created.", "type": "string" }, "slow_sample_options": { "allOf": [ { "$ref": "#/components/schemas/TraceBehaviorSlowSampleOptions" } ], "description": "Optional. Specifies sampling options for traces whose root span duration is\ngreater than the specified threshold." }, "slug": { "description": "The unique identifier of the TraceBehavior. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the TraceBehavior is created.", "type": "string" }, "small_trace_sample_options": { "allOf": [ { "$ref": "#/components/schemas/TraceBehaviorSmallTraceSampleOptions" } ], "description": "Optional. Specifies sampling options for traces with spans less than or equal to\nthe specified threshold." }, "updated_at": { "description": "Timestamp of when the TraceBehavior was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1TraceBehaviorConfig": { "description": "TraceBehaviorConfig is a singleton configuration object that specifies the\nconfiguration for trace behaviors.", "properties": { "baseline_behavior_slug": { "description": "The baseline behavior to use for behavior assignments and base head sampling rates.", "type": "string" }, "created_at": { "description": "Timestamp of when the TraceBehaviorConfig was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "dataset_priorities": { "description": "List of dataset priorities. This list specifies the order in which datasets are\nconsidered when determining the behavior to follow for a trace. Dataset\npriorities are used to break ties when a trace matches more than one dataset\nwith an active behavior.\n* Each entry in this list must refer to the slug of an existing dataset.\n* The order of the list is the order in which the datasets are considered.\n* The list must contain all datasets referenced in either\n `main_behavior_assignments` or `override_behavior_assignments`.\n* The list can contain datasets that are not referenced in either of these\n assignments.", "items": { "type": "string" }, "type": "array" }, "main_behavior_assignments": { "description": "List of assignments for the main behavior. The referenced datasets will be\nenrolled in behaviors. The referenced behaviors are the active behaviors for the\ndataset when there is no active override. Only one main behavior can be assigned\nto a dataset. See the documentation for\n[customizing your sampling\nstrategy](https://docs.chronosphere.io/control/shaping/sample-traces/behaviors#customize-your-sampling-strategy)\nfor more information.", "items": { "$ref": "#/components/schemas/TraceBehaviorConfigMainBehaviorAssignment" }, "type": "array" }, "override_behavior_assignments": { "description": "List of assignments for the override behavior. These assignments specify the\nactive behavior for a dataset over a specific time range. Only one override\nbehavior can be assigned to a dataset.", "items": { "$ref": "#/components/schemas/TraceBehaviorConfigOverrideBehaviorAssignment" }, "type": "array" }, "preview_behavior_assignments": { "description": "List of assignments for the preview behavior. The referenced behaviors are in\npreview mode for the assigned dataset. You can assign only one preview behavior\nto a dataset.", "items": { "$ref": "#/components/schemas/TraceBehaviorConfigOverrideBehaviorAssignment" }, "type": "array" }, "updated_at": { "description": "Timestamp of when the TraceBehaviorConfig was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "type": "object" }, "configv1TraceDataset": { "properties": { "match_criteria": { "allOf": [ { "$ref": "#/components/schemas/configv1TraceSearchFilter" } ], "description": "Required. Defines the criteria to match traces to a dataset." } }, "type": "object" }, "configv1TraceJaegerRemoteSamplingStrategy": { "properties": { "applied_strategy": { "allOf": [ { "$ref": "#/components/schemas/TraceJaegerRemoteSamplingStrategyAppliedStrategy" } ], "description": "The strategy to apply for JaegerRemoteSampler-enabled agents running in the\nnamed service. Exactly one of the following strategies must be set. See the\nObservability Platform documentation for\n[Creating head sampling rules](https://docs.chronosphere.io/control/shaping/sample-traces/head-sampling#create-head-sampling-rules)\nfor more information." }, "created_at": { "description": "Timestamp of when the TraceJaegerRemoteSamplingStrategy was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "name": { "description": "The name of the TraceJaegerRemoteSamplingStrategy. You can modify this value after the TraceJaegerRemoteSamplingStrategy is created.", "type": "string" }, "service_name": { "description": "The name of the service this sampling strategy applies to. This value must match\nthe `slug` and `name` fields.", "type": "string" }, "slug": { "description": "The unique identifier of the TraceJaegerRemoteSamplingStrategy. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the TraceJaegerRemoteSamplingStrategy is created.", "type": "string" }, "updated_at": { "description": "Timestamp of when the TraceJaegerRemoteSamplingStrategy was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1TraceMetricsRule": { "properties": { "created_at": { "description": "Timestamp of when the TraceMetricsRule was created. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" }, "group_by": { "description": "Add labels to the resultant metrics based on the specified key:value pairs.", "items": { "$ref": "#/components/schemas/configv1TraceMetricsRuleGroupBy" }, "type": "array" }, "histogram_buckets_secs": { "description": "Histogram bucket values, in seconds, for generated duration metrics.", "items": { "format": "double", "type": "number" }, "type": "array" }, "metric_labels": { "additionalProperties": { "type": "string" }, "description": "Labels to apply to the generated trace metrics.", "type": "object" }, "metric_name": { "description": "The name of the generated trace metrics.", "type": "string" }, "name": { "description": "The name of the TraceMetricsRule. You can modify this value after the TraceMetricsRule is created.", "type": "string" }, "scope_filter": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterScopeFilter" } ], "description": "Scope filter to determine which spans should be counted for metrics generation.\nOnly spans matching the scope filter will contribute to trace metrics." }, "slug": { "description": "The unique identifier of the TraceMetricsRule. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the TraceMetricsRule is created.", "type": "string" }, "trace_filter": { "allOf": [ { "$ref": "#/components/schemas/configv1TraceSearchFilter" } ], "description": "Filter that defines traces that should yield the defined metrics." }, "updated_at": { "description": "Timestamp of when the TraceMetricsRule was last updated. Cannot be set by clients.", "format": "date-time", "readOnly": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "configv1TraceMetricsRuleGroupBy": { "description": "GroupBy contains fields required to group the resultant metrics of a TraceMetricsRule by a specific key.", "properties": { "key": { "allOf": [ { "$ref": "#/components/schemas/GroupByGroupByKey" } ], "description": "The key to group by." }, "label": { "description": "The label to use in the resulting metrics.", "type": "string" } }, "type": "object" }, "configv1TraceSearchFilter": { "properties": { "scope_filter": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterScopeFilter" } ], "description": "Scope filter that defines which spans within matching traces contribute to metrics calculation." }, "span": { "description": "Specifies the span conditions to match on. All conditions must be true in a\nsingle span for the span to be considered a match. If `span_count` is specified,\nthe number of spans within the trace that match span conditions must be within\n`[min, max]`. You can specify multiple span conditions, and each can be\nsatisfied by any number of spans within the trace.", "items": { "$ref": "#/components/schemas/TraceSearchFilterSpanFilter" }, "type": "array" }, "trace": { "allOf": [ { "$ref": "#/components/schemas/TraceSearchFilterTraceFilter" } ], "description": "Trace-level filter criteria (effectively matching the root span)." } }, "type": "object" }, "configv1TraceTailSamplingRule": { "description": "Contains configuration for one tail sampling rule.", "properties": { "created_at": { "description": "Timestamp of when the rule was created.", "format": "date-time", "type": "string" }, "filter": { "allOf": [ { "$ref": "#/components/schemas/configv1TraceSearchFilter" } ], "description": "Filter criteria applied to each trace to determine whether the trace is a match." }, "name": { "description": "A human-readable name of the rule.", "type": "string" }, "sample_rate": { "description": "Specifies the percentage of traces to keep, which must be a number between `0`\nand `1`, inclusive, where `1` equates to 100 percent.", "format": "double", "type": "number" }, "system_name": { "description": "Name used as the metric label value for metrics that are emitted from this rule.", "type": "string" }, "updated_at": { "description": "Timestamp of when the rule was updated.", "format": "date-time", "type": "string" } }, "type": "object" }, "configv1TraceTailSamplingRules": { "description": "Root object containing all tail sampling rules (for a tenant).", "properties": { "created_at": { "description": "Timestamp of when the rule was created.", "format": "date-time", "readOnly": true, "type": "string" }, "default_sample_rate": { "allOf": [ { "$ref": "#/components/schemas/configv1DefaultSampleRate" } ], "description": "Optional. By default, all traces not matching the defined rules are kept. You\ncan override this behavior by providing a default sample rate." }, "rules": { "description": "Optional. Specifies a list of rules and a sampling rate to apply. Rules are\nevaluated in order until a match is found. If no sample rate is specified, the\ndefault sample rate is applied.", "items": { "$ref": "#/components/schemas/configv1TraceTailSamplingRule" }, "type": "array" }, "updated_at": { "description": "Timestamp of when the rule was updated.", "format": "date-time", "readOnly": true, "type": "string" } }, "type": "object" }, "configv1UpdateAzureMetricsIntegrationResponse": { "properties": { "azure_metrics_integration": { "$ref": "#/components/schemas/configv1AzureMetricsIntegration" } }, "type": "object" }, "configv1UpdateBucketResponse": { "properties": { "bucket": { "$ref": "#/components/schemas/configv1Bucket" } }, "type": "object" }, "configv1UpdateClassicDashboardResponse": { "properties": { "classic_dashboard": { "$ref": "#/components/schemas/configv1GrafanaDashboard" } }, "type": "object" }, "configv1UpdateCloudIntegrationResponse": { "properties": { "cloud_integration": { "$ref": "#/components/schemas/configv1CloudIntegration" } }, "type": "object" }, "configv1UpdateCollectionResponse": { "properties": { "collection": { "$ref": "#/components/schemas/configv1Collection" } }, "type": "object" }, "configv1UpdateConsumptionBudgetResponse": { "properties": { "consumption_budget": { "$ref": "#/components/schemas/configv1ConsumptionBudget" } }, "type": "object" }, "configv1UpdateConsumptionConfigRequest": { "properties": { "consumption_config": { "allOf": [ { "$ref": "#/components/schemas/configv1ConsumptionConfig" } ], "description": "The ConsumptionConfig to update." }, "create_if_missing": { "description": "If `true`, the ConsumptionConfig will be created if it does not already exist. If `false`, an error will be returned if the ConsumptionConfig does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the ConsumptionConfig. If the specified configuration is valid, the endpoint returns a partial response without the ConsumptionConfig. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" } }, "type": "object" }, "configv1UpdateConsumptionConfigResponse": { "properties": { "consumption_config": { "$ref": "#/components/schemas/configv1ConsumptionConfig" } }, "type": "object" }, "configv1UpdateDashboardResponse": { "properties": { "dashboard": { "$ref": "#/components/schemas/configv1Dashboard" } }, "type": "object" }, "configv1UpdateDatasetResponse": { "properties": { "dataset": { "$ref": "#/components/schemas/configv1Dataset" } }, "type": "object" }, "configv1UpdateDerivedLabelResponse": { "properties": { "derived_label": { "$ref": "#/components/schemas/configv1DerivedLabel" } }, "type": "object" }, "configv1UpdateDerivedMetricResponse": { "properties": { "derived_metric": { "$ref": "#/components/schemas/configv1DerivedMetric" } }, "type": "object" }, "configv1UpdateDropRuleResponse": { "properties": { "drop_rule": { "$ref": "#/components/schemas/configv1DropRule" } }, "type": "object" }, "configv1UpdateExternalConnectionResponse": { "properties": { "external_connection": { "$ref": "#/components/schemas/configv1ExternalConnection" } }, "type": "object" }, "configv1UpdateGcpMetricsIntegrationResponse": { "properties": { "gcp_metrics_integration": { "allOf": [ { "$ref": "#/components/schemas/configv1GcpMetricsIntegration" } ], "description": "The updated GcpMetricsIntegration." } }, "type": "object" }, "configv1UpdateGrafanaDashboardResponse": { "properties": { "grafana_dashboard": { "$ref": "#/components/schemas/configv1GrafanaDashboard" } }, "type": "object" }, "configv1UpdateLogAllocationConfigRequest": { "properties": { "create_if_missing": { "description": "If `true`, the LogAllocationConfig will be created if it does not already exist. If `false`, an error will be returned if the LogAllocationConfig does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the LogAllocationConfig. If the specified configuration is valid, the endpoint returns a partial response without the LogAllocationConfig. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "log_allocation_config": { "allOf": [ { "$ref": "#/components/schemas/configv1LogAllocationConfig" } ], "description": "The LogAllocationConfig to update." } }, "type": "object" }, "configv1UpdateLogAllocationConfigResponse": { "properties": { "log_allocation_config": { "$ref": "#/components/schemas/configv1LogAllocationConfig" } }, "type": "object" }, "configv1UpdateLogControlConfigRequest": { "properties": { "create_if_missing": { "description": "If `true`, the LogControlConfig will be created if it does not already exist. If `false`, an error will be returned if the LogControlConfig does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the LogControlConfig. If the specified configuration is valid, the endpoint returns a partial response without the LogControlConfig. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "log_control_config": { "allOf": [ { "$ref": "#/components/schemas/configv1LogControlConfig" } ], "description": "The LogControlConfig to update." } }, "type": "object" }, "configv1UpdateLogControlConfigResponse": { "properties": { "log_control_config": { "$ref": "#/components/schemas/configv1LogControlConfig" } }, "type": "object" }, "configv1UpdateLogIngestConfigRequest": { "properties": { "create_if_missing": { "description": "If `true`, the LogIngestConfig will be created if it does not already exist. If `false`, an error will be returned if the LogIngestConfig does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the LogIngestConfig. If the specified configuration is valid, the endpoint returns a partial response without the LogIngestConfig. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "log_ingest_config": { "allOf": [ { "$ref": "#/components/schemas/configv1LogIngestConfig" } ], "description": "The LogIngestConfig to update." } }, "type": "object" }, "configv1UpdateLogIngestConfigResponse": { "properties": { "log_ingest_config": { "$ref": "#/components/schemas/configv1LogIngestConfig" } }, "type": "object" }, "configv1UpdateLogRetentionConfigResponse": { "properties": { "log_retention_config": { "$ref": "#/components/schemas/configv1LogRetentionConfig" } }, "type": "object" }, "configv1UpdateMappingRuleResponse": { "properties": { "mapping_rule": { "$ref": "#/components/schemas/configv1MappingRule" } }, "type": "object" }, "configv1UpdateMonitorResponse": { "properties": { "monitor": { "$ref": "#/components/schemas/configv1Monitor" } }, "type": "object" }, "configv1UpdateMutingRuleResponse": { "properties": { "muting_rule": { "$ref": "#/components/schemas/configv1MutingRule" } }, "type": "object" }, "configv1UpdateNotificationPolicyResponse": { "properties": { "notification_policy": { "$ref": "#/components/schemas/configv1NotificationPolicy" } }, "type": "object" }, "configv1UpdateNotifierResponse": { "properties": { "notifier": { "$ref": "#/components/schemas/configv1Notifier" } }, "type": "object" }, "configv1UpdateOtelMetricsIngestionRequest": { "properties": { "create_if_missing": { "description": "If `true`, the OtelMetricsIngestion will be created if it does not already exist. If `false`, an error will be returned if the OtelMetricsIngestion does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the OtelMetricsIngestion. If the specified configuration is valid, the endpoint returns a partial response without the OtelMetricsIngestion. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "otel_metrics_ingestion": { "allOf": [ { "$ref": "#/components/schemas/configv1OtelMetricsIngestion" } ], "description": "The OtelMetricsIngestion to update." } }, "type": "object" }, "configv1UpdateOtelMetricsIngestionResponse": { "properties": { "otel_metrics_ingestion": { "$ref": "#/components/schemas/configv1OtelMetricsIngestion" } }, "type": "object" }, "configv1UpdateRecordingRuleResponse": { "properties": { "recording_rule": { "$ref": "#/components/schemas/configv1RecordingRule" } }, "type": "object" }, "configv1UpdateResourcePoolsRequest": { "properties": { "create_if_missing": { "description": "If `true`, the ResourcePools will be created if it does not already exist. If `false`, an error will be returned if the ResourcePools does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the ResourcePools. If the specified configuration is valid, the endpoint returns a partial response without the ResourcePools. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "resource_pools": { "allOf": [ { "$ref": "#/components/schemas/configv1ResourcePools" } ], "description": "The ResourcePools to update." } }, "type": "object" }, "configv1UpdateResourcePoolsResponse": { "properties": { "resource_pools": { "$ref": "#/components/schemas/configv1ResourcePools" } }, "type": "object" }, "configv1UpdateRollupRuleResponse": { "properties": { "rollup_rule": { "$ref": "#/components/schemas/configv1RollupRule" } }, "type": "object" }, "configv1UpdateSLOResponse": { "properties": { "slo": { "$ref": "#/components/schemas/configv1SLO" } }, "type": "object" }, "configv1UpdateServiceAttributeResponse": { "properties": { "service_attribute": { "$ref": "#/components/schemas/configv1ServiceAttribute" }, "service_slug": { "type": "string" } }, "type": "object" }, "configv1UpdateSyntheticTestResponse": { "properties": { "synthetic_test": { "$ref": "#/components/schemas/configv1SyntheticTest" } }, "type": "object" }, "configv1UpdateTeamResponse": { "properties": { "team": { "$ref": "#/components/schemas/configv1Team" } }, "type": "object" }, "configv1UpdateTraceBehaviorConfigRequest": { "properties": { "create_if_missing": { "description": "If `true`, the TraceBehaviorConfig will be created if it does not already exist. If `false`, an error will be returned if the TraceBehaviorConfig does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the TraceBehaviorConfig. If the specified configuration is valid, the endpoint returns a partial response without the TraceBehaviorConfig. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "trace_behavior_config": { "allOf": [ { "$ref": "#/components/schemas/configv1TraceBehaviorConfig" } ], "description": "The TraceBehaviorConfig to update." } }, "type": "object" }, "configv1UpdateTraceBehaviorConfigResponse": { "properties": { "trace_behavior_config": { "$ref": "#/components/schemas/configv1TraceBehaviorConfig" } }, "type": "object" }, "configv1UpdateTraceBehaviorResponse": { "properties": { "trace_behavior": { "$ref": "#/components/schemas/configv1TraceBehavior" } }, "type": "object" }, "configv1UpdateTraceJaegerRemoteSamplingStrategyResponse": { "properties": { "trace_jaeger_remote_sampling_strategy": { "$ref": "#/components/schemas/configv1TraceJaegerRemoteSamplingStrategy" } }, "type": "object" }, "configv1UpdateTraceMetricsRuleResponse": { "properties": { "trace_metrics_rule": { "$ref": "#/components/schemas/configv1TraceMetricsRule" } }, "type": "object" }, "configv1UpdateTraceTailSamplingRulesRequest": { "properties": { "create_if_missing": { "description": "If `true`, the TraceTailSamplingRules will be created if it does not already exist. If `false`, an error will be returned if the TraceTailSamplingRules does not already exist.", "type": "boolean" }, "dry_run": { "description": "If `true`, validates the specified configuration without creating or updating the TraceTailSamplingRules. If the specified configuration is valid, the endpoint returns a partial response without the TraceTailSamplingRules. If the specified configuration is invalid, the endpoint returns an error.", "type": "boolean" }, "trace_tail_sampling_rules": { "allOf": [ { "$ref": "#/components/schemas/configv1TraceTailSamplingRules" } ], "description": "The TraceTailSamplingRules to update." } }, "type": "object" }, "configv1UpdateTraceTailSamplingRulesResponse": { "properties": { "trace_tail_sampling_rules": { "$ref": "#/components/schemas/configv1TraceTailSamplingRules" } }, "type": "object" }, "genericError": { "additionalProperties": true, "type": "object" } }, "securitySchemes": { "ApiKeyAuth": { "description": "Chronosphere API token", "in": "header", "name": "API-Token", "type": "apiKey" } } }, "info": { "description": "\nThe Config API provides standard HTTP/JSON REST endpoints for creating, reading,\nupdating, deleting, and listing configurable Chronosphere resources.\n\nUse this link to download the raw Swagger specification:\n\u003ca href=\"/api/v1/config/swagger.json\"\u003e/api/v1/config/swagger.json\u003c/a\u003e\n", "title": "Config V1 API", "version": "v1" }, "openapi": "3.0.3", "paths": { "/api/v1/config/azure-metrics-integrations": { "get": { "operationId": "ListAzureMetricsIntegrations", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any AzureMetricsIntegration with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any AzureMetricsIntegration with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListAzureMetricsIntegrationsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "AzureMetricsIntegration" ] }, "post": { "operationId": "CreateAzureMetricsIntegration", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateAzureMetricsIntegrationRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateAzureMetricsIntegrationResponse" } } }, "description": "A successful response containing the created AzureMetricsIntegration." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the AzureMetricsIntegration because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the AzureMetricsIntegration because there is a conflict with an existing AzureMetricsIntegration." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "AzureMetricsIntegration" ] } }, "/api/v1/config/azure-metrics-integrations/{slug}": { "delete": { "operationId": "DeleteAzureMetricsIntegration", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteAzureMetricsIntegrationResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the AzureMetricsIntegration because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the AzureMetricsIntegration because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "AzureMetricsIntegration" ] }, "get": { "operationId": "ReadAzureMetricsIntegration", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadAzureMetricsIntegrationResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the AzureMetricsIntegration because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "AzureMetricsIntegration" ] }, "put": { "operationId": "UpdateAzureMetricsIntegration", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateAzureMetricsIntegrationBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateAzureMetricsIntegrationResponse" } } }, "description": "A successful response containing the updated AzureMetricsIntegration." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the AzureMetricsIntegration because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the AzureMetricsIntegration because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the AzureMetricsIntegration because there is a conflict with an existing AzureMetricsIntegration." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "AzureMetricsIntegration" ] } }, "/api/v1/config/buckets": { "get": { "operationId": "ListBuckets", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any Bucket with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any Bucket with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListBucketsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Bucket" ] }, "post": { "operationId": "CreateBucket", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateBucketRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateBucketResponse" } } }, "description": "A successful response containing the created Bucket." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the Bucket because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the Bucket because there is a conflict with an existing Bucket." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Bucket" ] } }, "/api/v1/config/buckets/{slug}": { "delete": { "operationId": "DeleteBucket", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } }, { "description": "force_delete indicates deletion of the bucket and all resources that reference the bucket.\nThis includes monitors, dashboards, notification policies, recording rules, and alerts.", "in": "query", "name": "force_delete", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteBucketResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the Bucket because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the Bucket because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Bucket" ] }, "get": { "operationId": "ReadBucket", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadBucketResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the Bucket because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Bucket" ] }, "put": { "operationId": "UpdateBucket", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateBucketBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateBucketResponse" } } }, "description": "A successful response containing the updated Bucket." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Bucket because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Bucket because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Bucket because there is a conflict with an existing Bucket." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Bucket" ] } }, "/api/v1/config/classic-dashboards": { "get": { "operationId": "ListClassicDashboards", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any ClassicDashboard with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by bucket_slug, where any ClassicDashboard with a matching bucket_slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "bucket_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by collection_slug, where any ClassicDashboard with a matching collection_slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "collection_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any ClassicDashboard with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Optional flag to populate the dashboard_json of the returned dashboards.\nBy default, dashboard_json will be left empty.", "in": "query", "name": "include_dashboard_json", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListClassicDashboardsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ClassicDashboard" ] }, "post": { "operationId": "CreateClassicDashboard", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateClassicDashboardRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateClassicDashboardResponse" } } }, "description": "A successful response containing the created GrafanaDashboard." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the GrafanaDashboard because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the GrafanaDashboard because there is a conflict with an existing GrafanaDashboard." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ClassicDashboard" ] } }, "/api/v1/config/classic-dashboards/{slug}": { "delete": { "operationId": "DeleteClassicDashboard", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteClassicDashboardResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the GrafanaDashboard because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the GrafanaDashboard because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ClassicDashboard" ] }, "get": { "operationId": "ReadClassicDashboard", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadClassicDashboardResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the GrafanaDashboard because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ClassicDashboard" ] }, "put": { "operationId": "UpdateClassicDashboard", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateClassicDashboardBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateClassicDashboardResponse" } } }, "description": "A successful response containing the updated GrafanaDashboard." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the GrafanaDashboard because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the GrafanaDashboard because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the GrafanaDashboard because there is a conflict with an existing GrafanaDashboard." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ClassicDashboard" ] } }, "/api/v1/config/cloud-integrations": { "get": { "operationId": "ListCloudIntegrations", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any CloudIntegration with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any CloudIntegration with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filter by integration state.\n\n - STATE_ENABLED: Integration is fully enabled and actively collecting metrics.\n - STATE_DISABLED: Integration is disabled and not collecting metrics.\n - STATE_PREVIEW: Integration is in preview mode for estimating cardinality/license\nimpact before full enablement.", "in": "query", "name": "states", "schema": { "items": { "enum": [ "STATE_ENABLED", "STATE_DISABLED", "STATE_PREVIEW" ], "type": "string" }, "type": "array" } }, { "description": "Filter by provider type.", "in": "query", "name": "provider_types", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListCloudIntegrationsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "CloudIntegration" ] }, "post": { "operationId": "CreateCloudIntegration", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateCloudIntegrationRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateCloudIntegrationResponse" } } }, "description": "A successful response containing the created CloudIntegration." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the CloudIntegration because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the CloudIntegration because there is a conflict with an existing CloudIntegration." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "CloudIntegration" ] } }, "/api/v1/config/cloud-integrations/{slug}": { "delete": { "operationId": "DeleteCloudIntegration", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteCloudIntegrationResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the CloudIntegration because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the CloudIntegration because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "CloudIntegration" ] }, "get": { "operationId": "ReadCloudIntegration", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadCloudIntegrationResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the CloudIntegration because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "CloudIntegration" ] }, "put": { "operationId": "UpdateCloudIntegration", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateCloudIntegrationBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateCloudIntegrationResponse" } } }, "description": "A successful response containing the updated CloudIntegration." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the CloudIntegration because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the CloudIntegration because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the CloudIntegration because there is a conflict with an existing CloudIntegration." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "CloudIntegration" ] } }, "/api/v1/config/collections": { "get": { "operationId": "ListCollections", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any Collection with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by team_slug, where any Collection with a matching team_slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "team_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any Collection with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Get collections that directly reference notification policies specified in\nthis array. To specify a notification policy, include its slug.", "in": "query", "name": "notification_policy_slugs", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListCollectionsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Collection" ] }, "post": { "operationId": "CreateCollection", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateCollectionRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateCollectionResponse" } } }, "description": "A successful response containing the created Collection." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the Collection because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the Collection because there is a conflict with an existing Collection." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Collection" ] } }, "/api/v1/config/collections/{slug}": { "delete": { "operationId": "DeleteCollection", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteCollectionResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the Collection because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the Collection because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Collection" ] }, "get": { "operationId": "ReadCollection", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadCollectionResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the Collection because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Collection" ] }, "put": { "operationId": "UpdateCollection", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateCollectionBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateCollectionResponse" } } }, "description": "A successful response containing the updated Collection." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Collection because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Collection because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Collection because there is a conflict with an existing Collection." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Collection" ] } }, "/api/v1/config/consumption-budgets": { "get": { "operationId": "ListConsumptionBudgets", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any ConsumptionBudget with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any ConsumptionBudget with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by partition_slug_path, where any ConsumptionBudget with a matching partition_slug_path in the given list (and matches all other filters) will be returned.", "in": "query", "name": "partition_slug_paths", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by resource, where any ConsumptionBudget with a matching resource in the given list (and matches all other filters) will be returned.", "in": "query", "name": "resources", "schema": { "items": { "enum": [ "LOG_PERSISTED_BYTES", "LOG_PROCESSED_BYTES", "METRIC_PERSISTED_SERIES", "METRIC_ALL", "LOG_ALL", "TRACE_PROCESSED_BYTES", "TRACE_PERSISTED_BYTES", "TRACE_ALL", "ALL" ], "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListConsumptionBudgetsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ConsumptionBudget" ] }, "post": { "operationId": "CreateConsumptionBudget", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateConsumptionBudgetRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateConsumptionBudgetResponse" } } }, "description": "A successful response containing the created ConsumptionBudget." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the ConsumptionBudget because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the ConsumptionBudget because there is a conflict with an existing ConsumptionBudget." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ConsumptionBudget" ] } }, "/api/v1/config/consumption-budgets/{slug}": { "delete": { "operationId": "DeleteConsumptionBudget", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteConsumptionBudgetResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the ConsumptionBudget because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the ConsumptionBudget because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ConsumptionBudget" ] }, "get": { "operationId": "ReadConsumptionBudget", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadConsumptionBudgetResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the ConsumptionBudget because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ConsumptionBudget" ] }, "put": { "operationId": "UpdateConsumptionBudget", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateConsumptionBudgetBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateConsumptionBudgetResponse" } } }, "description": "A successful response containing the updated ConsumptionBudget." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the ConsumptionBudget because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the ConsumptionBudget because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the ConsumptionBudget because there is a conflict with an existing ConsumptionBudget." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ConsumptionBudget" ] } }, "/api/v1/config/consumption-config": { "delete": { "operationId": "DeleteConsumptionConfig", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteConsumptionConfigResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the ConsumptionConfig because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the ConsumptionConfig because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ConsumptionConfig" ] }, "get": { "operationId": "ReadConsumptionConfig", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadConsumptionConfigResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the ConsumptionConfig because ConsumptionConfig has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ConsumptionConfig" ] }, "post": { "operationId": "CreateConsumptionConfig", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateConsumptionConfigRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateConsumptionConfigResponse" } } }, "description": "A successful response containing the created ConsumptionConfig." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the ConsumptionConfig because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the ConsumptionConfig because there is a conflict with an existing ConsumptionConfig." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ConsumptionConfig" ] }, "put": { "operationId": "UpdateConsumptionConfig", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateConsumptionConfigRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateConsumptionConfigResponse" } } }, "description": "A successful response containing the updated ConsumptionConfig." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the ConsumptionConfig because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the ConsumptionConfig because ConsumptionConfig has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ConsumptionConfig" ] } }, "/api/v1/config/dashboards": { "get": { "operationId": "ListDashboards", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any Dashboard with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by collection_slug, where any Dashboard with a matching collection_slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "collection_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any Dashboard with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Optional. Flag to populate the `dashboard_json` field of the returned\ndashboards. By default, `dashboard_json` is empty.", "in": "query", "name": "include_dashboard_json", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListDashboardsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Dashboard" ] }, "post": { "operationId": "CreateDashboard", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateDashboardRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateDashboardResponse" } } }, "description": "A successful response containing the created Dashboard." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the Dashboard because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the Dashboard because there is a conflict with an existing Dashboard." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Dashboard" ] } }, "/api/v1/config/dashboards/{slug}": { "delete": { "operationId": "DeleteDashboard", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteDashboardResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the Dashboard because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the Dashboard because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Dashboard" ] }, "get": { "operationId": "ReadDashboard", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadDashboardResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the Dashboard because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Dashboard" ] }, "put": { "operationId": "UpdateDashboard", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateDashboardBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateDashboardResponse" } } }, "description": "A successful response containing the updated Dashboard." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Dashboard because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Dashboard because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Dashboard because there is a conflict with an existing Dashboard." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Dashboard" ] } }, "/api/v1/config/datasets": { "get": { "operationId": "ListDatasets", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any Dataset with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any Dataset with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Custom filtering option: list filtered down to a specific telemetry type.", "in": "query", "name": "type", "schema": { "enum": [ "TRACES", "LOGS" ], "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListDatasetsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Dataset" ] }, "post": { "operationId": "CreateDataset", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateDatasetRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateDatasetResponse" } } }, "description": "A successful response containing the created Dataset." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the Dataset because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the Dataset because there is a conflict with an existing Dataset." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Dataset" ] } }, "/api/v1/config/datasets/{slug}": { "delete": { "operationId": "DeleteDataset", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteDatasetResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the Dataset because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the Dataset because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Dataset" ] }, "get": { "operationId": "ReadDataset", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadDatasetResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the Dataset because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Dataset" ] }, "put": { "operationId": "UpdateDataset", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateDatasetBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateDatasetResponse" } } }, "description": "A successful response containing the updated Dataset." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Dataset because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Dataset because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Dataset because there is a conflict with an existing Dataset." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Dataset" ] } }, "/api/v1/config/derived-labels": { "get": { "operationId": "ListDerivedLabels", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any DerivedLabel with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any DerivedLabel with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListDerivedLabelsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DerivedLabel" ] }, "post": { "operationId": "CreateDerivedLabel", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateDerivedLabelRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateDerivedLabelResponse" } } }, "description": "A successful response containing the created DerivedLabel." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the DerivedLabel because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the DerivedLabel because there is a conflict with an existing DerivedLabel." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DerivedLabel" ] } }, "/api/v1/config/derived-labels/{slug}": { "delete": { "operationId": "DeleteDerivedLabel", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteDerivedLabelResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the DerivedLabel because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the DerivedLabel because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DerivedLabel" ] }, "get": { "operationId": "ReadDerivedLabel", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadDerivedLabelResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the DerivedLabel because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DerivedLabel" ] }, "put": { "operationId": "UpdateDerivedLabel", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateDerivedLabelBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateDerivedLabelResponse" } } }, "description": "A successful response containing the updated DerivedLabel." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the DerivedLabel because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the DerivedLabel because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the DerivedLabel because there is a conflict with an existing DerivedLabel." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DerivedLabel" ] } }, "/api/v1/config/derived-metrics": { "get": { "operationId": "ListDerivedMetrics", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any DerivedMetric with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any DerivedMetric with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListDerivedMetricsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DerivedMetric" ] }, "post": { "operationId": "CreateDerivedMetric", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateDerivedMetricRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateDerivedMetricResponse" } } }, "description": "A successful response containing the created DerivedMetric." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the DerivedMetric because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the DerivedMetric because there is a conflict with an existing DerivedMetric." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DerivedMetric" ] } }, "/api/v1/config/derived-metrics/{slug}": { "delete": { "operationId": "DeleteDerivedMetric", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteDerivedMetricResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the DerivedMetric because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the DerivedMetric because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DerivedMetric" ] }, "get": { "operationId": "ReadDerivedMetric", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadDerivedMetricResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the DerivedMetric because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DerivedMetric" ] }, "put": { "operationId": "UpdateDerivedMetric", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateDerivedMetricBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateDerivedMetricResponse" } } }, "description": "A successful response containing the updated DerivedMetric." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the DerivedMetric because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the DerivedMetric because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the DerivedMetric because there is a conflict with an existing DerivedMetric." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DerivedMetric" ] } }, "/api/v1/config/drop-rules": { "get": { "operationId": "ListDropRules", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any DropRule with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any DropRule with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListDropRulesResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DropRule" ] }, "post": { "operationId": "CreateDropRule", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateDropRuleRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateDropRuleResponse" } } }, "description": "A successful response containing the created DropRule." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the DropRule because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the DropRule because there is a conflict with an existing DropRule." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DropRule" ] } }, "/api/v1/config/drop-rules/{slug}": { "delete": { "operationId": "DeleteDropRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteDropRuleResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the DropRule because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the DropRule because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DropRule" ] }, "get": { "operationId": "ReadDropRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadDropRuleResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the DropRule because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DropRule" ] }, "put": { "operationId": "UpdateDropRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateDropRuleBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateDropRuleResponse" } } }, "description": "A successful response containing the updated DropRule." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the DropRule because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the DropRule because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the DropRule because there is a conflict with an existing DropRule." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "DropRule" ] } }, "/api/v1/config/external-connections": { "get": { "operationId": "ListExternalConnections", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any ExternalConnection with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any ExternalConnection with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "in": "query", "name": "connection_types", "schema": { "items": { "enum": [ "SLACK", "PAGERDUTY", "WEBHOOK", "VICTOROPS", "OPSGENIE", "CLOUDFLARE", "MONGODB_ATLAS", "SENDGRID", "DATADOG" ], "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListExternalConnectionsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ExternalConnection" ] }, "post": { "operationId": "CreateExternalConnection", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateExternalConnectionRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateExternalConnectionResponse" } } }, "description": "A successful response containing the created ExternalConnection." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the ExternalConnection because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the ExternalConnection because there is a conflict with an existing ExternalConnection." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ExternalConnection" ] } }, "/api/v1/config/external-connections/{slug}": { "delete": { "operationId": "DeleteExternalConnection", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteExternalConnectionResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the ExternalConnection because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the ExternalConnection because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ExternalConnection" ] }, "get": { "operationId": "ReadExternalConnection", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadExternalConnectionResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the ExternalConnection because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ExternalConnection" ] }, "put": { "operationId": "UpdateExternalConnection", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateExternalConnectionBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateExternalConnectionResponse" } } }, "description": "A successful response containing the updated ExternalConnection." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the ExternalConnection because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the ExternalConnection because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the ExternalConnection because there is a conflict with an existing ExternalConnection." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ExternalConnection" ] } }, "/api/v1/config/gcp-metrics-integrations": { "get": { "operationId": "ListGcpMetricsIntegrations", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any GcpMetricsIntegration with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any GcpMetricsIntegration with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListGcpMetricsIntegrationsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "GcpMetricsIntegration" ] }, "post": { "operationId": "CreateGcpMetricsIntegration", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateGcpMetricsIntegrationRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateGcpMetricsIntegrationResponse" } } }, "description": "A successful response containing the created GcpMetricsIntegration." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the GcpMetricsIntegration because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the GcpMetricsIntegration because there is a conflict with an existing GcpMetricsIntegration." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "GcpMetricsIntegration" ] } }, "/api/v1/config/gcp-metrics-integrations/{slug}": { "delete": { "operationId": "DeleteGcpMetricsIntegration", "parameters": [ { "description": "The unique slug that identifies the GcpMetricsIntegration to delete.", "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteGcpMetricsIntegrationResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the GcpMetricsIntegration because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the GcpMetricsIntegration because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "GcpMetricsIntegration" ] }, "get": { "operationId": "ReadGcpMetricsIntegration", "parameters": [ { "description": "The unique slug that identifies the GcpMetricsIntegration to read.", "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadGcpMetricsIntegrationResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the GcpMetricsIntegration because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "GcpMetricsIntegration" ] }, "put": { "operationId": "UpdateGcpMetricsIntegration", "parameters": [ { "description": "The unique slug that identifies the GcpMetricsIntegration to update.", "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateGcpMetricsIntegrationBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateGcpMetricsIntegrationResponse" } } }, "description": "A successful response containing the updated GcpMetricsIntegration." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the GcpMetricsIntegration because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the GcpMetricsIntegration because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the GcpMetricsIntegration because there is a conflict with an existing GcpMetricsIntegration." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "GcpMetricsIntegration" ] } }, "/api/v1/config/grafana-dashboards": { "get": { "operationId": "ListGrafanaDashboards", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any GrafanaDashboard with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by bucket_slug, where any GrafanaDashboard with a matching bucket_slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "bucket_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by collection_slug, where any GrafanaDashboard with a matching collection_slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "collection_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any GrafanaDashboard with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Optional flag to populate the dashboard_json of the returned dashboards.\nBy default, dashboard_json will be left empty.", "in": "query", "name": "include_dashboard_json", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListGrafanaDashboardsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "GrafanaDashboard" ] }, "post": { "operationId": "CreateGrafanaDashboard", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateGrafanaDashboardRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateGrafanaDashboardResponse" } } }, "description": "A successful response containing the created GrafanaDashboard." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the GrafanaDashboard because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the GrafanaDashboard because there is a conflict with an existing GrafanaDashboard." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "GrafanaDashboard" ] } }, "/api/v1/config/grafana-dashboards/{slug}": { "delete": { "operationId": "DeleteGrafanaDashboard", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteGrafanaDashboardResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the GrafanaDashboard because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the GrafanaDashboard because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "GrafanaDashboard" ] }, "get": { "operationId": "ReadGrafanaDashboard", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadGrafanaDashboardResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the GrafanaDashboard because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "GrafanaDashboard" ] }, "put": { "operationId": "UpdateGrafanaDashboard", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateGrafanaDashboardBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateGrafanaDashboardResponse" } } }, "description": "A successful response containing the updated GrafanaDashboard." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the GrafanaDashboard because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the GrafanaDashboard because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the GrafanaDashboard because there is a conflict with an existing GrafanaDashboard." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "GrafanaDashboard" ] } }, "/api/v1/config/log-allocation-config": { "delete": { "operationId": "DeleteLogAllocationConfig", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteLogAllocationConfigResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the LogAllocationConfig because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the LogAllocationConfig because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogAllocationConfig" ] }, "get": { "operationId": "ReadLogAllocationConfig", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadLogAllocationConfigResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the LogAllocationConfig because LogAllocationConfig has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogAllocationConfig" ] }, "post": { "operationId": "CreateLogAllocationConfig", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateLogAllocationConfigRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateLogAllocationConfigResponse" } } }, "description": "A successful response containing the created LogAllocationConfig." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the LogAllocationConfig because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the LogAllocationConfig because there is a conflict with an existing LogAllocationConfig." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogAllocationConfig" ] }, "put": { "operationId": "UpdateLogAllocationConfig", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateLogAllocationConfigRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateLogAllocationConfigResponse" } } }, "description": "A successful response containing the updated LogAllocationConfig." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the LogAllocationConfig because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the LogAllocationConfig because LogAllocationConfig has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogAllocationConfig" ] } }, "/api/v1/config/log-control-config": { "delete": { "operationId": "DeleteLogControlConfig", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteLogControlConfigResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the LogControlConfig because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the LogControlConfig because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogControlConfig" ] }, "get": { "operationId": "ReadLogControlConfig", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadLogControlConfigResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the LogControlConfig because LogControlConfig has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogControlConfig" ] }, "post": { "operationId": "CreateLogControlConfig", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateLogControlConfigRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateLogControlConfigResponse" } } }, "description": "A successful response containing the created LogControlConfig." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the LogControlConfig because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the LogControlConfig because there is a conflict with an existing LogControlConfig." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogControlConfig" ] }, "put": { "operationId": "UpdateLogControlConfig", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateLogControlConfigRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateLogControlConfigResponse" } } }, "description": "A successful response containing the updated LogControlConfig." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the LogControlConfig because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the LogControlConfig because LogControlConfig has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogControlConfig" ] } }, "/api/v1/config/log-ingest-config": { "delete": { "operationId": "DeleteLogIngestConfig", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteLogIngestConfigResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the LogIngestConfig because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the LogIngestConfig because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogIngestConfig" ] }, "get": { "operationId": "ReadLogIngestConfig", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadLogIngestConfigResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the LogIngestConfig because LogIngestConfig has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogIngestConfig" ] }, "post": { "operationId": "CreateLogIngestConfig", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateLogIngestConfigRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateLogIngestConfigResponse" } } }, "description": "A successful response containing the created LogIngestConfig." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the LogIngestConfig because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the LogIngestConfig because there is a conflict with an existing LogIngestConfig." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogIngestConfig" ] }, "put": { "operationId": "UpdateLogIngestConfig", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateLogIngestConfigRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateLogIngestConfigResponse" } } }, "description": "A successful response containing the updated LogIngestConfig." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the LogIngestConfig because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the LogIngestConfig because LogIngestConfig has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogIngestConfig" ] } }, "/api/v1/config/log-retention-configs": { "get": { "operationId": "ListLogRetentionConfigs", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any LogRetentionConfig with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any LogRetentionConfig with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListLogRetentionConfigsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogRetentionConfig" ] }, "post": { "operationId": "CreateLogRetentionConfig", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateLogRetentionConfigRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateLogRetentionConfigResponse" } } }, "description": "A successful response containing the created LogRetentionConfig." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the LogRetentionConfig because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the LogRetentionConfig because there is a conflict with an existing LogRetentionConfig." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogRetentionConfig" ] } }, "/api/v1/config/log-retention-configs/{slug}": { "delete": { "operationId": "DeleteLogRetentionConfig", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteLogRetentionConfigResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the LogRetentionConfig because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the LogRetentionConfig because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogRetentionConfig" ] }, "get": { "operationId": "ReadLogRetentionConfig", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadLogRetentionConfigResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the LogRetentionConfig because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogRetentionConfig" ] }, "put": { "operationId": "UpdateLogRetentionConfig", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateLogRetentionConfigBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateLogRetentionConfigResponse" } } }, "description": "A successful response containing the updated LogRetentionConfig." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the LogRetentionConfig because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the LogRetentionConfig because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the LogRetentionConfig because there is a conflict with an existing LogRetentionConfig." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "LogRetentionConfig" ] } }, "/api/v1/config/mapping-rules": { "get": { "operationId": "ListMappingRules", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any MappingRule with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by bucket_slug, where any MappingRule with a matching bucket_slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "bucket_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any MappingRule with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListMappingRulesResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "MappingRule" ] }, "post": { "operationId": "CreateMappingRule", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateMappingRuleRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateMappingRuleResponse" } } }, "description": "A successful response containing the created MappingRule." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the MappingRule because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the MappingRule because there is a conflict with an existing MappingRule." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "MappingRule" ] } }, "/api/v1/config/mapping-rules/{slug}": { "delete": { "operationId": "DeleteMappingRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteMappingRuleResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the MappingRule because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the MappingRule because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "MappingRule" ] }, "get": { "operationId": "ReadMappingRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadMappingRuleResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the MappingRule because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "MappingRule" ] }, "put": { "operationId": "UpdateMappingRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateMappingRuleBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateMappingRuleResponse" } } }, "description": "A successful response containing the updated MappingRule." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the MappingRule because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the MappingRule because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the MappingRule because there is a conflict with an existing MappingRule." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "MappingRule" ] } }, "/api/v1/config/monitors": { "get": { "operationId": "ListMonitors", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any Monitor with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by bucket_slug, where any Monitor with a matching bucket_slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "bucket_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by collection_slug, where any Monitor with a matching collection_slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "collection_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any Monitor with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filter returned monitors by the teams that own the collections that they belong to.", "in": "query", "name": "team_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filter that returns monitors whose name contains this string. The filter is not\ncase sensitive.", "in": "query", "name": "name_contains", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListMonitorsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Monitor" ] }, "post": { "operationId": "CreateMonitor", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateMonitorRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateMonitorResponse" } } }, "description": "A successful response containing the created Monitor." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the Monitor because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the Monitor because there is a conflict with an existing Monitor." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Monitor" ] } }, "/api/v1/config/monitors/{slug}": { "delete": { "operationId": "DeleteMonitor", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteMonitorResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the Monitor because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the Monitor because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Monitor" ] }, "get": { "operationId": "ReadMonitor", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadMonitorResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the Monitor because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Monitor" ] }, "put": { "operationId": "UpdateMonitor", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateMonitorBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateMonitorResponse" } } }, "description": "A successful response containing the updated Monitor." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Monitor because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Monitor because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Monitor because there is a conflict with an existing Monitor." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Monitor" ] } }, "/api/v1/config/muting-rules": { "get": { "operationId": "ListMutingRules", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any MutingRule with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any MutingRule with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Lists muting rules filtered by the states. If empty, all muting rules are\nincluded.", "in": "query", "name": "states", "schema": { "items": { "enum": [ "PENDING", "ACTIVE", "EXPIRED" ], "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListMutingRulesResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "MutingRule" ] }, "post": { "operationId": "CreateMutingRule", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateMutingRuleRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateMutingRuleResponse" } } }, "description": "A successful response containing the created MutingRule." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the MutingRule because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the MutingRule because there is a conflict with an existing MutingRule." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "MutingRule" ] } }, "/api/v1/config/muting-rules/{slug}": { "delete": { "operationId": "DeleteMutingRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteMutingRuleResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the MutingRule because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the MutingRule because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "MutingRule" ] }, "get": { "operationId": "ReadMutingRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadMutingRuleResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the MutingRule because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "MutingRule" ] }, "put": { "operationId": "UpdateMutingRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateMutingRuleBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateMutingRuleResponse" } } }, "description": "A successful response containing the updated MutingRule." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the MutingRule because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the MutingRule because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the MutingRule because there is a conflict with an existing MutingRule." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "MutingRule" ] } }, "/api/v1/config/notification-policies": { "get": { "operationId": "ListNotificationPolicies", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any NotificationPolicy with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any NotificationPolicy with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by bucket_slug, where any NotificationPolicy with a matching bucket_slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "bucket_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by team_slug, where any NotificationPolicy with a matching team_slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "team_slugs", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListNotificationPoliciesResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "NotificationPolicy" ] }, "post": { "operationId": "CreateNotificationPolicy", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateNotificationPolicyRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateNotificationPolicyResponse" } } }, "description": "A successful response containing the created NotificationPolicy." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the NotificationPolicy because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the NotificationPolicy because there is a conflict with an existing NotificationPolicy." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "NotificationPolicy" ] } }, "/api/v1/config/notification-policies/{slug}": { "delete": { "operationId": "DeleteNotificationPolicy", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteNotificationPolicyResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the NotificationPolicy because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the NotificationPolicy because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "NotificationPolicy" ] }, "get": { "operationId": "ReadNotificationPolicy", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadNotificationPolicyResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the NotificationPolicy because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "NotificationPolicy" ] }, "put": { "operationId": "UpdateNotificationPolicy", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateNotificationPolicyBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateNotificationPolicyResponse" } } }, "description": "A successful response containing the updated NotificationPolicy." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the NotificationPolicy because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the NotificationPolicy because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the NotificationPolicy because there is a conflict with an existing NotificationPolicy." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "NotificationPolicy" ] } }, "/api/v1/config/notifiers": { "get": { "operationId": "ListNotifiers", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any Notifier with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any Notifier with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListNotifiersResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Notifier" ] }, "post": { "operationId": "CreateNotifier", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateNotifierRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateNotifierResponse" } } }, "description": "A successful response containing the created Notifier." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the Notifier because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the Notifier because there is a conflict with an existing Notifier." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Notifier" ] } }, "/api/v1/config/notifiers/{slug}": { "delete": { "operationId": "DeleteNotifier", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteNotifierResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the Notifier because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the Notifier because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Notifier" ] }, "get": { "operationId": "ReadNotifier", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadNotifierResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the Notifier because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Notifier" ] }, "put": { "operationId": "UpdateNotifier", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateNotifierBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateNotifierResponse" } } }, "description": "A successful response containing the updated Notifier." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Notifier because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Notifier because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Notifier because there is a conflict with an existing Notifier." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Notifier" ] } }, "/api/v1/config/otel-metrics-ingestion": { "delete": { "operationId": "DeleteOtelMetricsIngestion", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteOtelMetricsIngestionResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the OtelMetricsIngestion because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the OtelMetricsIngestion because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "OtelMetricsIngestion" ] }, "get": { "operationId": "ReadOtelMetricsIngestion", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadOtelMetricsIngestionResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the OtelMetricsIngestion because OtelMetricsIngestion has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "OtelMetricsIngestion" ] }, "post": { "operationId": "CreateOtelMetricsIngestion", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateOtelMetricsIngestionRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateOtelMetricsIngestionResponse" } } }, "description": "A successful response containing the created OtelMetricsIngestion." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the OtelMetricsIngestion because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the OtelMetricsIngestion because there is a conflict with an existing OtelMetricsIngestion." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "OtelMetricsIngestion" ] }, "put": { "operationId": "UpdateOtelMetricsIngestion", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateOtelMetricsIngestionRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateOtelMetricsIngestionResponse" } } }, "description": "A successful response containing the updated OtelMetricsIngestion." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the OtelMetricsIngestion because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the OtelMetricsIngestion because OtelMetricsIngestion has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "OtelMetricsIngestion" ] } }, "/api/v1/config/recording-rules": { "get": { "operationId": "ListRecordingRules", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any RecordingRule with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any RecordingRule with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "The execution_groups filter cannot be used when a bucket_slug filter is provided.", "in": "query", "name": "bucket_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "The bucket_slugs filter cannot be used when an execution_group filter is provided.", "in": "query", "name": "execution_groups", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListRecordingRulesResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "RecordingRule" ] }, "post": { "operationId": "CreateRecordingRule", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateRecordingRuleRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateRecordingRuleResponse" } } }, "description": "A successful response containing the created RecordingRule." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the RecordingRule because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the RecordingRule because there is a conflict with an existing RecordingRule." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "RecordingRule" ] } }, "/api/v1/config/recording-rules/{slug}": { "delete": { "operationId": "DeleteRecordingRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteRecordingRuleResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the RecordingRule because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the RecordingRule because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "RecordingRule" ] }, "get": { "operationId": "ReadRecordingRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadRecordingRuleResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the RecordingRule because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "RecordingRule" ] }, "put": { "operationId": "UpdateRecordingRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateRecordingRuleBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateRecordingRuleResponse" } } }, "description": "A successful response containing the updated RecordingRule." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the RecordingRule because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the RecordingRule because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the RecordingRule because there is a conflict with an existing RecordingRule." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "RecordingRule" ] } }, "/api/v1/config/resource-pools": { "delete": { "operationId": "DeleteResourcePools", "parameters": [ { "in": "query", "name": "dry_run", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteResourcePoolsResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the ResourcePools because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the ResourcePools because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ResourcePools" ] }, "get": { "operationId": "ReadResourcePools", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadResourcePoolsResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the ResourcePools because ResourcePools has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ResourcePools" ] }, "post": { "description": "ResourcePools CRUD (subset for singleton objects)", "operationId": "CreateResourcePools", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateResourcePoolsRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateResourcePoolsResponse" } } }, "description": "A successful response containing the created ResourcePools." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the ResourcePools because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the ResourcePools because there is a conflict with an existing ResourcePools." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ResourcePools" ] }, "put": { "operationId": "UpdateResourcePools", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateResourcePoolsRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateResourcePoolsResponse" } } }, "description": "A successful response containing the updated ResourcePools." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the ResourcePools because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the ResourcePools because ResourcePools has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ResourcePools" ] } }, "/api/v1/config/rollup-rules": { "get": { "operationId": "ListRollupRules", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any RollupRule with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any RollupRule with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by bucket_slug, where any RollupRule with a matching bucket_slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "bucket_slugs", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListRollupRulesResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "RollupRule" ] }, "post": { "operationId": "CreateRollupRule", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateRollupRuleRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateRollupRuleResponse" } } }, "description": "A successful response containing the created RollupRule." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the RollupRule because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the RollupRule because there is a conflict with an existing RollupRule." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "RollupRule" ] } }, "/api/v1/config/rollup-rules/{slug}": { "delete": { "operationId": "DeleteRollupRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteRollupRuleResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the RollupRule because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the RollupRule because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "RollupRule" ] }, "get": { "operationId": "ReadRollupRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadRollupRuleResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the RollupRule because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "RollupRule" ] }, "put": { "operationId": "UpdateRollupRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateRollupRuleBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateRollupRuleResponse" } } }, "description": "A successful response containing the updated RollupRule." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the RollupRule because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the RollupRule because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the RollupRule because there is a conflict with an existing RollupRule." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "RollupRule" ] } }, "/api/v1/config/service-accounts": { "get": { "operationId": "ListServiceAccounts", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any ServiceAccount with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any ServiceAccount with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListServiceAccountsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ServiceAccount" ] }, "post": { "operationId": "CreateServiceAccount", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateServiceAccountRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateServiceAccountResponse" } } }, "description": "A successful response containing the created ServiceAccount." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the ServiceAccount because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the ServiceAccount because there is a conflict with an existing ServiceAccount." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ServiceAccount" ] } }, "/api/v1/config/service-accounts/{slug}": { "delete": { "operationId": "DeleteServiceAccount", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteServiceAccountResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the ServiceAccount because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the ServiceAccount because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ServiceAccount" ] }, "get": { "operationId": "ReadServiceAccount", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadServiceAccountResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the ServiceAccount because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ServiceAccount" ] } }, "/api/v1/config/service-attributes": { "get": { "operationId": "ListServiceAttributes", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListServiceAttributesResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "ServiceAttribute" ] } }, "/api/v1/config/services": { "get": { "operationId": "ListServices", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any Service with a matching slug in the given\nlist that matches all other filters is returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by `team_slug`, where any Service with a matching `team_slug` in\nthe given list that matches all other filters is returned.", "in": "query", "name": "team_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by `name`, where any Service with a matching `name` in the given\nlist that matches all other filters is returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by `notification_policy_slug`, where any Service with a matching\n`notification_policy_slug` in the given list that matches all other filters is\nreturned.", "in": "query", "name": "notification_policy_slugs", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListServicesResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Service" ] } }, "/api/v1/config/services/{service_slug}/attributes": { "delete": { "operationId": "DeleteServiceAttribute", "parameters": [ { "in": "path", "name": "service_slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteServiceAttributeResponse" } } }, "description": "A successful response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." } }, "tags": [ "ConfigV1" ] }, "get": { "operationId": "ReadServiceAttribute", "parameters": [ { "in": "path", "name": "service_slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadServiceAttributeResponse" } } }, "description": "A successful response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." } }, "tags": [ "ConfigV1" ] }, "post": { "operationId": "CreateServiceAttribute", "parameters": [ { "in": "path", "name": "service_slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1CreateServiceAttributeBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateServiceAttributeResponse" } } }, "description": "A successful response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." } }, "tags": [ "ConfigV1" ] }, "put": { "operationId": "UpdateServiceAttribute", "parameters": [ { "in": "path", "name": "service_slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateServiceAttributeBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateServiceAttributeResponse" } } }, "description": "A successful response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." } }, "tags": [ "ConfigV1" ] } }, "/api/v1/config/services/{slug}": { "get": { "operationId": "ReadService", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadServiceResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the Service because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Service" ] } }, "/api/v1/config/slos": { "get": { "operationId": "ListSLOs", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any SLO with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any SLO with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "in": "query", "name": "collection_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "in": "query", "name": "service_slugs", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListSLOsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "SLO" ] }, "post": { "operationId": "CreateSLO", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateSLORequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateSLOResponse" } } }, "description": "A successful response containing the created SLO." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the SLO because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the SLO because there is a conflict with an existing SLO." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "SLO" ] } }, "/api/v1/config/slos/{slug}": { "delete": { "operationId": "DeleteSLO", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteSLOResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the SLO because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the SLO because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "SLO" ] }, "get": { "operationId": "ReadSLO", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadSLOResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the SLO because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "SLO" ] }, "put": { "operationId": "UpdateSLO", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateSLOBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateSLOResponse" } } }, "description": "A successful response containing the updated SLO." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the SLO because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the SLO because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the SLO because there is a conflict with an existing SLO." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "SLO" ] } }, "/api/v1/config/synthetic-tests": { "get": { "operationId": "ListSyntheticTests", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any SyntheticTest with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any SyntheticTest with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by test_type, where any SyntheticTest with a matching test_type in the given list (and matches all other filters) will be returned.", "in": "query", "name": "test_types", "schema": { "items": { "enum": [ "HTTP", "DNS", "TCP", "TLS" ], "type": "string" }, "type": "array" } }, { "in": "query", "name": "statuses", "schema": { "items": { "enum": [ "ENABLED", "PAUSED" ], "type": "string" }, "type": "array" } }, { "description": "Filter returned tests by the collections that own them.", "in": "query", "name": "collection_slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filter returned tests by the teams that own the collections they belong to.", "in": "query", "name": "team_slugs", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListSyntheticTestsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "SyntheticTest" ] }, "post": { "operationId": "CreateSyntheticTest", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateSyntheticTestRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateSyntheticTestResponse" } } }, "description": "A successful response containing the created SyntheticTest." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the SyntheticTest because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the SyntheticTest because there is a conflict with an existing SyntheticTest." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "SyntheticTest" ] } }, "/api/v1/config/synthetic-tests/{slug}": { "delete": { "operationId": "DeleteSyntheticTest", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteSyntheticTestResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the SyntheticTest because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the SyntheticTest because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "SyntheticTest" ] }, "get": { "operationId": "ReadSyntheticTest", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadSyntheticTestResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the SyntheticTest because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "SyntheticTest" ] }, "put": { "operationId": "UpdateSyntheticTest", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateSyntheticTestBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateSyntheticTestResponse" } } }, "description": "A successful response containing the updated SyntheticTest." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the SyntheticTest because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the SyntheticTest because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the SyntheticTest because there is a conflict with an existing SyntheticTest." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "SyntheticTest" ] } }, "/api/v1/config/teams": { "get": { "operationId": "ListTeams", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any Team with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any Team with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListTeamsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Team" ] }, "post": { "operationId": "CreateTeam", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateTeamRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateTeamResponse" } } }, "description": "A successful response containing the created Team." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the Team because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the Team because there is a conflict with an existing Team." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Team" ] } }, "/api/v1/config/teams/{slug}": { "delete": { "operationId": "DeleteTeam", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteTeamResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the Team because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the Team because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Team" ] }, "get": { "operationId": "ReadTeam", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadTeamResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the Team because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Team" ] }, "put": { "operationId": "UpdateTeam", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateTeamBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateTeamResponse" } } }, "description": "A successful response containing the updated Team." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Team because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Team because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the Team because there is a conflict with an existing Team." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "Team" ] } }, "/api/v1/config/trace-behavior-config": { "delete": { "operationId": "DeleteTraceBehaviorConfig", "parameters": [ { "in": "query", "name": "dry_run", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteTraceBehaviorConfigResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the TraceBehaviorConfig because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the TraceBehaviorConfig because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceBehaviorConfig" ] }, "get": { "operationId": "ReadTraceBehaviorConfig", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadTraceBehaviorConfigResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the TraceBehaviorConfig because TraceBehaviorConfig has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceBehaviorConfig" ] }, "post": { "operationId": "CreateTraceBehaviorConfig", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateTraceBehaviorConfigRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateTraceBehaviorConfigResponse" } } }, "description": "A successful response containing the created TraceBehaviorConfig." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the TraceBehaviorConfig because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the TraceBehaviorConfig because there is a conflict with an existing TraceBehaviorConfig." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceBehaviorConfig" ] }, "put": { "operationId": "UpdateTraceBehaviorConfig", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateTraceBehaviorConfigRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateTraceBehaviorConfigResponse" } } }, "description": "A successful response containing the updated TraceBehaviorConfig." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the TraceBehaviorConfig because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the TraceBehaviorConfig because TraceBehaviorConfig has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceBehaviorConfig" ] } }, "/api/v1/config/trace-behaviors": { "get": { "operationId": "ListTraceBehaviors", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any TraceBehavior with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any TraceBehavior with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListTraceBehaviorsResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceBehavior" ] }, "post": { "operationId": "CreateTraceBehavior", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateTraceBehaviorRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateTraceBehaviorResponse" } } }, "description": "A successful response containing the created TraceBehavior." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the TraceBehavior because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the TraceBehavior because there is a conflict with an existing TraceBehavior." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceBehavior" ] } }, "/api/v1/config/trace-behaviors/{slug}": { "delete": { "operationId": "DeleteTraceBehavior", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteTraceBehaviorResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the TraceBehavior because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the TraceBehavior because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceBehavior" ] }, "get": { "operationId": "ReadTraceBehavior", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadTraceBehaviorResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the TraceBehavior because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceBehavior" ] }, "put": { "operationId": "UpdateTraceBehavior", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateTraceBehaviorBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateTraceBehaviorResponse" } } }, "description": "A successful response containing the updated TraceBehavior." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the TraceBehavior because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the TraceBehavior because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the TraceBehavior because there is a conflict with an existing TraceBehavior." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceBehavior" ] } }, "/api/v1/config/trace-jaeger-remote-sampling-strategies": { "get": { "operationId": "ListTraceJaegerRemoteSamplingStrategies", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any TraceJaegerRemoteSamplingStrategy with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any TraceJaegerRemoteSamplingStrategy with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by service_name, where any TraceJaegerRemoteSamplingStrategy with a matching service_name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "service_names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "in": "query", "name": "name_or_service_contains", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListTraceJaegerRemoteSamplingStrategiesResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceJaegerRemoteSamplingStrategy" ] }, "post": { "operationId": "CreateTraceJaegerRemoteSamplingStrategy", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateTraceJaegerRemoteSamplingStrategyRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateTraceJaegerRemoteSamplingStrategyResponse" } } }, "description": "A successful response containing the created TraceJaegerRemoteSamplingStrategy." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the TraceJaegerRemoteSamplingStrategy because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the TraceJaegerRemoteSamplingStrategy because there is a conflict with an existing TraceJaegerRemoteSamplingStrategy." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceJaegerRemoteSamplingStrategy" ] } }, "/api/v1/config/trace-jaeger-remote-sampling-strategies/{slug}": { "delete": { "operationId": "DeleteTraceJaegerRemoteSamplingStrategy", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteTraceJaegerRemoteSamplingStrategyResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the TraceJaegerRemoteSamplingStrategy because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the TraceJaegerRemoteSamplingStrategy because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceJaegerRemoteSamplingStrategy" ] }, "get": { "operationId": "ReadTraceJaegerRemoteSamplingStrategy", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadTraceJaegerRemoteSamplingStrategyResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the TraceJaegerRemoteSamplingStrategy because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceJaegerRemoteSamplingStrategy" ] }, "put": { "operationId": "UpdateTraceJaegerRemoteSamplingStrategy", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateTraceJaegerRemoteSamplingStrategyBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateTraceJaegerRemoteSamplingStrategyResponse" } } }, "description": "A successful response containing the updated TraceJaegerRemoteSamplingStrategy." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the TraceJaegerRemoteSamplingStrategy because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the TraceJaegerRemoteSamplingStrategy because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the TraceJaegerRemoteSamplingStrategy because there is a conflict with an existing TraceJaegerRemoteSamplingStrategy." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceJaegerRemoteSamplingStrategy" ] } }, "/api/v1/config/trace-metrics-rules": { "get": { "operationId": "ListTraceMetricsRules", "parameters": [ { "description": "Sets the preferred number of items to return per page. If set to `0`, the\nserver will use its default value. Regardless of the value specified, clients\nmust never assume how many items will be returned.", "in": "query", "name": "page.max_size", "schema": { "format": "int64", "type": "integer" } }, { "description": "An opaque page token that identifies which page the client should request.\nAn empty value indicates the first page.", "in": "query", "name": "page.token", "schema": { "type": "string" } }, { "description": "Filters results by slug, where any TraceMetricsRule with a matching slug in the given list (and matches all other filters) will be returned.", "in": "query", "name": "slugs", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Filters results by name, where any TraceMetricsRule with a matching name in the given list (and matches all other filters) will be returned.", "in": "query", "name": "names", "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Get trace metric rules by name.", "in": "query", "name": "metric_names", "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ListTraceMetricsRulesResponse" } } }, "description": "A successful response." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceMetricsRule" ] }, "post": { "description": "***\nTrace Metrics Rules\n***", "operationId": "CreateTraceMetricsRule", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateTraceMetricsRuleRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateTraceMetricsRuleResponse" } } }, "description": "A successful response containing the created TraceMetricsRule." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the TraceMetricsRule because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the TraceMetricsRule because there is a conflict with an existing TraceMetricsRule." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceMetricsRule" ] } }, "/api/v1/config/trace-metrics-rules/{slug}": { "delete": { "operationId": "DeleteTraceMetricsRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteTraceMetricsRuleResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the TraceMetricsRule because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the TraceMetricsRule because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceMetricsRule" ] }, "get": { "operationId": "ReadTraceMetricsRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadTraceMetricsRuleResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the TraceMetricsRule because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceMetricsRule" ] }, "put": { "operationId": "UpdateTraceMetricsRule", "parameters": [ { "in": "path", "name": "slug", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigV1UpdateTraceMetricsRuleBody" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateTraceMetricsRuleResponse" } } }, "description": "A successful response containing the updated TraceMetricsRule." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the TraceMetricsRule because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the TraceMetricsRule because the slug does not exist." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the TraceMetricsRule because there is a conflict with an existing TraceMetricsRule." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceMetricsRule" ] } }, "/api/v1/config/trace-tail-sampling-rules": { "delete": { "operationId": "DeleteTraceTailSamplingRules", "parameters": [ { "in": "query", "name": "dry_run", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1DeleteTraceTailSamplingRulesResponse" } } }, "description": "A successful response." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the TraceTailSamplingRules because it is in use." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot delete the TraceTailSamplingRules because the slug does not exist." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceTailSamplingRules" ] }, "get": { "operationId": "ReadTraceTailSamplingRules", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1ReadTraceTailSamplingRulesResponse" } } }, "description": "A successful response." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot read the TraceTailSamplingRules because TraceTailSamplingRules has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceTailSamplingRules" ] }, "post": { "description": "TraceTailSamplingRules CRUD (subset for singleton objects)", "operationId": "CreateTraceTailSamplingRules", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateTraceTailSamplingRulesRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1CreateTraceTailSamplingRulesResponse" } } }, "description": "A successful response containing the created TraceTailSamplingRules." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the TraceTailSamplingRules because the request is invalid." }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot create the TraceTailSamplingRules because there is a conflict with an existing TraceTailSamplingRules." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceTailSamplingRules" ] }, "put": { "operationId": "UpdateTraceTailSamplingRules", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateTraceTailSamplingRulesRequest" } } }, "required": true, "x-originalParamName": "body" }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/configv1UpdateTraceTailSamplingRulesResponse" } } }, "description": "A successful response containing the updated TraceTailSamplingRules." }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the TraceTailSamplingRules because the request is invalid." }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "Cannot update the TraceTailSamplingRules because TraceTailSamplingRules has not been created." }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/apiError" } } }, "description": "An unexpected error response." }, "default": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/genericError" } } }, "description": "An undefined error response." } }, "tags": [ "TraceTailSamplingRules" ] } } }, "security": [ { "ApiKeyAuth": [] } ], "servers": [ { "url": "https://{tenant}.chronosphere.io", "variables": { "tenant": { "default": "tenant", "description": "tenant ID assigned by the service provider" } } } ], "tags": [ { "name": "ConfigV1" } ] }