From 2f2fca412a250ae4ab462bc4a59b3e6f2dace85d Mon Sep 17 00:00:00 2001 From: Jeffrey Aven Date: Tue, 15 Sep 2026 09:37:29 +1000 Subject: [PATCH 1/3] sumologic refresh --- .env.example | 6 + .github/workflows/build-and-test.yml | 166 + .github/workflows/prod-web-deploy.yml | 116 +- .github/workflows/star-check.yml | 42 - .github/workflows/test-web-deploy.yml | 60 +- .gitignore | 131 +- .npmrc | 2 +- CLAUDE.md | 63 + Makefile | 189 + README.md | 578 +- bin/fetch-spec.sh | 47 + bin/generate-docs.mjs | 44 - bin/generate-docs.sh | 63 - bin/generate-mappings.mjs | 42 - bin/generate-mappings.sh | 83 - bin/generate-provider.mjs | 66 - bin/generate-provider.sh | 134 - bin/split.mjs | 214 +- bin/split.sh | 123 - bin/start-server.sh | 25 +- bin/test-meta-routes.cjs | 890 +- package-lock.json | 1109 +- package.json | 70 +- provider-dev/config/all_services.csv | 483 + provider-dev/config/predecessor_methods.csv | 268 + provider-dev/config/provider_config.json | 8 + provider-dev/config/servers.json | 14 + provider-dev/config/service_config.json | 12 + provider-dev/config/service_names.json | 115 + provider-dev/config/spec_pin.json | 16 + .../docgen/provider-data/headerContent1.txt | 40 +- .../docgen/provider-data/headerContent2.txt | 302 +- provider-dev/downloaded/sumologic-api.yaml | 39800 ++++++++++++++++ .../sumologic-collector-management-api.yaml | 730 + .../src/sumologic/v00.00.00000/provider.yaml | 357 +- .../v00.00.00000/services/access_keys.yaml | 939 +- .../v00.00.00000/services/account.yaml | 1073 +- .../sumologic/v00.00.00000/services/apps.yaml | 1316 +- .../v00.00.00000/services/archive.yaml | 539 +- .../v00.00.00000/services/budgets.yaml | 653 + .../v00.00.00000/services/collectors.yaml | 1350 +- .../v00.00.00000/services/connections.yaml | 543 +- .../v00.00.00000/services/content.yaml | 1297 +- .../v00.00.00000/services/content_sync.yaml | 523 + .../v00.00.00000/services/dashboards.yaml | 1603 +- .../v00.00.00000/services/data_archiving.yaml | 458 + .../services/data_deletion_rules.yaml | 443 + .../services/data_masking_rules.yaml | 573 + .../services/dynamic_parsing_rules.yaml | 505 +- .../services/event_extraction_rules.yaml | 575 + .../services/extraction_rules.yaml | 592 +- .../services/feature_settings.yaml | 259 + .../v00.00.00000/services/fields.yaml | 624 +- .../v00.00.00000/services/health_events.yaml | 440 +- .../v00.00.00000/services/ingest_budgets.yaml | 1052 +- .../v00.00.00000/services/log_searches.yaml | 1821 +- .../services/logs_data_forwarding.yaml | 854 +- .../v00.00.00000/services/lookup_tables.yaml | 841 +- .../v00.00.00000/services/macros.yaml | 466 + .../services/metrics_queries.yaml | 394 +- .../services/metrics_searches.yaml | 1186 +- .../v00.00.00000/services/monitors.yaml | 1910 +- .../services/muting_schedules.yaml | 926 + .../v00.00.00000/services/oauth.yaml | 1819 + .../v00.00.00000/services/organizations.yaml | 212 + .../v00.00.00000/services/ot_collectors.yaml | 618 + .../v00.00.00000/services/parsers.yaml | 1159 + .../v00.00.00000/services/partitions.yaml | 665 +- .../services/password_policy.yaml | 381 +- .../sumologic/v00.00.00000/services/plan.yaml | 700 - .../v00.00.00000/services/policies.yaml | 872 +- .../v00.00.00000/services/roles.yaml | 2201 +- .../sumologic/v00.00.00000/services/saml.yaml | 732 +- .../services/scheduled_views.yaml | 737 +- .../v00.00.00000/services/schemas.yaml | 323 + .../sumologic/v00.00.00000/services/scim.yaml | 636 + .../v00.00.00000/services/search_jobs.yaml | 741 + .../services/service_accounts.yaml | 1070 + .../services/service_allowlist.yaml | 469 +- .../sumologic/v00.00.00000/services/slos.yaml | 926 +- .../services/source_templates.yaml | 1061 + .../v00.00.00000/services/threat_intel.yaml | 884 + .../v00.00.00000/services/tokens.yaml | 501 +- .../v00.00.00000/services/tracing.yaml | 2164 +- .../services/transformation_rules.yaml | 501 +- .../v00.00.00000/services/users.yaml | 671 +- provider-dev/scripts/compare_predecessor.mjs | 100 + provider-dev/scripts/fix_broken_links.sh | 15 - provider-dev/scripts/lib/spec_helpers.mjs | 163 + provider-dev/scripts/map_operations.mjs | 573 + provider-dev/scripts/post_process.mjs | 165 + provider-dev/scripts/pre_normalize.mjs | 78 + provider-dev/scripts/record_spec_pin.mjs | 75 + provider-dev/scripts/snapshot_predecessor.mjs | 59 + provider-dev/source/access_keys.yaml | 722 + provider-dev/source/account.yaml | 807 + provider-dev/source/apps.yaml | 999 + provider-dev/source/archive.yaml | 325 + provider-dev/source/budgets.yaml | 529 + provider-dev/source/collectors.yaml | 727 + provider-dev/source/connections.yaml | 433 + provider-dev/source/content.yaml | 1446 + provider-dev/source/content_sync.yaml | 399 + provider-dev/source/dashboards.yaml | 1421 + provider-dev/source/data_archiving.yaml | 356 + provider-dev/source/data_deletion_rules.yaml | 356 + provider-dev/source/data_masking_rules.yaml | 467 + .../source/dynamic_parsing_rules.yaml | 314 + .../source/event_extraction_rules.yaml | 461 + provider-dev/source/extraction_rules.yaml | 382 + provider-dev/source/feature_settings.yaml | 196 + provider-dev/source/fields.yaml | 415 + provider-dev/source/health_events.yaml | 238 + provider-dev/source/ingest_budgets.yaml | 396 + provider-dev/source/log_searches.yaml | 1335 + provider-dev/source/logs_data_forwarding.yaml | 762 + provider-dev/source/lookup_tables.yaml | 740 + provider-dev/source/macros.yaml | 372 + provider-dev/source/metrics_queries.yaml | 305 + provider-dev/source/metrics_searches.yaml | 969 + provider-dev/source/monitors.yaml | 1740 + provider-dev/source/muting_schedules.yaml | 736 + provider-dev/source/oauth.yaml | 1668 + provider-dev/source/organizations.yaml | 160 + provider-dev/source/ot_collectors.yaml | 503 + provider-dev/source/parsers.yaml | 919 + provider-dev/source/partitions.yaml | 493 + provider-dev/source/password_policy.yaml | 194 + provider-dev/source/policies.yaml | 616 + provider-dev/source/roles.yaml | 2142 + provider-dev/source/saml.yaml | 599 + provider-dev/source/scheduled_views.yaml | 531 + provider-dev/source/schemas.yaml | 273 + provider-dev/source/scim.yaml | 529 + provider-dev/source/search_jobs.yaml | 628 + provider-dev/source/service_accounts.yaml | 911 + provider-dev/source/service_allowlist.yaml | 243 + provider-dev/source/slos.yaml | 915 + provider-dev/source/source_templates.yaml | 931 + provider-dev/source/threat_intel.yaml | 725 + provider-dev/source/tokens.yaml | 318 + provider-dev/source/tracing.yaml | 2274 + provider-dev/source/transformation_rules.yaml | 344 + provider-dev/source/users.yaml | 565 + tests/integration/mock_sumologic_server.mjs | 321 + tests/integration/run_integration_tests.mjs | 315 + tests/offline_validation.mjs | 163 + tests/smoke_test.mjs | 296 + website/.gitignore | 3 + website/README.md | 31 +- website/docs/index.md | 370 +- .../services/access_keys/access_keys/index.md | 251 +- website/docs/services/access_keys/index.md | 7 +- .../services/access_keys/personal/index.md | 171 - .../access_keys/personal_access_keys/index.md | 196 + .../docs/services/access_keys/scopes/index.md | 154 + .../services/account/account_owner/index.md | 49 +- website/docs/services/account/index.md | 6 +- .../pending_update_request/index.md | 45 +- website/docs/services/account/status/index.md | 75 +- .../docs/services/account/subdomain/index.md | 153 +- .../account/subdomain_recover/index.md | 107 - .../services/account/usage_forecast/index.md | 160 + .../services/account/usage_reports/index.md | 250 + .../services/apps/app_subscriptions/index.md | 196 + website/docs/services/apps/apps/index.md | 99 +- website/docs/services/apps/apps_v2/index.md | 383 + website/docs/services/apps/index.md | 10 +- website/docs/services/apps/install/index.md | 114 - .../{install_status => install_jobs}/index.md | 47 +- .../services/apps/install_jobs_v2/index.md | 160 + .../services/apps/uninstall_jobs/index.md | 142 + .../docs/services/apps/upgrade_jobs/index.md | 160 + website/docs/services/archive/index.md | 4 +- .../{jobs_count => job_counts}/index.md | 43 +- website/docs/services/archive/jobs/index.md | 147 +- .../docs/services/budgets/budgets/index.md | 669 + website/docs/services/budgets/index.md | 33 + website/docs/services/budgets/usages/index.md | 214 + .../services/collectors/collectors/index.md | 567 +- website/docs/services/collectors/index.md | 10 +- .../collectors/offline_collectors/index.md | 172 +- .../services/collectors/overview/index.md | 164 + .../docs/services/collectors/sources/index.md | 541 +- .../collectors/upgradable_collectors/index.md | 266 + .../upgrade_targets}/index.md | 53 +- .../services/collectors/upgrades/index.md | 222 + .../services/connections/connections/index.md | 269 +- website/docs/services/connections/index.md | 7 +- .../docs/services/connections/test/index.md | 119 - .../admin_recommended_folder_jobs/index.md | 184 + .../index.md | 91 +- website/docs/services/content/copy/index.md | 119 - .../docs/services/content/copy_jobs/index.md | 203 + .../services/content/copy_status/index.md | 119 - website/docs/services/content/delete/index.md | 113 - .../{delete_status => delete_jobs}/index.md | 90 +- website/docs/services/content/export/index.md | 113 - .../services/content/export_jobs/index.md | 202 + .../index.md | 59 +- .../services/content/export_status/index.md | 159 - .../docs/services/content/folders/index.md | 185 +- .../folders_admin_recommended/index.md | 135 - .../folders_admin_recommended_status/index.md | 147 - .../services/content/folders_global/index.md | 135 - .../content/folders_global_status/index.md | 147 - .../content/folders_import_status/index.md | 159 - .../content/global_folder_jobs/index.md | 184 + .../index.md | 91 +- .../{folders_import => import_jobs}/index.md | 115 +- .../services/content/import_results/index.md | 160 + website/docs/services/content/index.md | 37 +- .../installed_apps_folder_jobs/index.md | 184 + .../installed_apps_folder_results/index.md | 202 + website/docs/services/content/items/index.md | 244 + website/docs/services/content/move/index.md | 119 - website/docs/services/content/path/index.md | 231 - website/docs/services/content/paths/index.md | 142 + .../services/content/permissions/index.md | 114 +- .../services/content/permissions_add/index.md | 119 - .../content/permissions_remove/index.md | 119 - .../index.md | 83 +- website/docs/services/content_sync/index.md | 34 + .../content_sync/sync_job_info/index.md | 148 + .../content_sync/sync_job_results/index.md | 154 + .../services/content_sync/sync_jobs/index.md | 316 + .../services/dashboards/dashboards/index.md | 473 +- website/docs/services/dashboards/index.md | 9 +- .../dashboards/migration_results/index.md | 160 + .../services/dashboards/migrations/index.md | 234 + .../services/dashboards/report_jobs/index.md | 163 +- .../dashboards/report_jobs_result/index.md | 107 - .../dashboards/report_jobs_status/index.md | 147 - .../dashboards/report_schedules/index.md | 557 + .../data_archiving/destinations/index.md | 395 + website/docs/services/data_archiving/index.md | 33 + .../data_deletion_rules/index.md | 544 + .../services/data_deletion_rules/index.md | 33 + .../data_masking_rules/index.md | 495 + .../docs/services/data_masking_rules/index.md | 33 + .../dynamic_parsing_rules/index.md | 234 +- .../event_extraction_rules/index.md | 495 + .../services/event_extraction_rules/index.md | 33 + .../event_extraction_rules/quota/index.md | 136 + .../extraction_rules/index.md | 258 +- .../feature_settings/index.md | 199 + .../docs/services/feature_settings/index.md | 33 + .../{builtin => builtin_fields}/index.md | 91 +- website/docs/services/fields/disable/index.md | 107 - .../{dropped => dropped_fields}/index.md | 39 +- website/docs/services/fields/enable/index.md | 107 - website/docs/services/fields/fields/index.md | 173 +- website/docs/services/fields/index.md | 8 +- website/docs/services/fields/quota/index.md | 21 +- .../health_events/health_events/index.md | 95 +- website/docs/services/health_events/index.md | 4 +- .../services/health_events/resources/index.md | 117 - .../ingest_budgets/collectors/index.md | 218 - website/docs/services/ingest_budgets/index.md | 8 +- .../ingest_budgets/ingest_budgets/index.md | 601 + .../ingest_budgets/ingest_budgets_v1/index.md | 464 - .../ingest_budgets/ingest_budgets_v2/index.md | 464 - .../ingest_budgets/usage_reset/index.md | 126 - .../log_searches/estimated_usage/index.md | 109 +- .../estimated_usage_by_tier/index.md | 109 - website/docs/services/log_searches/index.md | 2 +- .../log_searches/log_searches/index.md | 623 + .../destinations/index.md | 401 +- .../logs_data_forwarding/rules/index.md | 339 +- .../lookup_tables/delete_table_row/index.md | 111 - website/docs/services/lookup_tables/index.md | 10 +- .../docs/services/lookup_tables/jobs/index.md | 202 + .../lookup_tables/jobs_status/index.md | 107 - .../lookup_tables/lookup_tables/index.md | 350 +- .../docs/services/lookup_tables/row/index.md | 111 - .../services/lookup_tables/truncate/index.md | 107 - .../services/lookup_tables/upload/index.md | 123 - .../docs/services/{plan => macros}/index.md | 8 +- website/docs/services/macros/macros/index.md | 475 + .../metrics_queries/metrics_queries/index.md | 23 +- .../docs/services/metrics_searches/index.md | 4 +- .../metrics_searches/index.md | 260 +- .../metrics_searches_v2/index.md | 464 + website/docs/services/monitors/copy/index.md | 113 - .../docs/services/monitors/disable/index.md | 107 - .../docs/services/monitors/export/index.md | 107 - .../docs/services/monitors/import/index.md | 113 - website/docs/services/monitors/index.md | 17 +- .../docs/services/monitors/monitors/index.md | 579 +- website/docs/services/monitors/move/index.md | 113 - .../monitors/{path => paths}/index.md | 71 +- .../monitors/permission_summaries/index.md | 148 + .../permission_summaries_by_subjects/index.md | 107 - .../services/monitors/permissions/index.md | 151 +- .../monitors/permissions_revoke/index.md | 105 - .../monitors/permissions_set/index.md | 105 - .../monitors/playbook_details/index.md | 160 + .../docs/services/monitors/playbooks/index.md | 160 + website/docs/services/monitors/root/index.md | 75 +- .../docs/services/monitors/search/index.md | 69 +- .../services/monitors/usage_info/index.md | 29 +- .../docs/services/muting_schedules/index.md | 35 + .../muting_schedules/index.md | 519 + .../services/muting_schedules/paths/index.md | 142 + .../services/muting_schedules/root/index.md | 214 + .../services/muting_schedules/search/index.md | 158 + website/docs/services/oauth/clients/index.md | 731 + website/docs/services/oauth/consents/index.md | 224 + website/docs/services/oauth/index.md | 34 + website/docs/services/oauth/scopes/index.md | 154 + .../child_usages}/index.md | 38 +- website/docs/services/organizations/index.md | 33 + website/docs/services/ot_collectors/index.md | 33 + .../ot_collectors/ot_collectors/index.md | 609 + .../total_count}/index.md | 47 +- website/docs/services/parsers/index.md | 36 + .../docs/services/parsers/parsers/index.md | 707 + .../paths}/index.md | 67 +- website/docs/services/parsers/root/index.md | 214 + website/docs/services/parsers/search/index.md | 152 + .../services/parsers/system_parsers/index.md | 129 + .../cancel_retention_update/index.md | 107 - .../services/partitions/decommission/index.md | 107 - website/docs/services/partitions/index.md | 7 +- .../services/partitions/partitions/index.md | 432 +- .../docs/services/partitions/quota/index.md | 136 + .../password_policy/password_policy/index.md | 169 +- .../policies/access_keys_lifetime/index.md | 163 + website/docs/services/policies/audit/index.md | 52 +- .../policies/data_access_level/index.md | 52 +- .../services/policies/data_deletion/index.md | 163 + website/docs/services/policies/index.md | 6 +- .../max_user_session_timeout/index.md | 60 +- .../services/policies/oauth_cimd/index.md | 163 + .../services/policies/search_audit/index.md | 52 +- .../index.md | 52 +- .../policies/timestamp_format/index.md | 163 + .../user_concurrent_sessions_limit/index.md | 61 +- website/docs/services/roles/index.md | 2 +- website/docs/services/roles/roles/index.md | 453 +- website/docs/services/roles/roles_v2/index.md | 846 + website/docs/services/roles/users/index.md | 143 - .../services/saml/allowlisted_users/index.md | 153 +- .../saml/identity_provider_metadata/index.md | 131 + .../services/saml/identity_providers/index.md | 492 +- website/docs/services/saml/index.md | 6 +- .../{lockdown_enable => lockdown}/index.md | 45 +- .../services/saml/lockdown_disable/index.md | 101 - .../services/scheduled_views/disable/index.md | 107 - .../docs/services/scheduled_views/index.md | 8 +- .../services/scheduled_views/pause/index.md | 107 - .../services/scheduled_views/quota/index.md | 136 + .../scheduled_views/scheduled_views/index.md | 531 +- .../services/scheduled_views/start/index.md | 107 - website/docs/services/schemas/index.md | 33 + .../schemas/schema_identities/index.md | 136 + website/docs/services/scim/index.md | 33 + website/docs/services/scim/users/index.md | 499 + website/docs/services/search_jobs/index.md | 34 + .../services/search_jobs/messages/index.md | 148 + .../services/search_jobs/records/index.md | 148 + .../services/search_jobs/search_jobs/index.md | 383 + .../service_accounts/access_keys/index.md | 519 + .../docs/services/service_accounts/index.md | 33 + .../service_accounts/index.md | 431 + .../service_allowlist/addresses/index.md | 79 +- .../service_allowlist/addresses_add/index.md | 124 - .../addresses_remove/index.md | 105 - .../service_allowlist/disable/index.md | 107 - .../service_allowlist/enable/index.md | 107 - .../docs/services/service_allowlist/index.md | 8 +- .../service_allowlist/status/index.md | 88 +- website/docs/services/slos/copy/index.md | 113 - website/docs/services/slos/export/index.md | 107 - website/docs/services/slos/import/index.md | 113 - website/docs/services/slos/index.md | 13 +- website/docs/services/slos/move/index.md | 113 - .../services/slos/{path => paths}/index.md | 71 +- website/docs/services/slos/root/index.md | 75 +- website/docs/services/slos/search/index.md | 69 +- website/docs/services/slos/sli/index.md | 107 - website/docs/services/slos/slos/index.md | 579 +- .../docs/services/slos/usage_info/index.md | 29 +- .../docs/services/source_templates/index.md | 33 + .../source_templates/index.md | 591 + .../threat_intel/data_sources/index.md | 111 + .../services/threat_intel/datastore/index.md | 176 + website/docs/services/threat_intel/index.md | 35 + .../services/threat_intel/indicators/index.md | 154 + .../threat_intel/retention_period/index.md | 163 + website/docs/services/tokens/tokens/index.md | 248 +- .../critical_path_service_breakdowns/index.md | 160 + .../index.md | 79 +- website/docs/services/tracing/index.md | 40 +- .../docs/services/tracing/metrics/index.md | 41 +- .../services/tracing/service_map/index.md | 21 +- .../index.md | 61 +- .../services/tracing/span_queries/index.md | 294 + .../index.md | 41 +- .../tracing/span_query_facets/index.md | 166 + .../index.md | 50 +- .../tracing/span_query_fields/index.md | 166 + .../tracing/span_query_results/index.md | 220 + .../docs/services/tracing/spanquery/index.md | 172 - .../services/tracing/spanquery_pause/index.md | 107 - .../tracing/spanquery_resume/index.md | 107 - .../tracing/spanquery_rows_spans/index.md | 159 - .../tracing/spanquery_status/index.md | 141 - website/docs/services/tracing/spans/index.md | 413 + .../index.md | 47 +- .../services/tracing/trace_existence/index.md | 142 + .../services/tracing/trace_queries/index.md | 233 + .../index.md | 58 +- .../tracing/trace_query_fields/index.md | 160 + .../tracing/trace_query_results/index.md | 196 + .../docs/services/tracing/tracequery/index.md | 162 - .../tracing/tracequery_rows_traces/index.md | 159 - .../tracing/tracequery_status/index.md | 141 - website/docs/services/tracing/traces/index.md | 73 +- .../index.md | 141 - .../services/tracing/traces_exists/index.md | 107 - .../services/tracing/traces_spans/index.md | 334 - .../transformation_rules/index.md | 223 +- .../users/email_request_change/index.md | 111 - website/docs/services/users/index.md | 9 +- .../docs/services/users/mfa_disable/index.md | 112 - .../services/users/password_reset/index.md | 107 - website/docs/services/users/unlock/index.md | 107 - website/docs/services/users/users/index.md | 458 +- website/docusaurus.config.js | 272 +- website/package.json | 34 +- website/provider.js | 2 + website/scripts/sanitize-docs.mjs | 210 + website/sidebars.js | 40 +- .../components/CopyableCode/CopyableCode.js | 58 +- .../src/components/SchemaTable/SchemaTable.js | 49 + .../SchemaTable/SchemaTable.module.css | 27 + .../StackqlDeployDropdown.js | 400 + .../StackqlDeployDropdown.module.css | 12 + website/src/css/{custom.css => global.css} | 30 +- website/src/pages/blog.js | 10 - website/src/pages/contact-us.js | 10 - website/src/pages/install.js | 10 - website/src/pages/providers/aws.js | 10 - website/src/pages/providers/azure.js | 10 - website/src/pages/providers/confluent.js | 10 - website/src/pages/providers/databricks.js | 10 - website/src/pages/providers/github.js | 10 - website/src/pages/providers/google.js | 10 - website/src/pages/providers/index.js | 10 - website/src/pages/providers/okta.js | 10 - website/src/pages/providers/openai.js | 10 - website/src/pages/providers/snowflake.js | 10 - website/src/pages/stackql-deploy.js | 10 - website/src/pages/stackqldocs.js | 10 - website/src/pages/tutorials.js | 10 - website/src/theme/DocBreadcrumbs/index.js | 12 + website/src/theme/Footer/index.tsx | 522 +- website/static/CNAME | 2 +- website/static/apple-touch-icon.png | Bin 0 -> 7748 bytes website/static/img/stackql-featured-image.png | Bin 0 -> 29955 bytes website/static/safari-pinned-tab.svg | 27 + website/static/site.webmanifest | 11 + website/yarn.lock | 3634 +- 464 files changed, 145843 insertions(+), 33715 deletions(-) create mode 100644 .env.example create mode 100644 .github/workflows/build-and-test.yml delete mode 100644 .github/workflows/star-check.yml create mode 100644 CLAUDE.md create mode 100644 Makefile create mode 100644 bin/fetch-spec.sh delete mode 100644 bin/generate-docs.mjs delete mode 100644 bin/generate-docs.sh delete mode 100644 bin/generate-mappings.mjs delete mode 100644 bin/generate-mappings.sh delete mode 100644 bin/generate-provider.mjs delete mode 100644 bin/generate-provider.sh delete mode 100644 bin/split.sh create mode 100644 provider-dev/config/all_services.csv create mode 100644 provider-dev/config/predecessor_methods.csv create mode 100644 provider-dev/config/provider_config.json create mode 100644 provider-dev/config/servers.json create mode 100644 provider-dev/config/service_config.json create mode 100644 provider-dev/config/service_names.json create mode 100644 provider-dev/config/spec_pin.json create mode 100644 provider-dev/downloaded/sumologic-api.yaml create mode 100644 provider-dev/downloaded/sumologic-collector-management-api.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/budgets.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/content_sync.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/data_archiving.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/data_deletion_rules.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/data_masking_rules.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/event_extraction_rules.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/feature_settings.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/macros.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/muting_schedules.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/oauth.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/organizations.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/ot_collectors.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/parsers.yaml delete mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/plan.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/schemas.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/scim.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/search_jobs.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/service_accounts.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/source_templates.yaml create mode 100644 provider-dev/openapi/src/sumologic/v00.00.00000/services/threat_intel.yaml create mode 100644 provider-dev/scripts/compare_predecessor.mjs delete mode 100644 provider-dev/scripts/fix_broken_links.sh create mode 100644 provider-dev/scripts/lib/spec_helpers.mjs create mode 100644 provider-dev/scripts/map_operations.mjs create mode 100644 provider-dev/scripts/post_process.mjs create mode 100644 provider-dev/scripts/pre_normalize.mjs create mode 100644 provider-dev/scripts/record_spec_pin.mjs create mode 100644 provider-dev/scripts/snapshot_predecessor.mjs create mode 100644 provider-dev/source/access_keys.yaml create mode 100644 provider-dev/source/account.yaml create mode 100644 provider-dev/source/apps.yaml create mode 100644 provider-dev/source/archive.yaml create mode 100644 provider-dev/source/budgets.yaml create mode 100644 provider-dev/source/collectors.yaml create mode 100644 provider-dev/source/connections.yaml create mode 100644 provider-dev/source/content.yaml create mode 100644 provider-dev/source/content_sync.yaml create mode 100644 provider-dev/source/dashboards.yaml create mode 100644 provider-dev/source/data_archiving.yaml create mode 100644 provider-dev/source/data_deletion_rules.yaml create mode 100644 provider-dev/source/data_masking_rules.yaml create mode 100644 provider-dev/source/dynamic_parsing_rules.yaml create mode 100644 provider-dev/source/event_extraction_rules.yaml create mode 100644 provider-dev/source/extraction_rules.yaml create mode 100644 provider-dev/source/feature_settings.yaml create mode 100644 provider-dev/source/fields.yaml create mode 100644 provider-dev/source/health_events.yaml create mode 100644 provider-dev/source/ingest_budgets.yaml create mode 100644 provider-dev/source/log_searches.yaml create mode 100644 provider-dev/source/logs_data_forwarding.yaml create mode 100644 provider-dev/source/lookup_tables.yaml create mode 100644 provider-dev/source/macros.yaml create mode 100644 provider-dev/source/metrics_queries.yaml create mode 100644 provider-dev/source/metrics_searches.yaml create mode 100644 provider-dev/source/monitors.yaml create mode 100644 provider-dev/source/muting_schedules.yaml create mode 100644 provider-dev/source/oauth.yaml create mode 100644 provider-dev/source/organizations.yaml create mode 100644 provider-dev/source/ot_collectors.yaml create mode 100644 provider-dev/source/parsers.yaml create mode 100644 provider-dev/source/partitions.yaml create mode 100644 provider-dev/source/password_policy.yaml create mode 100644 provider-dev/source/policies.yaml create mode 100644 provider-dev/source/roles.yaml create mode 100644 provider-dev/source/saml.yaml create mode 100644 provider-dev/source/scheduled_views.yaml create mode 100644 provider-dev/source/schemas.yaml create mode 100644 provider-dev/source/scim.yaml create mode 100644 provider-dev/source/search_jobs.yaml create mode 100644 provider-dev/source/service_accounts.yaml create mode 100644 provider-dev/source/service_allowlist.yaml create mode 100644 provider-dev/source/slos.yaml create mode 100644 provider-dev/source/source_templates.yaml create mode 100644 provider-dev/source/threat_intel.yaml create mode 100644 provider-dev/source/tokens.yaml create mode 100644 provider-dev/source/tracing.yaml create mode 100644 provider-dev/source/transformation_rules.yaml create mode 100644 provider-dev/source/users.yaml create mode 100644 tests/integration/mock_sumologic_server.mjs create mode 100644 tests/integration/run_integration_tests.mjs create mode 100644 tests/offline_validation.mjs create mode 100644 tests/smoke_test.mjs delete mode 100644 website/docs/services/access_keys/personal/index.md create mode 100644 website/docs/services/access_keys/personal_access_keys/index.md create mode 100644 website/docs/services/access_keys/scopes/index.md rename website/docs/services/{plan => account}/pending_update_request/index.md (64%) delete mode 100644 website/docs/services/account/subdomain_recover/index.md create mode 100644 website/docs/services/account/usage_forecast/index.md create mode 100644 website/docs/services/account/usage_reports/index.md create mode 100644 website/docs/services/apps/app_subscriptions/index.md create mode 100644 website/docs/services/apps/apps_v2/index.md delete mode 100644 website/docs/services/apps/install/index.md rename website/docs/services/apps/{install_status => install_jobs}/index.md (63%) create mode 100644 website/docs/services/apps/install_jobs_v2/index.md create mode 100644 website/docs/services/apps/uninstall_jobs/index.md create mode 100644 website/docs/services/apps/upgrade_jobs/index.md rename website/docs/services/archive/{jobs_count => job_counts}/index.md (73%) create mode 100644 website/docs/services/budgets/budgets/index.md create mode 100644 website/docs/services/budgets/index.md create mode 100644 website/docs/services/budgets/usages/index.md create mode 100644 website/docs/services/collectors/overview/index.md create mode 100644 website/docs/services/collectors/upgradable_collectors/index.md rename website/docs/services/{tracing/tracequery_fields => collectors/upgrade_targets}/index.md (52%) create mode 100644 website/docs/services/collectors/upgrades/index.md delete mode 100644 website/docs/services/connections/test/index.md create mode 100644 website/docs/services/content/admin_recommended_folder_jobs/index.md rename website/docs/services/content/{folders_admin_recommended_result => admin_recommended_folder_results}/index.md (59%) delete mode 100644 website/docs/services/content/copy/index.md create mode 100644 website/docs/services/content/copy_jobs/index.md delete mode 100644 website/docs/services/content/copy_status/index.md delete mode 100644 website/docs/services/content/delete/index.md rename website/docs/services/content/{delete_status => delete_jobs}/index.md (51%) delete mode 100644 website/docs/services/content/export/index.md create mode 100644 website/docs/services/content/export_jobs/index.md rename website/docs/services/content/{export_result => export_results}/index.md (59%) delete mode 100644 website/docs/services/content/export_status/index.md delete mode 100644 website/docs/services/content/folders_admin_recommended/index.md delete mode 100644 website/docs/services/content/folders_admin_recommended_status/index.md delete mode 100644 website/docs/services/content/folders_global/index.md delete mode 100644 website/docs/services/content/folders_global_status/index.md delete mode 100644 website/docs/services/content/folders_import_status/index.md create mode 100644 website/docs/services/content/global_folder_jobs/index.md rename website/docs/services/content/{folders_global_result => global_folder_results}/index.md (55%) rename website/docs/services/content/{folders_import => import_jobs}/index.md (56%) create mode 100644 website/docs/services/content/import_results/index.md create mode 100644 website/docs/services/content/installed_apps_folder_jobs/index.md create mode 100644 website/docs/services/content/installed_apps_folder_results/index.md create mode 100644 website/docs/services/content/items/index.md delete mode 100644 website/docs/services/content/move/index.md delete mode 100644 website/docs/services/content/path/index.md create mode 100644 website/docs/services/content/paths/index.md delete mode 100644 website/docs/services/content/permissions_add/index.md delete mode 100644 website/docs/services/content/permissions_remove/index.md rename website/docs/services/content/{folders_personal => personal_folder}/index.md (59%) create mode 100644 website/docs/services/content_sync/index.md create mode 100644 website/docs/services/content_sync/sync_job_info/index.md create mode 100644 website/docs/services/content_sync/sync_job_results/index.md create mode 100644 website/docs/services/content_sync/sync_jobs/index.md create mode 100644 website/docs/services/dashboards/migration_results/index.md create mode 100644 website/docs/services/dashboards/migrations/index.md delete mode 100644 website/docs/services/dashboards/report_jobs_result/index.md delete mode 100644 website/docs/services/dashboards/report_jobs_status/index.md create mode 100644 website/docs/services/dashboards/report_schedules/index.md create mode 100644 website/docs/services/data_archiving/destinations/index.md create mode 100644 website/docs/services/data_archiving/index.md create mode 100644 website/docs/services/data_deletion_rules/data_deletion_rules/index.md create mode 100644 website/docs/services/data_deletion_rules/index.md create mode 100644 website/docs/services/data_masking_rules/data_masking_rules/index.md create mode 100644 website/docs/services/data_masking_rules/index.md create mode 100644 website/docs/services/event_extraction_rules/event_extraction_rules/index.md create mode 100644 website/docs/services/event_extraction_rules/index.md create mode 100644 website/docs/services/event_extraction_rules/quota/index.md create mode 100644 website/docs/services/feature_settings/feature_settings/index.md create mode 100644 website/docs/services/feature_settings/index.md rename website/docs/services/fields/{builtin => builtin_fields}/index.md (52%) delete mode 100644 website/docs/services/fields/disable/index.md rename website/docs/services/fields/{dropped => dropped_fields}/index.md (64%) delete mode 100644 website/docs/services/fields/enable/index.md delete mode 100644 website/docs/services/health_events/resources/index.md delete mode 100644 website/docs/services/ingest_budgets/collectors/index.md create mode 100644 website/docs/services/ingest_budgets/ingest_budgets/index.md delete mode 100644 website/docs/services/ingest_budgets/ingest_budgets_v1/index.md delete mode 100644 website/docs/services/ingest_budgets/ingest_budgets_v2/index.md delete mode 100644 website/docs/services/ingest_budgets/usage_reset/index.md delete mode 100644 website/docs/services/log_searches/estimated_usage_by_tier/index.md create mode 100644 website/docs/services/log_searches/log_searches/index.md delete mode 100644 website/docs/services/lookup_tables/delete_table_row/index.md create mode 100644 website/docs/services/lookup_tables/jobs/index.md delete mode 100644 website/docs/services/lookup_tables/jobs_status/index.md delete mode 100644 website/docs/services/lookup_tables/row/index.md delete mode 100644 website/docs/services/lookup_tables/truncate/index.md delete mode 100644 website/docs/services/lookup_tables/upload/index.md rename website/docs/services/{plan => macros}/index.md (79%) create mode 100644 website/docs/services/macros/macros/index.md create mode 100644 website/docs/services/metrics_searches/metrics_searches_v2/index.md delete mode 100644 website/docs/services/monitors/copy/index.md delete mode 100644 website/docs/services/monitors/disable/index.md delete mode 100644 website/docs/services/monitors/export/index.md delete mode 100644 website/docs/services/monitors/import/index.md delete mode 100644 website/docs/services/monitors/move/index.md rename website/docs/services/monitors/{path => paths}/index.md (58%) create mode 100644 website/docs/services/monitors/permission_summaries/index.md delete mode 100644 website/docs/services/monitors/permission_summaries_by_subjects/index.md delete mode 100644 website/docs/services/monitors/permissions_revoke/index.md delete mode 100644 website/docs/services/monitors/permissions_set/index.md create mode 100644 website/docs/services/monitors/playbook_details/index.md create mode 100644 website/docs/services/monitors/playbooks/index.md create mode 100644 website/docs/services/muting_schedules/index.md create mode 100644 website/docs/services/muting_schedules/muting_schedules/index.md create mode 100644 website/docs/services/muting_schedules/paths/index.md create mode 100644 website/docs/services/muting_schedules/root/index.md create mode 100644 website/docs/services/muting_schedules/search/index.md create mode 100644 website/docs/services/oauth/clients/index.md create mode 100644 website/docs/services/oauth/consents/index.md create mode 100644 website/docs/services/oauth/index.md create mode 100644 website/docs/services/oauth/scopes/index.md rename website/docs/services/{connections/incident_templates => organizations/child_usages}/index.md (55%) create mode 100644 website/docs/services/organizations/index.md create mode 100644 website/docs/services/ot_collectors/index.md create mode 100644 website/docs/services/ot_collectors/ot_collectors/index.md rename website/docs/services/{tracing/spanquery_fields => ot_collectors/total_count}/index.md (54%) create mode 100644 website/docs/services/parsers/index.md create mode 100644 website/docs/services/parsers/parsers/index.md rename website/docs/services/{tracing/spanquery_rows_facets => parsers/paths}/index.md (51%) create mode 100644 website/docs/services/parsers/root/index.md create mode 100644 website/docs/services/parsers/search/index.md create mode 100644 website/docs/services/parsers/system_parsers/index.md delete mode 100644 website/docs/services/partitions/cancel_retention_update/index.md delete mode 100644 website/docs/services/partitions/decommission/index.md create mode 100644 website/docs/services/partitions/quota/index.md create mode 100644 website/docs/services/policies/access_keys_lifetime/index.md create mode 100644 website/docs/services/policies/data_deletion/index.md create mode 100644 website/docs/services/policies/oauth_cimd/index.md create mode 100644 website/docs/services/policies/timestamp_format/index.md create mode 100644 website/docs/services/roles/roles_v2/index.md delete mode 100644 website/docs/services/roles/users/index.md create mode 100644 website/docs/services/saml/identity_provider_metadata/index.md rename website/docs/services/saml/{lockdown_enable => lockdown}/index.md (56%) delete mode 100644 website/docs/services/saml/lockdown_disable/index.md delete mode 100644 website/docs/services/scheduled_views/disable/index.md delete mode 100644 website/docs/services/scheduled_views/pause/index.md create mode 100644 website/docs/services/scheduled_views/quota/index.md delete mode 100644 website/docs/services/scheduled_views/start/index.md create mode 100644 website/docs/services/schemas/index.md create mode 100644 website/docs/services/schemas/schema_identities/index.md create mode 100644 website/docs/services/scim/index.md create mode 100644 website/docs/services/scim/users/index.md create mode 100644 website/docs/services/search_jobs/index.md create mode 100644 website/docs/services/search_jobs/messages/index.md create mode 100644 website/docs/services/search_jobs/records/index.md create mode 100644 website/docs/services/search_jobs/search_jobs/index.md create mode 100644 website/docs/services/service_accounts/access_keys/index.md create mode 100644 website/docs/services/service_accounts/index.md create mode 100644 website/docs/services/service_accounts/service_accounts/index.md delete mode 100644 website/docs/services/service_allowlist/addresses_add/index.md delete mode 100644 website/docs/services/service_allowlist/addresses_remove/index.md delete mode 100644 website/docs/services/service_allowlist/disable/index.md delete mode 100644 website/docs/services/service_allowlist/enable/index.md delete mode 100644 website/docs/services/slos/copy/index.md delete mode 100644 website/docs/services/slos/export/index.md delete mode 100644 website/docs/services/slos/import/index.md delete mode 100644 website/docs/services/slos/move/index.md rename website/docs/services/slos/{path => paths}/index.md (59%) delete mode 100644 website/docs/services/slos/sli/index.md create mode 100644 website/docs/services/source_templates/index.md create mode 100644 website/docs/services/source_templates/source_templates/index.md create mode 100644 website/docs/services/threat_intel/data_sources/index.md create mode 100644 website/docs/services/threat_intel/datastore/index.md create mode 100644 website/docs/services/threat_intel/index.md create mode 100644 website/docs/services/threat_intel/indicators/index.md create mode 100644 website/docs/services/threat_intel/retention_period/index.md create mode 100644 website/docs/services/tracing/critical_path_service_breakdowns/index.md rename website/docs/services/tracing/{traces_critical_path => critical_paths}/index.md (58%) rename website/docs/services/tracing/{traces_spans_billing_info => span_billing_info}/index.md (53%) create mode 100644 website/docs/services/tracing/span_queries/index.md rename website/docs/services/tracing/{spanquery_aggregates => span_query_aggregates}/index.md (62%) create mode 100644 website/docs/services/tracing/span_query_facets/index.md rename website/docs/services/tracing/{spanquery_fields_values => span_query_field_values}/index.md (71%) create mode 100644 website/docs/services/tracing/span_query_fields/index.md create mode 100644 website/docs/services/tracing/span_query_results/index.md delete mode 100644 website/docs/services/tracing/spanquery/index.md delete mode 100644 website/docs/services/tracing/spanquery_pause/index.md delete mode 100644 website/docs/services/tracing/spanquery_resume/index.md delete mode 100644 website/docs/services/tracing/spanquery_rows_spans/index.md delete mode 100644 website/docs/services/tracing/spanquery_status/index.md create mode 100644 website/docs/services/tracing/spans/index.md rename website/docs/services/tracing/{traces_trace_events => trace_events}/index.md (69%) create mode 100644 website/docs/services/tracing/trace_existence/index.md create mode 100644 website/docs/services/tracing/trace_queries/index.md rename website/docs/services/tracing/{tracequery_fields_values => trace_query_field_values}/index.md (70%) create mode 100644 website/docs/services/tracing/trace_query_fields/index.md create mode 100644 website/docs/services/tracing/trace_query_results/index.md delete mode 100644 website/docs/services/tracing/tracequery/index.md delete mode 100644 website/docs/services/tracing/tracequery_rows_traces/index.md delete mode 100644 website/docs/services/tracing/tracequery_status/index.md delete mode 100644 website/docs/services/tracing/traces_critical_path_breakdown_service/index.md delete mode 100644 website/docs/services/tracing/traces_exists/index.md delete mode 100644 website/docs/services/tracing/traces_spans/index.md delete mode 100644 website/docs/services/users/email_request_change/index.md delete mode 100644 website/docs/services/users/mfa_disable/index.md delete mode 100644 website/docs/services/users/password_reset/index.md delete mode 100644 website/docs/services/users/unlock/index.md create mode 100644 website/provider.js create mode 100644 website/scripts/sanitize-docs.mjs create mode 100644 website/src/components/SchemaTable/SchemaTable.js create mode 100644 website/src/components/SchemaTable/SchemaTable.module.css create mode 100644 website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.js create mode 100644 website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.module.css rename website/src/css/{custom.css => global.css} (89%) delete mode 100644 website/src/pages/blog.js delete mode 100644 website/src/pages/contact-us.js delete mode 100644 website/src/pages/install.js delete mode 100644 website/src/pages/providers/aws.js delete mode 100644 website/src/pages/providers/azure.js delete mode 100644 website/src/pages/providers/confluent.js delete mode 100644 website/src/pages/providers/databricks.js delete mode 100644 website/src/pages/providers/github.js delete mode 100644 website/src/pages/providers/google.js delete mode 100644 website/src/pages/providers/index.js delete mode 100644 website/src/pages/providers/okta.js delete mode 100644 website/src/pages/providers/openai.js delete mode 100644 website/src/pages/providers/snowflake.js delete mode 100644 website/src/pages/stackql-deploy.js delete mode 100644 website/src/pages/stackqldocs.js delete mode 100644 website/src/pages/tutorials.js create mode 100644 website/src/theme/DocBreadcrumbs/index.js create mode 100644 website/static/apple-touch-icon.png create mode 100644 website/static/img/stackql-featured-image.png create mode 100644 website/static/safari-pinned-tab.svg create mode 100644 website/static/site.webmanifest diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..a98f8ec --- /dev/null +++ b/.env.example @@ -0,0 +1,6 @@ +# Live smoke test credentials (copy to .env - which is gitignored - and fill in). +# The same variables the provider itself (and the Terraform provider) reads. +SUMOLOGIC_ACCESSID=su... +SUMOLOGIC_ACCESSKEY=... +# Deployment: us1, us2, au, ca, ch, de, eu, fed, in, jp, kr (default us2) +SUMOLOGIC_ENVIRONMENT=us2 diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml new file mode 100644 index 0000000..dcb990c --- /dev/null +++ b/.github/workflows/build-and-test.yml @@ -0,0 +1,166 @@ +name: build-and-test + +# Build the sumologic provider from the pinned spec and run every +# credential-free test layer on each push / PR; the live smoke suite runs +# only where the Sumo Logic secrets are configured; a scheduled spec-drift +# job diffs the served spec against the pin (the spec is served unversioned, +# so drift is expected over time and must be reviewed, never silent). + +on: + push: + branches: [main, 'feature/**'] + paths-ignore: ['website/**'] + pull_request: + branches: [main] + paths-ignore: ['website/**'] + schedule: + - cron: '23 3 * * 1' # weekly spec-drift check (Monday 03:23 UTC) + workflow_dispatch: + +jobs: + build-and-test: + if: github.event_name != 'schedule' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + + - uses: actions/setup-node@v7 + with: + node-version: 20 + cache: npm + + - name: Install dependencies + run: npm ci + + # puts the latest stackql on PATH; bin/start-server.sh and the test + # runners resolve it from there + - name: Install stackql + uses: stackql/setup-stackql@v2 + + - name: stackql version + run: stackql --version + + # Drift is reported, not fatal, here: the committed pin is what gets + # built and tested. The spec-drift job below opens the review issue. + - name: Verify the pinned spec against upstream (warns on drift) + run: | + if ! make spec-check; then + echo "::warning title=Sumo Logic spec drift::The served spec no longer matches provider-dev/config/spec_pin.json - run 'make spec build compare test docs' and review the diff. Building from the committed pin." + git checkout -- provider-dev/downloaded provider-dev/config/spec_pin.json + fi + + - name: Build provider from the pinned spec + run: make build + + - name: Fail on uncommitted generation drift + run: | + git add -N . + if ! git diff --quiet -- provider-dev/openapi provider-dev/config provider-dev/source; then + echo "Generated output differs from the committed artifacts - run 'make build' and commit." + git diff --stat -- provider-dev/openapi provider-dev/config provider-dev/source + exit 1 + fi + + - name: Breaking changes section is current + run: node provider-dev/scripts/compare_predecessor.mjs --check + + - name: Offline validation + run: make test-offline + + - name: Integration tests (mock Sumo Logic API) + run: make test-integration + + - name: Meta-route tests + run: make test-meta + + - name: Generate docs (sanity - the site build runs on the web workflows) + run: make docs + + smoke: + # secret-gated live smoke suite against a dedicated Sumo Logic account; + # skipped with a notice when the secrets are not configured (forks, PRs + # from outside). Nothing it creates is billable and everything it creates + # is swept. + runs-on: ubuntu-latest + needs: build-and-test + if: github.event_name != 'pull_request' && github.event_name != 'schedule' + env: + SUMOLOGIC_ACCESSID: ${{ secrets.SUMOLOGIC_ACCESSID }} + SUMOLOGIC_ACCESSKEY: ${{ secrets.SUMOLOGIC_ACCESSKEY }} + SUMOLOGIC_ENVIRONMENT: ${{ secrets.SUMOLOGIC_ENVIRONMENT }} + steps: + - uses: actions/checkout@v7 + + - uses: actions/setup-node@v7 + with: + node-version: 20 + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Install stackql + uses: stackql/setup-stackql@v2 + + - name: Live smoke suite (local provider) + if: env.SUMOLOGIC_ACCESSID != '' + run: make smoke-test + + - name: Live smoke skipped (no credentials) + if: env.SUMOLOGIC_ACCESSID == '' + run: | + echo "::notice title=Live smoke suite skipped::SUMOLOGIC_ACCESSID / SUMOLOGIC_ACCESSKEY / SUMOLOGIC_ENVIRONMENT secrets are not configured - the live smoke suite did not run. Credential-free coverage still ran via the mock-server integration suite." + + spec-drift: + # Diff the served spec against the pin on a schedule and on demand, and + # open an issue when it moves. + runs-on: ubuntu-latest + if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' + permissions: + contents: read + issues: write + steps: + - uses: actions/checkout@v7 + + - uses: actions/setup-node@v7 + with: + node-version: 20 + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Fetch and compare against the pin + id: drift + run: | + set +e + make spec-check > fetch.log 2>&1 + rc=$? + set -e + cat fetch.log + if [ "$rc" -eq 0 ]; then + echo "drift=false" >> "$GITHUB_OUTPUT" + else + echo "drift=true" >> "$GITHUB_OUTPUT" + bash bin/fetch-spec.sh --update > /dev/null 2>&1 || true + git diff --stat -- provider-dev/downloaded provider-dev/config/spec_pin.json > drift.txt || true + cat drift.txt + fi + + - name: Report drift + if: steps.drift.outputs.drift == 'true' + uses: actions/github-script@v9 + with: + script: | + const fs = require('fs'); + const stat = fs.existsSync('drift.txt') ? fs.readFileSync('drift.txt', 'utf8') : '(diff unavailable)'; + const title = 'Sumo Logic API spec drift detected'; + const body = 'The spec served at https://api.sumologic.com/docs/sumologic-api.yaml no longer matches the pin in provider-dev/config/spec_pin.json.\n\n```\n' + stat + '\n```\nRun `make spec build compare test docs`, review the generated diff (new operations are mapped by map_operations.mjs and reported; a new tag fails the split until it is added to service_names.json), and commit.'; + await core.summary.addHeading(title).addCodeBlock(stat).write(); + const { data: issues } = await github.rest.issues.listForRepo({ + owner: context.repo.owner, repo: context.repo.repo, state: 'open', labels: 'spec-drift' + }); + if (issues.some(i => i.title === title)) return; + await github.rest.issues.create({ + owner: context.repo.owner, repo: context.repo.repo, title, body, labels: ['spec-drift'] + }); diff --git a/.github/workflows/prod-web-deploy.yml b/.github/workflows/prod-web-deploy.yml index ab53507..7b950ed 100644 --- a/.github/workflows/prod-web-deploy.yml +++ b/.github/workflows/prod-web-deploy.yml @@ -1,58 +1,58 @@ -name: Deploy to GitHub Pages - -on: - push: - branches: - - main - paths: - - 'website/**' - -jobs: - build: - name: Build Docusaurus - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: yarn - cache-dependency-path: website/yarn.lock - - - name: Install dependencies - run: yarn install --frozen-lockfile - working-directory: website - - - name: Build website - run: yarn build - working-directory: website - - - name: Upload Build Artifact - uses: actions/upload-pages-artifact@v3 - with: - path: website/build # Ensure the path is correctly set to the Docusaurus build output - - deploy: - name: Deploy to GitHub Pages - needs: build - - # Grant GITHUB_TOKEN the permissions required to make a Pages deployment - permissions: - pages: write # to deploy to Pages - id-token: write # to verify the deployment originates from an appropriate source - - # Deploy to the github-pages environment - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - - runs-on: ubuntu-latest - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 - with: - working-directory: website/build # Ensures the correct directory is used for deployment +name: Deploy to GitHub Pages + +on: + push: + branches: + - main + paths: + - 'website/**' + +jobs: + build: + name: Build Docusaurus + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - uses: actions/setup-node@v7 + with: + node-version: 20 + cache: yarn + cache-dependency-path: website/yarn.lock + + - name: Install dependencies + run: yarn install --frozen-lockfile + working-directory: website + + - name: Build website + run: yarn build + working-directory: website + + - name: Upload Build Artifact + uses: actions/upload-pages-artifact@v5 + with: + path: website/build # Ensure the path is correctly set to the Docusaurus build output + + deploy: + name: Deploy to GitHub Pages + needs: build + + # Grant GITHUB_TOKEN the permissions required to make a Pages deployment + permissions: + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + + # Deploy to the github-pages environment + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v5 + with: + working-directory: website/build # Ensures the correct directory is used for deployment diff --git a/.github/workflows/star-check.yml b/.github/workflows/star-check.yml deleted file mode 100644 index 24d6c17..0000000 --- a/.github/workflows/star-check.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Check if PR author has starred required repositories -on: - pull_request: - types: [opened, synchronize, reopened] -jobs: - check-starred: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - name: Get PR author username and repo info - id: get-info - run: | - echo "username=${{ github.event.pull_request.user.login }}" >> $GITHUB_ENV - echo "current_repo=${{ github.event.repository.name }}" >> $GITHUB_ENV - echo "current_owner=${{ github.repository_owner }}" >> $GITHUB_ENV - - name: Pull github provider - uses: stackql/stackql-exec@v2.2.1 - with: - is_command: 'true' - query: "REGISTRY PULL github;" - - name: Run stackql query - id: check-star - uses: stackql/stackql-assert@v2.2.1 - with: - test_query: | - SELECT repo, count(*) as has_starred - FROM github.activity.repo_stargazers - WHERE owner = '${{ env.current_owner }}' and repo IN ('stackql','${{ env.current_repo }}') - AND login = '${{ env.username }}' - GROUP BY repo; - expected_results_str: '[{"has_starred":"1","repo":"stackql"},{"has_starred":"1","repo":"${{ env.current_repo }}"}]' - continue-on-error: true - - name: Check if starred - if: always() # Ensures this runs regardless of check-star outcome - run: | - if [ "${{ steps.check-star.outcome }}" = "success" ]; then - echo "::notice::Thanks for your support!" - else - echo "::error::It seems you haven't starred the required repositories. Please star the following repos before proceeding: https://github.com/${{ env.current_owner }}/${{ env.current_repo }} (this repo) and https://github.com/stackql/stackql (our core repo)" - exit 1 - fi \ No newline at end of file diff --git a/.github/workflows/test-web-deploy.yml b/.github/workflows/test-web-deploy.yml index 1e2ef91..64df0d3 100644 --- a/.github/workflows/test-web-deploy.yml +++ b/.github/workflows/test-web-deploy.yml @@ -1,31 +1,31 @@ -name: Test deployment - -on: - pull_request: - branches: - - main - paths: - - 'website/**' - -jobs: - test-deploy: - name: Test deployment - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: yarn - cache-dependency-path: website/yarn.lock - - - name: Install dependencies - run: yarn install --frozen-lockfile - working-directory: website - - - name: Test build website - run: yarn build +name: Test deployment + +on: + pull_request: + branches: + - main + paths: + - 'website/**' + +jobs: + test-deploy: + name: Test deployment + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - uses: actions/setup-node@v7 + with: + node-version: 20 + cache: yarn + cache-dependency-path: website/yarn.lock + + - name: Install dependencies + run: yarn install --frozen-lockfile + working-directory: website + + - name: Test build website + run: yarn build working-directory: website \ No newline at end of file diff --git a/.gitignore b/.gitignore index 1844196..0e76e71 100644 --- a/.gitignore +++ b/.gitignore @@ -1,86 +1,45 @@ -main.zip - -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# Virtual environments -.venv/ -venv/ -env/ -ENV/ - -# Hatch/Poetry build artifacts -dist/ -build/ -*.egg-info/ - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test cache and coverage -.coverage -.cache/ -pytest_cache/ -htmlcov/ -**/__pycache__ - -# IDE / editor settings -.vscode/ -.idea/ -*.swp -*.swo - -# Output directory -output/ - -# Misc -.DS_Store -*.log -*.tmp -*.bak - -# stackql -.stackql/ -stackql -stackql-zip -stackql-aws-cloud-shell.sh -stackql-azure-cloud-shell.sh -stackql-google-cloud-shell.sh -.env -nohup.out - -# node -# Ignore node_modules in all directories -**/node_modules/ - -# Ignore build outputs in all directories -**/dist/ -**/build/ -**/.next/ -**/.cache/ -**/.turbo/ - -# Ignore log files -**/npm-debug.log -**/yarn-debug.log -**/yarn-error.log -**/pnpm-debug.log - -# Ignore lock files (optional if you don't want to commit them) -# Uncomment if you want to ignore lock files: -# **/package-lock.json -# **/yarn.lock -# **/pnpm-lock.yaml - -# Ignore dotenv files (if secrets are present) -**/.env -**/.env.*.local - -# Ignore coverage and test output -**/coverage/ -**/test-output/ -# Ignore everything in source directory except .gitkeep -source/* +# stackql binary and server artifacts +stackql +stackql.exe +stackql-zip +stackql.zip +stackql-server.log +nohup.out +*.log +/.stackql + +# node +node_modules/ + +# python +__pycache__/ +*.py[cod] +.venv/ +venv/ + +# env / secrets +.env +.env.* +!.env.example + +# IDE / editor +.vscode/ +.idea/ +*.swp +*.tmp +*.bak +.DS_Store + +# docs site build output (website/docs IS committed - it is the published content) +website/build/ +website/.docusaurus/ +website/.shared-config/ +website/node_modules/ + +# integration test registry copy (rebuilt every run) +tests/integration/.registry-tmp/ + +# The downloaded spec snapshot in provider-dev/downloaded/ and the split +# source in provider-dev/source/ ARE committed: the spec is served +# unversioned, and committing the snapshot makes every refresh a reviewable +# diff against the hash pin in provider-dev/config/spec_pin.json. diff --git a/.npmrc b/.npmrc index 691d217..41583e3 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1 @@ -@jsr:registry=https://npm.jsr.io \ No newline at end of file +@jsr:registry=https://npm.jsr.io diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..bbd5889 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,63 @@ +# CLAUDE.md + +Guidance for Claude Code when working in this repository. + +## What this repo does + +Generates and documents the `sumologic` provider for [StackQL](https://github.com/stackql/stackql): the Sumo Logic API reference (every deployment) plus the Collector Management API, exposed as SQL. It is a type 1 (direct) provider built from the vendor's published OpenAPI document with `@stackql/provider-utils`, following the repository pattern of the `clickhouse` and `github` provider repos. The generated tree in `provider-dev/openapi/` is what gets published to [stackql-provider-registry](https://github.com/stackql/stackql-provider-registry) (`providers/src/sumologic`), and `website/` is the Docusaurus microsite at `sumologic-provider.stackql.io`. + +## Commands + +Every pipeline step is a `make` target (GNU make, bash; run from WSL, Linux or macOS - the server lifecycle scripts need pgrep/ps). `make help` lists them. + +- `make all` - deps, spec refresh (accepts upstream drift), full build, Breaking Changes section, offline + integration + meta-route tests, docs generation, site build +- `make spec` / `make spec-check` - download the spec and accept the refresh (pin rewritten) / fail on drift +- `make build` - split, pre-normalize, normalize, mappings, generate (+ post-process) +- `make mappings` - fills mappings for NEW operations only and prunes retired ones; `make mappings-rebuild` re-derives every row (deliberate renames only); `make mappings-check` reports rule drift without writing +- `make test` - `test-offline` (SHOW/DESCRIBE against the file registry), `test-integration` (mock Sumo Logic API, row-level), `test-meta` (SHOW/DESCRIBE gate over every resource through a local `stackql srv`) +- `make smoke-test` / `make smoke-test-live` / `make smoke-cleanup` - live suite against the local or the published provider; sources `.env` (`SUMOLOGIC_ACCESSID`, `SUMOLOGIC_ACCESSKEY`, `SUMOLOGIC_ENVIRONMENT`). Nothing it creates is billable and everything is named `stackql-smoke-*` and swept +- `make docs` / `make docs-build` / `make docs-serve` - generate `website/docs` (snake_case surface, then `website/scripts/sanitize-docs.mjs`), build, serve +- `make compare` - regenerate the README Breaking Changes section from `provider-dev/config/predecessor_methods.csv` + +A stackql binary is needed for the tests: `$STACKQL`, `./stackql`, or `stackql` on PATH (on this machine the WSL binary is `/home/javen/.local/bin/stackql`; `STACKQL=/home/javen/.local/bin/stackql make test`). + +## Architecture + +- `provider-dev/downloaded/sumologic-api.yaml` - the pinned vendor spec (443 operations, served unversioned at `https://api.sumologic.com/docs/sumologic-api.yaml`; hash in `provider-dev/config/spec_pin.json`) +- `provider-dev/downloaded/sumologic-collector-management-api.yaml` - hand-authored OpenAPI for the Collector Management API (collectors, sources, upgrades - 18 operations, not in the vendor document). Edit this file to change the collectors service +- `bin/split.mjs` - tag -> service split through `provider-dev/config/service_names.json` (tags sharing a name merge; an unmapped tag fails the run), sets service titles/descriptions, drops the vendor's per-deployment servers list, merges the collectors spec +- `provider-dev/scripts/pre_normalize.mjs` - unwraps the spec's Redoc-relative anchor links (`[text](#operation/...)`) that would be broken anchors on the docs site +- `provider-dev/scripts/map_operations.mjs` - generic CRUD heuristics plus the explicit `RULES` table (path regex per service). Mapping decisions are rules here, never CSV edits. FILL-ONLY by default: `provider-dev/config/all_services.csv` is the durable contract for resource and method names between releases +- `provider-dev/scripts/post_process.mjs` - `request.nativeCasing: camel` on every method except body-less EXECs, object keys on POST-backed SELECTs, per-method pagination overrides (`nextToken`, `token`, body cursor) +- `provider-dev/scripts/compare_predecessor.mjs` - disposition of every method of the previous release against this build, written into the README between the `BEGIN:BREAKING-CHANGES` markers +- `tests/` - `offline_validation.mjs`, `integration/` (mock server + runner), `smoke_test.mjs` +- `bin/` - `fetch-spec.sh`, server lifecycle scripts, `test-meta-routes.cjs` +- `website/` - Docusaurus 3.10 microsite on the shared `stackql/docusaurus-config` (vendored into `.shared-config/` at build time). Site-local files: `provider.js`, thin `docusaurus.config.js` (adds `showLastUpdateTime`), `sidebars.js`, `scripts/sanitize-docs.mjs`, `src/`, `static/`. The landing page is mastered in `provider-dev/docgen/provider-data/headerContent1.txt` and `headerContent2.txt` - never edit `website/docs/index.md` directly. Deployed with GitHub Pages via `.github/workflows/prod-web-deploy.yml` (pushes to `main` touching `website/**`; Pages source = GitHub Actions; `static/CNAME` pins `sumologic-provider.stackql.io`) - not Netlify, no `gh-pages` branch + +## Design decisions + +- **Auth and region.** HTTP basic with `SUMOLOGIC_ACCESSID` / `SUMOLOGIC_ACCESSKEY` (Terraform parity). The deployment is the `region` server variable of every service, template `https://api.{region}.sumologic.com/api`, enum of the 11 deployments (`us1` resolves to `api.us1.sumologic.com`, which the vendor serves), `x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT` (Terraform's variable), default `us2` (the previous release's default - keeps existing queries working). A `WHERE region` value wins over the environment +- **snake_case surface.** `snake_case_aliases: true` on the provider config plus `request.nativeCasing: camel` per method (post-process). Columns and WHERE/INSERT/UPDATE keys are snake; the wire stays camelCase; nested JSON keeps wire casing. A body-less EXEC method gets no `request` block at all - stackql's EXEC analyzer fails on a request block without a body schema (`no request body for operation`) +- **Request bodies.** `--naive-req-body-translate`: top-level body properties are INSERT/UPDATE columns. The Collector Management API wraps bodies in `collector` / `source` objects, so those INSERTs take one JSON-valued column (`INSERT INTO sumologic.collectors.collectors (collector) SELECT '{...}'`) - the edge case where naive translate cannot flatten +- **Verbs.** GET collection -> `list`, GET /{id} -> `get`, POST with body -> `create` (INSERT), PUT -> `update` (UPDATE; Sumo Logic PUTs replace the object, documented), PATCH -> UPDATE with the sibling PUT as REPLACE (SCIM only), DELETE -> `delete`. Lifecycle and action operations are EXEC methods on the resource they act on (`users.unlock`, `partitions.decommission`, `scheduled_views.pause`, `roles.assign_user`) rather than separate non-selectable resources. Async job triads are `_jobs` (EXEC `start` + SELECT `get` = status) and `_results` (SELECT). A POST without a request body is always EXEC - the registry tests require an INSERT method to carry a request schema +- **Naming.** Plural snake_case resources; where the vendor has a v1 and a v2 surface for the same entity both exist, v2 gets a `_v2` suffix (`roles_v2`, `apps_v2`, `metrics_searches_v2`) matching the Terraform resource names; where only v2 exists it takes the plain name (`ingest_budgets`) +- **Pagination.** Service-level `x-stackQL-config.pagination`: `token` query parameter in, `next` body token out (the Sumo Logic convention). Overrides in post-process for `nextToken` (data archiving, logs data forwarding), `token` (saved log searches) and the POST-driven OpenTelemetry collectors list whose cursor travels in the request body. The Collector Management API pages by limit/offset (default limit 1000) and has no cursor, so the service config never triggers there +- **Pushdown.** Every declared query/header parameter is usable in the WHERE clause and sent on the wire (`email`, `name`, `filter`, `query`, `ids`, `sort_by`, `mode`, `If-Match`...). No `queryParamPushdown` blocks are configured: `limit` interacts with the pagination loop and `sortBy` values are wire-cased +- **Skips (reason-coded in the CSV):** the deprecated v1 source-template surface (superseded by v2), the multipart lookup table upload, the PDF dashboard report result +- **Scalar responses.** `account.account_owner` (a JSON string) and `saml.identity_provider_metadata` (XML) legitimately have no DESCRIBE columns; `bin/test-meta-routes.cjs` lists them in `SCALAR_RESPONSE_RESOURCES` + +## Refreshing from upstream + +`make all`, or step by step: `make spec` (accept drift) -> `make build` -> review `git diff provider-dev/config/all_services.csv` (only NEW rows are derived; a new tag fails the split until it is added to `service_names.json`) -> `make compare` -> `make test` -> `make docs docs-build`. Then `make smoke-test` with credentials, publish per the README, `make smoke-test-live`. + +## Gotchas + +- Windows: the shell tool truncates very long commands; use the file tools for large files. `node` on Windows does not resolve `/c/...` paths - use `C:/...` +- WSL: pass the binary as `STACKQL=/home/javen/.local/bin/stackql` rather than editing PATH inside `wsl.exe bash -c` (the Windows PATH is interpolated and contains parentheses) +- `provider-dev/source/*.yaml`, `provider-dev/openapi/**` and `website/docs/**` are generated and committed (reviewable diffs, `showLastUpdateTime` stamps from git history). Regenerate; never hand-edit +- The docgen `--snake-case-aliases` flag renders the snake surface; body columns are rendered snake because naive translate plus nativeCasing resolves them (verified in the integration suite) +- `website/static/CNAME` pins `sumologic-provider.stackql.io` (the 2025 repo carried a wrong hostname) + +## Writing conventions + +Measured and factual, no hyperbole. No em dashes (use `-`), `->` for arrows, QWERTY-only characters. Runnable SQL examples with `json_extract` for nested fields. Commit messages end with the attribution line given in the session. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..630f6d7 --- /dev/null +++ b/Makefile @@ -0,0 +1,189 @@ +# StackQL sumologic provider - build, test and docs pipeline. +# +# `make all` runs the full chain from the current upstream spec (no live +# credentials needed): +# +# deps npm install (@stackql/provider-utils, @stackql/pgwire-lite) +# spec download the Sumo Logic API spec and accept any upstream +# change (rewrites provider-dev/config/spec_pin.json; review +# the diff). `make spec-check` fails on drift instead. +# split per-service specs under provider-dev/source/ from the tag -> +# service map, plus the hand-authored Collector Management API +# pre-normalize Sumo Logic-specific fixes (Redoc anchors) before ... +# normalize provider-utils normalize (allOf flatten, oneOf/anyOf lowering, +# bare-array wrapping) +# mappings refresh provider-dev/config/all_services.csv (analyze keeps +# every committed row) then map_operations.mjs fills in NEW +# operations only and prunes retired ones - the committed CSV +# is the contract that keeps resource names stable. FAILS on an +# operation the rules cannot place. +# generate generate the provider tree (region server template, basic +# auth, snake_case aliases, token/next pagination, naive request +# body translate) then post_process.mjs (nativeCasing, object +# keys on POST-backed lists, per-method pagination overrides) +# compare regenerate the README Breaking Changes section against the +# predecessor snapshot +# test offline validation, mock-API integration tests and the +# SHOW/DESCRIBE meta-route gate over every resource +# docs generate the Docusaurus markdown (snake_case surface) and +# sanitize it for MDX +# docs-build yarn build of website/ (vendors the shared config; needs +# GitHub access) +# +# Live smoke tests hit the Sumo Logic API and need credentials, so they are +# NOT part of `all`. Populate .env (SUMOLOGIC_ACCESSID, SUMOLOGIC_ACCESSKEY, +# SUMOLOGIC_ENVIRONMENT) then: +# +# make smoke-test # local provider (provider-dev/openapi) +# make smoke-test-live # the published provider (REGISTRY PULL sumologic) +# make smoke-test SMOKE_ARGS="--read-only" +# make smoke-cleanup # sweep stackql-smoke-* breadcrumbs +# +# Run from Linux, macOS or WSL (bash, GNU make, Node >= 20, yarn, and a +# stackql binary: $STACKQL, ./stackql or on PATH). + +SHELL := /bin/bash +.DEFAULT_GOAL := help + +PROVIDER := sumologic +VERSION := v00.00.00000 +SOURCE_DIR := provider-dev/source +CONFIG_DIR := provider-dev/config +OPENAPI_DIR := provider-dev/openapi +PROVIDER_DIR := $(OPENAPI_DIR)/src/$(PROVIDER)/$(VERSION) +WEBSITE_DIR := website +PORT ?= 5444 +SPEC_REFRESH ?= 1 +SMOKE_ARGS ?= +ENV_FILE ?= .env + +.PHONY: all help deps spec spec-check split pre-normalize normalize mappings mappings-rebuild mappings-check \ + generate post-process compare build test-offline test-integration test-meta test \ + smoke-test smoke-test-live smoke-cleanup docs docs-build docs-serve \ + start-server stop-server server-status clean + +all: deps spec build compare test docs docs-build ## deps, spec refresh, full pipeline, all non-live tests, docs, site build + @echo "" + @echo "make all complete: provider + docs generated, offline / integration / meta-route gates passed." + @echo "Live smoke tests are run separately - see 'make help'." + +help: ## show this help + @grep -E '^[a-zA-Z_-]+:.*?## ' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " %-18s %s\n", $$1, $$2}' + +deps: ## npm install + npm install + +# ---------------------------------------------------------------- pipeline + +spec: ## download the Sumo Logic API spec and accept any upstream change (SPEC_REFRESH=0 to skip) +ifeq ($(SPEC_REFRESH),1) + bash bin/fetch-spec.sh --update +else + @echo "SPEC_REFRESH=0 - using the pinned provider-dev/downloaded/sumologic-api.yaml" +endif + +spec-check: ## download the spec and FAIL if it differs from the pin (CI drift check) + bash bin/fetch-spec.sh + +split: ## split the spec into per-service specs (tag -> service map) and merge the collectors spec + node bin/split.mjs --overwrite + +pre-normalize: ## Sumo Logic-specific spec adjustments before the generic normalize pass + node provider-dev/scripts/pre_normalize.mjs + +normalize: ## provider-utils normalize (allOf flatten, oneOf/anyOf lowering, bare-array wrap) + npm run normalize --silent -- --api-dir $(SOURCE_DIR) + +mappings: ## refresh all_services.csv (committed rows kept) and map NEW operations only + npm run generate-mappings --silent -- --input-dir $(SOURCE_DIR) --output-dir $(CONFIG_DIR) > /dev/null + node provider-dev/scripts/map_operations.mjs + +mappings-rebuild: ## re-derive EVERY row of all_services.csv from the rules (deliberate, reviewed renames only) + npm run generate-mappings --silent -- --input-dir $(SOURCE_DIR) --output-dir $(CONFIG_DIR) > /dev/null + node provider-dev/scripts/map_operations.mjs --rebuild --summary + +mappings-check: ## report committed mappings that differ from what the rules derive today (no write) + node provider-dev/scripts/map_operations.mjs --check + +generate: ## generate the provider tree from the split specs and the mapping CSV, then post-process + rm -rf $(OPENAPI_DIR)/* + npm run generate-provider --silent -- \ + --provider-name $(PROVIDER) \ + --input-dir $(SOURCE_DIR) \ + --output-dir $(OPENAPI_DIR)/src/$(PROVIDER) \ + --config-path $(CONFIG_DIR)/all_services.csv \ + --servers $(CONFIG_DIR)/servers.json \ + --provider-config $(CONFIG_DIR)/provider_config.json \ + --service-config $(CONFIG_DIR)/service_config.json \ + --naive-req-body-translate \ + --overwrite > /dev/null + $(MAKE) post-process + +post-process: ## re-apply the generated-provider fixes (nativeCasing, object keys, pagination overrides) + node provider-dev/scripts/post_process.mjs + +compare: ## regenerate the README Breaking Changes section against the predecessor snapshot + node provider-dev/scripts/compare_predecessor.mjs + +build: split pre-normalize normalize mappings generate ## split + pre-normalize + normalize + mappings + generate + +# ------------------------------------------------------------------- tests + +test-offline: ## SHOW / DESCRIBE assertions against the local file registry (no server, no credentials) + node tests/offline_validation.mjs + +test-integration: ## row-level tests against the mock Sumo Logic API (no credentials) + node tests/integration/run_integration_tests.mjs + +# Go/no-go gate: the server is always torn down and the meta-test's exit +# status is preserved so a failure stops `make all`. +test-meta: ## SHOW/DESCRIBE meta-route gate over every resource via a local stackql server on PORT + bash bin/start-server.sh --provider $(PROVIDER) --registry "$(CURDIR)/$(OPENAPI_DIR)" --port $(PORT) + node bin/test-meta-routes.cjs $(PROVIDER) --port $(PORT); status=$$?; bash bin/stop-server.sh --port $(PORT); exit $$status + +test: test-offline test-integration test-meta ## all non-live test layers + +# `make smoke-test` sources .env when present so a developer checkout works +# without exporting anything; CI sets the variables from secrets. +with_env = set -a; [ -f $(ENV_FILE) ] && source <(tr -d '\r' < $(ENV_FILE)); set +a; + +smoke-test: ## live smoke suite against the LOCAL provider (needs .env / SUMOLOGIC_* vars; SMOKE_ARGS="--read-only" ...) + @$(with_env) node tests/smoke_test.mjs $(SMOKE_ARGS) + +smoke-test-live: ## live smoke suite against the PUBLISHED provider (post-publish verification) + @$(with_env) node tests/smoke_test.mjs --live $(SMOKE_ARGS) + +smoke-cleanup: ## sweep stackql-smoke-* collectors, roles, folders and monitor folders and exit + @$(with_env) node tests/smoke_test.mjs --cleanup-only $(SMOKE_ARGS) + +# -------------------------------------------------------------------- docs + +docs: ## generate website/docs (snake_case surface) and sanitize for MDX + rm -rf $(WEBSITE_DIR)/docs/* + npm run generate-docs --silent -- \ + --provider-name $(PROVIDER) \ + --provider-dir ./$(PROVIDER_DIR) \ + --output-dir ./$(WEBSITE_DIR) \ + --provider-data-dir ./provider-dev/docgen/provider-data \ + --snake-case-aliases > /dev/null + node $(WEBSITE_DIR)/scripts/sanitize-docs.mjs + +docs-build: ## yarn install && yarn build in website/ (vendors the shared Docusaurus config) + cd $(WEBSITE_DIR) && yarn install --silent && yarn build + +docs-serve: ## yarn start in website/ + cd $(WEBSITE_DIR) && yarn start + +# ------------------------------------------------------------ local server + +start-server: ## start a local stackql server on PORT serving provider-dev/openapi + bash bin/start-server.sh --provider $(PROVIDER) --registry "$(CURDIR)/$(OPENAPI_DIR)" --port $(PORT) + +stop-server: ## stop the local stackql server on PORT + bash bin/stop-server.sh --port $(PORT) + +server-status: ## status of the local stackql server on PORT + bash bin/server-status.sh --port $(PORT) + +clean: ## remove generated provider, split source, docs, website build and the integration registry copy + rm -rf $(OPENAPI_DIR)/* $(SOURCE_DIR)/*.yaml $(WEBSITE_DIR)/docs $(WEBSITE_DIR)/build $(WEBSITE_DIR)/.docusaurus tests/integration/.registry-tmp stackql-server.log diff --git a/README.md b/README.md index 93e24d1..b6907ef 100644 --- a/README.md +++ b/README.md @@ -1,256 +1,322 @@ -# `sumologic` provider for [`stackql`](https://github.com/stackql/stackql) - -This repository is used to generate and document the `sumologic` provider for StackQL, allowing you to query and manipulate Sumo Logic resources using SQL-like syntax. The provider is built using the `@stackql/provider-utils` package, which provides tools for converting OpenAPI specifications into StackQL-compatible provider schemas. - -## Prerequisites - -To use the Sumo Logic provider with StackQL, you'll need: - -1. A Sumo Logic account with appropriate API credentials -2. Sumo Logic Access ID and Access Key with sufficient permissions for the resources you want to access -3. StackQL CLI installed on your system (see [StackQL](https://github.com/stackql/stackql)) - -## 1. Download the Open API Specification - -First, download the Sumo Logic API OpenAPI specification: - -```bash -rm -rf provider-dev/downloaded/* -curl -L https://api.sumologic.com/docs/sumologic-openapi.yaml \ - -o provider-dev/downloaded/sumologic-openapi.yaml - -# Convert YAML to JSON if needed -python3 provider-dev/scripts/yaml_to_json.py \ - --input provider-dev/downloaded/sumologic-openapi.yaml \ - --output provider-dev/downloaded/openapi.json -``` - -## 2. Split into Service Specs - -Next, split the monolithic OpenAPI specification into service-specific files: - -```bash -rm -rf provider-dev/source/* -npm run split -- \ - --provider-name sumologic \ - --api-doc provider-dev/downloaded/openapi.json \ - --svc-discriminator tag \ - --output-dir provider-dev/source \ - --overwrite \ - --svc-name-overrides "$(cat <_jobs` (`EXEC start` + `SELECT` status) and `_results` resources. +- **A durable mapping contract.** `provider-dev/config/all_services.csv` records every operation's resource, method, SQL verb and object key. Refreshes only add rows for new operations and prune retired ones; a resource name never silently changes between releases. +- **Deterministic builds.** Every pipeline step is a re-runnable script; mapping decisions are rules in `provider-dev/scripts/map_operations.mjs`, never hand-edits to CSVs or generated YAML. Scripts validate and fail without writing. + + + +### Breaking changes from the previous provider release + +Every method of the previous release (267 methods across 32 services) is dispositioned against this build by operation (path and HTTP verb): 151 carried on the same resource, 105 moved to a renamed or restructured resource, 11 retired; 195 operations are new to this release. The previous provider version stays available in the registry for pinning. + +**Method names.** Operation-derived method names (`listUsers`, `getUser`, `createUser`) become resource-scoped names (`list`, `get`, `create`, `update`, `delete`) on every carried resource, and lifecycle operations become `EXEC` methods on the resource they act on (`users.unlock`, `partitions.decommission`, `scheduled_views.pause`) instead of separate non-selectable resources. Columns and `WHERE` / `INSERT` keys are now `snake_case` (`firstName` -> `first_name`); nested JSON values keep the wire casing. + +**Renamed or restructured resources** (previous -> this release): + +| Previous resource | This release | +|---|---| +| `access_keys.personal` | `access_keys.personal_access_keys` | +| `account.subdomain_recover` | `account.subdomain` | +| `apps.install` | `apps.apps` | +| `apps.install_status` | `apps.install_jobs` | +| `archive.jobs_count` | `archive.job_counts` | +| `connections.incident_templates` | `connections.connections` | +| `connections.test` | `connections.connections` | +| `content.copy` | `content.copy_jobs` | +| `content.copy_status` | `content.copy_jobs` | +| `content.delete` | `content.delete_jobs` | +| `content.delete_status` | `content.delete_jobs` | +| `content.export` | `content.export_jobs` | +| `content.export_result` | `content.export_results` | +| `content.export_status` | `content.export_jobs` | +| `content.folders_admin_recommended` | `content.admin_recommended_folder_jobs` | +| `content.folders_admin_recommended_result` | `content.admin_recommended_folder_results` | +| `content.folders_admin_recommended_status` | `content.admin_recommended_folder_jobs` | +| `content.folders_global` | `content.global_folder_jobs` | +| `content.folders_global_result` | `content.global_folder_results` | +| `content.folders_global_status` | `content.global_folder_jobs` | +| `content.folders_import` | `content.import_jobs` | +| `content.folders_import_status` | `content.import_jobs` | +| `content.folders_personal` | `content.personal_folder` | +| `content.move` | `content.items` | +| `content.path` | `content.items`, `content.paths` | +| `content.permissions_add` | `content.permissions` | +| `content.permissions_remove` | `content.permissions` | +| `dashboards.report_jobs_status` | `dashboards.report_jobs` | +| `fields.builtin` | `fields.builtin_fields` | +| `fields.disable` | `fields.fields` | +| `fields.dropped` | `fields.dropped_fields` | +| `fields.enable` | `fields.fields` | +| `health_events.resources` | `health_events.health_events` | +| `ingest_budgets.ingest_budgets_v2` | `ingest_budgets.ingest_budgets` | +| `ingest_budgets.usage_reset` | `ingest_budgets.ingest_budgets` | +| `log_searches.estimated_usage_by_tier` | `log_searches.estimated_usage` | +| `lookup_tables.delete_table_row` | `lookup_tables.lookup_tables` | +| `lookup_tables.jobs_status` | `lookup_tables.jobs` | +| `lookup_tables.row` | `lookup_tables.lookup_tables` | +| `lookup_tables.truncate` | `lookup_tables.lookup_tables` | +| `monitors.copy` | `monitors.monitors` | +| `monitors.disable` | `monitors.monitors` | +| `monitors.export` | `monitors.monitors` | +| `monitors.import` | `monitors.monitors` | +| `monitors.move` | `monitors.monitors` | +| `monitors.path` | `monitors.monitors`, `monitors.paths` | +| `monitors.permission_summaries_by_subjects` | `monitors.permission_summaries` | +| `monitors.permissions_revoke` | `monitors.permissions` | +| `monitors.permissions_set` | `monitors.permissions` | +| `partitions.cancel_retention_update` | `partitions.partitions` | +| `partitions.decommission` | `partitions.partitions` | +| `plan.pending_update_request` | `account.pending_update_request` | +| `roles.users` | `roles.roles` | +| `saml.lockdown_disable` | `saml.lockdown` | +| `saml.lockdown_enable` | `saml.lockdown` | +| `scheduled_views.disable` | `scheduled_views.scheduled_views` | +| `scheduled_views.pause` | `scheduled_views.scheduled_views` | +| `scheduled_views.start` | `scheduled_views.scheduled_views` | +| `service_allowlist.addresses_add` | `service_allowlist.addresses` | +| `service_allowlist.addresses_remove` | `service_allowlist.addresses` | +| `service_allowlist.disable` | `service_allowlist.status` | +| `service_allowlist.enable` | `service_allowlist.status` | +| `slos.copy` | `slos.slos` | +| `slos.export` | `slos.slos` | +| `slos.import` | `slos.slos` | +| `slos.move` | `slos.slos` | +| `slos.path` | `slos.paths`, `slos.slos` | +| `slos.sli` | `slos.slos` | +| `tracing.spanquery` | `tracing.span_queries` | +| `tracing.spanquery_aggregates` | `tracing.span_query_aggregates` | +| `tracing.spanquery_fields` | `tracing.span_query_fields` | +| `tracing.spanquery_fields_values` | `tracing.span_query_field_values` | +| `tracing.spanquery_pause` | `tracing.span_queries` | +| `tracing.spanquery_resume` | `tracing.span_queries` | +| `tracing.spanquery_rows_facets` | `tracing.span_query_facets` | +| `tracing.spanquery_rows_spans` | `tracing.span_query_results` | +| `tracing.spanquery_status` | `tracing.span_queries` | +| `tracing.tracequery` | `tracing.trace_queries` | +| `tracing.tracequery_fields` | `tracing.trace_query_fields` | +| `tracing.tracequery_fields_values` | `tracing.trace_query_field_values` | +| `tracing.tracequery_rows_traces` | `tracing.trace_query_results` | +| `tracing.tracequery_status` | `tracing.trace_queries` | +| `tracing.traces_critical_path` | `tracing.critical_paths` | +| `tracing.traces_critical_path_breakdown_service` | `tracing.critical_path_service_breakdowns` | +| `tracing.traces_exists` | `tracing.trace_existence` | +| `tracing.traces_spans` | `tracing.spans` | +| `tracing.traces_spans_billing_info` | `tracing.span_billing_info` | +| `tracing.traces_trace_events` | `tracing.trace_events` | +| `users.email_request_change` | `users.users` | +| `users.mfa_disable` | `users.users` | +| `users.password_reset` | `users.users` | +| `users.unlock` | `users.users` | + +**Retired methods** (reason-coded): + +- `dashboards.report_jobs_result.getAsyncReportGenerationResult` (GET /v2/dashboards/reportJobs/{jobId}/result) - skipped in this build (see all_services.csv) +- `ingest_budgets.collectors.assignCollectorToBudget` (PUT /v1/ingestBudgets/{id}/collectors/{collectorId}) - operation no longer in the vendor spec +- `ingest_budgets.collectors.getAssignedCollectors` (GET /v1/ingestBudgets/{id}/collectors) - operation no longer in the vendor spec +- `ingest_budgets.collectors.removeCollectorFromBudget` (DELETE /v1/ingestBudgets/{id}/collectors/{collectorId}) - operation no longer in the vendor spec +- `ingest_budgets.ingest_budgets_v1.createIngestBudget` (POST /v1/ingestBudgets) - operation no longer in the vendor spec +- `ingest_budgets.ingest_budgets_v1.deleteIngestBudget` (DELETE /v1/ingestBudgets/{id}) - operation no longer in the vendor spec +- `ingest_budgets.ingest_budgets_v1.getIngestBudget` (GET /v1/ingestBudgets/{id}) - operation no longer in the vendor spec +- `ingest_budgets.ingest_budgets_v1.listIngestBudgets` (GET /v1/ingestBudgets) - operation no longer in the vendor spec +- `ingest_budgets.ingest_budgets_v1.updateIngestBudget` (PUT /v1/ingestBudgets/{id}) - operation no longer in the vendor spec +- `ingest_budgets.usage_reset.resetUsage` (POST /v1/ingestBudgets/{id}/usage/reset) - operation no longer in the vendor spec +- `lookup_tables.upload.uploadFile` (POST /v1/lookupTables/{id}/upload) - skipped in this build (see all_services.csv) + + + +## Prerequisites + +- Node.js >= 20, GNU make, bash (Linux, macOS or WSL) +- A `stackql` binary for testing (`$STACKQL`, `./stackql`, or on `PATH`) - [install](https://stackql.io/docs/installing-stackql) +- yarn for the docs site +- A Sumo Logic access key pair for the live smoke tests - Administration -> Security -> Access Keys in the console + +```bash +npm install +``` + +### Makefile + +Every step below is a `make` target; `make help` lists them. The two composite targets are: + +```bash +make all # deps, spec refresh, full pipeline, Breaking Changes, offline + integration + meta-route tests, docs, site build +make smoke-test # live smoke suite against the locally generated provider (sources .env) +``` + +`make all` never needs credentials and never bills. Live credentials are read from the environment or a gitignored `.env` (see `.env.example`): + +```bash +SUMOLOGIC_ACCESSID=su... +SUMOLOGIC_ACCESSKEY=... +SUMOLOGIC_ENVIRONMENT=us2 +``` + +## 1. Download and pin the spec + +```bash +make spec # accept the current upstream spec (rewrites the pin) +make spec-check # fail if upstream differs from the pin (CI) +``` + +Sumo Logic serves its OpenAPI document unversioned from the API reference site of every deployment (`https://api.sumologic.com/docs/sumologic-api.yaml`); `bin/fetch-spec.sh` downloads it into `provider-dev/downloaded/`, validates it with `@apidevtools/swagger-parser`, and records the date, hash and operation count in `provider-dev/config/spec_pin.json`. The current pin: OpenAPI 3.0.0, 305 paths, 443 operations, 58 tags. + +The Collector Management API (collectors, sources, collector upgrades - the surface the Terraform provider's `sumologic_collector` and `sumologic_*_source` resources use) is documented separately and is not in the vendor document. It is maintained by hand in `provider-dev/downloaded/sumologic-collector-management-api.yaml` (18 operations) and merged in at the split step. + +## 2. Split into service specs + +```bash +make split +``` + +`bin/split.mjs` splits the pinned spec by vendor tag through the explicit tag -> service map in `provider-dev/config/service_names.json` (58 tags -> 49 services; tags sharing a name are merged, for example `appManagement` + `appManagementV2` -> `apps`, `contentManagement` + `contentPermissions` + `folderManagement` -> `content`, `traces` + `spanAnalytics` + `serviceMap` -> `tracing`), writes the service titles and descriptions carried into `provider.yaml`, and adds the collectors service from the hand-authored spec. An operation with a tag missing from the map fails the run, so a refresh that introduces a new tag is a deliberate decision. + +## 3. Normalize + +```bash +make pre-normalize normalize +``` + +`pre_normalize.mjs` unwraps the spec's Redoc-relative anchor links (`[text](#operation/getFolder)`), which would be broken anchors on the docs site. The generic provider-utils pass then flattens `allOf`, lowers `oneOf` / `anyOf`, lifts path-level parameters and wraps the ten bare-array responses (monitor search and playbooks, SAML lists, usage info) in an object envelope so their rows project. + +## 4. Generate mappings + +```bash +make mappings # committed rows kept, NEW operations derived, retired rows pruned +make mappings-rebuild # re-derive every row (deliberate, reviewed renames only) +make mappings-check # report committed rows that differ from today's rules, no write +``` + +`generate-mappings` (provider-utils `analyze`) refreshes the skeleton of `provider-dev/config/all_services.csv` keeping every committed row; `map_operations.mjs` derives the mapping for rows that have none. Derivation is generic CRUD heuristics plus an explicit rules table (path regex per service); every rule change is reviewable in the script and its effect in the CSV diff. + +| Operation pattern | StackQL verb | Resource / method | +|---|---|---| +| GET collection (`data[]` + `next`, or `apps[]`, `dashboards[]`, `collectors[]` ...) | `SELECT` | `.list`, objectKey `$.data` / `$.` | +| GET `/{id}` (`$.collector` / `$.source` where the Collector API wraps the object) | `SELECT` | `.get` | +| GET singleton (account status, policies, quotas, personal folder) | `SELECT` | `.get` | +| POST with a body | `INSERT` | `.create` | +| PUT `/{id}` or singleton (Sumo Logic updates replace the object) | `UPDATE` | `.update` | +| PATCH, with the sibling PUT (SCIM) | `UPDATE` / `REPLACE` | `users.update` / `users.replace` | +| DELETE | `DELETE` | `.delete` | +| lifecycle / action (`unlock`, `pause`, `decommission`, `copy`, `move`, `import`, `export`, `rotate`, `assign_user` ...) | `EXEC` | on the parent resource | +| async job start / status / result | `EXEC` / `SELECT` | `_jobs.start`, `_jobs.get`, `_results.get` | +| POST without a body | `EXEC` | (an INSERT must carry a request schema) | +| deprecated v1 source templates, multipart lookup upload, PDF report result | skipped | reason-coded in the CSV | + +Mapping results for the pinned spec: 461 operations -> 199 `SELECT`, 50 `INSERT`, 53 `UPDATE`, 1 `REPLACE`, 49 `DELETE`, 99 `EXEC`, 10 skipped; 163 resources across 50 services. Where the vendor keeps a v1 and a v2 surface for the same entity both are mapped and v2 carries a `_v2` suffix (`roles_v2`, `apps_v2`, `metrics_searches_v2`), matching the Terraform resource names. + +## 5. Generate the provider + +```bash +make generate +``` + +which runs `generate-provider` with the region server template (`provider-dev/config/servers.json`), the basic-auth provider config with `snake_case_aliases` (`provider_config.json`), the token / next pagination service config (`service_config.json`) and `--naive-req-body-translate` (top-level request body properties are `INSERT` / `UPDATE` columns), then `post_process.mjs`: + +- `request.nativeCasing: camel` on every method except the body-less `EXEC`s (a request block without a body schema breaks stackql's EXEC analyzer), with the body media type on the methods that have one +- object keys on `SELECT` methods backed by a POST (the OpenTelemetry collectors list) +- pagination overrides: `nextToken` (data archiving destinations, logs data forwarding destinations and rules), `token` (saved log searches), and the cursor in the request body for `POST /v1/otCollectors` + +The Collector Management API wraps request bodies in `collector` / `source` objects, so those `INSERT`s take one JSON-valued column - the edge case naive translate cannot flatten: + +```sql +INSERT INTO sumologic.collectors.collectors (collector) +SELECT '{"name": "stackql-hosted", "collectorType": "Hosted", "category": "stackql/demo"}'; +``` + +## 6. Test + +Four layers; the first three run in `make test` and need no credentials. + +```bash +make test-offline # SHOW / DESCRIBE assertions against the local file registry +make test-integration # row-level tests against the mock Sumo Logic API +make test-meta # SHOW / DESCRIBE over every service, resource and method via a local stackql server +make smoke-test # live, needs .env +``` + +**Offline validation** (`tests/offline_validation.mjs`) asserts the 50 services and the resource inventory of the key services, the region variable (never a required parameter; `x-stackQL-envVar SUMOLOGIC_ENVIRONMENT`, default `us2`), the snake_case columns, the lifecycle `EXEC`s on `users`, `monitors`, `scheduled_views` and `lookup_tables`, the SCIM `REPLACE`, the skipped operations and the `SHOW INSERT` templates. + +**Integration tests** (`tests/integration/`) run the provider against an in-process mock of the Sumo Logic API serving the vendor's wire shapes (paginated `data` / `next` lists, the Collector API wrappers, bare arrays, the `token` and `nextToken` cursors, the POST-driven list with a body cursor, SCIM JSON, a JSON-string scalar, the error envelope) on `http://127.0.0.1:/{region}/api`, so the region segment of every request is recorded. They assert basic auth, the default / environment / `WHERE` resolution of `region`, multi-page traversal, `WHERE email` pushdown, snake -> camel translation of `WHERE`, `INSERT` and `UPDATE` keys, a user and a role lifecycle with the `unlock` and `assign_user` / `remove_user` `EXEC`s, a hosted collector and HTTP source lifecycle through the `collector` / `source` wrappers, `partitions.decommission`, the monitors search, the SCIM list, the account owner scalar, nested JSON columns and the 404 envelope. + +**Meta-route tests** walk every `SHOW SERVICES` / `SHOW RESOURCES` / `SHOW EXTENDED METHODS` / `DESCRIBE EXTENDED` route through `stackql srv` and fail on a resource whose select method has no columns (two scalar responses, the account owner string and the SAML metadata XML, are allowed). + +**Smoke tests** (`tests/smoke_test.mjs`) run against a real account: read smokes over users (including a `limit = 1` traversal that must return every user), roles (with a `name` pushdown), service accounts, access keys, collectors and sources, the personal folder, dashboards, monitors, partitions, fields and the field quota, scheduled views, ingest budgets, connections, tokens, log searches, the app catalog, health events and the password and audit policies; then a disposable write lifecycle - a hosted collector with an HTTP source, a role (`INSERT` / `UPDATE` / `DELETE`), a folder in the personal folder (`INSERT` / `UPDATE`, then the asynchronous delete job started with `EXEC` and polled with `SELECT`) and a monitor folder. Nothing created is billable (hosted collectors, sources with no data, roles, folders); everything is named `stackql-smoke-` and swept before and after the run. + +```bash +make smoke-test # local provider +make smoke-test SMOKE_ARGS="--read-only" # no writes +make smoke-test-live # the published provider (REGISTRY PULL sumologic first) +make smoke-cleanup # sweep breadcrumbs only +``` + +### UAT + +```bash +set -a; source .env; set +a +REG_ROOT="$(pwd)/provider-dev/openapi" +REG="{\"url\":\"file://${REG_ROOT}\",\"localDocRoot\":\"${REG_ROOT}\",\"verifyConfig\":{\"nopVerify\":true}}" +stackql --registry="${REG}" shell +``` + +```sql +SELECT id, first_name, last_name, email, is_active FROM sumologic.users.users; +SELECT id, name, collector_type, alive FROM sumologic.collectors.collectors; +SELECT id, name, analytics_tier, retention_period FROM sumologic.partitions.partitions; +``` + +### CI + +`.github/workflows/build-and-test.yml` builds from the pinned spec (warning on upstream drift), fails on uncommitted generation drift, checks the Breaking Changes section, runs the offline, integration and meta-route layers and the docs generation on every push and PR; runs the secret-gated live smoke suite on pushes; and a weekly `spec-drift` job that opens an issue when the served spec moves. The web workflows build and deploy the microsite from `main`. + +## 7. Publish the provider + +Push the `sumologic` dir (`provider-dev/openapi/src/sumologic`) to `providers/src` in a feature branch of [`stackql-provider-registry`](https://github.com/stackql/stackql-provider-registry) and follow the [registry release flow](https://github.com/stackql/stackql-provider-registry/blob/dev/docs/build-and-deployment.md). Pull and verify from the dev registry: + +```bash +export DEV_REG="{ \"url\": \"https://registry-dev.stackql.app/providers\" }" +stackql --registry="${DEV_REG}" shell +``` + +```sql +registry pull sumologic; +``` + +then `make smoke-test-live`. + +## 8. Generate the web docs + +```bash +make docs # generate-docs --snake-case-aliases + website/scripts/sanitize-docs.mjs +make docs-build # yarn install && yarn build (vendors the shared config; needs GitHub access) +make docs-serve +``` + +The microsite (`website/`) is Docusaurus 3.10 on the shared [`stackql/docusaurus-config`](https://github.com/stackql/docusaurus-config), vendored into `.shared-config/` at build time. Site-local files are the provider identity (`website/provider.js`), a thin `docusaurus.config.js` (which also turns on `showLastUpdateTime`, so every page carries a "Last updated on ..." stamp from git history), `sidebars.js`, the MDX sanitizer, `src/` and `static/` (with `CNAME` pinning `sumologic-provider.stackql.io`). The landing page is mastered in `provider-dev/docgen/provider-data/headerContent1.txt` and `headerContent2.txt` (installation, authentication, deployment, casing, pagination and pushdown, and the getting-started queries); edit those and re-run `make docs`. + +### Deployment (GitHub Pages) + +The microsite is deployed with GitHub Pages through GitHub Actions - there is no Netlify site and no `gh-pages` branch. `.github/workflows/prod-web-deploy.yml` runs on every push to `main` that touches `website/**` (which includes the regenerated `website/docs`), builds the site and publishes `website/build` with `actions/upload-pages-artifact` and `actions/deploy-pages`; `test-web-deploy.yml` test-builds it on pull requests. `website/static/CNAME` is copied into every build, so the custom domain is set on each deployment. + +One-time repository setup: Settings -> Pages -> Build and deployment -> Source: **GitHub Actions**; Custom domain: `sumologic-provider.stackql.io`; Enforce HTTPS on. DNS: + +| Source Domain | Record Type | Target | +|---|---|---| +| sumologic-provider.stackql.io | CNAME | stackql.github.io. | + +## License + +MIT License - see [LICENSE](LICENSE). + +## Contributing + +Contributions are welcome. Please open an issue or pull request. diff --git a/bin/fetch-spec.sh b/bin/fetch-spec.sh new file mode 100644 index 0000000..326af48 --- /dev/null +++ b/bin/fetch-spec.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +# Downloads the Sumo Logic API OpenAPI spec into provider-dev/downloaded/ +# and records the fetch date and content hash in +# provider-dev/config/spec_pin.json. +# +# The spec is served unversioned from the API reference site of every +# deployment (the Redoc page at https://api.sumologic.com/docs/ loads +# ./sumologic-api.yaml); the content is identical across deployments. The +# pin is the record of what was built. If a download does not match the +# recorded pin the script fails without writing anything; pass --update to +# accept the upstream change and rewrite the pin (review the resulting spec +# diff as a refresh). +# +# The Collector Management API (v1 /collectors, /collectors/{id}/sources) is +# not part of this spec - it is documented separately and maintained by hand +# in provider-dev/downloaded/sumologic-collector-management-api.yaml. +# +# Usage: bin/fetch-spec.sh [--update] + +set -euo pipefail + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +REPO_ROOT="$( cd "$SCRIPT_DIR/.." && pwd )" +DOWNLOAD_DIR="$REPO_ROOT/provider-dev/downloaded" +PIN_FILE="$REPO_ROOT/provider-dev/config/spec_pin.json" + +SPEC_URL="${SUMOLOGIC_SPEC_URL:-https://api.sumologic.com/docs/sumologic-api.yaml}" +SPEC_FILE="sumologic-api.yaml" + +UPDATE=false +if [ "${1:-}" = "--update" ]; then + UPDATE=true +fi + +mkdir -p "$DOWNLOAD_DIR" +TMP_DIR="$(mktemp -d)" +trap 'rm -rf "$TMP_DIR"' EXIT + +echo "Fetching Sumo Logic API spec from $SPEC_URL" +curl -fsSL "$SPEC_URL" -o "$TMP_DIR/$SPEC_FILE" + +UPDATE="$UPDATE" TMP_DIR="$TMP_DIR" DOWNLOAD_DIR="$DOWNLOAD_DIR" PIN_FILE="$PIN_FILE" \ +SPEC_URL="$SPEC_URL" SPEC_FILE="$SPEC_FILE" \ +node "$REPO_ROOT/provider-dev/scripts/record_spec_pin.mjs" + +echo "Spec at $DOWNLOAD_DIR/$SPEC_FILE, pin recorded in $PIN_FILE" diff --git a/bin/generate-docs.mjs b/bin/generate-docs.mjs deleted file mode 100644 index 4be9b84..0000000 --- a/bin/generate-docs.mjs +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env node - -import { docgen } from '@stackql/provider-utils'; - -async function generateDocs() { - // Get command line arguments - const args = process.argv.slice(2); - const getArg = (flag) => { - const index = args.indexOf(flag); - return index !== -1 ? args[index + 1] : null; - }; - - const providerName = getArg('--provider-name'); - const providerDir = getArg('--provider-dir'); - const outputDir = getArg('--output-dir'); - const providerDataDir = getArg('--provider-data-dir'); - - if (!providerName || !providerDir || !outputDir || !providerDataDir) { - console.error('Error: Missing required arguments'); - console.error('Usage: node generate-docs.mjs --provider-name NAME --provider-dir DIR --output-dir DIR --provider-data-dir DIR'); - process.exit(1); - } - - try { - console.log(`Generating docs for provider: ${providerName}`); - console.log(`Provider directory: ${providerDir}`); - console.log(`Output directory: ${outputDir}`); - console.log(`Provider data directory: ${providerDataDir}`); - - const result = await docgen.generateDocs({ - providerName, - providerDir, - outputDir, - providerDataDir - }); - - console.log('Documentation generated successfully:', result); - } catch (error) { - console.error('Error generating documentation:', error); - process.exit(1); - } -} - -generateDocs(); \ No newline at end of file diff --git a/bin/generate-docs.sh b/bin/generate-docs.sh deleted file mode 100644 index 0602e15..0000000 --- a/bin/generate-docs.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env bash - -# Exit on error -set -e - -# Get the script directory for relative paths -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -REPO_ROOT="$( cd "$SCRIPT_DIR/.." && pwd )" - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case $1 in - --provider-name) - PROVIDER_NAME="$2" - shift 2 - ;; - --provider-dir) - PROVIDER_DIR="$2" - shift 2 - ;; - --output-dir) - OUTPUT_DIR="$2" - shift 2 - ;; - --provider-data-dir) - PROVIDER_DATA_DIR="$2" - shift 2 - ;; - --help) - echo "Usage: generate-docs.sh [OPTIONS]" - echo "" - echo "Options:" - echo " --provider-name NAME Provider name (default: snowflake)" - echo " --provider-dir DIR Provider directory path (default: $PROVIDER_DIR)" - echo " --output-dir DIR Output directory for docs (default: $OUTPUT_DIR)" - echo " --provider-data-dir DIR Provider data directory (default: $PROVIDER_DATA_DIR)" - echo " --help Show this help message" - exit 0 - ;; - *) - echo "Unknown option: $1" - echo "Use --help for usage information" - exit 1 - ;; - esac -done - -echo "📚 Generating documentation using @stackql/provider-utils..." - -# Run the Node.js script with arguments -node --experimental-modules "$SCRIPT_DIR/generate-docs.mjs" \ - --provider-name "$PROVIDER_NAME" \ - --provider-dir "$PROVIDER_DIR" \ - --output-dir "$OUTPUT_DIR" \ - --provider-data-dir "$PROVIDER_DATA_DIR" - -# Check if command succeeded -if [ $? -ne 0 ]; then - echo "❌ Documentation generation failed" - exit 1 -fi - -echo "✅ Documentation generated successfully" \ No newline at end of file diff --git a/bin/generate-mappings.mjs b/bin/generate-mappings.mjs deleted file mode 100644 index f711fbc..0000000 --- a/bin/generate-mappings.mjs +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env node - -import { providerdev } from '@stackql/provider-utils'; - -async function generateMappings() { - // Get command line arguments - const args = process.argv.slice(2); - const getArg = (flag) => { - const index = args.indexOf(flag); - return index !== -1 ? args[index + 1] : null; - }; - - const providerName = getArg('--provider-name'); - const inputDir = getArg('--input-dir'); - const outputDir = getArg('--output-dir'); - const verbose = args.includes('--verbose'); - - if (!providerName || !inputDir || !outputDir) { - console.error('Error: Missing required arguments'); - console.error('Usage: node generate-mappings.mjs --provider-name NAME --input-dir DIR --output-dir DIR [--verbose]'); - process.exit(1); - } - - try { - console.log(`Analyzing OpenAPI specs for provider: ${providerName}`); - console.log(`Input directory: ${inputDir}`); - console.log(`Output directory: ${outputDir}`); - - const result = await providerdev.analyze({ - inputDir, - outputDir, - verbose - }); - - console.log('Analysis completed successfully:', result); - } catch (error) { - console.error('Error analyzing OpenAPI specs:', error); - process.exit(1); - } -} - -generateMappings(); \ No newline at end of file diff --git a/bin/generate-mappings.sh b/bin/generate-mappings.sh deleted file mode 100644 index a4921c1..0000000 --- a/bin/generate-mappings.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env bash - -# Exit on error -set -e - -# Get the script directory for relative paths -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -REPO_ROOT="$( cd "$SCRIPT_DIR/.." && pwd )" - -# Default values -PROVIDER_NAME="" -INPUT_DIR="" -OUTPUT_DIR="" -VERBOSE=false - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case $1 in - --provider-name) - PROVIDER_NAME="$2" - shift 2 - ;; - --input-dir) - INPUT_DIR="$2" - shift 2 - ;; - --output-dir) - OUTPUT_DIR="$2" - shift 2 - ;; - --verbose) - VERBOSE=true - shift - ;; - --help) - echo "Usage: generate-mappings.sh [OPTIONS]" - echo "" - echo "Options:" - echo " --provider-name NAME Provider name (required)" - echo " --input-dir DIR Input directory containing split OpenAPI files (required)" - echo " --output-dir DIR Output directory for mapping file (required)" - echo " --verbose Enable verbose output" - echo " --help Show this help message" - exit 0 - ;; - *) - echo "Unknown option: $1" - echo "Use --help for usage information" - exit 1 - ;; - esac -done - -# Check required arguments -if [ -z "$PROVIDER_NAME" ] || [ -z "$INPUT_DIR" ] || [ -z "$OUTPUT_DIR" ]; then - echo "Error: Missing required arguments" - echo "Use --help for usage information" - exit 1 -fi - -echo "🔍 Analyzing OpenAPI specs to generate mappings..." -echo "Provider: $PROVIDER_NAME" -echo "Input Directory: $INPUT_DIR" -echo "Output Directory: $OUTPUT_DIR" - -# Build command arguments -ARGS=("--provider-name" "$PROVIDER_NAME" "--input-dir" "$INPUT_DIR" "--output-dir" "$OUTPUT_DIR") - -if [ "$VERBOSE" = true ]; then - ARGS+=("--verbose") - echo "Verbose: Yes" -fi - -# Run the Node.js script with arguments -node --experimental-modules "$SCRIPT_DIR/generate-mappings.mjs" "${ARGS[@]}" - -# Check if command succeeded -if [ $? -ne 0 ]; then - echo "❌ Mapping generation failed" - exit 1 -fi - -echo "✅ Mapping file generated successfully at: $OUTPUT_DIR/all_services.csv" \ No newline at end of file diff --git a/bin/generate-provider.mjs b/bin/generate-provider.mjs deleted file mode 100644 index 501eead..0000000 --- a/bin/generate-provider.mjs +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env node - -import { providerdev } from '@stackql/provider-utils'; - -async function generateProvider() { - // Get command line arguments - const args = process.argv.slice(2); - const getArg = (flag) => { - const index = args.indexOf(flag); - return index !== -1 ? args[index + 1] : null; - }; - - const providerName = getArg('--provider-name'); - const inputDir = getArg('--input-dir'); - const outputDir = getArg('--output-dir'); - const configPath = getArg('--config-path'); - const servers = getArg('--servers'); - const providerConfig = getArg('--provider-config'); - const skipFiles = getArg('--skip-files')?.split(',') || []; - const overwrite = args.includes('--overwrite'); - const verbose = args.includes('--verbose'); - - if (!providerName || !inputDir || !outputDir || !configPath) { - console.error('Error: Missing required arguments'); - console.error('Usage: node generate-provider.mjs --provider-name NAME --input-dir DIR --output-dir DIR --config-path PATH [--servers JSON] [--provider-config JSON] [--skip-files LIST] [--overwrite] [--verbose]'); - process.exit(1); - } - - try { - console.log(`Generating StackQL provider extensions for: ${providerName}`); - console.log(`Input directory: ${inputDir}`); - console.log(`Output directory: ${outputDir}`); - console.log(`Config path: ${configPath}`); - - if (servers) { - console.log(`Custom servers configuration provided`); - } - - if (providerConfig) { - console.log(`Custom provider configuration provided`); - } - - if (skipFiles.length > 0) { - console.log(`Skipping files: ${skipFiles.join(', ')}`); - } - - const result = await providerdev.generate({ - inputDir, - outputDir, - configPath, - providerId: providerName, - servers, - providerConfig, - skipFiles, - overwrite, - verbose - }); - - console.log('Provider generation completed successfully:', result); - } catch (error) { - console.error('Error generating provider extensions:', error); - process.exit(1); - } -} - -generateProvider(); \ No newline at end of file diff --git a/bin/generate-provider.sh b/bin/generate-provider.sh deleted file mode 100644 index 429933a..0000000 --- a/bin/generate-provider.sh +++ /dev/null @@ -1,134 +0,0 @@ -#!/usr/bin/env bash - -# Exit on error -set -e - -# Get the script directory for relative paths -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -REPO_ROOT="$( cd "$SCRIPT_DIR/.." && pwd )" - -# Default values -PROVIDER_NAME="" -INPUT_DIR="" -OUTPUT_DIR="" -CONFIG_PATH="" -SERVERS="" -PROVIDER_CONFIG="" -SKIP_FILES="" -OVERWRITE=false -VERBOSE=false - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case $1 in - --provider-name) - PROVIDER_NAME="$2" - shift 2 - ;; - --input-dir) - INPUT_DIR="$2" - shift 2 - ;; - --output-dir) - OUTPUT_DIR="$2" - shift 2 - ;; - --config-path) - CONFIG_PATH="$2" - shift 2 - ;; - --servers) - SERVERS="$2" - shift 2 - ;; - --provider-config) - PROVIDER_CONFIG="$2" - shift 2 - ;; - --skip-files) - SKIP_FILES="$2" - shift 2 - ;; - --overwrite) - OVERWRITE=true - shift - ;; - --verbose) - VERBOSE=true - shift - ;; - --help) - echo "Usage: generate-provider.sh [OPTIONS]" - echo "" - echo "Options:" - echo " --provider-name NAME Provider name/ID (required)" - echo " --input-dir DIR Input directory containing split OpenAPI files (required)" - echo " --output-dir DIR Output directory for provider (required)" - echo " --config-path PATH Path to CSV mapping file (required)" - echo " --servers JSON JSON string with servers configuration" - echo " --provider-config JSON JSON string with provider configuration" - echo " --skip-files LIST Comma-separated list of files to skip" - echo " --overwrite Overwrite existing files" - echo " --verbose Enable verbose output" - echo " --help Show this help message" - exit 0 - ;; - *) - echo "Unknown option: $1" - echo "Use --help for usage information" - exit 1 - ;; - esac -done - -# Check required arguments -if [ -z "$PROVIDER_NAME" ] || [ -z "$INPUT_DIR" ] || [ -z "$OUTPUT_DIR" ] || [ -z "$CONFIG_PATH" ]; then - echo "Error: Missing required arguments" - echo "Use --help for usage information" - exit 1 -fi - -echo "🔧 Generating StackQL provider extensions..." -echo "Provider: $PROVIDER_NAME" -echo "Input Directory: $INPUT_DIR" -echo "Output Directory: $OUTPUT_DIR" -echo "Config Path: $CONFIG_PATH" - -# Build command arguments -ARGS=("--provider-name" "$PROVIDER_NAME" "--input-dir" "$INPUT_DIR" "--output-dir" "$OUTPUT_DIR" "--config-path" "$CONFIG_PATH") - -if [ -n "$SERVERS" ]; then - ARGS+=("--servers" "$SERVERS") - echo "Custom servers configuration provided" -fi - -if [ -n "$PROVIDER_CONFIG" ]; then - ARGS+=("--provider-config" "$PROVIDER_CONFIG") - echo "Custom provider configuration provided" -fi - -if [ -n "$SKIP_FILES" ]; then - ARGS+=("--skip-files" "$SKIP_FILES") - echo "Skipping files: $SKIP_FILES" -fi - -if [ "$OVERWRITE" = true ]; then - ARGS+=("--overwrite") - echo "Overwrite: Yes" -fi - -if [ "$VERBOSE" = true ]; then - ARGS+=("--verbose") - echo "Verbose: Yes" -fi - -# Run the Node.js script with arguments -node --experimental-modules "$SCRIPT_DIR/generate-provider.mjs" "${ARGS[@]}" - -# Check if command succeeded -if [ $? -ne 0 ]; then - echo "❌ Provider generation failed" - exit 1 -fi - -echo "✅ Provider generated successfully at: $OUTPUT_DIR" \ No newline at end of file diff --git a/bin/split.mjs b/bin/split.mjs index 02a344c..f5bf924 100644 --- a/bin/split.mjs +++ b/bin/split.mjs @@ -1,76 +1,138 @@ -#!/usr/bin/env node - -import { providerdev } from '@stackql/provider-utils'; - -async function splitOpenApi() { - // Get command line arguments - const args = process.argv.slice(2); - const getArg = (flag) => { - const index = args.indexOf(flag); - return index !== -1 ? args[index + 1] : null; - }; - - const providerName = getArg('--provider-name'); - const apiDoc = getArg('--api-doc'); - const outputDir = getArg('--output-dir'); - const svcDiscriminator = getArg('--svc-discriminator') || 'tag'; - const exclude = getArg('--exclude') || ''; - const overwrite = args.includes('--overwrite'); - const verbose = args.includes('--verbose'); - const svcNameOverridesStr = getArg('--svc-name-overrides') || '{}'; - - let svcNameOverrides = {}; - try { - svcNameOverrides = JSON.parse(svcNameOverridesStr); - } catch (err) { - console.error('Error parsing service name overrides JSON:', err.message); - console.error('Please ensure the JSON format is correct'); - process.exit(1); - } - - if (!providerName || !apiDoc || !outputDir) { - console.error('Error: Missing required arguments'); - console.error('Usage: node split.mjs --provider-name NAME --api-doc PATH --output-dir DIR [--svc-discriminator tag|path] [--exclude LIST] [--svc-name-overrides JSON] [--overwrite] [--verbose]'); - process.exit(1); - } - - try { - console.log(`Splitting OpenAPI doc for provider: ${providerName}`); - console.log(`API Doc: ${apiDoc}`); - console.log(`Output directory: ${outputDir}`); - console.log(`Service Discriminator: ${svcDiscriminator}`); - - if (exclude) { - console.log(`Excluding: ${exclude}`); - } - - const numOverrides = Object.keys(svcNameOverrides).length; - if (numOverrides > 0) { - console.log(`Service name overrides: ${numOverrides} mappings`); - if (verbose) { - console.log('Override mappings:'); - for (const [original, newName] of Object.entries(svcNameOverrides)) { - console.log(` ${original} -> ${newName}`); - } - } - } - - const result = await providerdev.split({ - apiDoc, - providerName, - outputDir, - svcDiscriminator, - exclude, - overwrite, - verbose, - svcNameOverrides - }); - - console.log('Split operation completed successfully:', result); - } catch (error) { - console.error('Error splitting OpenAPI doc:', error); - process.exit(1); - } -} - -splitOpenApi(); \ No newline at end of file +#!/usr/bin/env node + +// Splits the pinned Sumo Logic API spec into per-service StackQL service +// specs under provider-dev/source/, then merges in the hand-authored +// Collector Management API spec as the collectors service. +// +// Services are decided by the vendor's OpenAPI tags through the explicit +// tag -> service map in provider-dev/config/service_names.json (tags that +// share a service name are merged into one service document). An operation +// whose tag is not in the map fails the run without writing anything, so a +// spec refresh that introduces a new tag is a deliberate mapping decision, +// never a silently generated service. +// +// provider-utils split() cleans its output dir on every call, so the spec is +// split into a temp dir and copied into --output-dir once the run validated. +// +// Usage: +// node bin/split.mjs [--api-doc provider-dev/downloaded/sumologic-api.yaml] +// [--collectors-doc provider-dev/downloaded/sumologic-collector-management-api.yaml] +// [--output-dir provider-dev/source] [--overwrite] [--verbose] + +import fs from 'fs'; +import os from 'os'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import yaml from 'js-yaml'; +import { providerdev } from '@stackql/provider-utils'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const args = process.argv.slice(2); +const getArg = (flag) => { + const index = args.indexOf(flag); + return index !== -1 ? args[index + 1] : null; +}; + +const providerName = 'sumologic'; +const apiDoc = getArg('--api-doc') || path.join(repoRoot, 'provider-dev', 'downloaded', 'sumologic-api.yaml'); +const collectorsDoc = getArg('--collectors-doc') || path.join(repoRoot, 'provider-dev', 'downloaded', 'sumologic-collector-management-api.yaml'); +const outputDir = getArg('--output-dir') || path.join(repoRoot, 'provider-dev', 'source'); +const overwrite = args.includes('--overwrite'); +const verbose = args.includes('--verbose'); + +for (const f of [apiDoc, collectorsDoc]) { + if (!fs.existsSync(f)) { + console.error(`Error: spec not found at ${f} (run npm run fetch-spec first)`); + process.exit(1); + } +} +const serviceNames = JSON.parse(fs.readFileSync(path.join(repoRoot, 'provider-dev', 'config', 'service_names.json'), 'utf8')); +const overrides = serviceNames.overrides; +const descriptions = serviceNames.descriptions || {}; +const COLLECTORS_SERVICE = 'collectors'; + +// mirrors provider-utils' normalizeServiceName so map keys match what split sees +const normalizeTag = (raw) => String(raw).toLowerCase().replace(/-/g, '_').replace(/ /g, '_').replace(/\./g, '_'); +const titleCase = (s) => s.split('_').map((w) => w[0].toUpperCase() + w.slice(1)).join(' '); + +fs.mkdirSync(outputDir, { recursive: true }); +const existing = fs.readdirSync(outputDir).filter((f) => /\.(yaml|yml|json)$/.test(f)); +if (existing.length > 0 && !overwrite) { + console.error(`Error: output directory ${outputDir} is not empty. Use --overwrite to replace existing service specs.`); + process.exit(1); +} + +const unmappedTags = new Map(); +const untagged = []; +const svcDiscriminatorFn = (pathKey, operationId, tags) => { + if (!tags || tags.length === 0) { + untagged.push(`${pathKey} (${operationId})`); + return 'unmapped_service'; + } + const key = normalizeTag(tags[0]); + const service = overrides[key]; + if (!service) { + if (!unmappedTags.has(tags[0])) unmappedTags.set(tags[0], []); + unmappedTags.get(tags[0]).push(`${pathKey} (${operationId})`); + return 'unmapped_service'; + } + return service; +}; + +const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'stackql-split-')); +const written = []; +try { + const result = await providerdev.split({ + apiDoc, + providerName, + outputDir: tmpDir, + svcDiscriminator: 'function', + svcDiscriminatorFn, + overwrite: true, + verbose, + svcNameOverrides: {} + }); + if (!result) { + console.error('Error: split failed'); + process.exit(1); + } + if (unmappedTags.size > 0 || untagged.length > 0) { + console.error('Error: operations with no service in provider-dev/config/service_names.json (add the tag to the overrides map):'); + for (const [tag, ops] of [...unmappedTags.entries()].sort()) console.error(` tag ${tag}: ${ops.length} operation(s), e.g. ${ops[0]}`); + for (const op of untagged) console.error(` untagged: ${op}`); + process.exit(1); + } + const produced = fs.readdirSync(tmpDir).filter((f) => f.endsWith('.yaml')); + if (produced.includes(`${COLLECTORS_SERVICE}.yaml`)) { + console.error(`Error: the vendor spec now produces a ${COLLECTORS_SERVICE} service; reconcile it with the hand-authored Collector Management spec before continuing`); + process.exit(1); + } + + // Clear previous service specs only after the split validated + for (const f of existing) fs.rmSync(path.join(outputDir, f)); + for (const outFile of produced) { + const service = outFile.replace(/\.yaml$/, ''); + const doc = yaml.load(fs.readFileSync(path.join(tmpDir, outFile), 'utf8')); + doc.info = doc.info || {}; + doc.info.title = `Sumo Logic ${titleCase(service)} API`; + doc.info.description = descriptions[service] || doc.info.description || `${providerName} ${service} API`; + // the per-deployment vendor servers list is replaced by the region + // template in provider-dev/config/servers.json at generate time + delete doc.servers; + fs.writeFileSync(path.join(outputDir, outFile), yaml.dump(doc, { lineWidth: -1, noRefs: true })); + written.push(outFile); + } + // the hand-authored Collector Management API spec becomes the collectors service + const cdoc = yaml.load(fs.readFileSync(collectorsDoc, 'utf8')); + cdoc.info.title = `Sumo Logic ${titleCase(COLLECTORS_SERVICE)} API`; + cdoc.info.description = descriptions[COLLECTORS_SERVICE] || cdoc.info.description; + fs.writeFileSync(path.join(outputDir, `${COLLECTORS_SERVICE}.yaml`), yaml.dump(cdoc, { lineWidth: -1, noRefs: true })); + written.push(`${COLLECTORS_SERVICE}.yaml`); +} finally { + fs.rmSync(tmpDir, { recursive: true, force: true }); +} + +const missingDesc = written.map((f) => f.replace(/\.yaml$/, '')).filter((s) => !descriptions[s]); +console.log(`Split completed: ${written.length} service specs written to ${outputDir}`); +for (const f of written.sort()) console.log(` ${f}`); +if (missingDesc.length > 0) console.log(`note: no description in service_names.json for: ${missingDesc.join(', ')}`); diff --git a/bin/split.sh b/bin/split.sh deleted file mode 100644 index 6f961f7..0000000 --- a/bin/split.sh +++ /dev/null @@ -1,123 +0,0 @@ -#!/usr/bin/env bash - -# Exit on error -set -e - -# Get the script directory for relative paths -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -REPO_ROOT="$( cd "$SCRIPT_DIR/.." && pwd )" - -# Default values -PROVIDER_NAME="" -API_DOC="" -OUTPUT_DIR="" -SVC_DISCRIMINATOR="tag" -EXCLUDE="" -OVERWRITE=false -VERBOSE=false -SVC_NAME_OVERRIDES="{}" - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case $1 in - --provider-name) - PROVIDER_NAME="$2" - shift 2 - ;; - --api-doc) - API_DOC="$2" - shift 2 - ;; - --output-dir) - OUTPUT_DIR="$2" - shift 2 - ;; - --svc-discriminator) - SVC_DISCRIMINATOR="$2" - shift 2 - ;; - --exclude) - EXCLUDE="$2" - shift 2 - ;; - --svc-name-overrides) - SVC_NAME_OVERRIDES="$2" - shift 2 - ;; - --overwrite) - OVERWRITE=true - shift - ;; - --verbose) - VERBOSE=true - shift - ;; - --help) - echo "Usage: split.sh [OPTIONS]" - echo "" - echo "Options:" - echo " --provider-name NAME Provider name (required)" - echo " --api-doc PATH Path to OpenAPI document (required)" - echo " --output-dir DIR Output directory for split files (required)" - echo " --svc-discriminator TYPE Service discriminator type: 'tag' or 'path' (default: tag)" - echo " --exclude LIST Comma-separated list of tags or paths to exclude" - echo " --svc-name-overrides JSON JSON object mapping original service names to new names" - echo " --overwrite Overwrite existing files" - echo " --verbose Enable verbose output" - echo " --help Show this help message" - exit 0 - ;; - *) - echo "Unknown option: $1" - echo "Use --help for usage information" - exit 1 - ;; - esac -done - -# Check required arguments -if [ -z "$PROVIDER_NAME" ] || [ -z "$API_DOC" ] || [ -z "$OUTPUT_DIR" ]; then - echo "Error: Missing required arguments" - echo "Use --help for usage information" - exit 1 -fi - -echo "🔪 Splitting OpenAPI document..." -echo "Provider: $PROVIDER_NAME" -echo "API Doc: $API_DOC" -echo "Output Directory: $OUTPUT_DIR" -echo "Service Discriminator: $SVC_DISCRIMINATOR" - -# Build command arguments -ARGS=("--provider-name" "$PROVIDER_NAME" "--api-doc" "$API_DOC" "--output-dir" "$OUTPUT_DIR" "--svc-discriminator" "$SVC_DISCRIMINATOR") - -if [ -n "$EXCLUDE" ]; then - ARGS+=("--exclude" "$EXCLUDE") - echo "Excluding: $EXCLUDE" -fi - -if [ "$SVC_NAME_OVERRIDES" != "{}" ]; then - ARGS+=("--svc-name-overrides" "$SVC_NAME_OVERRIDES") - echo "Service Name Overrides: $SVC_NAME_OVERRIDES" -fi - -if [ "$OVERWRITE" = true ]; then - ARGS+=("--overwrite") - echo "Overwrite: Yes" -fi - -if [ "$VERBOSE" = true ]; then - ARGS+=("--verbose") - echo "Verbose: Yes" -fi - -# Run the Node.js script with arguments -node --experimental-modules "$SCRIPT_DIR/split.mjs" "${ARGS[@]}" - -# Check if command succeeded -if [ $? -ne 0 ]; then - echo "❌ Split operation failed" - exit 1 -fi - -echo "✅ Split operation completed successfully" \ No newline at end of file diff --git a/bin/start-server.sh b/bin/start-server.sh index e050450..ae23ad4 100644 --- a/bin/start-server.sh +++ b/bin/start-server.sh @@ -59,7 +59,7 @@ fi # If registry path not specified, use current directory if [ -z "$REG_PATH" ]; then - REG_PATH="$BASE_DIR/provider-dev/openapi/src" + REG_PATH="$BASE_DIR/provider-dev/openapi" fi echo "Using provider: $PROVIDER" @@ -67,22 +67,23 @@ echo "Registry path: $REG_PATH" echo "Port: $PORT" echo "Verify signatures: $VERIFY" -# Check if stackql binary exists -if [ ! -f "$BASE_DIR/stackql" ]; then +# Resolve the stackql binary: $STACKQL, ./stackql, `stackql` on PATH, else +# download the latest release into the repo root (gitignored). +if [ -n "${STACKQL:-}" ] && [ -x "$STACKQL" ]; then + STACKQL_BIN="$STACKQL" +elif [ -x "$BASE_DIR/stackql" ]; then + STACKQL_BIN="$BASE_DIR/stackql" +elif command -v stackql > /dev/null 2>&1; then + STACKQL_BIN="$(command -v stackql)" +else echo "StackQL binary not found. Downloading..." - - # Determine OS and architecture OS=$(uname -s | tr '[:upper:]' '[:lower:]') ARCH=$(uname -m) - - # Map architecture to stackql naming if [ "$ARCH" = "x86_64" ]; then ARCH="amd64" elif [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then ARCH="arm64" fi - - # Set download URL based on OS if [ "$OS" = "darwin" ]; then DOWNLOAD_URL="https://releases.stackql.io/stackql/latest/stackql_darwin_${ARCH}.zip" elif [ "$OS" = "linux" ]; then @@ -92,15 +93,15 @@ if [ ! -f "$BASE_DIR/stackql" ]; then echo "Please download stackql manually from https://github.com/stackql/stackql/releases" exit 1 fi - - # Download and extract cd "$BASE_DIR" curl -L -o stackql.zip "$DOWNLOAD_URL" unzip -o stackql.zip rm stackql.zip chmod +x stackql + STACKQL_BIN="$BASE_DIR/stackql" echo "StackQL binary downloaded successfully" fi +echo "StackQL binary: $STACKQL_BIN ($("$STACKQL_BIN" --version 2>/dev/null | head -1))" # Set registry configuration if [ "$VERIFY" = "true" ]; then @@ -118,7 +119,7 @@ fi # Start the server echo "Starting StackQL server with registry: $REG" cd "$BASE_DIR" -nohup ./stackql --registry="${REG}" --pgsrv.port="${PORT}" srv > stackql-server.log 2>&1 & +nohup "$STACKQL_BIN" --registry="${REG}" --pgsrv.port="${PORT}" srv > stackql-server.log 2>&1 & SERVER_PID=$! # Check if server started successfully diff --git a/bin/test-meta-routes.cjs b/bin/test-meta-routes.cjs index 822a5c4..bf4e071 100644 --- a/bin/test-meta-routes.cjs +++ b/bin/test-meta-routes.cjs @@ -1,431 +1,461 @@ -#!/usr/bin/env node - -const { runQuery } = require('@stackql/pgwire-lite'); -const fs = require('fs'); -const path = require('path'); - -// Get current directory -const baseDir = path.resolve(path.dirname(process.argv[1]), '..'); - -// Default connection settings -const defaultOptions = { - user: 'stackql', - database: 'stackql', - host: 'localhost', - port: 5444, - debug: false, -}; - -// Parse command line arguments -const args = process.argv.slice(2); -let provider = null; -let port = 5444; -let verbose = false; -let outputFormat = 'json'; -let timeoutMs = 60000; // Default timeout: 60 seconds - -for (let i = 0; i < args.length; i++) { - if (args[i].startsWith('--')) { - switch (args[i]) { - case '--port': - port = parseInt(args[++i], 10); - break; - case '--verbose': - verbose = true; - break; - case '--format': - outputFormat = args[++i]; - if (!['json', 'csv', 'markdown'].includes(outputFormat)) { - console.error(`Error: Invalid output format "${outputFormat}". Must be json, csv, or markdown.`); - process.exit(1); - } - break; - case '--timeout': - timeoutMs = parseInt(args[++i], 10); - break; - case '--help': - console.log(` -Usage: test-meta-routes.js [OPTIONS] - -Test all metadata routes for a StackQL provider. - -Arguments: - provider Name of the provider to test - -Options: - --port PORT Server port (default: 5444) - --verbose Enable verbose output - --format FORMAT Output format: json, csv, markdown (default: json) - --timeout MILLISECONDS Query timeout in milliseconds (default: 60000) - --help Display this help message - `); - process.exit(0); - break; - default: - console.error(`Error: Unknown option "${args[i]}"`); - process.exit(1); - } - } else if (!provider) { - provider = args[i]; - } -} - -// Check that provider was specified -if (!provider) { - console.error('Error: Provider name must be specified'); - console.error('Usage: test-meta-routes.js [OPTIONS]'); - process.exit(1); -} - -// Set up connection options -const connectionOptions = { - ...defaultOptions, - port, - // Set query timeout - statement_timeout: timeoutMs, -}; - -// Get start time -const startTime = new Date(); - -const results = { - provider, - totalServices: 0, - totalResources: 0, - totalMethods: 0, - selectableMethods: 0, - nonSelectableResourceCount: 0, - nonSelectableResources: [], -}; - -/** - * Run a query and handle errors - * @param {string} query - SQL query to run - * @param {string} description - Description for logging - * @returns {Promise} - Query results - */ -async function executeQuery(query, description) { - if (verbose) { - console.log(`Running: ${query}`); - } else { - process.stdout.write(`${description}... `); - } - - try { - const result = await runQuery(connectionOptions, query); - - if (!verbose) { - if (result.data && result.data.length) { - console.log(`✅ (${result.data.length} rows)`); - } else { - console.log('✅'); - } - } else { - console.info(result.data); - } - - return result.data; - } catch (error) { - if (!verbose) { - console.log('❌'); - } - - results.errors.push({ - query, - description, - error: error.message, - timestamp: new Date().toISOString() - }); - - results.summary.errors++; - - if (error.message.includes('the last operation didn\'t produce a result')) { - return []; - } - - if (error.message.includes('SELECT not supported for this resource')) { - if (verbose) { - console.warn(` Warning: Resource is not selectable`); - } - return null; - } - - console.error(`Error executing ${description}: ${error.message}`); - return []; - } -} - -/** - * Test all provider meta routes - */ -async function testMetaRoutes() { - try { - console.log(`\n🔍 Testing meta routes for provider: ${provider}\n`); - - // SHOW PROVIDERS to verify provider exists - const registryQuery = "SHOW PROVIDERS"; - const providers = await executeQuery(registryQuery, "Checking registry providers"); - - const providerExists = providers && providers.some(p => p.name === provider); - if (!providerExists) { - console.error(`Error: Provider '${provider}' not found in registry`); - if (providers && providers.length > 0) { - console.log("Available providers:"); - providers.forEach(p => console.log(` - ${p.name}`)); - } - process.exit(1); - } - - // SHOW SERVICES IN - const servicesQuery = `SHOW SERVICES IN ${provider}`; - const services = await executeQuery(servicesQuery, "Getting services"); - - if (!services || services.length === 0) { - console.error(`Error: No services found for provider '${provider}'`); - process.exit(1); - } - - console.log(`\nFound ${services.length} services in ${provider}`); - results.totalServices += services.length; - - // for each service - for (const service of services) { - const serviceName = service.name; - console.log(`\n📊 Processing service: ${serviceName}`); - - // SHOW RESOURCES IN . - const resourcesQuery = `SHOW RESOURCES IN ${provider}.${serviceName}`; - const resources = await executeQuery(resourcesQuery, `Getting resources for ${serviceName}`); - - if (!resources || resources.length === 0) { - console.error(`Error: No resources found for ${provider}.${serviceName}`); - process.exit(1); - } - - console.log(`Found ${resources.length} resources in ${serviceName}`); - results.totalResources += resources.length; - - // for each resource - for (const resource of resources) { - const resourceName = resource.name; - console.log(`\n 🔹 Testing resource: ${resourceName}`); - - const resourceFQRN = `${provider}.${serviceName}.${resourceName}`; - const resourceData = { - name: resourceName, - service: serviceName, - selectable: false, - sqlVerbs: {} - }; - - // SHOW EXTENDED METHODS IN .. - const methodsQuery = `SHOW EXTENDED METHODS IN ${resourceFQRN}`; - const methods = await executeQuery(methodsQuery, ` Getting methods for ${resourceName}`); - if (!methods || methods.length === 0) { - console.error(`Error: Resource ${resourceName} has no methods`); - process.exit(1); - } else { - console.log(`Found ${methods.length} methods for ${resourceName}`); - } - - results.totalMethods += methods.length; - - for (const method of methods) { - const methodName = method.MethodName; - const sqlVerb = method.SQLVerb || 'exec'; - - if(sqlVerb.toLowerCase() === 'select') { - results.selectableMethods++; - resourceData.selectable = true; - } - - // Initialize the array if it doesn't exist yet - if(!resourceData.sqlVerbs[sqlVerb]) { - resourceData.sqlVerbs[sqlVerb] = []; - } - - // Convert comma-delimited list to an array of trimmed values - let requiredParamsArray = []; - if (method.RequiredParams) { - requiredParamsArray = method.RequiredParams - .split(',') - .map(param => param.trim()) - .filter(param => param.length > 0); - } - - // Push the method info to the array with the parsed required params - resourceData.sqlVerbs[sqlVerb].push({ - methodName, - requiredParams: requiredParamsArray - }); - } - - // non exec methods must have unique signatures within a resource - // in other words no two methods mapped to the same sqlVerb should have the exact same set of required params, order is not important - // if this condition is detected, log it and exit the program immediately - let hasSelect = false; - for (const [verb, methods] of Object.entries(resourceData.sqlVerbs)) { - if (verb.toLowerCase() === 'select') { - hasSelect = true; - } - if (verb.toLowerCase() === 'exec') { - continue; - } - const seenSignatures = new Set(); - for (const method of methods) { - const signature = JSON.stringify(method.requiredParams); - if (seenSignatures.has(signature)) { - console.error(`Error: Duplicate method signature found for ${verb} in ${resourceData.service}.${resourceName}:`, method); - process.exit(1); - } - seenSignatures.add(signature); - } - } - - if (!hasSelect) { - results.nonSelectableResourceCount++; - results.nonSelectableResources.push(`${resourceData.service}.${resourceName}`); - } - - // Try DESCRIBE EXTENDED if available - if(resourceData.selectable) { - try { - const describeExtendedQuery = `DESCRIBE EXTENDED ${resourceFQRN}`; - const extendedColumns = await executeQuery(describeExtendedQuery, ` Describing extended ${resourceName}`); - - if (extendedColumns !== null && extendedColumns.length > 0) { - console.log(`Found ${extendedColumns.length} extended columns for ${resourceName}`); - } else { - console.error(`ERROR: No columns found for ${resourceName}`); - process.exit(1); - } - } catch (error) { - console.error(`Error describing extended ${resourceName}:`, error.message); - process.exit(1); - } - } - - } - } - - // Calculate execution time - const endTime = new Date(); - const executionTime = (endTime - startTime) / 1000; // in seconds - results.executionTime = executionTime; - - // Output summary - console.log("\n📋 Test Summary:"); - console.info(results); - - // Save results to file - // const resultsDir = path.join(baseDir, 'test-results'); - // if (!fs.existsSync(resultsDir)) { - // fs.mkdirSync(resultsDir, { recursive: true }); - // } - - // const timestamp = new Date().toISOString().replace(/[:.]/g, '-'); - - // if (outputFormat === 'json') { - // const resultsFile = path.join(resultsDir, `${provider}-meta-test-${timestamp}.json`); - // fs.writeFileSync(resultsFile, JSON.stringify(results, null, 2)); - // console.log(`\nDetailed results saved to: ${resultsFile}`); - // } - // else if (outputFormat === 'csv') { - // // Generate CSV files - - // // Main summary CSV - // const summaryFile = path.join(resultsDir, `${provider}-meta-test-summary-${timestamp}.csv`); - // const summaryCSV = [ - // 'Provider,Timestamp,Services,Resources,Methods,Selectable,Insertable,Updatable,Deletable,Executable,Errors,ExecutionTime', - // `${provider},${results.timestamp},${results.summary.totalServices},${results.summary.totalResources},${results.summary.totalMethods},${results.summary.selectableMethods},${results.summary.insertableMethods},${results.summary.updatableMethods},${results.summary.deletableMethods},${results.summary.executableMethods},${results.summary.errors},${results.executionTime}` - // ].join('\n'); - // fs.writeFileSync(summaryFile, summaryCSV); - - // // Services CSV - // const servicesFile = path.join(resultsDir, `${provider}-meta-test-services-${timestamp}.csv`); - // const servicesCSV = [ - // 'Service,Title,ResourceCount', - // ...results.services.map(s => `${s.name},${s.title || ''},${s.resourceCount || 0}`) - // ].join('\n'); - // fs.writeFileSync(servicesFile, servicesCSV); - - // // Resources CSV - // const resourcesFile = path.join(resultsDir, `${provider}-meta-test-resources-${timestamp}.csv`); - // const resourcesCSV = [ - // 'Service,Resource,FQRN,Selectable,ColumnCount,MethodCount', - // ...results.resources.map(r => `${r.service},${r.name},${r.fqrn},${r.selectable},${r.columnCount || 0},${r.methodCount || 0}`) - // ].join('\n'); - // fs.writeFileSync(resourcesFile, resourcesCSV); - - // // Methods CSV - // const methodsFile = path.join(resultsDir, `${provider}-meta-test-methods-${timestamp}.csv`); - // const methodsCSV = [ - // 'Service,Resource,Method,SQLVerb,FQRN', - // ...results.methods.map(m => `${m.service},${m.resource},${m.name},${m.sqlVerb},${m.fqrn}`) - // ].join('\n'); - // fs.writeFileSync(methodsFile, methodsCSV); - - // console.log(`\nDetailed results saved to CSV files in: ${resultsDir}`); - // } - // else if (outputFormat === 'markdown') { - // const mdFile = path.join(resultsDir, `${provider}-meta-test-${timestamp}.md`); - - // const markdownContent = [ - // `# StackQL Provider Test Results: ${provider}`, - // '', - // `Test run: ${results.timestamp}`, - // '', - // '## Summary', - // '', - // '| Metric | Count |', - // '|--------|-------|', - // `| Services | ${results.summary.totalServices} |`, - // `| Resources | ${results.summary.totalResources} |`, - // `| Methods | ${results.summary.totalMethods} |`, - // `| Errors | ${results.summary.errors} |`, - // `| Execution Time | ${results.executionTime.toFixed(2)} seconds |`, - // '', - // '### Methods by SQL Verb', - // '', - // '| Verb | Count |', - // '|------|-------|', - // ...Object.entries(results.verbs).map(([verb, count]) => `| ${verb.toUpperCase()} | ${count} |`), - // '', - // '## Services', - // '', - // '| Service | Resources |', - // '|---------|-----------|', - // ...results.services.map(s => `| ${s.name} | ${s.resourceCount || 0} |`), - // '', - // '## Resources with Most Methods', - // '', - // '| Resource | Service | Methods | Selectable |', - // '|----------|---------|---------|------------|', - // ...results.resources - // .sort((a, b) => (b.methodCount || 0) - (a.methodCount || 0)) - // .slice(0, 20) - // .map(r => `| ${r.name} | ${r.service} | ${r.methodCount || 0} | ${r.selectable ? '✓' : '✗'} |`), - // '', - // '## Errors', - // '', - // results.errors.length > 0 - // ? [ - // '| Query | Error |', - // '|-------|-------|', - // ...results.errors.map(e => `| \`${e.query}\` | ${e.error} |`) - // ].join('\n') - // : 'No errors encountered during testing.', - // ].join('\n'); - - // fs.writeFileSync(mdFile, markdownContent); - // console.log(`\nDetailed results saved to: ${mdFile}`); - // } - - } catch (error) { - console.error('Error in meta routes test:', error); - process.exit(1); - } -} - -// Run the tests +#!/usr/bin/env node + +const { runQuery } = require('@stackql/pgwire-lite'); +const fs = require('fs'); +const path = require('path'); + +// Get current directory +const baseDir = path.resolve(path.dirname(process.argv[1]), '..'); + +// Default connection settings +const defaultOptions = { + user: 'stackql', + database: 'stackql', + // IPv4 loopback, not 'localhost': stackql srv binds 0.0.0.0 and Node + // resolves 'localhost' to ::1 first, which refuses the connection + host: '127.0.0.1', + port: 5444, + debug: false, +}; + +// Parse command line arguments +const args = process.argv.slice(2); +let provider = null; +let port = 5444; +let host = '127.0.0.1'; +let verbose = false; +let outputFormat = 'json'; +let timeoutMs = 60000; // Default timeout: 60 seconds + +for (let i = 0; i < args.length; i++) { + if (args[i].startsWith('--')) { + switch (args[i]) { + case '--port': + port = parseInt(args[++i], 10); + break; + case '--host': + host = args[++i]; + break; + case '--verbose': + verbose = true; + break; + case '--format': + outputFormat = args[++i]; + if (!['json', 'csv', 'markdown'].includes(outputFormat)) { + console.error(`Error: Invalid output format "${outputFormat}". Must be json, csv, or markdown.`); + process.exit(1); + } + break; + case '--timeout': + timeoutMs = parseInt(args[++i], 10); + break; + case '--help': + console.log(` +Usage: test-meta-routes.cjs [OPTIONS] + +Test all metadata routes for a StackQL provider. + +Arguments: + provider Name of the provider to test + +Options: + --port PORT Server port (default: 5444) + --verbose Enable verbose output + --format FORMAT Output format: json, csv, markdown (default: json) + --timeout MILLISECONDS Query timeout in milliseconds (default: 60000) + --help Display this help message + `); + process.exit(0); + break; + default: + console.error(`Error: Unknown option "${args[i]}"`); + process.exit(1); + } + } else if (!provider) { + provider = args[i]; + } +} + +// Check that provider was specified +if (!provider) { + console.error('Error: Provider name must be specified'); + console.error('Usage: test-meta-routes.cjs [OPTIONS]'); + process.exit(1); +} + +// Set up connection options +const connectionOptions = { + ...defaultOptions, + host, + port, + // Set query timeout + statement_timeout: timeoutMs, +}; + +// Get start time +const startTime = new Date(); + +// resources whose select response is a scalar body (a bare JSON string or +// an XML document) - a single anonymous column at query time, so DESCRIBE +// EXTENDED is legitimately empty: +// (account.account_owner is wrapped into an object by post_process.mjs and has a column) +// saml.identity_provider_metadata GET .../identityProviders/{id}/metadata returns application/xml +const SCALAR_RESPONSE_RESOURCES = new Set(['identity_provider_metadata']); + +const results = { + provider, + totalServices: 0, + totalResources: 0, + totalMethods: 0, + selectableMethods: 0, + nonSelectableResourceCount: 0, + nonSelectableResources: [], + scalarResponseResources: [], + failures: [], + errors: [], + summary: { errors: 0 }, +}; + +/** + * Run a query and handle errors + * @param {string} query - SQL query to run + * @param {string} description - Description for logging + * @returns {Promise} - Query results + */ +async function executeQuery(query, description) { + if (verbose) { + console.log(`Running: ${query}`); + } else { + process.stdout.write(`${description}... `); + } + + try { + const result = await runQuery(connectionOptions, query); + + if (!verbose) { + if (result.data && result.data.length) { + console.log(`✅ (${result.data.length} rows)`); + } else { + console.log('✅'); + } + } else { + console.info(result.data); + } + + return result.data; + } catch (error) { + if (!verbose) { + console.log('❌'); + } + + results.errors.push({ + query, + description, + error: error.message, + timestamp: new Date().toISOString() + }); + + results.summary.errors++; + + if (error.message.includes('the last operation didn\'t produce a result')) { + return []; + } + + if (error.message.includes('SELECT not supported for this resource')) { + if (verbose) { + console.warn(` Warning: Resource is not selectable`); + } + return null; + } + + console.error(`Error executing ${description}: ${error.message}`); + return []; + } +} + +/** + * Test all provider meta routes + */ +async function testMetaRoutes() { + try { + console.log(`\n🔍 Testing meta routes for provider: ${provider}\n`); + + // SHOW PROVIDERS to verify provider exists + const registryQuery = "SHOW PROVIDERS"; + const providers = await executeQuery(registryQuery, "Checking registry providers"); + + const providerExists = providers && providers.some(p => p.name === provider); + if (!providerExists) { + console.error(`Error: Provider '${provider}' not found in registry`); + if (providers && providers.length > 0) { + console.log("Available providers:"); + providers.forEach(p => console.log(` - ${p.name}`)); + } + process.exit(1); + } + + // SHOW SERVICES IN + const servicesQuery = `SHOW SERVICES IN ${provider}`; + const services = await executeQuery(servicesQuery, "Getting services"); + + if (!services || services.length === 0) { + console.error(`Error: No services found for provider '${provider}'`); + process.exit(1); + } + + console.log(`\nFound ${services.length} services in ${provider}`); + results.totalServices += services.length; + + // for each service + for (const service of services) { + const serviceName = service.name; + console.log(`\n📊 Processing service: ${serviceName}`); + + // SHOW RESOURCES IN . + const resourcesQuery = `SHOW RESOURCES IN ${provider}.${serviceName}`; + const resources = await executeQuery(resourcesQuery, `Getting resources for ${serviceName}`); + + if (!resources || resources.length === 0) { + console.error(`Error: No resources found for ${provider}.${serviceName}`); + process.exit(1); + } + + console.log(`Found ${resources.length} resources in ${serviceName}`); + results.totalResources += resources.length; + + // for each resource + for (const resource of resources) { + const resourceName = resource.name; + console.log(`\n 🔹 Testing resource: ${resourceName}`); + + const resourceFQRN = `${provider}.${serviceName}.${resourceName}`; + const resourceData = { + name: resourceName, + service: serviceName, + selectable: false, + sqlVerbs: {} + }; + + // SHOW EXTENDED METHODS IN .. + const methodsQuery = `SHOW EXTENDED METHODS IN ${resourceFQRN}`; + const methods = await executeQuery(methodsQuery, ` Getting methods for ${resourceName}`); + if (!methods || methods.length === 0) { + console.error(`Error: Resource ${resourceName} has no methods`); + process.exit(1); + } else { + console.log(`Found ${methods.length} methods for ${resourceName}`); + } + + results.totalMethods += methods.length; + + for (const method of methods) { + const methodName = method.MethodName; + const sqlVerb = method.SQLVerb || 'exec'; + + if(sqlVerb.toLowerCase() === 'select') { + results.selectableMethods++; + resourceData.selectable = true; + } + + // Initialize the array if it doesn't exist yet + if(!resourceData.sqlVerbs[sqlVerb]) { + resourceData.sqlVerbs[sqlVerb] = []; + } + + // Convert comma-delimited list to an array of trimmed values + let requiredParamsArray = []; + if (method.RequiredParams) { + requiredParamsArray = method.RequiredParams + .split(',') + .map(param => param.trim()) + .filter(param => param.length > 0); + } + + // Push the method info to the array with the parsed required params + resourceData.sqlVerbs[sqlVerb].push({ + methodName, + requiredParams: requiredParamsArray + }); + } + + // non exec methods must have unique signatures within a resource + // in other words no two methods mapped to the same sqlVerb should have the exact same set of required params, order is not important + // if this condition is detected, log it and exit the program immediately + let hasSelect = false; + for (const [verb, methods] of Object.entries(resourceData.sqlVerbs)) { + if (verb.toLowerCase() === 'select') { + hasSelect = true; + } + if (verb.toLowerCase() === 'exec') { + continue; + } + const seenSignatures = new Set(); + for (const method of methods) { + const signature = JSON.stringify(method.requiredParams); + if (seenSignatures.has(signature)) { + console.error(`Error: Duplicate method signature found for ${verb} in ${resourceData.service}.${resourceName}:`, method); + process.exit(1); + } + seenSignatures.add(signature); + } + } + + if (!hasSelect) { + results.nonSelectableResourceCount++; + results.nonSelectableResources.push(`${resourceData.service}.${resourceName}`); + } + + // Try DESCRIBE EXTENDED if available + if(resourceData.selectable) { + try { + const describeExtendedQuery = `DESCRIBE EXTENDED ${resourceFQRN}`; + const extendedColumns = await executeQuery(describeExtendedQuery, ` Describing extended ${resourceName}`); + + if (extendedColumns !== null && extendedColumns.length > 0) { + console.log(`Found ${extendedColumns.length} extended columns for ${resourceName}`); + } else if (SCALAR_RESPONSE_RESOURCES.has(resourceName)) { + // scalar (text) response - a single anonymous column at query + // time, so DESCRIBE is legitimately empty + console.log(`WARN: no columns for ${resourceName} (known scalar response)`); + results.scalarResponseResources.push(`${resourceData.service}.${resourceName}`); + } else { + console.error(`ERROR: No columns found for ${resourceName}`); + results.failures.push(`${resourceData.service}.${resourceName}: DESCRIBE EXTENDED returned no columns`); + } + } catch (error) { + console.error(`Error describing extended ${resourceName}:`, error.message); + results.failures.push(`${resourceData.service}.${resourceName}: ${error.message}`); + } + } + + } + } + + // Calculate execution time + const endTime = new Date(); + const executionTime = (endTime - startTime) / 1000; // in seconds + results.executionTime = executionTime; + + // Output summary + console.log("\n📋 Test Summary:"); + console.info(results); + + if (results.failures.length > 0) { + console.error(`\n❌ ${results.failures.length} failure(s):`); + for (const f of results.failures) console.error(` - ${f}`); + process.exit(1); + } + console.log("\n✅ All meta route tests passed"); + + // Save results to file + // const resultsDir = path.join(baseDir, 'test-results'); + // if (!fs.existsSync(resultsDir)) { + // fs.mkdirSync(resultsDir, { recursive: true }); + // } + + // const timestamp = new Date().toISOString().replace(/[:.]/g, '-'); + + // if (outputFormat === 'json') { + // const resultsFile = path.join(resultsDir, `${provider}-meta-test-${timestamp}.json`); + // fs.writeFileSync(resultsFile, JSON.stringify(results, null, 2)); + // console.log(`\nDetailed results saved to: ${resultsFile}`); + // } + // else if (outputFormat === 'csv') { + // // Generate CSV files + + // // Main summary CSV + // const summaryFile = path.join(resultsDir, `${provider}-meta-test-summary-${timestamp}.csv`); + // const summaryCSV = [ + // 'Provider,Timestamp,Services,Resources,Methods,Selectable,Insertable,Updatable,Deletable,Executable,Errors,ExecutionTime', + // `${provider},${results.timestamp},${results.summary.totalServices},${results.summary.totalResources},${results.summary.totalMethods},${results.summary.selectableMethods},${results.summary.insertableMethods},${results.summary.updatableMethods},${results.summary.deletableMethods},${results.summary.executableMethods},${results.summary.errors},${results.executionTime}` + // ].join('\n'); + // fs.writeFileSync(summaryFile, summaryCSV); + + // // Services CSV + // const servicesFile = path.join(resultsDir, `${provider}-meta-test-services-${timestamp}.csv`); + // const servicesCSV = [ + // 'Service,Title,ResourceCount', + // ...results.services.map(s => `${s.name},${s.title || ''},${s.resourceCount || 0}`) + // ].join('\n'); + // fs.writeFileSync(servicesFile, servicesCSV); + + // // Resources CSV + // const resourcesFile = path.join(resultsDir, `${provider}-meta-test-resources-${timestamp}.csv`); + // const resourcesCSV = [ + // 'Service,Resource,FQRN,Selectable,ColumnCount,MethodCount', + // ...results.resources.map(r => `${r.service},${r.name},${r.fqrn},${r.selectable},${r.columnCount || 0},${r.methodCount || 0}`) + // ].join('\n'); + // fs.writeFileSync(resourcesFile, resourcesCSV); + + // // Methods CSV + // const methodsFile = path.join(resultsDir, `${provider}-meta-test-methods-${timestamp}.csv`); + // const methodsCSV = [ + // 'Service,Resource,Method,SQLVerb,FQRN', + // ...results.methods.map(m => `${m.service},${m.resource},${m.name},${m.sqlVerb},${m.fqrn}`) + // ].join('\n'); + // fs.writeFileSync(methodsFile, methodsCSV); + + // console.log(`\nDetailed results saved to CSV files in: ${resultsDir}`); + // } + // else if (outputFormat === 'markdown') { + // const mdFile = path.join(resultsDir, `${provider}-meta-test-${timestamp}.md`); + + // const markdownContent = [ + // `# StackQL Provider Test Results: ${provider}`, + // '', + // `Test run: ${results.timestamp}`, + // '', + // '## Summary', + // '', + // '| Metric | Count |', + // '|--------|-------|', + // `| Services | ${results.summary.totalServices} |`, + // `| Resources | ${results.summary.totalResources} |`, + // `| Methods | ${results.summary.totalMethods} |`, + // `| Errors | ${results.summary.errors} |`, + // `| Execution Time | ${results.executionTime.toFixed(2)} seconds |`, + // '', + // '### Methods by SQL Verb', + // '', + // '| Verb | Count |', + // '|------|-------|', + // ...Object.entries(results.verbs).map(([verb, count]) => `| ${verb.toUpperCase()} | ${count} |`), + // '', + // '## Services', + // '', + // '| Service | Resources |', + // '|---------|-----------|', + // ...results.services.map(s => `| ${s.name} | ${s.resourceCount || 0} |`), + // '', + // '## Resources with Most Methods', + // '', + // '| Resource | Service | Methods | Selectable |', + // '|----------|---------|---------|------------|', + // ...results.resources + // .sort((a, b) => (b.methodCount || 0) - (a.methodCount || 0)) + // .slice(0, 20) + // .map(r => `| ${r.name} | ${r.service} | ${r.methodCount || 0} | ${r.selectable ? '✓' : '✗'} |`), + // '', + // '## Errors', + // '', + // results.errors.length > 0 + // ? [ + // '| Query | Error |', + // '|-------|-------|', + // ...results.errors.map(e => `| \`${e.query}\` | ${e.error} |`) + // ].join('\n') + // : 'No errors encountered during testing.', + // ].join('\n'); + + // fs.writeFileSync(mdFile, markdownContent); + // console.log(`\nDetailed results saved to: ${mdFile}`); + // } + + } catch (error) { + console.error('Error in meta routes test:', error); + process.exit(1); + } +} + +// Run the tests testMetaRoutes(); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 89f374e..ae18acc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,527 +1,582 @@ -{ - "name": "stackql-provider-digitalocean", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "stackql-provider-digitalocean", - "version": "0.1.0", - "dependencies": { - "@stackql/pgwire-lite": "^1.0.1", - "@stackql/provider-utils": "^0.5.0" - }, - "engines": { - "node": ">=14.16.0" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.7.2", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", - "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", - "license": "MIT", - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.15", - "js-yaml": "^4.1.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/philsturgeon" - } - }, - "node_modules/@apidevtools/openapi-schemas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", - "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/@apidevtools/swagger-methods": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", - "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", - "license": "MIT" - }, - "node_modules/@apidevtools/swagger-parser": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.1.tgz", - "integrity": "sha512-u/kozRnsPO/x8QtKYJOqoGtC4kH6yg1lfYkB9Au0WhYB0FNLpyFusttQtvhlwjtG3rOwiRz4D8DnnXa8iEpIKA==", - "license": "MIT", - "dependencies": { - "@apidevtools/json-schema-ref-parser": "11.7.2", - "@apidevtools/openapi-schemas": "^2.1.0", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "ajv": "^8.17.1", - "ajv-draft-04": "^1.0.0", - "call-me-maybe": "^1.0.2" - }, - "peerDependencies": { - "openapi-types": ">=7" - } - }, - "node_modules/@colors/colors": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", - "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", - "license": "MIT", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", - "license": "MIT", - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "license": "MIT" - }, - "node_modules/@stackql/deno-openapi-dereferencer": { - "name": "@jsr/stackql__deno-openapi-dereferencer", - "version": "0.3.1", - "resolved": "https://npm.jsr.io/~/11/@jsr/stackql__deno-openapi-dereferencer/0.3.1.tgz", - "integrity": "sha512-7Ucdom3SYxvzp7VwzulQMe66E+1LeCZIprFQ70PwRPIUfL90bYNQDrLfe5L1WaB+X7StWdHmoFSFxoa9RDlN7w==", - "dependencies": { - "jsonpath-plus": "7.0.0" - } - }, - "node_modules/@stackql/pgwire-lite": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stackql/pgwire-lite/-/pgwire-lite-1.0.1.tgz", - "integrity": "sha512-jgA6ogzlXySZ1xiJzBxuvgRNu9V38Gs3qUZ4AjinlT7hj+8RH3UhYaDvyBd33QWiK3tVNkglYcnXPQ7q0+rmNA==", - "license": "MIT", - "dependencies": { - "winston": "^3.14.2" - } - }, - "node_modules/@stackql/provider-utils": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@stackql/provider-utils/-/provider-utils-0.5.0.tgz", - "integrity": "sha512-KwHVVCBC0XwbDI/dDb7FM1fEFqqnXQ0mPJFmiEYkASNs5mXQW0jbAazVBeOFO4JN0PN6AyX6D/vWCVOmpnz9jw==", - "license": "MIT", - "dependencies": { - "@apidevtools/swagger-parser": "^10.1.1", - "@stackql/deno-openapi-dereferencer": "npm:@jsr/stackql__deno-openapi-dereferencer@^0.3.1", - "csv-parser": "^3.2.0", - "js-yaml": "^4.1.0", - "pluralize": "^8.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT" - }, - "node_modules/@types/triple-beam": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", - "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", - "license": "MIT" - }, - "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-draft-04": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", - "license": "MIT", - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "license": "MIT" - }, - "node_modules/call-me-maybe": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "license": "MIT" - }, - "node_modules/color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "license": "MIT", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "license": "MIT", - "dependencies": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, - "node_modules/csv-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-3.2.0.tgz", - "integrity": "sha512-fgKbp+AJbn1h2dcAHKIdKNSSjfp43BZZykXsCjzALjKy80VXQNHPFJ6T9Afwdzoj24aMkq8GwDS7KGcDPpejrA==", - "license": "MIT", - "bin": { - "csv-parser": "bin/csv-parser" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", - "license": "MIT" - }, - "node_modules/fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", - "license": "MIT" - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/is-arrayish": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", - "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", - "license": "MIT" - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/jsonpath-plus": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-7.0.0.tgz", - "integrity": "sha512-MH4UnrWrU1hJGVEyEyjvYgONkzNTO6Yol0nq18EMnUQ/ZC5cTuJheirXXIwu1b9mZ6t3XL0P79gPsu+zlTnDIQ==", - "license": "MIT", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", - "license": "MIT" - }, - "node_modules/logform": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", - "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", - "license": "MIT", - "dependencies": { - "@colors/colors": "1.6.0", - "@types/triple-beam": "^1.3.2", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "license": "MIT", - "dependencies": { - "fn.name": "1.x.x" - } - }, - "node_modules/openapi-types": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", - "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", - "license": "MIT", - "peer": true - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-stable-stringify": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", - "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", - "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", - "license": "MIT" - }, - "node_modules/triple-beam": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", - "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", - "license": "MIT", - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/winston": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", - "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", - "license": "MIT", - "dependencies": { - "@colors/colors": "^1.6.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.7.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.9.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/winston-transport": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", - "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", - "license": "MIT", - "dependencies": { - "logform": "^2.7.0", - "readable-stream": "^3.6.2", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 12.0.0" - } - } - } -} +{ + "name": "stackql-provider-sumologic", + "version": "0.2.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "stackql-provider-sumologic", + "version": "0.2.0", + "dependencies": { + "@apidevtools/swagger-parser": "^12.1.0", + "@stackql/pgwire-lite": "^1.0.2", + "@stackql/provider-utils": "^0.7.9", + "js-yaml": "^4.1.0", + "pluralize": "^8.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.0.1.tgz", + "integrity": "sha512-Oc96zvmxx1fqoSEdUmfmvvb59/KDOnUoJ7s2t7bISyAn0XEz57LCCw8k2Y4Pf3mwKaZLMciESALORLgfe2frCw==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.15", + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" + } + }, + "node_modules/@apidevtools/openapi-schemas": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", + "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@apidevtools/swagger-methods": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", + "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", + "license": "MIT" + }, + "node_modules/@apidevtools/swagger-parser": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-12.1.0.tgz", + "integrity": "sha512-e5mJoswsnAX0jG+J09xHFYQXb/bUc5S3pLpMxUuRUA2H8T2kni3yEoyz2R3Dltw5f4A6j6rPNMpWTK+iVDFlng==", + "license": "MIT", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "14.0.1", + "@apidevtools/openapi-schemas": "^2.1.0", + "@apidevtools/swagger-methods": "^3.0.2", + "ajv": "^8.17.1", + "ajv-draft-04": "^1.0.0", + "call-me-maybe": "^1.0.2" + }, + "peerDependencies": { + "openapi-types": ">=7" + } + }, + "node_modules/@colors/colors": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.1.tgz", + "integrity": "sha512-dTmUJzXSuayBK+hZydEaXd2mhx61qWQwkwaBBY6LyEOVx/L9aQU5ac8eFNEsd9nrD1+zb9zvDCphLSe8g1F4Qw==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.9.tgz", + "integrity": "sha512-R6siwR65Hm+3yfgP7o8DKhNvputQAwfoz9zTc3kyDudnomj2/BcLmD+uGQQPICjuFUp8ounPBU+jmKsocwVVAg==", + "license": "MIT", + "dependencies": { + "@so-ric/colorspace": "^1.1.6", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "license": "MIT" + }, + "node_modules/@so-ric/colorspace": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@so-ric/colorspace/-/colorspace-1.1.6.tgz", + "integrity": "sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==", + "license": "MIT", + "dependencies": { + "color": "^5.0.2", + "text-hex": "1.0.x" + } + }, + "node_modules/@stackql/deno-openapi-dereferencer": { + "name": "@jsr/stackql__deno-openapi-dereferencer", + "version": "0.3.1", + "resolved": "https://npm.jsr.io/~/11/@jsr/stackql__deno-openapi-dereferencer/0.3.1.tgz", + "integrity": "sha512-7Ucdom3SYxvzp7VwzulQMe66E+1LeCZIprFQ70PwRPIUfL90bYNQDrLfe5L1WaB+X7StWdHmoFSFxoa9RDlN7w==", + "dependencies": { + "jsonpath-plus": "7.0.0" + } + }, + "node_modules/@stackql/pgwire-lite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@stackql/pgwire-lite/-/pgwire-lite-1.0.2.tgz", + "integrity": "sha512-uHZA0yzVyow8TtWYyGPFI7/If8Ci/5EjjKdoaZ4YEk1XcSoCKaGQmH9KCUlR/R1FvQk4Ic3DV9It8XhePsoTqQ==", + "license": "MIT", + "dependencies": { + "winston": "^3.14.2" + } + }, + "node_modules/@stackql/provider-utils": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/@stackql/provider-utils/-/provider-utils-0.7.9.tgz", + "integrity": "sha512-mMd+voDZvgeciLA41nO1+OPmyKr/Lh38bO1jiWUUeRDbrlBAJhn0jr9ykxUaikx/IA0UZrSy0BOp2Y05NWnY0w==", + "license": "MIT", + "dependencies": { + "@apidevtools/swagger-parser": "^10.1.1", + "@stackql/deno-openapi-dereferencer": "npm:@jsr/stackql__deno-openapi-dereferencer@^0.3.1", + "csv-parser": "^3.2.0", + "js-yaml": "^4.1.0", + "pluralize": "^8.0.0" + }, + "bin": { + "docgen-utils": "bin/docgen-utils.mjs", + "provider-dev-utils": "bin/provider-dev-utils.mjs" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@stackql/provider-utils/node_modules/@apidevtools/json-schema-ref-parser": { + "version": "11.7.2", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", + "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", + "license": "MIT", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.15", + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" + } + }, + "node_modules/@stackql/provider-utils/node_modules/@apidevtools/swagger-parser": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.1.tgz", + "integrity": "sha512-u/kozRnsPO/x8QtKYJOqoGtC4kH6yg1lfYkB9Au0WhYB0FNLpyFusttQtvhlwjtG3rOwiRz4D8DnnXa8iEpIKA==", + "license": "MIT", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "11.7.2", + "@apidevtools/openapi-schemas": "^2.1.0", + "@apidevtools/swagger-methods": "^3.0.2", + "@jsdevtools/ono": "^7.1.3", + "ajv": "^8.17.1", + "ajv-draft-04": "^1.0.0", + "call-me-maybe": "^1.0.2" + }, + "peerDependencies": { + "openapi-types": ">=7" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", + "license": "MIT" + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "license": "MIT" + }, + "node_modules/color": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/color/-/color-5.0.3.tgz", + "integrity": "sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==", + "license": "MIT", + "dependencies": { + "color-convert": "^3.1.3", + "color-string": "^2.1.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/color-convert": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.3.tgz", + "integrity": "sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==", + "license": "MIT", + "dependencies": { + "color-name": "^2.0.0" + }, + "engines": { + "node": ">=14.6" + } + }, + "node_modules/color-name": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.1.1.tgz", + "integrity": "sha512-p2FdgwVx1a9yWBHP2wI0VgShkDpgN4kZISkxdNipGBJWpa5G6b04OINlVWCyJj0JmfvcPrgqt95E9k8yvaOJFg==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/color-string": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.4.tgz", + "integrity": "sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==", + "license": "MIT", + "dependencies": { + "color-name": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/csv-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-3.2.1.tgz", + "integrity": "sha512-v8RPMSglouR9od735SnwSxLBbCJqEPSbgm1R5qfr8yIiMUCEFjox56kRZid0SvgHJEkxeIEu3+a9QS3YRh7CuA==", + "license": "MIT", + "bin": { + "csv-parser": "bin/csv-parser" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.7.tgz", + "integrity": "sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "license": "MIT" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-yaml": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/jsonpath-plus": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-7.0.0.tgz", + "integrity": "sha512-MH4UnrWrU1hJGVEyEyjvYgONkzNTO6Yol0nq18EMnUQ/ZC5cTuJheirXXIwu1b9mZ6t3XL0P79gPsu+zlTnDIQ==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "license": "MIT" + }, + "node_modules/logform": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", + "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/logform/node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/openapi-types": { + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", + "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", + "license": "MIT", + "peer": true + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "license": "MIT" + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/winston": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.19.0.tgz", + "integrity": "sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==", + "license": "MIT", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.8", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.7.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.9.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", + "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", + "license": "MIT", + "dependencies": { + "logform": "^2.7.0", + "readable-stream": "^3.6.2", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + } + } +} diff --git a/package.json b/package.json index c56e58b..d662a3b 100644 --- a/package.json +++ b/package.json @@ -1,28 +1,42 @@ -{ - "name": "stackql-provider-digitalocean", - "version": "0.1.0", - "description": "StackQL Provider for Digital Ocean", - "type": "module", - "scripts": { - "generate-docs": "./bin/generate-docs.sh", - "split": "./bin/split.sh", - "generate-mappings": "./bin/generate-mappings.sh", - "generate-provider": "./bin/generate-provider.sh", - "start-server": "bash ./bin/start-server.sh", - "stop-server": "bash ./bin/stop-server.sh", - "server-status": "bash ./bin/server-status.sh", - "test-meta-routes": "node ./bin/test-meta-routes.cjs" - }, - "dependencies": { - "@stackql/pgwire-lite": "^1.0.1", - "@stackql/provider-utils": "^0.5.0" - }, - "keywords": [ - "stackql", - "digitalocean", - "provider" - ], - "engines": { - "node": ">=14.16.0" - } -} \ No newline at end of file +{ + "name": "stackql-provider-sumologic", + "version": "0.2.0", + "description": "StackQL Provider for Sumo Logic", + "type": "module", + "scripts": { + "fetch-spec": "bash ./bin/fetch-spec.sh", + "split": "node ./node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs split", + "merge-collectors": "node ./provider-dev/scripts/merge_collectors.mjs", + "pre-normalize": "node ./provider-dev/scripts/pre_normalize.mjs", + "normalize": "node ./node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs normalize", + "generate-mappings": "node ./node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs analyze", + "map-operations": "node ./provider-dev/scripts/map_operations.mjs", + "generate-provider": "node ./node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs generate", + "post-process": "node ./provider-dev/scripts/post_process.mjs", + "compare-predecessor": "node ./provider-dev/scripts/compare_predecessor.mjs", + "generate-docs": "node ./node_modules/@stackql/provider-utils/bin/docgen-utils.mjs generate-docs", + "sanitize-docs": "node ./website/scripts/sanitize-docs.mjs", + "start-server": "bash ./bin/start-server.sh", + "stop-server": "bash ./bin/stop-server.sh", + "server-status": "bash ./bin/server-status.sh", + "test-offline": "node ./tests/offline_validation.mjs", + "test-meta-routes": "node ./bin/test-meta-routes.cjs", + "test-integration": "node ./tests/integration/run_integration_tests.mjs", + "smoke-test": "node ./tests/smoke_test.mjs" + }, + "dependencies": { + "@apidevtools/swagger-parser": "^12.1.0", + "@stackql/pgwire-lite": "^1.0.2", + "@stackql/provider-utils": "^0.7.9", + "js-yaml": "^4.1.0", + "pluralize": "^8.0.0" + }, + "keywords": [ + "stackql", + "sumologic", + "provider" + ], + "engines": { + "node": ">=20.0.0" + } +} diff --git a/provider-dev/config/all_services.csv b/provider-dev/config/all_services.csv new file mode 100644 index 0000000..cd7443a --- /dev/null +++ b/provider-dev/config/all_services.csv @@ -0,0 +1,483 @@ +filename,path,operationId,formatted_op_id,verb,response_object,tags,formatted_tags,stackql_resource_name,stackql_method_name,stackql_verb,stackql_object_key,op_description +access_keys.yaml,/v1/accessKeys,listAccessKeys,list_access_keys,get,PaginatedListAccessKeysResult,accessKeyManagement,access_key_management,access_keys,list,select,$.data,List all access keys. +access_keys.yaml,/v1/accessKeys,createAccessKey,create_access_key,post,AccessKey,accessKeyManagement,access_key_management,access_keys,create,insert,,Create an access key. +access_keys.yaml,/v1/accessKeys/personal,listPersonalAccessKeys,list_personal_access_keys,get,ListAccessKeysResult,accessKeyManagement,access_key_management,personal_access_keys,list,select,$.data,List personal keys. +access_keys.yaml,/v1/accessKeys/scopes,listScopes,list_scopes,get,ScopesList,accessKeyManagement,access_key_management,scopes,list,select,$.data,Get all scopes. +access_keys.yaml,/v1/accessKeys/{id},updateAccessKey,update_access_key,put,AccessKeyPublic,accessKeyManagement,access_key_management,access_keys,update,update,,Update an access key. +access_keys.yaml,/v1/accessKeys/{id},deleteAccessKey,delete_access_key,delete,,accessKeyManagement,access_key_management,access_keys,delete,delete,,Delete an access key. +access_keys.yaml,/v1/accessKeys/{id}/rotate,rotateAccessKeySecret,rotate_access_key_secret,put,AccessKey,accessKeyManagement,access_key_management,access_keys,rotate_secret,exec,,Rotate the access key secret +account.yaml,/v1/account/accountOwner,getAccountOwner,get_account_owner,get,,accountManagement,account_management,account_owner,get,select,,Get the owner of an account. +account.yaml,/v1/account/status,getStatus,get_status,get,AccountStatusResponse,accountManagement,account_management,status,get,select,,Get overview of the account status. +account.yaml,/v1/account/subdomain,getSubdomain,get_subdomain,get,SubdomainDefinitionResponse,accountManagement,account_management,subdomain,get,select,,Get the configured subdomain. +account.yaml,/v1/account/subdomain,updateSubdomain,update_subdomain,put,SubdomainDefinitionResponse,accountManagement,account_management,subdomain,update,update,,Update account subdomain. +account.yaml,/v1/account/subdomain,createSubdomain,create_subdomain,post,SubdomainDefinitionResponse,accountManagement,account_management,subdomain,create,insert,,Create account subdomain. +account.yaml,/v1/account/subdomain,deleteSubdomain,delete_subdomain,delete,,accountManagement,account_management,subdomain,delete,delete,,Delete the configured subdomain. +account.yaml,/v1/account/subdomain/recover,recoverSubdomains,recover_subdomains,post,,accountManagement,account_management,subdomain,recover,exec,,Recover subdomains for a user. +account.yaml,/v1/account/usage/report,exportUsageReport,export_usage_report,post,UsageReportResponse,accountManagement,account_management,usage_reports,create,insert,,Export credits usage details as CSV. +account.yaml,/v1/account/usage/report/{jobId}/status,getStatusForReport,get_status_for_report,get,UsageReportStatusResponse,accountManagement,account_management,usage_reports,get,select,,Get report generation status. +account.yaml,/v1/account/usageForecast,getUsageForecast,get_usage_forecast,get,UsageForecastResponse,accountManagement,account_management,usage_forecast,get,select,,Get usage forecast with respect to last number of days specified. +account.yaml,/v1/plan/pendingUpdateRequest,getPendingUpdateRequest,get_pending_update_request,get,PendingUpdateRequest,accountManagement,account_management,pending_update_request,get,select,,"Get the pending plan update request, if any." +account.yaml,/v1/plan/pendingUpdateRequest,deletePendingUpdateRequest,delete_pending_update_request,delete,,accountManagement,account_management,pending_update_request,delete,delete,,"Delete the pending plan update request, if any." +apps.yaml,/v1/apps,listApps,list_apps,get,ListAppsResult,appManagement,app_management,apps,list,select,$.apps,List available apps. +apps.yaml,/v1/apps/{uuid},getApp,get_app,get,App,appManagement,app_management,apps,get,select,,Get an app by UUID. +apps.yaml,/v1/apps/{uuid}/install,installApp,install_app,post,BeginAsyncJobResponse,appManagement,app_management,apps,install,exec,,Install an app by UUID. +apps.yaml,/v1/apps/install/{jobId}/status,getAsyncInstallStatus,get_async_install_status,get,AsyncJobStatus,appManagement,app_management,install_jobs,get,select,,App install job status. +apps.yaml,/v2/apps/{uuid}/install,asyncInstallApp,async_install_app,post,BeginAsyncJobResponseV2,appManagementV2,app_management_v2,apps_v2,install,exec,,Start app install job +apps.yaml,/v2/apps/install/{jobId}/status,getAsyncInstallAppStatus,get_async_install_app_status,get,AsyncInstallAppJobStatus,appManagementV2,app_management_v2,install_jobs_v2,get,select,,App install job status +apps.yaml,/v2/apps/{uuid}/uninstall,asyncUninstallApp,async_uninstall_app,post,BeginAsyncJobResponseV2,appManagementV2,app_management_v2,apps_v2,uninstall,exec,,Start app uninstall job +apps.yaml,/v2/apps/uninstall/{jobId}/status,getAsyncUninstallAppStatus,get_async_uninstall_app_status,get,AsyncUninstallAppJobStatus,appManagementV2,app_management_v2,uninstall_jobs,get,select,,App uninstall job status +apps.yaml,/v2/apps/{uuid}/upgrade,asyncUpgradeApp,async_upgrade_app,post,BeginAsyncJobResponseV2,appManagementV2,app_management_v2,apps_v2,upgrade,exec,,Start app upgrade job +apps.yaml,/v2/apps/upgrade/{jobId}/status,getAsyncUpgradeAppStatus,get_async_upgrade_app_status,get,AsyncUpgradeAppJobStatus,appManagementV2,app_management_v2,upgrade_jobs,get,select,,App upgrade job status +apps.yaml,/v2/apps,listAppsV2,list_apps_v2,get,ListAppsV2Response,appManagementV2,app_management_v2,apps_v2,list,select,$.apps,List apps +apps.yaml,/v2/apps/{uuid}/details,getAppDetails,get_app_details,get,GetAppDetailsResponse,appManagementV2,app_management_v2,apps_v2,get,select,,Get details of an app version. +apps.yaml,/v2/apps/{uuid}/subscription,getAppNotificationSubscriptionStatus,get_app_notification_subscription_status,get,SubscriptionStatusResponse,appManagementV2,app_management_v2,app_subscriptions,get,select,,Get subscription status for the user +apps.yaml,/v2/apps/{uuid}/subscription,subscribeToAppNotification,subscribe_to_app_notification,post,,appManagementV2,app_management_v2,app_subscriptions,subscribe,exec,,Subscribe to an app upgrade notification +apps.yaml,/v2/apps/{uuid}/subscription,unsubscribeFromAppNotification,unsubscribe_from_app_notification,delete,,appManagementV2,app_management_v2,app_subscriptions,delete,delete,,Unsubscribe from an app upgrade notification +archive.yaml,/v1/archive/{sourceId}/jobs,listArchiveJobsBySourceId,list_archive_jobs_by_source_id,get,ListArchiveJobsResponse,archiveManagement,archive_management,jobs,list,select,$.data,Get ingestion jobs for an Archive Source. +archive.yaml,/v1/archive/{sourceId}/jobs,createArchiveJob,create_archive_job,post,ArchiveJob,archiveManagement,archive_management,jobs,create,insert,,Create an ingestion job. +archive.yaml,/v1/archive/{sourceId}/jobs/{id},deleteArchiveJob,delete_archive_job,delete,,archiveManagement,archive_management,jobs,delete,delete,,Delete an ingestion job. +archive.yaml,/v1/archive/jobs/count,listArchiveJobsCountPerSource,list_archive_jobs_count_per_source,get,ListArchiveJobsCount,archiveManagement,archive_management,job_counts,list,select,$.data,List ingestion jobs for all Archive Sources. +budgets.yaml,/v1/budgets,getBudgets,get_budgets,get,ScanBudgetList,budgetManagement,budget_management,budgets,list,select,$.data,Get budgets +budgets.yaml,/v1/budgets,createBudget,create_budget,post,ScanBudget,budgetManagement,budget_management,budgets,create,insert,,Creates a budget definition +budgets.yaml,/v1/budgets/{budgetId},getBudget,get_budget,get,ScanBudget,budgetManagement,budget_management,budgets,get,select,,Get budget +budgets.yaml,/v1/budgets/{budgetId},updateBudget,update_budget,put,ScanBudget,budgetManagement,budget_management,budgets,update,update,,Update budget +budgets.yaml,/v1/budgets/{budgetId},deleteBudget,delete_budget,delete,,budgetManagement,budget_management,budgets,delete,delete,,Delete budget +budgets.yaml,/v1/budgets/usage,getBudgetUsages,get_budget_usages,get,ScanBudgetUsageList,budgetManagement,budget_management,usages,list,select,$.data,Get budget usages +budgets.yaml,/v1/budgets/{budgetId}/usage,getBudgetUsage,get_budget_usage,get,ScanBudgetUsage,budgetManagement,budget_management,usages,get,select,,Get budget usage +collectors.yaml,/v1/collectors,listCollectors,list_collectors,get,CollectorsList,collectorManagement,collector_management,collectors,list,select,$.collectors,List Collectors +collectors.yaml,/v1/collectors,createCollector,create_collector,post,GetCollector,collectorManagement,collector_management,collectors,create,insert,,Create Hosted Collector +collectors.yaml,/v1/collectors/offline,listOfflineCollectors,list_offline_collectors,get,CollectorsList,collectorManagement,collector_management,offline_collectors,list,select,$.collectors,List offline Collectors +collectors.yaml,/v1/collectors/offline,deleteOfflineCollectors,delete_offline_collectors,delete,,collectorManagement,collector_management,offline_collectors,delete,delete,,Delete offline Collectors +collectors.yaml,/v1/collectors/overview,getCollectorsOverview,get_collectors_overview,get,CollectorsOverview,collectorManagement,collector_management,overview,get,select,,Collectors overview +collectors.yaml,/v1/collectors/{id},getCollector,get_collector,get,GetCollector,collectorManagement,collector_management,collectors,get,select,$.collector,Get Collector by ID +collectors.yaml,/v1/collectors/{id},updateCollector,update_collector,put,GetCollector,collectorManagement,collector_management,collectors,update,update,,Update Collector +collectors.yaml,/v1/collectors/{id},deleteCollector,delete_collector,delete,,collectorManagement,collector_management,collectors,delete,delete,,Delete Collector +collectors.yaml,/v1/collectors/name/{name},getCollectorByName,get_collector_by_name,get,GetCollector,collectorManagement,collector_management,collectors,get_by_name,select,$.collector,Get Collector by name +collectors.yaml,/v1/collectors/{collectorId}/sources,listSources,list_sources,get,SourcesList,collectorManagement,collector_management,sources,list,select,$.sources,List Sources +collectors.yaml,/v1/collectors/{collectorId}/sources,createSource,create_source,post,GetSource,collectorManagement,collector_management,sources,create,insert,,Create Source +collectors.yaml,/v1/collectors/{collectorId}/sources/{sourceId},getSource,get_source,get,GetSource,collectorManagement,collector_management,sources,get,select,$.source,Get Source +collectors.yaml,/v1/collectors/{collectorId}/sources/{sourceId},updateSource,update_source,put,GetSource,collectorManagement,collector_management,sources,update,update,,Update Source +collectors.yaml,/v1/collectors/{collectorId}/sources/{sourceId},deleteSource,delete_source,delete,,collectorManagement,collector_management,sources,delete,delete,,Delete Source +collectors.yaml,/v1/collectors/upgrades/targets,listUpgradeTargets,list_upgrade_targets,get,UpgradeTargetsList,collectorManagement,collector_management,upgrade_targets,list,select,$.targets,List Collector upgrade targets +collectors.yaml,/v1/collectors/upgrades/collectors,listUpgradableCollectors,list_upgradable_collectors,get,CollectorsList,collectorManagement,collector_management,upgradable_collectors,list,select,$.collectors,List upgradable Collectors +collectors.yaml,/v1/collectors/upgrades,createUpgrade,create_upgrade,post,UpgradeTask,collectorManagement,collector_management,upgrades,create,insert,,Upgrade a Collector +collectors.yaml,/v1/collectors/upgrades/{upgradeTaskId},getUpgradeStatus,get_upgrade_status,get,GetUpgrade,collectorManagement,collector_management,upgrades,get,select,$.upgrade,Get Collector upgrade status +connections.yaml,/v1/connections,listConnections,list_connections,get,ListConnectionsResponse,connectionManagement,connection_management,connections,list,select,$.data,Get a list of connections. +connections.yaml,/v1/connections,createConnection,create_connection,post,Connection,connectionManagement,connection_management,connections,create,insert,,Create a new connection. +connections.yaml,/v1/connections/test,testConnection,test_connection,post,TestConnectionResponse,connectionManagement,connection_management,connections,test,exec,,Test a new connection url. +connections.yaml,/v1/connections/incidentTemplates,getIncidentTemplates,get_incident_templates,post,GetIncidentTemplatesResponse,connectionManagement,connection_management,connections,get_incident_templates,exec,,Get incident templates for CloudSOAR connections. +connections.yaml,/v1/connections/{id},getConnection,get_connection,get,Connection,connectionManagement,connection_management,connections,get,select,,Get a connection. +connections.yaml,/v1/connections/{id},updateConnection,update_connection,put,Connection,connectionManagement,connection_management,connections,update,update,,Update a connection. +connections.yaml,/v1/connections/{id},deleteConnection,delete_connection,delete,,connectionManagement,connection_management,connections,delete,delete,,Delete a connection. +content.yaml,/v2/content/folders,createFolder,create_folder,post,Folder,folderManagement,folder_management,folders,create,insert,,Create a new folder. +content.yaml,/v2/content/folders/{id},getFolder,get_folder,get,Folder,folderManagement,folder_management,folders,get,select,,Get a folder. +content.yaml,/v2/content/folders/{id},updateFolder,update_folder,put,Folder,folderManagement,folder_management,folders,update,update,,Update a folder. +content.yaml,/v2/content/folders/personal,getPersonalFolder,get_personal_folder,get,Folder,folderManagement,folder_management,personal_folder,get,select,,Get personal folder. +content.yaml,/v2/content/folders/global,getGlobalFolderAsync,get_global_folder_async,get,BeginAsyncJobResponse,folderManagement,folder_management,global_folder_jobs,start,exec,,Schedule Global View job +content.yaml,/v2/content/folders/global/{jobId}/status,getGlobalFolderAsyncStatus,get_global_folder_async_status,get,AsyncJobStatus,folderManagement,folder_management,global_folder_jobs,get,select,,Get Global View job status +content.yaml,/v2/content/folders/global/{jobId}/result,getGlobalFolderAsyncResult,get_global_folder_async_result,get,ContentList,folderManagement,folder_management,global_folder_results,list,select,$.data,Get Global View job result +content.yaml,/v2/content/folders/adminRecommended,getAdminRecommendedFolderAsync,get_admin_recommended_folder_async,get,BeginAsyncJobResponse,folderManagement,folder_management,admin_recommended_folder_jobs,start,exec,,Schedule Admin Recommended folder job +content.yaml,/v2/content/folders/adminRecommended/{jobId}/status,getAdminRecommendedFolderAsyncStatus,get_admin_recommended_folder_async_status,get,AsyncJobStatus,folderManagement,folder_management,admin_recommended_folder_jobs,get,select,,Get Admin Recommended folder job status +content.yaml,/v2/content/folders/adminRecommended/{jobId}/result,getAdminRecommendedFolderAsyncResult,get_admin_recommended_folder_async_result,get,Folder,folderManagement,folder_management,admin_recommended_folder_results,get,select,,Get Admin Recommended folder job result +content.yaml,/v2/content/folders/installedApps,getInstalledAppsFolderAsync,get_installed_apps_folder_async,get,BeginAsyncJobResponse,folderManagement,folder_management,installed_apps_folder_jobs,start,exec,,Schedule Installed Apps folder job +content.yaml,/v2/content/folders/installedApps/{jobId}/status,getInstalledAppsFolderAsyncStatus,get_installed_apps_folder_async_status,get,AsyncJobStatus,folderManagement,folder_management,installed_apps_folder_jobs,get,select,,Get Installed Apps folder job status +content.yaml,/v2/content/folders/installedApps/{jobId}/result,getInstalledAppsFolderAsyncResult,get_installed_apps_folder_async_result,get,Folder,folderManagement,folder_management,installed_apps_folder_results,get,select,,Get Installed Apps folder job result +content.yaml,/v2/content/{id}/permissions,getContentPermissions,get_content_permissions,get,ContentPermissionResult,contentPermissions,content_permissions,permissions,get,select,,Get permissions of a content item +content.yaml,/v2/content/{id}/permissions/add,addContentPermissions,add_content_permissions,put,ContentPermissionResult,contentPermissions,content_permissions,permissions,add,exec,,Add permissions to a content item. +content.yaml,/v2/content/{id}/permissions/remove,removeContentPermissions,remove_content_permissions,put,ContentPermissionResult,contentPermissions,content_permissions,permissions,remove,exec,,Remove permissions from a content item. +content.yaml,/v2/content/path,getItemByPath,get_item_by_path,get,Content,contentManagement,content_management,items,get_by_path,select,,Get content item by path. +content.yaml,/v2/content/{contentId}/path,getPathById,get_path_by_id,get,ContentPath,contentManagement,content_management,paths,get,select,,Get path of an item. +content.yaml,/v2/content/{id}/export,beginAsyncExport,begin_async_export,post,BeginAsyncJobResponse,contentManagement,content_management,export_jobs,start,exec,,Start a content export job. +content.yaml,/v2/content/{contentId}/export/{jobId}/status,getAsyncExportStatus,get_async_export_status,get,AsyncJobStatus,contentManagement,content_management,export_jobs,get,select,,Content export job status. +content.yaml,/v2/content/{contentId}/export/{jobId}/result,getAsyncExportResult,get_async_export_result,get,ContentSyncDefinition,contentManagement,content_management,export_results,get,select,,Content export job result. +content.yaml,/v2/content/folders/{folderId}/import,beginAsyncImport,begin_async_import,post,BeginAsyncJobResponse,contentManagement,content_management,import_jobs,start,exec,,Start a content import job. +content.yaml,/v2/content/folders/{folderId}/import/{jobId}/status,getAsyncImportStatus,get_async_import_status,get,AsyncJobStatus,contentManagement,content_management,import_jobs,get,select,,Content import job status. +content.yaml,/v2/content/folders/{folderId}/import/{jobId}/result,getAsyncImportResult,get_async_import_result,get,ImportResult,contentManagement,content_management,import_results,get,select,,Content import job result. +content.yaml,/v2/content/{id}/delete,beginAsyncDelete,begin_async_delete,delete,BeginAsyncJobResponse,contentManagement,content_management,delete_jobs,start,exec,,Start a content deletion job. +content.yaml,/v2/content/{id}/delete/{jobId}/status,getAsyncDeleteStatus,get_async_delete_status,get,AsyncJobStatus,contentManagement,content_management,delete_jobs,get,select,,Content deletion job status. +content.yaml,/v2/content/{id}/copy,beginAsyncCopy,begin_async_copy,post,BeginAsyncJobResponse,contentManagement,content_management,copy_jobs,start,exec,,Start a content copy job. +content.yaml,/v2/content/{id}/copy/{jobId}/status,asyncCopyStatus,async_copy_status,get,AsyncJobStatus,contentManagement,content_management,copy_jobs,get,select,,Content copy job status. +content.yaml,/v2/content/{id}/move,moveItem,move_item,post,,contentManagement,content_management,items,move,exec,,Move an item. +content_sync.yaml,/v1/multi-account-management/content/sync,getContentSyncJobDetails,get_content_sync_job_details,get,ContentSyncResponse,contentConfigManagement,content_config_management,sync_jobs,get_current,select,,Get Content Sync Job Id. +content_sync.yaml,/v1/multi-account-management/content/sync,contentSync,content_sync,post,ContentSyncResponse,contentConfigManagement,content_config_management,sync_jobs,create,insert,,Sync Content and Configuration across Organization. +content_sync.yaml,/v1/multi-account-management/content/sync/{jobId}/status,contentSyncStatus,content_sync_status,get,ContentSyncStatusResponse,contentConfigManagement,content_config_management,sync_jobs,get,select,,Get Status of Content Sync Job. +content_sync.yaml,/v1/multi-account-management/content/sync/{jobId}/retry,contentSyncRetry,content_sync_retry,post,ContentSyncResponse,contentConfigManagement,content_config_management,sync_jobs,retry,exec,,Retry Content Sync Job by ID +content_sync.yaml,/v1/multi-account-management/content/sync/{jobId}/cancel,contentSyncCancel,content_sync_cancel,post,,contentConfigManagement,content_config_management,sync_jobs,cancel,exec,,Cancel Content Sync Job by ID +content_sync.yaml,/v1/multi-account-management/content/sync/{jobId}/result,contentSyncResult,content_sync_result,get,ContentSyncResult,contentConfigManagement,content_config_management,sync_job_results,list,select,$.contentList,Get Result of Content Sync Job by ID. +content_sync.yaml,/v1/multi-account-management/content/sync/{jobId}/info,contentSyncJobInfo,content_sync_job_info,get,ContentSyncJobInfo,contentConfigManagement,content_config_management,sync_job_info,get,select,,Get Information of Content Sync Job by ID. +dashboards.yaml,/v2/dashboards,listDashboards,list_dashboards,get,PaginatedDashboards,dashboardManagement,dashboard_management,dashboards,list,select,$.dashboards,List all dashboards. +dashboards.yaml,/v2/dashboards,createDashboard,create_dashboard,post,Dashboard,dashboardManagement,dashboard_management,dashboards,create,insert,,Create a new dashboard. +dashboards.yaml,/v2/dashboards/{id},getDashboard,get_dashboard,get,Dashboard,dashboardManagement,dashboard_management,dashboards,get,select,,Get a dashboard. +dashboards.yaml,/v2/dashboards/{id},updateDashboard,update_dashboard,put,Dashboard,dashboardManagement,dashboard_management,dashboards,update,update,,Update a dashboard. +dashboards.yaml,/v2/dashboards/{id},deleteDashboard,delete_dashboard,delete,,dashboardManagement,dashboard_management,dashboards,delete,delete,,Delete a dashboard. +dashboards.yaml,/v2/dashboards/reportJobs,generateDashboardReport,generate_dashboard_report,post,BeginAsyncJobResponse,dashboardManagement,dashboard_management,report_jobs,create,insert,,Start a report job +dashboards.yaml,/v2/dashboards/reportJobs/{jobId}/status,getAsyncReportGenerationStatus,get_async_report_generation_status,get,AsyncJobStatus,dashboardManagement,dashboard_management,report_jobs,get,select,,Get report generation job status +dashboards.yaml,/v2/dashboards/reportJobs/{jobId}/result,getAsyncReportGenerationResult,get_async_report_generation_result,get,,dashboardManagement,dashboard_management,skip_this_resource,,,,Get report generation job result +dashboards.yaml,/v2/dashboards/migrate,migrateReportToDashboard,migrate_report_to_dashboard,post,BeginAsyncJobResponseV2,dashboardManagement,dashboard_management,migrations,create,insert,,Migrate Legacy Dashboards to Dashboards(New) +dashboards.yaml,/v2/dashboards/migrate/preview,previewMigrateReportToDashboard,preview_migrate_report_to_dashboard,post,MigrationPreviewResponse,dashboardManagement,dashboard_management,migrations,preview,exec,,Preview of Migrating Legacy Dashboards to Dashboards(New) +dashboards.yaml,/v2/dashboards/migrate/{jobId}/status,getDashboardMigrationStatus,get_dashboard_migration_status,get,AsyncJobStatus,dashboardManagement,dashboard_management,migrations,get,select,,Get dashboard migration status. +dashboards.yaml,/v2/dashboards/migrate/{jobId}/result,getDashboardMigrationResult,get_dashboard_migration_result,get,DashboardMigrationResult,dashboardManagement,dashboard_management,migration_results,get,select,,Get dashboard migration result. +dashboards.yaml,/v1/dashboards/reportSchedules,listReportSchedules,list_report_schedules,get,PaginatedReportSchedules,dashboardManagement,dashboard_management,report_schedules,list,select,$.reportSchedules,List all dashboard report schedules. +dashboards.yaml,/v1/dashboards/reportSchedules,createScheduleReport,create_schedule_report,post,ReportSchedule,dashboardManagement,dashboard_management,report_schedules,create,insert,,Schedule dashboard report +dashboards.yaml,/v1/dashboards/reportSchedules/{scheduleId},getReportSchedule,get_report_schedule,get,ReportSchedule,dashboardManagement,dashboard_management,report_schedules,get,select,,Get dashboard report schedule. +dashboards.yaml,/v1/dashboards/reportSchedules/{scheduleId},updateReportSchedule,update_report_schedule,put,ReportSchedule,dashboardManagement,dashboard_management,report_schedules,update,update,,Update dashboard report schedule. +dashboards.yaml,/v1/dashboards/reportSchedules/{scheduleId},deleteReportSchedule,delete_report_schedule,delete,,dashboardManagement,dashboard_management,report_schedules,delete,delete,,Delete dashboard report schedule. +data_archiving.yaml,/v1/dataarchiving/destinations,getDataArchivingDestinations,get_data_archiving_destinations,get,GetDataArchivingDestinationsResponse,dataArchivingManagement,data_archiving_management,destinations,list,select,$.data,Get all data archiving destinations. +data_archiving.yaml,/v1/dataarchiving/destinations,createDataArchivingDestination,create_data_archiving_destination,post,DataArchivingDestination,dataArchivingManagement,data_archiving_management,destinations,create,insert,,Create a data archiving destination. +data_archiving.yaml,/v1/dataarchiving/destinations/{id},getDataArchivingDestination,get_data_archiving_destination,get,DataArchivingDestination,dataArchivingManagement,data_archiving_management,destinations,get,select,,Get a data archiving destination. +data_archiving.yaml,/v1/dataarchiving/destinations/{id},updateDataArchivingDestination,update_data_archiving_destination,put,DataArchivingDestination,dataArchivingManagement,data_archiving_management,destinations,update,update,,Update a data archiving destination. +data_archiving.yaml,/v1/dataarchiving/destinations/{id},deleteDataArchivingDestination,delete_data_archiving_destination,delete,,dataArchivingManagement,data_archiving_management,destinations,delete,delete,,Delete a data archiving destination. +data_deletion_rules.yaml,/v1/dataDeletionRules,listDeletionRules,list_deletion_rules,get,ListDeletionRulesResponse,dataDeletionRules,data_deletion_rules,data_deletion_rules,list,select,$.deletionRulesList,Get a list of Data Deletion Rules +data_deletion_rules.yaml,/v1/dataDeletionRules,createDataDeletionRule,create_data_deletion_rule,post,DeletionRuleDefinition,dataDeletionRules,data_deletion_rules,data_deletion_rules,create,insert,,Create a new Data Deletion Rule +data_deletion_rules.yaml,/v1/dataDeletionRules/{id},getDataDeletionRule,get_data_deletion_rule,get,DeletionRuleDefinition,dataDeletionRules,data_deletion_rules,data_deletion_rules,get,select,,Get Data Deletion Rule information for the given Id. +data_deletion_rules.yaml,/v1/dataDeletionRules/{id}/cancel,cancelDataDeletionRule,cancel_data_deletion_rule,post,DeletionRuleDefinition,dataDeletionRules,data_deletion_rules,data_deletion_rules,cancel,exec,,Cancel the data Deletion Rule with the given Id. +data_deletion_rules.yaml,/v1/dataDeletionRules/{id}/delete,deleteDataDeletionRule,delete_data_deletion_rule,delete,,dataDeletionRules,data_deletion_rules,data_deletion_rules,delete,delete,,Delete the data Deletion Rule with the given Id. +data_masking_rules.yaml,/v1/dataMaskingRules,listDataMaskingRules,list_data_masking_rules,get,ListDataMaskingRulesResponse,dataMaskingManagement,data_masking_management,data_masking_rules,list,select,$.data,Get a list of data masking rules. +data_masking_rules.yaml,/v1/dataMaskingRules,createDataMaskingRule,create_data_masking_rule,post,DataMaskingRule,dataMaskingManagement,data_masking_management,data_masking_rules,create,insert,,Create a new data masking rule. +data_masking_rules.yaml,/v1/dataMaskingRules/{id},getDataMaskingRule,get_data_masking_rule,get,DataMaskingRule,dataMaskingManagement,data_masking_management,data_masking_rules,get,select,,Get a data masking rule. +data_masking_rules.yaml,/v1/dataMaskingRules/{id},updateDataMaskingRule,update_data_masking_rule,put,DataMaskingRule,dataMaskingManagement,data_masking_management,data_masking_rules,update,update,,Update a data masking rule. +data_masking_rules.yaml,/v1/dataMaskingRules/{id},deleteDataMaskingRule,delete_data_masking_rule,delete,,dataMaskingManagement,data_masking_management,data_masking_rules,delete,delete,,Delete a data masking rule. +data_masking_rules.yaml,/v1/dataMaskingRules/evaluate,evaluateDataMaskingPattern,evaluate_data_masking_pattern,post,DataMaskingEvaluateResponse,dataMaskingManagement,data_masking_management,data_masking_rules,evaluate,exec,,Test and preview a regex pattern by evaluating it against sample input text. Optionally provide a maskString to use as the replacement for text that matches the regex. +dynamic_parsing_rules.yaml,/v1/dynamicParsingRules,listDynamicParsingRules,list_dynamic_parsing_rules,get,ListDynamicRulesResponse,dynamicParsingRuleManagement,dynamic_parsing_rule_management,dynamic_parsing_rules,list,select,$.data,Get a list of dynamic parsing rules. +dynamic_parsing_rules.yaml,/v1/dynamicParsingRules,createDynamicParsingRule,create_dynamic_parsing_rule,post,DynamicRule,dynamicParsingRuleManagement,dynamic_parsing_rule_management,dynamic_parsing_rules,create,insert,,Create a new dynamic parsing rule. +dynamic_parsing_rules.yaml,/v1/dynamicParsingRules/{id},getDynamicParsingRule,get_dynamic_parsing_rule,get,DynamicRule,dynamicParsingRuleManagement,dynamic_parsing_rule_management,dynamic_parsing_rules,get,select,,Get a dynamic parsing rule. +dynamic_parsing_rules.yaml,/v1/dynamicParsingRules/{id},updateDynamicParsingRule,update_dynamic_parsing_rule,put,DynamicRule,dynamicParsingRuleManagement,dynamic_parsing_rule_management,dynamic_parsing_rules,update,update,,Update a dynamic parsing rule. +dynamic_parsing_rules.yaml,/v1/dynamicParsingRules/{id},deleteDynamicParsingRule,delete_dynamic_parsing_rule,delete,,dynamicParsingRuleManagement,dynamic_parsing_rule_management,dynamic_parsing_rules,delete,delete,,Delete a dynamic parsing rule. +event_extraction_rules.yaml,/v1/eventExtractionRules,getEventExtractionRules,get_event_extraction_rules,get,ListEventExtractionRulesResponse,eventAnalytics,event_analytics,event_extraction_rules,list,select,$.data,Get all event extraction rules. +event_extraction_rules.yaml,/v1/eventExtractionRules,createEventExtractionRule,create_event_extraction_rule,post,EventExtractionRuleWithDetails,eventAnalytics,event_analytics,event_extraction_rules,create,insert,,Create event extraction rule. +event_extraction_rules.yaml,/v1/eventExtractionRules/quota,getEventExtractionRulesQuota,get_event_extraction_rules_quota,get,EventExtractionRulesQuotaUsage,eventAnalytics,event_analytics,quota,get,select,,Get event extraction rules quota. +event_extraction_rules.yaml,/v1/eventExtractionRules/{id},getEventExtractionRule,get_event_extraction_rule,get,EventExtractionRuleWithDetails,eventAnalytics,event_analytics,event_extraction_rules,get,select,,Get an event extraction rule. +event_extraction_rules.yaml,/v1/eventExtractionRules/{id},updateEventExtractionRule,update_event_extraction_rule,put,EventExtractionRuleWithDetails,eventAnalytics,event_analytics,event_extraction_rules,update,update,,Update an event extraction rule. +event_extraction_rules.yaml,/v1/eventExtractionRules/{id},deleteEventExtractionRule,delete_event_extraction_rule,delete,,eventAnalytics,event_analytics,event_extraction_rules,delete,delete,,Delete an event extraction rule. +extraction_rules.yaml,/v1/extractionRules,listExtractionRules,list_extraction_rules,get,ListExtractionRulesResponse,extractionRuleManagement,extraction_rule_management,extraction_rules,list,select,$.data,Get a list of field extraction rules. +extraction_rules.yaml,/v1/extractionRules,createExtractionRule,create_extraction_rule,post,ExtractionRule,extractionRuleManagement,extraction_rule_management,extraction_rules,create,insert,,Create a new field extraction rule. +extraction_rules.yaml,/v1/extractionRules/{id},getExtractionRule,get_extraction_rule,get,ExtractionRule,extractionRuleManagement,extraction_rule_management,extraction_rules,get,select,,Get a field extraction rule. +extraction_rules.yaml,/v1/extractionRules/{id},updateExtractionRule,update_extraction_rule,put,ExtractionRule,extractionRuleManagement,extraction_rule_management,extraction_rules,update,update,,Update a field extraction rule. +extraction_rules.yaml,/v1/extractionRules/{id},deleteExtractionRule,delete_extraction_rule,delete,,extractionRuleManagement,extraction_rule_management,extraction_rules,delete,delete,,Delete a field extraction rule. +feature_settings.yaml,/v1/featureSettings,listFeatureSettings,list_feature_settings,get,FeatureSettingsResponse,orgFeatureSettings,org_feature_settings,feature_settings,list,select,$.featureSettings,Get a list of opt-in/out features. +feature_settings.yaml,/v1/featureSettings,updateFeatureSettings,update_feature_settings,put,FeatureSettingsResponse,orgFeatureSettings,org_feature_settings,feature_settings,update,update,,Update one or more feature settings. +fields.yaml,/v1/fields,listCustomFields,list_custom_fields,get,ListCustomFieldsResponse,fieldManagementV1,field_management_v1,fields,list,select,$.data,Get a list of all custom fields. +fields.yaml,/v1/fields,createField,create_field,post,CustomField,fieldManagementV1,field_management_v1,fields,create,insert,,Create a new field. +fields.yaml,/v1/fields/{id},getCustomField,get_custom_field,get,CustomField,fieldManagementV1,field_management_v1,fields,get,select,,Get a custom field. +fields.yaml,/v1/fields/{id},deleteField,delete_field,delete,,fieldManagementV1,field_management_v1,fields,delete,delete,,Delete a custom field. +fields.yaml,/v1/fields/{id}/enable,enableField,enable_field,put,,fieldManagementV1,field_management_v1,fields,enable,exec,,Enable custom field with a specified identifier. +fields.yaml,/v1/fields/{id}/disable,disableField,disable_field,delete,,fieldManagementV1,field_management_v1,fields,disable,exec,,Disable a custom field. +fields.yaml,/v1/fields/dropped,listDroppedFields,list_dropped_fields,get,ListDroppedFieldsResponse,fieldManagementV1,field_management_v1,dropped_fields,list,select,$.data,Get a list of dropped fields. +fields.yaml,/v1/fields/builtin,listBuiltInFields,list_built_in_fields,get,ListBuiltinFieldsResponse,fieldManagementV1,field_management_v1,builtin_fields,list,select,$.data,Get a list of built-in fields. +fields.yaml,/v1/fields/builtin/{id},getBuiltInField,get_built_in_field,get,BuiltinField,fieldManagementV1,field_management_v1,builtin_fields,get,select,,Get a built-in field. +fields.yaml,/v1/fields/quota,getFieldQuota,get_field_quota,get,FieldQuotaUsage,fieldManagementV1,field_management_v1,quota,get,select,,Get capacity information. +health_events.yaml,/v1/healthEvents,listAllHealthEvents,list_all_health_events,get,ListHealthEventResponse,healthEvents,health_events,health_events,list,select,$.data,Get a list of health events. +health_events.yaml,/v1/healthEvents/resources,listAllHealthEventsForResources,list_all_health_events_for_resources,post,ListHealthEventResponse,healthEvents,health_events,health_events,list_for_resources,exec,,Health events for specific resources. +ingest_budgets.yaml,/v2/ingestBudgets,listIngestBudgetsV2,list_ingest_budgets_v2,get,ListIngestBudgetsResponseV2,ingestBudgetManagementV2,ingest_budget_management_v2,ingest_budgets,list,select,$.data,Get a list of ingest budgets. +ingest_budgets.yaml,/v2/ingestBudgets,createIngestBudgetV2,create_ingest_budget_v2,post,IngestBudgetV2,ingestBudgetManagementV2,ingest_budget_management_v2,ingest_budgets,create,insert,,Create a new ingest budget. +ingest_budgets.yaml,/v2/ingestBudgets/{id},getIngestBudgetV2,get_ingest_budget_v2,get,IngestBudgetV2,ingestBudgetManagementV2,ingest_budget_management_v2,ingest_budgets,get,select,,Get an ingest budget. +ingest_budgets.yaml,/v2/ingestBudgets/{id},updateIngestBudgetV2,update_ingest_budget_v2,put,IngestBudgetV2,ingestBudgetManagementV2,ingest_budget_management_v2,ingest_budgets,update,update,,Update an ingest budget. +ingest_budgets.yaml,/v2/ingestBudgets/{id},deleteIngestBudgetV2,delete_ingest_budget_v2,delete,,ingestBudgetManagementV2,ingest_budget_management_v2,ingest_budgets,delete,delete,,Delete an ingest budget. +ingest_budgets.yaml,/v2/ingestBudgets/{id}/usage/reset,resetUsageV2,reset_usage_v2,post,,ingestBudgetManagementV2,ingest_budget_management_v2,ingest_budgets,reset_usage,exec,,Reset usage. +logs_data_forwarding.yaml,/v1/logsDataForwarding/destinations,getDataForwardingBuckets,get_data_forwarding_buckets,get,GetDataForwardingDestinations,logsDataForwardingManagement,logs_data_forwarding_management,destinations,list,select,$.data,Get Amazon S3 data forwarding destinations. +logs_data_forwarding.yaml,/v1/logsDataForwarding/destinations,createDataForwardingBucket,create_data_forwarding_bucket,post,BucketDefinition,logsDataForwardingManagement,logs_data_forwarding_management,destinations,create,insert,,Create an S3 data forwarding destination. +logs_data_forwarding.yaml,/v1/logsDataForwarding/destinations/{id},getDataForwardingDestination,get_data_forwarding_destination,get,BucketDefinition,logsDataForwardingManagement,logs_data_forwarding_management,destinations,get,select,,Get an S3 data forwarding destination. +logs_data_forwarding.yaml,/v1/logsDataForwarding/destinations/{id},UpdateDataForwardingBucket,update_data_forwarding_bucket,put,BucketDefinition,logsDataForwardingManagement,logs_data_forwarding_management,destinations,update,update,,Update an S3 data forwarding destination. +logs_data_forwarding.yaml,/v1/logsDataForwarding/destinations/{id},deleteDataForwardingBucket,delete_data_forwarding_bucket,delete,,logsDataForwardingManagement,logs_data_forwarding_management,destinations,delete,delete,,Delete an S3 data forwarding destination. +logs_data_forwarding.yaml,/v1/logsDataForwarding/rules,getRulesAndBuckets,get_rules_and_buckets,get,GetRulesAndBucketsResult,logsDataForwardingManagement,logs_data_forwarding_management,rules,list,select,$.data,Get all S3 data forwarding rules. +logs_data_forwarding.yaml,/v1/logsDataForwarding/rules,createDataForwardingRule,create_data_forwarding_rule,post,DataForwardingRule,logsDataForwardingManagement,logs_data_forwarding_management,rules,create,insert,,Create an S3 data forwarding rule. +logs_data_forwarding.yaml,/v1/logsDataForwarding/rules/{indexId},getDataForwardingRule,get_data_forwarding_rule,get,RuleAndBucketDetail,logsDataForwardingManagement,logs_data_forwarding_management,rules,get,select,,Get an S3 data forwarding rule by its index. +logs_data_forwarding.yaml,/v1/logsDataForwarding/rules/{indexId},updateDataForwardingRule,update_data_forwarding_rule,put,DataForwardingRule,logsDataForwardingManagement,logs_data_forwarding_management,rules,update,update,,Update an S3 data forwarding rule by its index. +logs_data_forwarding.yaml,/v1/logsDataForwarding/rules/{indexId},deleteDataForwardingRule,delete_data_forwarding_rule,delete,,logsDataForwardingManagement,logs_data_forwarding_management,rules,delete,delete,,Delete an S3 data forwarding rule by its index. +log_searches.yaml,/v1/logSearches,listLogSearches,list_log_searches,get,PaginatedLogSearches,logSearchesManagement,log_searches_management,log_searches,list,select,$.logSearches,List all saved log searches. +log_searches.yaml,/v1/logSearches,createLogSearch,create_log_search,post,LogSearch,logSearchesManagement,log_searches_management,log_searches,create,insert,,Save a log search. +log_searches.yaml,/v1/logSearches/{id},getLogSearch,get_log_search,get,LogSearch,logSearchesManagement,log_searches_management,log_searches,get,select,,Get the saved log search. +log_searches.yaml,/v1/logSearches/{id},updateLogSearch,update_log_search,put,LogSearch,logSearchesManagement,log_searches_management,log_searches,update,update,,Update the saved log Search. +log_searches.yaml,/v1/logSearches/{id},deleteLogSearch,delete_log_search,delete,,logSearchesManagement,log_searches_management,log_searches,delete,delete,,Delete the saved log search. +log_searches.yaml,/v1/logSearches/estimatedUsage,getLogSearchEstimatedUsage,get_log_search_estimated_usage,post,LogSearchEstimatedUsageDefinition,logSearchesEstimatedUsage,log_searches_estimated_usage,estimated_usage,estimate,exec,,Gets estimated usage details. +log_searches.yaml,/v1/logSearches/estimatedUsageByTier,getLogSearchEstimatedUsageByTier,get_log_search_estimated_usage_by_tier,post,LogSearchEstimatedUsageByTierDefinition,logSearchesEstimatedUsage,log_searches_estimated_usage,estimated_usage,estimate_by_tier,exec,,Gets Tier Wise estimated usage details. +log_searches.yaml,/v1/logSearches/estimatedUsageByMeteringType,getLogSearchEstimatedUsageByMeteringType,get_log_search_estimated_usage_by_metering_type,post,LogSearchEstimatedUsageByMeteringTypeDefinition,logSearchesEstimatedUsage,log_searches_estimated_usage,estimated_usage,estimate_by_metering_type,exec,,Gets estimated usage details per metering type. +log_searches.yaml,/v1/logSearches/estimatedUsageByView,logSearchesEstimatedUsageByView,log_searches_estimated_usage_by_view,post,LogSearchEstimatedUsageByViewDefinition,logSearchesEstimatedUsage,log_searches_estimated_usage,estimated_usage,estimate_by_view,exec,,Gets estimated usage details per view. +lookup_tables.yaml,/v1/lookupTables,createTable,create_table,post,LookupTable,lookupManagement,lookup_management,lookup_tables,create,insert,,Create a lookup table. +lookup_tables.yaml,/v1/lookupTables/{id},lookupTableById,lookup_table_by_id,get,LookupTable,lookupManagement,lookup_management,lookup_tables,get,select,,Get a lookup table. +lookup_tables.yaml,/v1/lookupTables/{id},updateTable,update_table,put,LookupTable,lookupManagement,lookup_management,lookup_tables,update,update,,Edit a lookup table. +lookup_tables.yaml,/v1/lookupTables/{id},deleteTable,delete_table,delete,,lookupManagement,lookup_management,lookup_tables,delete,delete,,Delete a lookup table. +lookup_tables.yaml,/v1/lookupTables/{id}/upload,uploadFile,upload_file,post,LookupRequestToken,lookupManagement,lookup_management,skip_this_resource,,,,Upload a CSV file. +lookup_tables.yaml,/v1/lookupTables/jobs/{jobId}/status,requestJobStatus,request_job_status,get,LookupAsyncJobStatus,lookupManagement,lookup_management,jobs,get,select,,Get the status of an async job. +lookup_tables.yaml,/v1/lookupTables/{id}/truncate,truncateTable,truncate_table,post,LookupRequestToken,lookupManagement,lookup_management,lookup_tables,truncate,exec,,Empty a lookup table. +lookup_tables.yaml,/v1/lookupTables/{id}/row,updateTableRow,update_table_row,put,,lookupManagement,lookup_management,lookup_tables,upsert_row,exec,,Insert or Update a lookup table row. +lookup_tables.yaml,/v1/lookupTables/{id}/deleteTableRow,deleteTableRow,delete_table_row,put,,lookupManagement,lookup_management,lookup_tables,delete_row,exec,,Delete a lookup table row. +macros.yaml,/v2/macros,listMacros,list_macros,get,PaginatedMacros,macroManagement,macro_management,macros,list,select,$.data,List all macros. +macros.yaml,/v2/macros,createMacro,create_macro,post,Macro,macroManagement,macro_management,macros,create,insert,,Create a new macro. +macros.yaml,/v2/macros/{id},getMacro,get_macro,get,Macro,macroManagement,macro_management,macros,get,select,,Get a macro. +macros.yaml,/v2/macros/{id},editMacro,edit_macro,put,Macro,macroManagement,macro_management,macros,update,update,,Edit a macro. +macros.yaml,/v2/macros/{id},deleteMacro,delete_macro,delete,,macroManagement,macro_management,macros,delete,delete,,Delete a macro. +metrics_queries.yaml,/v1/metricsQueries,runMetricsQueries,run_metrics_queries,post,MetricsQueryResponse,metricsQuery,metrics_query,metrics_queries,run,exec,,Run metrics queries +metrics_searches.yaml,/v1/metricsSearches,createMetricsSearch,create_metrics_search,post,MetricsSearchInstance,metricsSearchesManagement,metrics_searches_management,metrics_searches,create,insert,,Save a metrics search. +metrics_searches.yaml,/v1/metricsSearches/{id},getMetricsSearch,get_metrics_search,get,MetricsSearchInstance,metricsSearchesManagement,metrics_searches_management,metrics_searches,get,select,,Get a metrics search. +metrics_searches.yaml,/v1/metricsSearches/{id},updateMetricsSearch,update_metrics_search,put,MetricsSearchInstance,metricsSearchesManagement,metrics_searches_management,metrics_searches,update,update,,Updates a metrics search. +metrics_searches.yaml,/v1/metricsSearches/{id},deleteMetricsSearch,delete_metrics_search,delete,,metricsSearchesManagement,metrics_searches_management,metrics_searches,delete,delete,,Deletes a metrics search. +metrics_searches.yaml,/v2/metricsSearches,ListMetricsSearches,list_metrics_searches,get,PaginatedMetricsSearches,metricsSearchesManagementV2,metrics_searches_management_v2,metrics_searches_v2,list,select,$.metricsSearches,List all metrics search pages. +metrics_searches.yaml,/v2/metricsSearches,createMetricsSearches,create_metrics_searches,post,MetricsSearchResponse,metricsSearchesManagementV2,metrics_searches_management_v2,metrics_searches_v2,create,insert,,Create a new metrics search page. +metrics_searches.yaml,/v2/metricsSearches/{id},getMetricsSearches,get_metrics_searches,get,MetricsSearchResponse,metricsSearchesManagementV2,metrics_searches_management_v2,metrics_searches_v2,get,select,,Get a metrics search page. +metrics_searches.yaml,/v2/metricsSearches/{id},updateMetricsSearches,update_metrics_searches,put,MetricsSearchResponse,metricsSearchesManagementV2,metrics_searches_management_v2,metrics_searches_v2,update,update,,Update a metrics search page. +metrics_searches.yaml,/v2/metricsSearches/{id},deleteMetricsSearches,delete_metrics_searches,delete,,metricsSearchesManagementV2,metrics_searches_management_v2,metrics_searches_v2,delete,delete,,Delete a metrics search page. +monitors.yaml,/v1/monitors/usageInfo,getMonitorUsageInfo,get_monitor_usage_info,get,GetMonitorUsageInfoResponse,monitorsLibraryManagement,monitors_library_management,usage_info,list,select,,Usage info of monitors. +monitors.yaml,/v1/monitors/disable,disableMonitorByIds,disable_monitor_by_ids,put,DisableMonitorResponse,monitorsLibraryManagement,monitors_library_management,monitors,disable_by_ids,exec,,Disable monitors. +monitors.yaml,/v1/monitors/playbooks,getMonitorPlaybooks,get_monitor_playbooks,get,GetMonitorPlaybooksResponse,monitorsLibraryManagement,monitors_library_management,playbooks,list,select,,List all playbooks. +monitors.yaml,/v1/monitors/playbooksDetails,getPlaybooksDetails,get_playbooks_details,get,GetPlaybooksDetailsResponse,monitorsLibraryManagement,monitors_library_management,playbook_details,list,select,,Get playbook details. +monitors.yaml,/v1/monitors,monitorsReadByIds,monitors_read_by_ids,get,IdToMonitorsLibraryBaseResponseMap,monitorsLibraryManagement,monitors_library_management,monitors,read_by_ids,exec,,Bulk read a monitor or folder. +monitors.yaml,/v1/monitors,monitorsCreate,monitors_create,post,MonitorsLibraryBaseResponse,monitorsLibraryManagement,monitors_library_management,monitors,create,insert,,"Create a monitor or folder. +" +monitors.yaml,/v1/monitors,monitorsDeleteByIds,monitors_delete_by_ids,delete,IdToMonitorsLibraryBaseResponseMap,monitorsLibraryManagement,monitors_library_management,monitors,delete_by_ids,exec,,"Bulk delete a monitor or folder. +" +monitors.yaml,/v1/monitors/root,getMonitorsLibraryRoot,get_monitors_library_root,get,MonitorsLibraryFolderResponse,monitorsLibraryManagement,monitors_library_management,root,get,select,,Get the root monitors folder. +monitors.yaml,/v1/monitors/path,monitorsGetByPath,monitors_get_by_path,get,MonitorsLibraryBaseResponse,monitorsLibraryManagement,monitors_library_management,monitors,get_by_path,select,,Read a monitor or folder by its path. +monitors.yaml,/v1/monitors/search,monitorsSearch,monitors_search,get,MonitorsSearchResponse,monitorsLibraryManagement,monitors_library_management,search,list,select,,Search for a monitor or folder. +monitors.yaml,/v1/monitors/{id},monitorsReadById,monitors_read_by_id,get,MonitorsLibraryBaseResponse,monitorsLibraryManagement,monitors_library_management,monitors,get,select,,Get a monitor or folder. +monitors.yaml,/v1/monitors/{id},monitorsUpdateById,monitors_update_by_id,put,MonitorsLibraryBaseResponse,monitorsLibraryManagement,monitors_library_management,monitors,update,update,,"Update a monitor or folder. +" +monitors.yaml,/v1/monitors/{id},monitorsDeleteById,monitors_delete_by_id,delete,,monitorsLibraryManagement,monitors_library_management,monitors,delete,delete,,"Delete a monitor or folder. +" +monitors.yaml,/v1/monitors/{id}/path,getMonitorsFullPath,get_monitors_full_path,get,Path,monitorsLibraryManagement,monitors_library_management,paths,get,select,,Get the path of a monitor or folder. +monitors.yaml,/v1/monitors/{id}/move,monitorsMove,monitors_move,post,MonitorsLibraryBaseResponse,monitorsLibraryManagement,monitors_library_management,monitors,move,exec,,Move a monitor or folder. +monitors.yaml,/v1/monitors/{id}/copy,monitorsCopy,monitors_copy,post,MonitorsLibraryBaseResponse,monitorsLibraryManagement,monitors_library_management,monitors,copy,exec,,Copy a monitor or folder. +monitors.yaml,/v1/monitors/{id}/export,monitorsExportItem,monitors_export_item,get,MonitorsLibraryBaseExport,monitorsLibraryManagement,monitors_library_management,monitors,export,exec,,Export a monitor or folder. +monitors.yaml,/v1/monitors/{parentId}/import,monitorsImportItem,monitors_import_item,post,MonitorsLibraryBaseResponse,monitorsLibraryManagement,monitors_library_management,monitors,import,exec,,Import a monitor or folder. +monitors.yaml,/v1/monitors/{id}/permissions,monitorsReadPermissionsById,monitors_read_permissions_by_id,get,ListPermissionsResponse,monitorsLibraryManagement,monitors_library_management,permissions,list,select,$.permissionStatements,"List explicit permissions on monitor or folder. +" +monitors.yaml,/v1/monitors/permissions/set,monitorsSetPermissions,monitors_set_permissions,put,PermissionStatements,monitorsLibraryManagement,monitors_library_management,permissions,set,exec,,"Set permissions on monitor or folder. +" +monitors.yaml,/v1/monitors/permissions/revoke,monitorsRevokePermissions,monitors_revoke_permissions,put,,monitorsLibraryManagement,monitors_library_management,permissions,revoke,exec,,"Revoke all permissions on monitor or folder. +" +monitors.yaml,/v1/monitors/{id}/permissionSummariesBySubjects,monitorsReadPermissionSummariesByIdGroupBySubjects,monitors_read_permission_summaries_by_id_group_by_subjects,get,PermissionSummariesBySubjects,monitorsLibraryManagement,monitors_library_management,permission_summaries,list,select,$.permissionSummariesBySubjects,"List permission summaries for a monitor or folder. +" +muting_schedules.yaml,/v1/mutingSchedules,mutingSchedulesReadByIds,muting_schedules_read_by_ids,get,IdToMutingSchedulesLibraryBaseResponseMap,mutingSchedulesLibraryManagement,muting_schedules_library_management,muting_schedules,read_by_ids,exec,,Bulk read a mutingschedule or folder. +muting_schedules.yaml,/v1/mutingSchedules,mutingSchedulesCreate,muting_schedules_create,post,MutingSchedulesLibraryBaseResponse,mutingSchedulesLibraryManagement,muting_schedules_library_management,muting_schedules,create,insert,,"Create a mutingschedule or folder. +" +muting_schedules.yaml,/v1/mutingSchedules,mutingSchedulesDeleteByIds,muting_schedules_delete_by_ids,delete,IdToMutingSchedulesLibraryBaseResponseMap,mutingSchedulesLibraryManagement,muting_schedules_library_management,muting_schedules,delete_by_ids,exec,,"Bulk delete a mutingschedule or folder. +" +muting_schedules.yaml,/v1/mutingSchedules/root,getMutingSchedulesLibraryRoot,get_muting_schedules_library_root,get,MutingSchedulesLibraryFolderResponse,mutingSchedulesLibraryManagement,muting_schedules_library_management,root,get,select,,Get the root mutingSchedules folder. +muting_schedules.yaml,/v1/mutingSchedules/search,mutingSchedulesSearch,muting_schedules_search,get,MutingSchedulesSearchResponse,mutingSchedulesLibraryManagement,muting_schedules_library_management,search,list,select,,Search for a mutingschedule or folder. +muting_schedules.yaml,/v1/mutingSchedules/{id},mutingSchedulesReadById,muting_schedules_read_by_id,get,MutingSchedulesLibraryBaseResponse,mutingSchedulesLibraryManagement,muting_schedules_library_management,muting_schedules,get,select,,Get a mutingschedule or folder. +muting_schedules.yaml,/v1/mutingSchedules/{id},mutingSchedulesUpdateById,muting_schedules_update_by_id,put,MutingSchedulesLibraryBaseResponse,mutingSchedulesLibraryManagement,muting_schedules_library_management,muting_schedules,update,update,,"Update a mutingschedule or folder. +" +muting_schedules.yaml,/v1/mutingSchedules/{id},mutingSchedulesDeleteById,muting_schedules_delete_by_id,delete,,mutingSchedulesLibraryManagement,muting_schedules_library_management,muting_schedules,delete,delete,,"Delete a mutingschedule or folder. +" +muting_schedules.yaml,/v1/mutingSchedules/{id}/path,getMutingSchedulesFullPath,get_muting_schedules_full_path,get,Path,mutingSchedulesLibraryManagement,muting_schedules_library_management,paths,get,select,,Get the path of a mutingschedule or folder. +muting_schedules.yaml,/v1/mutingSchedules/{id}/copy,mutingSchedulesCopy,muting_schedules_copy,post,MutingSchedulesLibraryBaseResponse,mutingSchedulesLibraryManagement,muting_schedules_library_management,muting_schedules,copy,exec,,Copy a mutingschedule or folder. +muting_schedules.yaml,/v1/mutingSchedules/{id}/export,mutingSchedulesExportItem,muting_schedules_export_item,get,MutingSchedulesLibraryBaseExport,mutingSchedulesLibraryManagement,muting_schedules_library_management,muting_schedules,export,exec,,Export a mutingschedule or folder. +muting_schedules.yaml,/v1/mutingSchedules/{parentId}/import,mutingSchedulesImportItem,muting_schedules_import_item,post,MutingSchedulesLibraryBaseResponse,mutingSchedulesLibraryManagement,muting_schedules_library_management,muting_schedules,import,exec,,Import a mutingschedule or folder. +oauth.yaml,/v1/oauth/scopes,listOAuthScopes,list_oauth_scopes,get,ScopesList,oauthManagement,oauth_management,scopes,list,select,$.data,Get all scopes. +oauth.yaml,/v1/oauth/clients,listOAuthClients,list_oauth_clients,get,PaginatedListOAuthClientsResult,oauthManagement,oauth_management,clients,list,select,$.data,List the OAuth clients. +oauth.yaml,/v1/oauth/clients,createOAuthClient,create_oauth_client,post,OAuthClientCreationResponse,oauthManagement,oauth_management,clients,create,insert,,Create a new OAuth client. +oauth.yaml,/v1/oauth/clients/{id},getOAuthClientById,get_oauth_client_by_id,get,OAuthClient,oauthManagement,oauth_management,clients,get,select,,Get an OAuth client. +oauth.yaml,/v1/oauth/clients/{id},updateOAuthClient,update_oauth_client,put,OAuthClient,oauthManagement,oauth_management,clients,update,update,,Update an OAuth client. +oauth.yaml,/v1/oauth/clients/{id},deleteOAuthClient,delete_oauth_client,delete,,oauthManagement,oauth_management,clients,delete,delete,,Delete an OAuth client. +oauth.yaml,/v1/oauth/clients/{id}/rotate,rotateOauthSecret,rotate_oauth_secret,put,OAuthClientCreationResponse,oauthManagement,oauth_management,clients,rotate_secret,exec,,Rotate the oauth client secret +oauth.yaml,/v1/oauth/consents,listOAuthConsents,list_oauth_consents,get,PaginatedListOAuthConsentsResult,oauthManagement,oauth_management,consents,list,select,$.data,List OAuth consents. +oauth.yaml,/v1/oauth/consents/{consentId},deleteOAuthConsent,delete_oauth_consent,delete,,oauthManagement,oauth_management,consents,delete,delete,,Delete an OAuth consent. +organizations.yaml,/v1/organizations/usages,getChildUsages,get_child_usages,post,ChildUsageDetailsResponse,orgsManagement,orgs_management,child_usages,get_usages,exec,,Get usages for child orgs. +ot_collectors.yaml,/v1/otCollectors,getPaginatedOTCollectors,get_paginated_otcollectors,post,PaginatedOTCollectorsResponse,otCollectorManagementExternal,ot_collector_management_external,ot_collectors,list,select,$.data,Get paginated list of OT Collectors +ot_collectors.yaml,/v1/otCollectors/{id},getOTCollector,get_otcollector,get,OTCollector,otCollectorManagementExternal,ot_collector_management_external,ot_collectors,get,select,,Get OT Collector by ID. +ot_collectors.yaml,/v1/otCollectors/{id},deleteOTCollector,delete_otcollector,delete,,otCollectorManagementExternal,ot_collector_management_external,ot_collectors,delete,delete,,Delete an OT Collector. +ot_collectors.yaml,/v1/otCollectors/totalCount,getOTCollectorsCount,get_otcollectors_count,get,OTCollectorCountResponse,otCollectorManagementExternal,ot_collector_management_external,total_count,get,select,,Get a count of OT Collectors. +ot_collectors.yaml,/v1/otCollectors/otCollectorsByName,getOTCollectorsByNames,get_otcollectors_by_names,get,OTCollectorListResponse,otCollectorManagementExternal,ot_collector_management_external,ot_collectors,get_by_names,select,$.data,Get OT Collectors by name. +ot_collectors.yaml,/v1/otCollectors/offline,deleteOfflineOTCollectors,delete_offline_otcollectors,delete,,otCollectorManagementExternal,ot_collector_management_external,ot_collectors,delete_offline,exec,,Delete all Offline OT Collectors +parsers.yaml,/v1/parsers/root,getParsersLibraryRoot,get_parsers_library_root,get,ParsersLibraryFolderResponse,parsersLibraryManagement,parsers_library_management,root,get,select,,Get the root folder in the library. +parsers.yaml,/v1/parsers,parsersReadByIds,parsers_read_by_ids,get,IdToParsersLibraryBaseResponseMap,parsersLibraryManagement,parsers_library_management,parsers,read_by_ids,exec,,Bulk read folders and parsers. +parsers.yaml,/v1/parsers,parsersCreate,parsers_create,post,ParsersLibraryBaseResponse,parsersLibraryManagement,parsers_library_management,parsers,create,insert,,"Create a folder or parser. +" +parsers.yaml,/v1/parsers,parsersDeleteByIds,parsers_delete_by_ids,delete,IdToParsersLibraryBaseResponseMap,parsersLibraryManagement,parsers_library_management,parsers,delete_by_ids,exec,,"Bulk delete folders and parsers. +" +parsers.yaml,/v1/parsers/{id},parsersReadById,parsers_read_by_id,get,ParsersLibraryBaseResponse,parsersLibraryManagement,parsers_library_management,parsers,get,select,,"Read a folder or parser. +" +parsers.yaml,/v1/parsers/{id},parsersUpdateById,parsers_update_by_id,put,ParsersLibraryBaseResponse,parsersLibraryManagement,parsers_library_management,parsers,update,update,,"Update a folder or parser. +" +parsers.yaml,/v1/parsers/{id},parsersDeleteById,parsers_delete_by_id,delete,,parsersLibraryManagement,parsers_library_management,parsers,delete,delete,,"Delete a folder or parser. +" +parsers.yaml,/v1/parsers/{id}/path,getParsersFullPath,get_parsers_full_path,get,Path,parsersLibraryManagement,parsers_library_management,paths,get,select,,Get full path of folder or parser. +parsers.yaml,/v1/parsers/{id}/lock,parsersLockById,parsers_lock_by_id,post,ParsersLibraryBaseResponse,parsersLibraryManagement,parsers_library_management,parsers,lock,exec,,Lock a folder or a parser. +parsers.yaml,/v1/parsers/{id}/unlock,parsersUnlockById,parsers_unlock_by_id,post,ParsersLibraryBaseResponse,parsersLibraryManagement,parsers_library_management,parsers,unlock,exec,,Unlock a folder or a parser. +parsers.yaml,/v1/parsers/{id}/move,parsersMove,parsers_move,post,ParsersLibraryBaseResponse,parsersLibraryManagement,parsers_library_management,parsers,move,exec,,Move a folder or parser. +parsers.yaml,/v1/parsers/{id}/copy,parsersCopy,parsers_copy,post,ParsersLibraryBaseResponse,parsersLibraryManagement,parsers_library_management,parsers,copy,exec,,Copy a folder or parser. +parsers.yaml,/v1/parsers/{id}/export,parsersExportItem,parsers_export_item,get,ParsersLibraryExportBase,parsersLibraryManagement,parsers_library_management,parsers,export,exec,,Export a folder or parser. +parsers.yaml,/v1/parsers/{parentId}/import,parsersImportItem,parsers_import_item,post,ParsersLibraryBaseResponse,parsersLibraryManagement,parsers_library_management,parsers,import,exec,,Import a folder or parser +parsers.yaml,/v1/parsers/path,parsersGetByPath,parsers_get_by_path,get,ParsersLibraryBaseResponse,parsersLibraryManagement,parsers_library_management,parsers,get_by_path,select,,Read a folder or parser by its path. +parsers.yaml,/v1/parsers/search,parsersSearch,parsers_search,get,ParsersSearchResponse,parsersLibraryManagement,parsers_library_management,search,list,select,,Search for folders or parsers. +parsers.yaml,/v1/system/parsers/{id}/lock,systemParsersLockById,system_parsers_lock_by_id,post,ParsersLibraryBaseResponse,parsersLibraryManagement,parsers_library_management,system_parsers,lock,exec,,Lock a folder or a parser. +parsers.yaml,/v1/system/parsers/{id}/unlock,systemParsersUnlockById,system_parsers_unlock_by_id,post,ParsersLibraryBaseResponse,parsersLibraryManagement,parsers_library_management,system_parsers,unlock,exec,,Unlock a folder or a parser. +partitions.yaml,/v1/partitions,listPartitions,list_partitions,get,ListPartitionsResponse,partitionManagement,partition_management,partitions,list,select,$.data,Get a list of partitions. +partitions.yaml,/v1/partitions,createPartition,create_partition,post,Partition,partitionManagement,partition_management,partitions,create,insert,,Create a new partition. +partitions.yaml,/v1/partitions/{id},getPartition,get_partition,get,Partition,partitionManagement,partition_management,partitions,get,select,,Get a partition. +partitions.yaml,/v1/partitions/{id},updatePartition,update_partition,put,Partition,partitionManagement,partition_management,partitions,update,update,,Update a partition. +partitions.yaml,/v1/partitions/{id}/decommission,decommissionPartition,decommission_partition,post,,partitionManagement,partition_management,partitions,decommission,exec,,Decommission a partition. +partitions.yaml,/v1/partitions/{id}/cancelRetentionUpdate,cancelRetentionUpdate,cancel_retention_update,post,,partitionManagement,partition_management,partitions,cancel_retention_update,exec,,Cancel a retention update for a partition +partitions.yaml,/v1/partitions/quota,getPartitionsQuota,get_partitions_quota,get,PartitionsQuotaUsage,partitionManagement,partition_management,quota,get,select,,Provides information about partitions quota. +password_policy.yaml,/v1/passwordPolicy,getPasswordPolicy,get_password_policy,get,PasswordPolicy,passwordPolicy,password_policy,password_policy,get,select,,Get the current password policy. +password_policy.yaml,/v1/passwordPolicy,setPasswordPolicy,set_password_policy,put,PasswordPolicy,passwordPolicy,password_policy,password_policy,update,update,,Update password policy. +policies.yaml,/v1/policies/audit,getAuditPolicy,get_audit_policy,get,AuditPolicy,policiesManagement,policies_management,audit,get,select,,Get Audit policy. +policies.yaml,/v1/policies/audit,setAuditPolicy,set_audit_policy,put,AuditPolicy,policiesManagement,policies_management,audit,update,update,,Set Audit policy. +policies.yaml,/v1/policies/searchAudit,getSearchAuditPolicy,get_search_audit_policy,get,SearchAuditPolicy,policiesManagement,policies_management,search_audit,get,select,,Get Search Audit policy. +policies.yaml,/v1/policies/searchAudit,setSearchAuditPolicy,set_search_audit_policy,put,SearchAuditPolicy,policiesManagement,policies_management,search_audit,update,update,,Set Search Audit policy. +policies.yaml,/v1/policies/shareDashboardsOutsideOrganization,getShareDashboardsOutsideOrganizationPolicy,get_share_dashboards_outside_organization_policy,get,ShareDashboardsOutsideOrganizationPolicy,policiesManagement,policies_management,share_dashboards_outside_organization,get,select,,Get Share Dashboards Outside Organization policy. +policies.yaml,/v1/policies/shareDashboardsOutsideOrganization,setShareDashboardsOutsideOrganizationPolicy,set_share_dashboards_outside_organization_policy,put,ShareDashboardsOutsideOrganizationPolicy,policiesManagement,policies_management,share_dashboards_outside_organization,update,update,,Set Share Dashboards Outside Organization policy. +policies.yaml,/v1/policies/dataAccessLevel,getDataAccessLevelPolicy,get_data_access_level_policy,get,DataAccessLevelPolicy,policiesManagement,policies_management,data_access_level,get,select,,Get Data Access Level policy. +policies.yaml,/v1/policies/dataAccessLevel,setDataAccessLevelPolicy,set_data_access_level_policy,put,DataAccessLevelPolicy,policiesManagement,policies_management,data_access_level,update,update,,Set Data Access Level policy. +policies.yaml,/v1/policies/userConcurrentSessionsLimit,getUserConcurrentSessionsLimitPolicy,get_user_concurrent_sessions_limit_policy,get,UserConcurrentSessionsLimitPolicy,policiesManagement,policies_management,user_concurrent_sessions_limit,get,select,,Get User Concurrent Sessions Limit policy. +policies.yaml,/v1/policies/userConcurrentSessionsLimit,setUserConcurrentSessionsLimitPolicy,set_user_concurrent_sessions_limit_policy,put,UserConcurrentSessionsLimitPolicy,policiesManagement,policies_management,user_concurrent_sessions_limit,update,update,,Set User Concurrent Sessions Limit policy. +policies.yaml,/v1/policies/maxUserSessionTimeout,getMaxUserSessionTimeoutPolicy,get_max_user_session_timeout_policy,get,MaxUserSessionTimeoutPolicy,policiesManagement,policies_management,max_user_session_timeout,get,select,,Get Max User Session Timeout policy. +policies.yaml,/v1/policies/maxUserSessionTimeout,setMaxUserSessionTimeoutPolicy,set_max_user_session_timeout_policy,put,MaxUserSessionTimeoutPolicy,policiesManagement,policies_management,max_user_session_timeout,update,update,,Set Max User Session Timeout policy. +policies.yaml,/v1/policies/accessKeysLifetime,getAccessKeysLifetimePolicy,get_access_keys_lifetime_policy,get,AccessKeysLifetimePolicy,policiesManagement,policies_management,access_keys_lifetime,get,select,,Get access key lifetime policy. +policies.yaml,/v1/policies/accessKeysLifetime,setAccessKeysLifetimePolicy,set_access_keys_lifetime_policy,put,AccessKeysLifetimePolicy,policiesManagement,policies_management,access_keys_lifetime,update,update,,Set access keys lifetime policy. +policies.yaml,/v1/policies/dataDeletion,getDataDeletionPolicy,get_data_deletion_policy,get,DataDeletionPolicy,policiesManagement,policies_management,data_deletion,get,select,,Get Data Deletion policy. +policies.yaml,/v1/policies/dataDeletion,setDataDeletionPolicy,set_data_deletion_policy,put,DataDeletionPolicy,policiesManagement,policies_management,data_deletion,update,update,,Set Data Deletion policy. +policies.yaml,/v1/policies/timestampFormat,getTimestampFormatPolicy,get_timestamp_format_policy,get,TimestampFormatPolicy,policiesManagement,policies_management,timestamp_format,get,select,,Get Alert Timestamp Format policy. +policies.yaml,/v1/policies/timestampFormat,setTimestampFormatPolicy,set_timestamp_format_policy,put,TimestampFormatPolicy,policiesManagement,policies_management,timestamp_format,update,update,,Set Alert Timestamp Format policy. +policies.yaml,/v1/policies/oAuthCimd,getOAuthCimdPolicy,get_oauth_cimd_policy,get,OAuthCimdPolicy,policiesManagement,policies_management,oauth_cimd,get,select,,Get OAuth policy for Client ID Metadata Documents (CIMD) authentication. +policies.yaml,/v1/policies/oAuthCimd,setOAuthCimdPolicy,set_oauth_cimd_policy,put,OAuthCimdPolicy,policiesManagement,policies_management,oauth_cimd,update,update,,Set OAuth policy for Client ID Metadata Documents (CIMD) authentication. +roles.yaml,/v1/roles,listRoles,list_roles,get,ListRoleModelsResponse,roleManagement,role_management,roles,list,select,$.data,Get a list of roles. +roles.yaml,/v1/roles,createRole,create_role,post,RoleModel,roleManagement,role_management,roles,create,insert,,Create a new role. +roles.yaml,/v1/roles/{id},getRole,get_role,get,RoleModel,roleManagement,role_management,roles,get,select,,Get a role. +roles.yaml,/v1/roles/{id},updateRole,update_role,put,RoleModel,roleManagement,role_management,roles,update,update,,Update a role. +roles.yaml,/v1/roles/{id},deleteRole,delete_role,delete,,roleManagement,role_management,roles,delete,delete,,Delete a role. +roles.yaml,/v1/roles/{roleId}/users/{userId},assignRoleToUser,assign_role_to_user,put,RoleModel,roleManagement,role_management,roles,assign_user,exec,,Assign a role to a user. +roles.yaml,/v1/roles/{roleId}/users/{userId},removeRoleFromUser,remove_role_from_user,delete,,roleManagement,role_management,roles,remove_user,exec,,Remove role from a user. +roles.yaml,/v2/roles,listRolesV2,list_roles_v2,get,ListRoleModelsResponseV2,roleManagementV2,role_management_v2,roles_v2,list,select,$.data,Get a list of roles. +roles.yaml,/v2/roles,createRoleV2,create_role_v2,post,RoleModelV2,roleManagementV2,role_management_v2,roles_v2,create,insert,,Create a new role. +roles.yaml,/v2/roles/{id},getRoleV2,get_role_v2,get,GetRoleDefinitionV2,roleManagementV2,role_management_v2,roles_v2,get,select,,Get a role. +roles.yaml,/v2/roles/{id},updateRoleV2,update_role_v2,put,RoleModelV2,roleManagementV2,role_management_v2,roles_v2,update,update,,Update a role. +roles.yaml,/v2/roles/{id},deleteRoleV2,delete_role_v2,delete,,roleManagementV2,role_management_v2,roles_v2,delete,delete,,Delete a role. +roles.yaml,/v2/roles/{roleId}/users/{userId},assignRoleToUserV2,assign_role_to_user_v2,put,RoleModelV2,roleManagementV2,role_management_v2,roles_v2,assign_user,exec,,Assign a role to a user. +roles.yaml,/v2/roles/{roleId}/users/{userId},removeRoleFromUserV2,remove_role_from_user_v2,delete,,roleManagementV2,role_management_v2,roles_v2,remove_user,exec,,Remove role from a user. +saml.yaml,/v1/saml/identityProviders,getIdentityProviders,get_identity_providers,get,GetIdentityProvidersResponse,samlConfigurationManagement,saml_configuration_management,identity_providers,list,select,$.identity_providers,Get a list of SAML configurations. +saml.yaml,/v1/saml/identityProviders,createIdentityProvider,create_identity_provider,post,SamlIdentityProvider,samlConfigurationManagement,saml_configuration_management,identity_providers,create,insert,,Create a new SAML configuration. +saml.yaml,/v1/saml/identityProviders/{id},updateIdentityProvider,update_identity_provider,put,SamlIdentityProvider,samlConfigurationManagement,saml_configuration_management,identity_providers,update,update,,Update a SAML configuration. +saml.yaml,/v1/saml/identityProviders/{id},deleteIdentityProvider,delete_identity_provider,delete,,samlConfigurationManagement,saml_configuration_management,identity_providers,delete,delete,,Delete a SAML configuration. +saml.yaml,/v1/saml/allowlistedUsers,getAllowlistedUsers,get_allowlisted_users,get,GetAllowlistedUsersResponse,samlConfigurationManagement,saml_configuration_management,allowlisted_users,list,select,$.allowlisted_users,Get list of allowlisted users. +saml.yaml,/v1/saml/allowlistedUsers/{userId},createAllowlistedUser,create_allowlisted_user,post,AllowlistedUserResult,samlConfigurationManagement,saml_configuration_management,allowlisted_users,add,exec,,Allowlist a user. +saml.yaml,/v1/saml/allowlistedUsers/{userId},deleteAllowlistedUser,delete_allowlisted_user,delete,,samlConfigurationManagement,saml_configuration_management,allowlisted_users,delete,delete,,Remove an allowlisted user. +saml.yaml,/v1/saml/lockdown/enable,enableSamlLockdown,enable_saml_lockdown,post,,samlConfigurationManagement,saml_configuration_management,lockdown,enable,exec,,Require SAML for sign-in. +saml.yaml,/v1/saml/lockdown/disable,disableSamlLockdown,disable_saml_lockdown,post,,samlConfigurationManagement,saml_configuration_management,lockdown,disable,exec,,Disable SAML lockdown. +saml.yaml,/v1/saml/identityProviders/{id}/metadata,getSamlMetadata,get_saml_metadata,get,,samlConfigurationManagement,saml_configuration_management,identity_provider_metadata,get,select,,Get SAML configuration metadata XML. +scheduled_views.yaml,/v1/scheduledViews,listScheduledViews,list_scheduled_views,get,ListScheduledViewsResponse,scheduledViewManagement,scheduled_view_management,scheduled_views,list,select,$.data,Get a list of scheduled views. +scheduled_views.yaml,/v1/scheduledViews,createScheduledView,create_scheduled_view,post,ScheduledView,scheduledViewManagement,scheduled_view_management,scheduled_views,create,insert,,Create a new scheduled view. +scheduled_views.yaml,/v1/scheduledViews/{id},getScheduledView,get_scheduled_view,get,ScheduledView,scheduledViewManagement,scheduled_view_management,scheduled_views,get,select,,Get a scheduled view. +scheduled_views.yaml,/v1/scheduledViews/{id},updateScheduledView,update_scheduled_view,put,ScheduledView,scheduledViewManagement,scheduled_view_management,scheduled_views,update,update,,Update a scheduled view. +scheduled_views.yaml,/v1/scheduledViews/{id}/disable,disableScheduledView,disable_scheduled_view,delete,,scheduledViewManagement,scheduled_view_management,scheduled_views,disable,exec,,Disable a scheduled view. +scheduled_views.yaml,/v1/scheduledViews/{id}/pause,pauseScheduledView,pause_scheduled_view,post,ScheduledView,scheduledViewManagement,scheduled_view_management,scheduled_views,pause,exec,,Pause a scheduled view. +scheduled_views.yaml,/v1/scheduledViews/{id}/start,startScheduledView,start_scheduled_view,post,ScheduledView,scheduledViewManagement,scheduled_view_management,scheduled_views,start,exec,,Start a scheduled view. +scheduled_views.yaml,/v1/scheduledViews/quota,getScheduledViewsQuota,get_scheduled_views_quota,get,ScheduledViewsQuotaUsage,scheduledViewManagement,scheduled_view_management,quota,get,select,,Provides information about scheduled views quota. +schemas.yaml,/v1/schemaIdentitiesGrouped,getSchemaIdentitiesGrouped,get_schema_identities_grouped,get,ListSchemaBaseTypeToVersionsResponse,schemaBaseManagement,schema_base_management,schema_identities,list,select,$.data,Get schema base identities grouped by type and sorted by version. +scim.yaml,/v1/scim/Users,listSCIMUsers,list_scimusers,get,ListSCIMUserModelsResponse,scimUserManagement,scim_user_management,users,list,select,$.Resources,List SCIM Users +scim.yaml,/v1/scim/Users,createSCIMUser,create_scimuser,post,SCIMUserModel,scimUserManagement,scim_user_management,users,create,insert,,Create SCIM User +scim.yaml,/v1/scim/Users/{id},getSCIMUserById,get_scimuser_by_id,get,SCIMUserModel,scimUserManagement,scim_user_management,users,get,select,,Get a SCIM User +scim.yaml,/v1/scim/Users/{id},updateSCIMUser,update_scimuser,put,SCIMUserModel,scimUserManagement,scim_user_management,users,replace,replace,,Update SCIM User +scim.yaml,/v1/scim/Users/{id},deleteSCIMUserById,delete_scimuser_by_id,delete,,scimUserManagement,scim_user_management,users,delete,delete,,Delete SCIM User +scim.yaml,/v1/scim/Users/{id},patchSCIMUser,patch_scimuser,patch,SCIMUserModel,scimUserManagement,scim_user_management,users,update,update,,Update SCIM User Attributes +search_jobs.yaml,/v2/search/jobs,createSearchJob,create_search_job,post,CreateJobResponse,searchJobManagement,search_job_management,search_jobs,create,insert,,Create a search job. +search_jobs.yaml,/v2/search/jobs/{jobId},getSearchJobStatus,get_search_job_status,get,SearchJobStatusResponse,searchJobManagement,search_job_management,search_jobs,get,select,,Get a search job's status. +search_jobs.yaml,/v2/search/jobs/{jobId},deleteSearchJob,delete_search_job,delete,SearchJobDeleteResponse,searchJobManagement,search_job_management,search_jobs,delete,delete,,Delete a search job. +search_jobs.yaml,/v2/search/jobs/{jobId}/messages,getSearchJobPaginatedMessages,get_search_job_paginated_messages,get,SearchQueryPaginatedMessages,searchJobManagement,search_job_management,messages,list,select,$.messages,Get paginated messages from an offset. +search_jobs.yaml,/v2/search/jobs/{jobId}/records,getSearchJobPaginatedRecords,get_search_job_paginated_records,get,SearchQueryPaginatedRecords,searchJobManagement,search_job_management,records,list,select,$.records,Get aggregated records. +service_accounts.yaml,/v1/serviceAccounts,listServiceAccounts,list_service_accounts,get,ListServiceAccountModelsResponse,serviceAccountManagement,service_account_management,service_accounts,list,select,$.data,Get a list of service accounts. +service_accounts.yaml,/v1/serviceAccounts,createServiceAccount,create_service_account,post,ServiceAccountModel,serviceAccountManagement,service_account_management,service_accounts,create,insert,,Create a new service account. +service_accounts.yaml,/v1/serviceAccounts/{id},getServiceAccount,get_service_account,get,ServiceAccountModel,serviceAccountManagement,service_account_management,service_accounts,get,select,,Get a service account. +service_accounts.yaml,/v1/serviceAccounts/{id},updateServiceAccount,update_service_account,put,ServiceAccountModel,serviceAccountManagement,service_account_management,service_accounts,update,update,,Update a service account. +service_accounts.yaml,/v1/serviceAccounts/{id},deleteServiceAccount,delete_service_account,delete,,serviceAccountManagement,service_account_management,service_accounts,delete,delete,,Delete a service account. +service_accounts.yaml,/v1/serviceAccounts/{serviceAccountId}/accessKeys,listAccessKeysForServiceAccount,list_access_keys_for_service_account,get,ListAccessKeysResult,serviceAccountManagement,service_account_management,access_keys,list,select,$.data,List access keys for a service account. +service_accounts.yaml,/v1/serviceAccounts/{serviceAccountId}/accessKeys,createAccessKeyForServiceAccount,create_access_key_for_service_account,post,AccessKey,serviceAccountManagement,service_account_management,access_keys,create,insert,,Create a new access key for a service account. +service_accounts.yaml,/v1/serviceAccounts/{serviceAccountId}/accessKeys/{accessId},getAccessKeyByIdOfAServiceAccount,get_access_key_by_id_of_aservice_account,get,AccessKeyPublic,serviceAccountManagement,service_account_management,access_keys,get,select,,Get an access key of a service account. +service_accounts.yaml,/v1/serviceAccounts/{serviceAccountId}/accessKeys/{accessId},updateAccessKeyOfAServiceAccount,update_access_key_of_aservice_account,put,AccessKeyPublic,serviceAccountManagement,service_account_management,access_keys,update,update,,Update an access key of a service account. +service_accounts.yaml,/v1/serviceAccounts/{serviceAccountId}/accessKeys/{accessId},deleteAccessKeyOfAServiceAccount,delete_access_key_of_aservice_account,delete,,serviceAccountManagement,service_account_management,access_keys,delete,delete,,Delete an access key of a service account. +service_allowlist.yaml,/v1/serviceAllowlist/addresses,listAllowlistedCidrs,list_allowlisted_cidrs,get,CidrList,serviceAllowlistManagement,service_allowlist_management,addresses,list,select,$.data,List all allowlisted CIDRs/IP addresses. +service_allowlist.yaml,/v1/serviceAllowlist/addresses/add,addAllowlistedCidrs,add_allowlisted_cidrs,post,CidrList,serviceAllowlistManagement,service_allowlist_management,addresses,add,exec,,Allowlist CIDRs/IP addresses. +service_allowlist.yaml,/v1/serviceAllowlist/addresses/remove,deleteAllowlistedCidrs,delete_allowlisted_cidrs,post,CidrList,serviceAllowlistManagement,service_allowlist_management,addresses,remove,exec,,Remove allowlisted CIDRs/IP addresses. +service_allowlist.yaml,/v1/serviceAllowlist/enable,enableAllowlisting,enable_allowlisting,post,,serviceAllowlistManagement,service_allowlist_management,status,enable,exec,,Enable service allowlisting. +service_allowlist.yaml,/v1/serviceAllowlist/disable,disableAllowlisting,disable_allowlisting,post,,serviceAllowlistManagement,service_allowlist_management,status,disable,exec,,Disable service allowlisting. +service_allowlist.yaml,/v1/serviceAllowlist/status,getAllowlistingStatus,get_allowlisting_status,get,AllowlistingStatus,serviceAllowlistManagement,service_allowlist_management,status,get,select,,Get the allowlisting status. +slos.yaml,/v1/slos/sli,sli,sli,get,IdToSliStatusMap,slosLibraryManagement,slos_library_management,slos,get_sli,exec,,"Bulk fetch SLI values, error budget remaining and SLI computation status for the current compliance period." +slos.yaml,/v1/slos/usageInfo,getSloUsageInfo,get_slo_usage_info,get,GetSloUsageInfoResponse,slosLibraryManagement,slos_library_management,usage_info,list,select,,Usage info of SLOs. +slos.yaml,/v1/slos,slosReadByIds,slos_read_by_ids,get,IdToSlosLibraryBaseResponseMap,slosLibraryManagement,slos_library_management,slos,read_by_ids,exec,,Bulk read a slo or folder. +slos.yaml,/v1/slos,slosCreate,slos_create,post,SlosLibraryBaseResponse,slosLibraryManagement,slos_library_management,slos,create,insert,,"Create a slo or folder. +" +slos.yaml,/v1/slos,slosDeleteByIds,slos_delete_by_ids,delete,IdToSlosLibraryBaseResponseMap,slosLibraryManagement,slos_library_management,slos,delete_by_ids,exec,,"Bulk delete a slo or folder. +" +slos.yaml,/v1/slos/root,getSlosLibraryRoot,get_slos_library_root,get,SlosLibraryFolderResponse,slosLibraryManagement,slos_library_management,root,get,select,,Get the root slos folder. +slos.yaml,/v1/slos/path,slosGetByPath,slos_get_by_path,get,SlosLibraryBaseResponse,slosLibraryManagement,slos_library_management,slos,get_by_path,select,,Read a slo or folder by its path. +slos.yaml,/v1/slos/search,slosSearch,slos_search,get,SlosSearchResponse,slosLibraryManagement,slos_library_management,search,list,select,,Search for a slo or folder. +slos.yaml,/v1/slos/{id},slosReadById,slos_read_by_id,get,SlosLibraryBaseResponse,slosLibraryManagement,slos_library_management,slos,get,select,,Get a slo or folder. +slos.yaml,/v1/slos/{id},slosUpdateById,slos_update_by_id,put,SlosLibraryBaseResponse,slosLibraryManagement,slos_library_management,slos,update,update,,"Update a slo or folder. +" +slos.yaml,/v1/slos/{id},slosDeleteById,slos_delete_by_id,delete,,slosLibraryManagement,slos_library_management,slos,delete,delete,,"Delete a slo or folder. +" +slos.yaml,/v1/slos/{id}/path,getSlosFullPath,get_slos_full_path,get,Path,slosLibraryManagement,slos_library_management,paths,get,select,,Get the path of a slo or folder. +slos.yaml,/v1/slos/{id}/move,slosMove,slos_move,post,SlosLibraryBaseResponse,slosLibraryManagement,slos_library_management,slos,move,exec,,Move a slo or folder. +slos.yaml,/v1/slos/{id}/copy,slosCopy,slos_copy,post,SlosLibraryBaseResponse,slosLibraryManagement,slos_library_management,slos,copy,exec,,Copy a slo or folder. +slos.yaml,/v1/slos/{id}/export,slosExportItem,slos_export_item,get,SlosLibraryBaseExport,slosLibraryManagement,slos_library_management,slos,export,exec,,Export a slo or folder. +slos.yaml,/v1/slos/{parentId}/import,slosImportItem,slos_import_item,post,SlosLibraryBaseResponse,slosLibraryManagement,slos_library_management,slos,import,exec,,Import a slo or folder. +source_templates.yaml,/v1/sourceTemplates,getSourceTemplatesV2,get_source_templates_v2,get,SourceTemplateListResponse,sourceTemplateManagementExternal,source_template_management_external,source_templates,list,select,$.data,List all source templates. +source_templates.yaml,/v1/sourceTemplates,createSourceTemplateV2,create_source_template_v2,post,SourceTemplateDefinition,sourceTemplateManagementExternal,source_template_management_external,source_templates,create,insert,,Create source template. +source_templates.yaml,/v1/sourceTemplates/{id},getSourceTemplateV2,get_source_template_v2,get,SourceTemplateDefinition,sourceTemplateManagementExternal,source_template_management_external,source_templates,get,select,,Get a source template by Id. +source_templates.yaml,/v1/sourceTemplates/{id},updateSourceTemplateV2,update_source_template_v2,post,SourceTemplateDefinition,sourceTemplateManagementExternal,source_template_management_external,source_templates,update,update,,Update source template. +source_templates.yaml,/v1/sourceTemplates/{id},deleteSourceTemplateV2,delete_source_template_v2,delete,,sourceTemplateManagementExternal,source_template_management_external,source_templates,delete,delete,,Delete a source template. +source_templates.yaml,/v1/sourceTemplates/{id}/status,updateSourceTemplateStatusV2,update_source_template_status_v2,put,SourceTemplateDefinition,sourceTemplateManagementExternal,source_template_management_external,source_templates,update_status,exec,,Update status of source template +source_templates.yaml,/v1/sourceTemplates/{id}/upgrade,upgradeSourceTemplateV2,upgrade_source_template_v2,post,SourceTemplateDefinition,sourceTemplateManagementExternal,source_template_management_external,source_templates,upgrade,exec,,Upgrade source template. +source_templates.yaml,/v1/sourceTemplates/getLinkedSourceTemplatesImpact,getLinkedSourceTemplatesImpact,get_linked_source_templates_impact,post,LinkedSourceTemplatesUpdateResponse,sourceTemplateManagementExternal,source_template_management_external,source_templates,get_linked_impact,exec,,Preview source template linking changes. +source_templates.yaml,/v1/sourceTemplate,getSourceTemplates,get_source_templates,get,SourceTemplateListResponse,sourceTemplateManagementExternal,source_template_management_external,skip_this_resource,,,,Return all source templates of a customer (deprecated). +source_templates.yaml,/v1/sourceTemplate,createSourceTemplate,create_source_template,post,SourceTemplateDefinition,sourceTemplateManagementExternal,source_template_management_external,skip_this_resource,,,,Create source template (deprecated). +source_templates.yaml,/v1/sourceTemplate/{id},getSourceTemplate,get_source_template,get,SourceTemplateDefinition,sourceTemplateManagementExternal,source_template_management_external,skip_this_resource,,,,Get a source template by Id (deprecated). +source_templates.yaml,/v1/sourceTemplate/{id},updateSourceTemplate,update_source_template,post,SourceTemplateDefinition,sourceTemplateManagementExternal,source_template_management_external,skip_this_resource,,,,Update source template (deprecated). +source_templates.yaml,/v1/sourceTemplate/{id},deleteSourceTemplate,delete_source_template,delete,,sourceTemplateManagementExternal,source_template_management_external,skip_this_resource,,,,Delete a source template (deprecated). +source_templates.yaml,/v1/upgrade/sourceTemplate/{id},upgradeSourceTemplate,upgrade_source_template,post,SourceTemplateDefinition,sourceTemplateManagementExternal,source_template_management_external,skip_this_resource,,,,Upgrade source template (deprecated). +source_templates.yaml,/v1/sourceTemplate/getLinkedSourceTemplatesImpact,getLinkedSourceTemplatesUpdate,get_linked_source_templates_update,post,LinkedSourceTemplatesUpdateResponse,sourceTemplateManagementExternal,source_template_management_external,skip_this_resource,,,,Get linked source templates update based on the ot-collector tags user is wants to update. +source_templates.yaml,/v1/sourceTemplate/{id}/status,updateSourceTemplateStatus,update_source_template_status,put,SourceTemplateDefinition,sourceTemplateManagementExternal,source_template_management_external,skip_this_resource,,,,Update status of source template (deprecated) +threat_intel.yaml,/v1/threatIntel/datastore/db,datastoreGet,datastore_get,get,DatastoreStatusResponse,threatIntelIngest,threat_intel_ingest,datastore,get,select,,Get threat intel indicators DB information +threat_intel.yaml,/v1/threatIntel/datastore/db,removeDatastore,remove_datastore,delete,,threatIntelIngest,threat_intel_ingest,datastore,delete,delete,,Remove the threat intel indicators DB +threat_intel.yaml,/v1/threatIntel/datastore/retentionPeriod,retentionPeriod,retention_period,get,DatastoreRetentionPeriod,threatIntelIngest,threat_intel_ingest,retention_period,get,select,,Get threat intel indicators store retention period in terms of days. +threat_intel.yaml,/v1/threatIntel/datastore/retentionPeriod,setRetentionPeriod,set_retention_period,post,DatastoreRetentionPeriod,threatIntelIngest,threat_intel_ingest,retention_period,update,update,,Set the threat intel indicators store retention period in terms of days. +threat_intel.yaml,/v1/threatIntel/datastore/indicators/normalized,uploadNormalizedIndicators,upload_normalized_indicators,post,,threatIntelIngestProducer,threat_intel_ingest_producer,indicators,upload_normalized,exec,,Uploads indicators in a Sumo normalized format. +threat_intel.yaml,/v1/threatIntel/datastore/indicators/stix,uploadStixIndicators,upload_stix_indicators,post,UploadStixIndicatorsResponse,threatIntelIngestProducer,threat_intel_ingest_producer,indicators,upload_stix,exec,,Uploads indicators in a STIX 2.x json format. +threat_intel.yaml,/v1/threatIntel/datastore/indicators,removeIndicators,remove_indicators,delete,,threatIntelIngestProducer,threat_intel_ingest_producer,indicators,remove,exec,,Removes indicators by their IDS +threat_intel.yaml,/v1/threatIntel/datastore/dataSource/{dataSourceName},dataSourcePropertiesUpdate,data_source_properties_update,put,,threatIntelIngest,threat_intel_ingest,data_sources,update,update,,Updates source properties +tokens.yaml,/v1/tokens,listTokens,list_tokens,get,ListTokensBaseResponse,tokensLibraryManagement,tokens_library_management,tokens,list,select,$.data,Get a list of tokens. +tokens.yaml,/v1/tokens,createToken,create_token,post,TokenBaseResponse,tokensLibraryManagement,tokens_library_management,tokens,create,insert,,Create a token. +tokens.yaml,/v1/tokens/{id},getToken,get_token,get,TokenBaseResponse,tokensLibraryManagement,tokens_library_management,tokens,get,select,,Get a token. +tokens.yaml,/v1/tokens/{id},updateToken,update_token,put,TokenBaseResponse,tokensLibraryManagement,tokens_library_management,tokens,update,update,,Update a token. +tokens.yaml,/v1/tokens/{id},deleteToken,delete_token,delete,,tokensLibraryManagement,tokens_library_management,tokens,delete,delete,,Delete a token. +tracing.yaml,/v1/tracing/tracequery,createTraceQuery,create_trace_query,post,CreateTraceQueryResponse,traces,traces,trace_queries,create,insert,,Run a trace search query asynchronously. +tracing.yaml,/v1/tracing/tracequery/{queryId},cancelTraceQuery,cancel_trace_query,delete,,traces,traces,trace_queries,delete,delete,,Cancel a trace search query. +tracing.yaml,/v1/tracing/tracequery/{queryId}/status,getTraceQueryStatus,get_trace_query_status,get,TraceQueryStatusResponse,traces,traces,trace_queries,get,select,,Get a trace search query status. +tracing.yaml,/v1/tracing/tracequery/{queryId}/rows/{rowId}/traces,getTraceQueryResult,get_trace_query_result,get,TraceQueryResultResponse,traces,traces,trace_query_results,list,select,$.results,Get results of a trace search query. +tracing.yaml,/v1/tracing/metrics,getMetrics,get_metrics,get,TraceMetricsResponse,traces,traces,metrics,list,select,$.metrics,Get trace search query metrics. +tracing.yaml,/v1/tracing/tracequery/fields,getTraceQueryFields,get_trace_query_fields,get,TraceFieldsResponse,traces,traces,trace_query_fields,list,select,$.fields,Get filter fields for trace search queries. +tracing.yaml,/v1/tracing/tracequery/fields/{field}/values,getTraceQueryFieldValues,get_trace_query_field_values,get,TraceFieldValuesResponse,traces,traces,trace_query_field_values,list,select,$.fieldValues,Get trace search query filter field values. +tracing.yaml,/v1/tracing/traces/{traceId},getTrace,get_trace,get,TraceDetail,traces,traces,traces,get,select,,Get trace details. +tracing.yaml,/v1/tracing/traces/{traceId}/exists,traceExists,trace_exists,get,TraceExistsResponse,traces,traces,trace_existence,get,select,,Check if the trace exists. +tracing.yaml,/v1/tracing/traces/{traceId}/spans,getSpans,get_spans,get,TraceSpansResponse,traces,traces,spans,list,select,$.spanPage,Get a list of trace spans. +tracing.yaml,/v1/tracing/traces/{traceId}/traceEvents,getTraceLightEvents,get_trace_light_events,get,TraceLightEventsResponse,traces,traces,trace_events,get,select,,Get a list of events (without their attributes) per span for a trace. +tracing.yaml,/v1/tracing/traces/{traceId}/criticalPath,getCriticalPath,get_critical_path,get,CriticalPathResponse,traces,traces,critical_paths,list,select,$.segments,Get a critical path of a trace. +tracing.yaml,/v1/tracing/traces/{traceId}/criticalPath/breakdown/service,getCriticalPathServiceBreakdown,get_critical_path_service_breakdown,get,CriticalPathServiceBreakdownResponse,traces,traces,critical_path_service_breakdowns,list,select,$.elements,Get a critical path service breakdown of a trace. +tracing.yaml,/v1/tracing/traces/{traceId}/spans/{spanId},getSpan,get_span,get,TraceSpanDetail,traces,traces,spans,get,select,,Get span details. +tracing.yaml,/v1/tracing/traces/{traceId}/spans/{spanId}/billingInfo,getSpanBillingInfo,get_span_billing_info,get,TraceSpanBillingInfo,traces,traces,span_billing_info,get,select,,Get span billing details. +tracing.yaml,/v1/tracing/spanquery,createSpanQuery,create_span_query,post,SpanQueryResponse,spanAnalytics,span_analytics,span_queries,create,insert,,Run a span analytics query asynchronously. +tracing.yaml,/v1/tracing/spanquery/{queryId},cancelSpanQuery,cancel_span_query,delete,,spanAnalytics,span_analytics,span_queries,delete,delete,,Cancel a span analytics query. +tracing.yaml,/v1/tracing/spanquery/{queryId}/status,getSpanQueryStatus,get_span_query_status,get,SpanQueryStatusResponse,spanAnalytics,span_analytics,span_queries,get,select,,Get a span analytics query status. +tracing.yaml,/v1/tracing/spanquery/{queryId}/pause,pauseSpanQuery,pause_span_query,put,,spanAnalytics,span_analytics,span_queries,pause,exec,,Pause a span analytics query. +tracing.yaml,/v1/tracing/spanquery/{queryId}/resume,resumeSpanQuery,resume_span_query,put,,spanAnalytics,span_analytics,span_queries,resume,exec,,Resume a span analytics query. +tracing.yaml,/v1/tracing/spanquery/{queryId}/rows/{rowId}/spans,getSpanQueryResult,get_span_query_result,get,SpanQueryResultSpansResponse,spanAnalytics,span_analytics,span_query_results,list,select,$.spanPage,Get results of a span analytics query. +tracing.yaml,/v1/tracing/spanquery/{queryId}/rows/{rowId}/facets,getSpanQueryFacets,get_span_query_facets,get,SpanQueryResultFacetsResponse,spanAnalytics,span_analytics,span_query_facets,list,select,$.facets,Get a list of facets of a span analytics query. +tracing.yaml,/v1/tracing/spanquery/{queryId}/aggregates,getSpanQueryAggregates,get_span_query_aggregates,get,SpanQueryAggregateResponse,spanAnalytics,span_analytics,span_query_aggregates,get,select,,Get span analytics query aggregated results. +tracing.yaml,/v1/tracing/spanquery/fields,getSpanQueryFields,get_span_query_fields,get,SpanQueryFieldsResponse,spanAnalytics,span_analytics,span_query_fields,list,select,$.fields,Get filter fields for span analytics queries. +tracing.yaml,/v1/tracing/spanquery/fields/{field}/values,getSpanQueryFieldValues,get_span_query_field_values,get,TraceFieldValuesResponse,spanAnalytics,span_analytics,span_query_field_values,list,select,$.fieldValues,Get span analytics query filter field values. +tracing.yaml,/v1/tracing/serviceMap,getServiceMap,get_service_map,get,ServiceMapResponse,serviceMap,service_map,service_map,get,select,,Get a service map. +transformation_rules.yaml,/v1/transformationRules,getTransformationRules,get_transformation_rules,get,TransformationRulesResponse,transformationRuleManagement,transformation_rule_management,transformation_rules,list,select,$.data,Get a list of transformation rules. +transformation_rules.yaml,/v1/transformationRules,createRule,create_rule,post,TransformationRuleResponse,transformationRuleManagement,transformation_rule_management,transformation_rules,create,insert,,Create a new transformation rule. +transformation_rules.yaml,/v1/transformationRules/{id},getTransformationRule,get_transformation_rule,get,TransformationRuleResponse,transformationRuleManagement,transformation_rule_management,transformation_rules,get,select,,Get a transformation rule. +transformation_rules.yaml,/v1/transformationRules/{id},updateTransformationRule,update_transformation_rule,put,TransformationRuleResponse,transformationRuleManagement,transformation_rule_management,transformation_rules,update,update,,Update a transformation rule. +transformation_rules.yaml,/v1/transformationRules/{id},deleteRule,delete_rule,delete,,transformationRuleManagement,transformation_rule_management,transformation_rules,delete,delete,,Delete a transformation rule. +users.yaml,/v1/users,listUsers,list_users,get,ListUserModelsResponse,userManagement,user_management,users,list,select,$.data,Get a list of users. +users.yaml,/v1/users,createUser,create_user,post,UserModel,userManagement,user_management,users,create,insert,,Create a new user. +users.yaml,/v1/users/{id},getUser,get_user,get,UserModel,userManagement,user_management,users,get,select,,Get a user. +users.yaml,/v1/users/{id},updateUser,update_user,put,UserModel,userManagement,user_management,users,update,update,,Update a user. +users.yaml,/v1/users/{id},deleteUser,delete_user,delete,,userManagement,user_management,users,delete,delete,,Delete a user. +users.yaml,/v1/users/{id}/email/requestChange,requestChangeEmail,request_change_email,post,,userManagement,user_management,users,request_change_email,exec,,Change email address. +users.yaml,/v1/users/{id}/password/reset,resetPassword,reset_password,post,,userManagement,user_management,users,reset_password,exec,,Reset password. +users.yaml,/v1/users/{id}/unlock,unlockUser,unlock_user,post,,userManagement,user_management,users,unlock,exec,,Unlock a user. +users.yaml,/v1/users/{id}/mfa/disable,disableMfa,disable_mfa,put,,userManagement,user_management,users,disable_mfa,exec,,Disable MFA for user. +users.yaml,/v1/users/{id}/resendWelcomeEmail,resendWelcomeEmail,resend_welcome_email,post,,userManagement,user_management,users,resend_welcome_email,exec,,Resend verification email. diff --git a/provider-dev/config/predecessor_methods.csv b/provider-dev/config/predecessor_methods.csv new file mode 100644 index 0000000..c52d257 --- /dev/null +++ b/provider-dev/config/predecessor_methods.csv @@ -0,0 +1,268 @@ +service,resource,method,sql_verb,path,verb +access_keys,access_keys,listAccessKeys,select,/v1/accessKeys,get +access_keys,access_keys,createAccessKey,insert,/v1/accessKeys,post +access_keys,access_keys,updateAccessKey,exec,/v1/accessKeys/{id},put +access_keys,access_keys,deleteAccessKey,delete,/v1/accessKeys/{id},delete +access_keys,personal,listPersonalAccessKeys,select,/v1/accessKeys/personal,get +account,account_owner,getAccountOwner,exec,/v1/account/accountOwner,get +account,status,getStatus,select,/v1/account/status,get +account,subdomain,getSubdomain,select,/v1/account/subdomain,get +account,subdomain,updateSubdomain,exec,/v1/account/subdomain,put +account,subdomain,createSubdomain,insert,/v1/account/subdomain,post +account,subdomain,deleteSubdomain,delete,/v1/account/subdomain,delete +account,subdomain_recover,recoverSubdomains,exec,/v1/account/subdomain/recover,post +apps,apps,listApps,select,/v1/apps,get +apps,apps,getApp,select,/v1/apps/{uuid},get +apps,install,installApp,exec,/v1/apps/{uuid}/install,post +apps,install_status,getAsyncInstallStatus,select,/v1/apps/install/{jobId}/status,get +archive,jobs,listArchiveJobsBySourceId,select,/v1/archive/{sourceId}/jobs,get +archive,jobs,createArchiveJob,insert,/v1/archive/{sourceId}/jobs,post +archive,jobs,deleteArchiveJob,delete,/v1/archive/{sourceId}/jobs/{id},delete +archive,jobs_count,listArchiveJobsCountPerSource,select,/v1/archive/jobs/count,get +collectors,collectors,create_collector,insert,/v1/collectors,post +collectors,collectors,list_collectors,select,/v1/collectors,get +collectors,collectors,get_collector_by_id,exec,/v1/collectors/{id},get +collectors,collectors,delete_collector,delete,/v1/collectors/{id},delete +collectors,collectors,update_collector,exec,/v1/collectors/{id},put +collectors,collectors,get_collector_by_name,select,/v1/collectors/name/{name},get +collectors,offline_collectors,list_offline_collectors,select,/v1/collectors/offline,get +collectors,sources,list_sources,select,/v1/collectors/{collectorId}/sources,get +collectors,sources,get_source_by_id,select,/v1/collectors/{collectorId}/sources/{sourceId},get +collectors,sources,create_source,insert,/v1/collectors/{collectorId}/sources,post +collectors,sources,update_source,exec,/v1/collectors/{collectorId}/sources/{sourceId},put +collectors,sources,delete_source,delete,/v1/collectors/{collectorId}/sources/{sourceId},delete +connections,connections,listConnections,select,/v1/connections,get +connections,connections,createConnection,insert,/v1/connections,post +connections,connections,getConnection,select,/v1/connections/{id},get +connections,connections,updateConnection,exec,/v1/connections/{id},put +connections,connections,deleteConnection,delete,/v1/connections/{id},delete +connections,test,testConnection,exec,/v1/connections/test,post +connections,incident_templates,getIncidentTemplates,exec,/v1/connections/incidentTemplates,post +content,folders,createFolder,insert,/v2/content/folders,post +content,folders,getFolder,select,/v2/content/folders/{id},get +content,folders,updateFolder,exec,/v2/content/folders/{id},put +content,folders_personal,getPersonalFolder,select,/v2/content/folders/personal,get +content,folders_global,getGlobalFolderAsync,select,/v2/content/folders/global,get +content,folders_global_status,getGlobalFolderAsyncStatus,select,/v2/content/folders/global/{jobId}/status,get +content,folders_global_result,getGlobalFolderAsyncResult,select,/v2/content/folders/global/{jobId}/result,get +content,folders_admin_recommended,getAdminRecommendedFolderAsync,select,/v2/content/folders/adminRecommended,get +content,folders_admin_recommended_status,getAdminRecommendedFolderAsyncStatus,select,/v2/content/folders/adminRecommended/{jobId}/status,get +content,folders_admin_recommended_result,getAdminRecommendedFolderAsyncResult,select,/v2/content/folders/adminRecommended/{jobId}/result,get +content,permissions,getContentPermissions,select,/v2/content/{id}/permissions,get +content,permissions_add,addContentPermissions,exec,/v2/content/{id}/permissions/add,put +content,permissions_remove,removeContentPermissions,exec,/v2/content/{id}/permissions/remove,put +content,path,getItemByPath,select,/v2/content/path,get +content,path,getPathById,select,/v2/content/{contentId}/path,get +content,export,beginAsyncExport,exec,/v2/content/{id}/export,post +content,export_status,getAsyncExportStatus,select,/v2/content/{contentId}/export/{jobId}/status,get +content,export_result,getAsyncExportResult,select,/v2/content/{contentId}/export/{jobId}/result,get +content,folders_import,beginAsyncImport,exec,/v2/content/folders/{folderId}/import,post +content,folders_import_status,getAsyncImportStatus,select,/v2/content/folders/{folderId}/import/{jobId}/status,get +content,delete,beginAsyncDelete,exec,/v2/content/{id}/delete,delete +content,delete_status,getAsyncDeleteStatus,select,/v2/content/{id}/delete/{jobId}/status,get +content,copy,beginAsyncCopy,exec,/v2/content/{id}/copy,post +content,copy_status,asyncCopyStatus,exec,/v2/content/{id}/copy/{jobId}/status,get +content,move,moveItem,exec,/v2/content/{id}/move,post +dashboards,dashboards,listDashboards,select,/v2/dashboards,get +dashboards,dashboards,createDashboard,insert,/v2/dashboards,post +dashboards,dashboards,getDashboard,select,/v2/dashboards/{id},get +dashboards,dashboards,updateDashboard,exec,/v2/dashboards/{id},put +dashboards,dashboards,deleteDashboard,delete,/v2/dashboards/{id},delete +dashboards,report_jobs,generateDashboardReport,exec,/v2/dashboards/reportJobs,post +dashboards,report_jobs_status,getAsyncReportGenerationStatus,select,/v2/dashboards/reportJobs/{jobId}/status,get +dashboards,report_jobs_result,getAsyncReportGenerationResult,exec,/v2/dashboards/reportJobs/{jobId}/result,get +dynamic_parsing_rules,dynamic_parsing_rules,listDynamicParsingRules,select,/v1/dynamicParsingRules,get +dynamic_parsing_rules,dynamic_parsing_rules,createDynamicParsingRule,insert,/v1/dynamicParsingRules,post +dynamic_parsing_rules,dynamic_parsing_rules,getDynamicParsingRule,select,/v1/dynamicParsingRules/{id},get +dynamic_parsing_rules,dynamic_parsing_rules,updateDynamicParsingRule,exec,/v1/dynamicParsingRules/{id},put +dynamic_parsing_rules,dynamic_parsing_rules,deleteDynamicParsingRule,delete,/v1/dynamicParsingRules/{id},delete +extraction_rules,extraction_rules,listExtractionRules,select,/v1/extractionRules,get +extraction_rules,extraction_rules,createExtractionRule,insert,/v1/extractionRules,post +extraction_rules,extraction_rules,getExtractionRule,select,/v1/extractionRules/{id},get +extraction_rules,extraction_rules,updateExtractionRule,exec,/v1/extractionRules/{id},put +extraction_rules,extraction_rules,deleteExtractionRule,delete,/v1/extractionRules/{id},delete +fields,fields,listCustomFields,select,/v1/fields,get +fields,fields,createField,insert,/v1/fields,post +fields,fields,getCustomField,select,/v1/fields/{id},get +fields,fields,deleteField,delete,/v1/fields/{id},delete +fields,enable,enableField,exec,/v1/fields/{id}/enable,put +fields,disable,disableField,exec,/v1/fields/{id}/disable,delete +fields,dropped,listDroppedFields,select,/v1/fields/dropped,get +fields,builtin,listBuiltInFields,select,/v1/fields/builtin,get +fields,builtin,getBuiltInField,select,/v1/fields/builtin/{id},get +fields,quota,getFieldQuota,select,/v1/fields/quota,get +health_events,health_events,listAllHealthEvents,select,/v1/healthEvents,get +health_events,resources,listAllHealthEventsForResources,exec,/v1/healthEvents/resources,post +ingest_budgets,ingest_budgets_v1,listIngestBudgets,select,/v1/ingestBudgets,get +ingest_budgets,ingest_budgets_v1,createIngestBudget,insert,/v1/ingestBudgets,post +ingest_budgets,ingest_budgets_v1,getIngestBudget,select,/v1/ingestBudgets/{id},get +ingest_budgets,ingest_budgets_v1,updateIngestBudget,exec,/v1/ingestBudgets/{id},put +ingest_budgets,ingest_budgets_v1,deleteIngestBudget,delete,/v1/ingestBudgets/{id},delete +ingest_budgets,ingest_budgets_v2,listIngestBudgetsV2,select,/v2/ingestBudgets,get +ingest_budgets,ingest_budgets_v2,createIngestBudgetV2,insert,/v2/ingestBudgets,post +ingest_budgets,ingest_budgets_v2,getIngestBudgetV2,select,/v2/ingestBudgets/{id},get +ingest_budgets,ingest_budgets_v2,updateIngestBudgetV2,exec,/v2/ingestBudgets/{id},put +ingest_budgets,ingest_budgets_v2,deleteIngestBudgetV2,delete,/v2/ingestBudgets/{id},delete +ingest_budgets,usage_reset,resetUsage,exec,/v1/ingestBudgets/{id}/usage/reset,post +ingest_budgets,usage_reset,resetUsageV2,exec,/v2/ingestBudgets/{id}/usage/reset,post +ingest_budgets,collectors,getAssignedCollectors,select,/v1/ingestBudgets/{id}/collectors,get +ingest_budgets,collectors,assignCollectorToBudget,exec,/v1/ingestBudgets/{id}/collectors/{collectorId},put +ingest_budgets,collectors,removeCollectorFromBudget,delete,/v1/ingestBudgets/{id}/collectors/{collectorId},delete +log_searches,estimated_usage,getLogSearchEstimatedUsage,exec,/v1/logSearches/estimatedUsage,post +log_searches,estimated_usage_by_tier,getLogSearchEstimatedUsageByTier,exec,/v1/logSearches/estimatedUsageByTier,post +logs_data_forwarding,destinations,getDataForwardingBuckets,select,/v1/logsDataForwarding/destinations,get +logs_data_forwarding,destinations,createDataForwardingBucket,insert,/v1/logsDataForwarding/destinations,post +logs_data_forwarding,destinations,getDataForwardingDestination,select,/v1/logsDataForwarding/destinations/{id},get +logs_data_forwarding,destinations,UpdateDataForwardingBucket,exec,/v1/logsDataForwarding/destinations/{id},put +logs_data_forwarding,destinations,deleteDataForwardingBucket,delete,/v1/logsDataForwarding/destinations/{id},delete +logs_data_forwarding,rules,getRulesAndBuckets,select,/v1/logsDataForwarding/rules,get +logs_data_forwarding,rules,createDataForwardingRule,insert,/v1/logsDataForwarding/rules,post +logs_data_forwarding,rules,getDataForwardingRule,select,/v1/logsDataForwarding/rules/{indexId},get +logs_data_forwarding,rules,updateDataForwardingRule,exec,/v1/logsDataForwarding/rules/{indexId},put +logs_data_forwarding,rules,deleteDataForwardingRule,delete,/v1/logsDataForwarding/rules/{indexId},delete +lookup_tables,lookup_tables,createTable,insert,/v1/lookupTables,post +lookup_tables,lookup_tables,lookupTableById,exec,/v1/lookupTables/{id},get +lookup_tables,lookup_tables,updateTable,exec,/v1/lookupTables/{id},put +lookup_tables,lookup_tables,deleteTable,delete,/v1/lookupTables/{id},delete +lookup_tables,upload,uploadFile,exec,/v1/lookupTables/{id}/upload,post +lookup_tables,jobs_status,requestJobStatus,exec,/v1/lookupTables/jobs/{jobId}/status,get +lookup_tables,truncate,truncateTable,exec,/v1/lookupTables/{id}/truncate,post +lookup_tables,row,updateTableRow,exec,/v1/lookupTables/{id}/row,put +lookup_tables,delete_table_row,deleteTableRow,exec,/v1/lookupTables/{id}/deleteTableRow,put +metrics_queries,metrics_queries,runMetricsQueries,exec,/v1/metricsQueries,post +metrics_searches,metrics_searches,createMetricsSearch,insert,/v1/metricsSearches,post +metrics_searches,metrics_searches,getMetricsSearch,select,/v1/metricsSearches/{id},get +metrics_searches,metrics_searches,updateMetricsSearch,exec,/v1/metricsSearches/{id},put +metrics_searches,metrics_searches,deleteMetricsSearch,delete,/v1/metricsSearches/{id},delete +monitors,usage_info,getMonitorUsageInfo,select,/v1/monitors/usageInfo,get +monitors,disable,disableMonitorByIds,exec,/v1/monitors/disable,put +monitors,monitors,monitorsReadByIds,exec,/v1/monitors,get +monitors,monitors,monitorsCreate,exec,/v1/monitors,post +monitors,monitors,monitorsDeleteByIds,exec,/v1/monitors,delete +monitors,monitors,monitorsReadById,exec,/v1/monitors/{id},get +monitors,monitors,monitorsUpdateById,exec,/v1/monitors/{id},put +monitors,monitors,monitorsDeleteById,exec,/v1/monitors/{id},delete +monitors,root,getMonitorsLibraryRoot,select,/v1/monitors/root,get +monitors,path,monitorsGetByPath,exec,/v1/monitors/path,get +monitors,path,getMonitorsFullPath,select,/v1/monitors/{id}/path,get +monitors,search,monitorsSearch,exec,/v1/monitors/search,get +monitors,move,monitorsMove,exec,/v1/monitors/{id}/move,post +monitors,copy,monitorsCopy,exec,/v1/monitors/{id}/copy,post +monitors,export,monitorsExportItem,exec,/v1/monitors/{id}/export,get +monitors,import,monitorsImportItem,exec,/v1/monitors/{parentId}/import,post +monitors,permissions,monitorsReadPermissionsById,exec,/v1/monitors/{id}/permissions,get +monitors,permissions_set,monitorsSetPermissions,exec,/v1/monitors/permissions/set,put +monitors,permissions_revoke,monitorsRevokePermissions,exec,/v1/monitors/permissions/revoke,put +monitors,permission_summaries_by_subjects,monitorsReadPermissionSummariesByIdGroupBySubjects,exec,/v1/monitors/{id}/permissionSummariesBySubjects,get +partitions,partitions,listPartitions,select,/v1/partitions,get +partitions,partitions,createPartition,insert,/v1/partitions,post +partitions,partitions,getPartition,select,/v1/partitions/{id},get +partitions,partitions,updatePartition,exec,/v1/partitions/{id},put +partitions,decommission,decommissionPartition,exec,/v1/partitions/{id}/decommission,post +partitions,cancel_retention_update,cancelRetentionUpdate,exec,/v1/partitions/{id}/cancelRetentionUpdate,post +password_policy,password_policy,getPasswordPolicy,select,/v1/passwordPolicy,get +password_policy,password_policy,setPasswordPolicy,exec,/v1/passwordPolicy,put +plan,pending_update_request,getPendingUpdateRequest,select,/v1/plan/pendingUpdateRequest,get +plan,pending_update_request,deletePendingUpdateRequest,delete,/v1/plan/pendingUpdateRequest,delete +policies,audit,getAuditPolicy,select,/v1/policies/audit,get +policies,audit,setAuditPolicy,exec,/v1/policies/audit,put +policies,search_audit,getSearchAuditPolicy,select,/v1/policies/searchAudit,get +policies,search_audit,setSearchAuditPolicy,exec,/v1/policies/searchAudit,put +policies,share_dashboards_outside_organization,getShareDashboardsOutsideOrganizationPolicy,select,/v1/policies/shareDashboardsOutsideOrganization,get +policies,share_dashboards_outside_organization,setShareDashboardsOutsideOrganizationPolicy,exec,/v1/policies/shareDashboardsOutsideOrganization,put +policies,data_access_level,getDataAccessLevelPolicy,select,/v1/policies/dataAccessLevel,get +policies,data_access_level,setDataAccessLevelPolicy,exec,/v1/policies/dataAccessLevel,put +policies,user_concurrent_sessions_limit,getUserConcurrentSessionsLimitPolicy,select,/v1/policies/userConcurrentSessionsLimit,get +policies,user_concurrent_sessions_limit,setUserConcurrentSessionsLimitPolicy,exec,/v1/policies/userConcurrentSessionsLimit,put +policies,max_user_session_timeout,getMaxUserSessionTimeoutPolicy,select,/v1/policies/maxUserSessionTimeout,get +policies,max_user_session_timeout,setMaxUserSessionTimeoutPolicy,exec,/v1/policies/maxUserSessionTimeout,put +roles,roles,listRoles,select,/v1/roles,get +roles,roles,createRole,insert,/v1/roles,post +roles,roles,getRole,select,/v1/roles/{id},get +roles,roles,updateRole,exec,/v1/roles/{id},put +roles,roles,deleteRole,delete,/v1/roles/{id},delete +roles,users,assignRoleToUser,exec,/v1/roles/{roleId}/users/{userId},put +roles,users,removeRoleFromUser,delete,/v1/roles/{roleId}/users/{userId},delete +saml,identity_providers,getIdentityProviders,select,/v1/saml/identityProviders,get +saml,identity_providers,createIdentityProvider,insert,/v1/saml/identityProviders,post +saml,identity_providers,updateIdentityProvider,exec,/v1/saml/identityProviders/{id},put +saml,identity_providers,deleteIdentityProvider,delete,/v1/saml/identityProviders/{id},delete +saml,allowlisted_users,getAllowlistedUsers,select,/v1/saml/allowlistedUsers,get +saml,allowlisted_users,createAllowlistedUser,insert,/v1/saml/allowlistedUsers/{userId},post +saml,allowlisted_users,deleteAllowlistedUser,delete,/v1/saml/allowlistedUsers/{userId},delete +saml,lockdown_enable,enableSamlLockdown,exec,/v1/saml/lockdown/enable,post +saml,lockdown_disable,disableSamlLockdown,exec,/v1/saml/lockdown/disable,post +scheduled_views,scheduled_views,listScheduledViews,select,/v1/scheduledViews,get +scheduled_views,scheduled_views,createScheduledView,insert,/v1/scheduledViews,post +scheduled_views,scheduled_views,getScheduledView,select,/v1/scheduledViews/{id},get +scheduled_views,scheduled_views,updateScheduledView,exec,/v1/scheduledViews/{id},put +scheduled_views,disable,disableScheduledView,exec,/v1/scheduledViews/{id}/disable,delete +scheduled_views,pause,pauseScheduledView,exec,/v1/scheduledViews/{id}/pause,post +scheduled_views,start,startScheduledView,exec,/v1/scheduledViews/{id}/start,post +service_allowlist,addresses,listAllowlistedCidrs,select,/v1/serviceAllowlist/addresses,get +service_allowlist,addresses_add,addAllowlistedCidrs,insert,/v1/serviceAllowlist/addresses/add,post +service_allowlist,addresses_remove,deleteAllowlistedCidrs,exec,/v1/serviceAllowlist/addresses/remove,post +service_allowlist,enable,enableAllowlisting,exec,/v1/serviceAllowlist/enable,post +service_allowlist,disable,disableAllowlisting,exec,/v1/serviceAllowlist/disable,post +service_allowlist,status,getAllowlistingStatus,select,/v1/serviceAllowlist/status,get +slos,sli,sli,exec,/v1/slos/sli,get +slos,usage_info,getSloUsageInfo,select,/v1/slos/usageInfo,get +slos,slos,slosReadByIds,exec,/v1/slos,get +slos,slos,slosCreate,exec,/v1/slos,post +slos,slos,slosDeleteByIds,exec,/v1/slos,delete +slos,slos,slosReadById,exec,/v1/slos/{id},get +slos,slos,slosUpdateById,exec,/v1/slos/{id},put +slos,slos,slosDeleteById,exec,/v1/slos/{id},delete +slos,root,getSlosLibraryRoot,select,/v1/slos/root,get +slos,path,slosGetByPath,exec,/v1/slos/path,get +slos,path,getSlosFullPath,select,/v1/slos/{id}/path,get +slos,search,slosSearch,exec,/v1/slos/search,get +slos,move,slosMove,exec,/v1/slos/{id}/move,post +slos,copy,slosCopy,exec,/v1/slos/{id}/copy,post +slos,export,slosExportItem,exec,/v1/slos/{id}/export,get +slos,import,slosImportItem,exec,/v1/slos/{parentId}/import,post +tokens,tokens,listTokens,select,/v1/tokens,get +tokens,tokens,createToken,insert,/v1/tokens,post +tokens,tokens,getToken,select,/v1/tokens/{id},get +tokens,tokens,updateToken,exec,/v1/tokens/{id},put +tokens,tokens,deleteToken,delete,/v1/tokens/{id},delete +tracing,tracequery,createTraceQuery,insert,/v1/tracing/tracequery,post +tracing,tracequery,cancelTraceQuery,exec,/v1/tracing/tracequery/{queryId},delete +tracing,tracequery_status,getTraceQueryStatus,select,/v1/tracing/tracequery/{queryId}/status,get +tracing,tracequery_rows_traces,getTraceQueryResult,select,/v1/tracing/tracequery/{queryId}/rows/{rowId}/traces,get +tracing,metrics,getMetrics,select,/v1/tracing/metrics,get +tracing,tracequery_fields,getTraceQueryFields,select,/v1/tracing/tracequery/fields,get +tracing,tracequery_fields_values,getTraceQueryFieldValues,select,/v1/tracing/tracequery/fields/{field}/values,get +tracing,traces,getTrace,select,/v1/tracing/traces/{traceId},get +tracing,traces_exists,traceExists,exec,/v1/tracing/traces/{traceId}/exists,get +tracing,traces_spans,getSpans,select,/v1/tracing/traces/{traceId}/spans,get +tracing,traces_spans,getSpan,select,/v1/tracing/traces/{traceId}/spans/{spanId},get +tracing,traces_trace_events,getTraceLightEvents,select,/v1/tracing/traces/{traceId}/traceEvents,get +tracing,traces_critical_path,getCriticalPath,select,/v1/tracing/traces/{traceId}/criticalPath,get +tracing,traces_critical_path_breakdown_service,getCriticalPathServiceBreakdown,select,/v1/tracing/traces/{traceId}/criticalPath/breakdown/service,get +tracing,traces_spans_billing_info,getSpanBillingInfo,select,/v1/tracing/traces/{traceId}/spans/{spanId}/billingInfo,get +tracing,spanquery,createSpanQuery,insert,/v1/tracing/spanquery,post +tracing,spanquery,cancelSpanQuery,exec,/v1/tracing/spanquery/{queryId},delete +tracing,spanquery_status,getSpanQueryStatus,select,/v1/tracing/spanquery/{queryId}/status,get +tracing,spanquery_pause,pauseSpanQuery,exec,/v1/tracing/spanquery/{queryId}/pause,put +tracing,spanquery_resume,resumeSpanQuery,exec,/v1/tracing/spanquery/{queryId}/resume,put +tracing,spanquery_rows_spans,getSpanQueryResult,select,/v1/tracing/spanquery/{queryId}/rows/{rowId}/spans,get +tracing,spanquery_rows_facets,getSpanQueryFacets,select,/v1/tracing/spanquery/{queryId}/rows/{rowId}/facets,get +tracing,spanquery_aggregates,getSpanQueryAggregates,select,/v1/tracing/spanquery/{queryId}/aggregates,get +tracing,spanquery_fields,getSpanQueryFields,select,/v1/tracing/spanquery/fields,get +tracing,spanquery_fields_values,getSpanQueryFieldValues,select,/v1/tracing/spanquery/fields/{field}/values,get +tracing,service_map,getServiceMap,select,/v1/tracing/serviceMap,get +transformation_rules,transformation_rules,getTransformationRules,select,/v1/transformationRules,get +transformation_rules,transformation_rules,createRule,insert,/v1/transformationRules,post +transformation_rules,transformation_rules,getTransformationRule,select,/v1/transformationRules/{id},get +transformation_rules,transformation_rules,updateTransformationRule,exec,/v1/transformationRules/{id},put +transformation_rules,transformation_rules,deleteRule,delete,/v1/transformationRules/{id},delete +users,users,listUsers,select,/v1/users,get +users,users,createUser,insert,/v1/users,post +users,users,getUser,select,/v1/users/{id},get +users,users,updateUser,exec,/v1/users/{id},put +users,users,deleteUser,delete,/v1/users/{id},delete +users,email_request_change,requestChangeEmail,exec,/v1/users/{id}/email/requestChange,post +users,password_reset,resetPassword,exec,/v1/users/{id}/password/reset,post +users,unlock,unlockUser,exec,/v1/users/{id}/unlock,post +users,mfa_disable,disableMfa,exec,/v1/users/{id}/mfa/disable,put diff --git a/provider-dev/config/provider_config.json b/provider-dev/config/provider_config.json new file mode 100644 index 0000000..8b8b60e --- /dev/null +++ b/provider-dev/config/provider_config.json @@ -0,0 +1,8 @@ +{ + "auth": { + "type": "basic", + "username_var": "SUMOLOGIC_ACCESSID", + "password_var": "SUMOLOGIC_ACCESSKEY" + }, + "snake_case_aliases": true +} diff --git a/provider-dev/config/servers.json b/provider-dev/config/servers.json new file mode 100644 index 0000000..3914242 --- /dev/null +++ b/provider-dev/config/servers.json @@ -0,0 +1,14 @@ +[ + { + "url": "https://api.{region}.sumologic.com/api", + "description": "Sumo Logic deployment API endpoint", + "variables": { + "region": { + "description": "Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence.", + "enum": ["au", "ca", "ch", "de", "eu", "fed", "in", "jp", "kr", "us1", "us2"], + "default": "us2", + "x-stackQL-envVar": "SUMOLOGIC_ENVIRONMENT" + } + } + } +] diff --git a/provider-dev/config/service_config.json b/provider-dev/config/service_config.json new file mode 100644 index 0000000..f15d5be --- /dev/null +++ b/provider-dev/config/service_config.json @@ -0,0 +1,12 @@ +{ + "pagination": { + "requestToken": { + "key": "token", + "location": "query" + }, + "responseToken": { + "key": "next", + "location": "body" + } + } +} diff --git a/provider-dev/config/service_names.json b/provider-dev/config/service_names.json new file mode 100644 index 0000000..b888184 --- /dev/null +++ b/provider-dev/config/service_names.json @@ -0,0 +1,115 @@ +{ + "description": "Service split for the sumologic provider. `overrides` maps each vendor OpenAPI tag (normalized as provider-utils split does: lowercase, hyphens/spaces/dots to underscores) to a StackQL service name; tags that share a name are merged into one service document. Every tag in the spec must have an entry - bin/split.mjs fails on an unmapped tag. `descriptions` supplies the service description carried into provider.yaml (SHOW SERVICES). The collectors service is not tag-derived: it comes from the hand-authored Collector Management API spec in provider-dev/downloaded/sumologic-collector-management-api.yaml.", + "overrides": { + "accesskeymanagement": "access_keys", + "accountmanagement": "account", + "appmanagement": "apps", + "appmanagementv2": "apps", + "archivemanagement": "archive", + "budgetmanagement": "budgets", + "connectionmanagement": "connections", + "contentconfigmanagement": "content_sync", + "contentmanagement": "content", + "contentpermissions": "content", + "foldermanagement": "content", + "dashboardmanagement": "dashboards", + "dataarchivingmanagement": "data_archiving", + "datadeletionrules": "data_deletion_rules", + "datamaskingmanagement": "data_masking_rules", + "dynamicparsingrulemanagement": "dynamic_parsing_rules", + "eventanalytics": "event_extraction_rules", + "extractionrulemanagement": "extraction_rules", + "fieldmanagementv1": "fields", + "healthevents": "health_events", + "ingestbudgetmanagementv2": "ingest_budgets", + "logsdataforwardingmanagement": "logs_data_forwarding", + "logsearchesestimatedusage": "log_searches", + "logsearchesmanagement": "log_searches", + "lookupmanagement": "lookup_tables", + "macromanagement": "macros", + "metricsquery": "metrics_queries", + "metricssearchesmanagement": "metrics_searches", + "metricssearchesmanagementv2": "metrics_searches", + "monitorslibrarymanagement": "monitors", + "mutingscheduleslibrarymanagement": "muting_schedules", + "oauthmanagement": "oauth", + "orgfeaturesettings": "feature_settings", + "orgsmanagement": "organizations", + "otcollectormanagementexternal": "ot_collectors", + "parserslibrarymanagement": "parsers", + "partitionmanagement": "partitions", + "passwordpolicy": "password_policy", + "policiesmanagement": "policies", + "rolemanagement": "roles", + "rolemanagementv2": "roles", + "samlconfigurationmanagement": "saml", + "scheduledviewmanagement": "scheduled_views", + "schemabasemanagement": "schemas", + "scimusermanagement": "scim", + "searchjobmanagement": "search_jobs", + "serviceaccountmanagement": "service_accounts", + "serviceallowlistmanagement": "service_allowlist", + "servicemap": "tracing", + "sloslibrarymanagement": "slos", + "sourcetemplatemanagementexternal": "source_templates", + "spananalytics": "tracing", + "threatintelingest": "threat_intel", + "threatintelingestproducer": "threat_intel", + "tokenslibrarymanagement": "tokens", + "traces": "tracing", + "transformationrulemanagement": "transformation_rules", + "usermanagement": "users" + }, + "descriptions": { + "access_keys": "Access keys of the calling user and of the organization, their scopes, CORS headers and secret rotation.", + "account": "Account status, owner, subdomain, plan update requests, usage reports and usage forecasts.", + "apps": "The Sumo Logic app catalog (v1 and v2) - browse, install, upgrade, uninstall apps and follow the asynchronous install jobs.", + "archive": "Archive ingestion jobs that replay archived logs from an AWS S3 archive source.", + "budgets": "Data volume and search cost budgets and their usage.", + "collectors": "Collectors, Sources and Collector upgrades (the Collector Management API).", + "connections": "Webhook, ServiceNow, PagerDuty and other outbound connections used by monitors and scheduled searches.", + "content": "The content library - folders (personal, global, admin recommended, installed apps), content permissions, paths, and the asynchronous export, import, copy, move and delete jobs.", + "content_sync": "Multi-account content synchronisation jobs between child organizations.", + "dashboards": "Dashboards (New), dashboard report schedules, report generation jobs and legacy report migration.", + "data_archiving": "Data archiving destinations (AWS S3 buckets for archived logs).", + "data_deletion_rules": "Data deletion rules that remove already-ingested log data.", + "data_masking_rules": "Data masking rules applied at ingest.", + "dynamic_parsing_rules": "Dynamic parsing rules that extract fields automatically from JSON logs.", + "event_extraction_rules": "Event extraction rules (Event Analytics) and their quota.", + "extraction_rules": "Field extraction rules and their quota.", + "feature_settings": "Organization feature settings.", + "fields": "Custom fields, built-in fields, dropped fields and the field quota.", + "health_events": "Health events for collectors, sources, ingest budgets and other resources.", + "ingest_budgets": "Ingest budgets (v2) and their usage reset.", + "log_searches": "Saved and scheduled log searches, and estimated usage of a log search across data tiers.", + "logs_data_forwarding": "Log data forwarding destinations (AWS S3) and forwarding rules per partition.", + "lookup_tables": "Lookup tables, their rows, file uploads and the asynchronous lookup jobs.", + "macros": "Search macros.", + "metrics_queries": "Ad hoc metrics queries.", + "metrics_searches": "Saved metrics searches (v1 and v2).", + "monitors": "Monitors and monitor folders in the monitors library - search, path, copy, move, import, export, permissions, playbooks and usage.", + "muting_schedules": "Muting schedules in the muting schedules library.", + "oauth": "OAuth clients, consents and scopes.", + "organizations": "Usage of child organizations (multi-account management).", + "ot_collectors": "OpenTelemetry collectors.", + "parsers": "Custom and system parsers in the parsers library.", + "partitions": "Partitions (indexes), their retention and decommissioning, and the partition quota.", + "password_policy": "The organization password policy.", + "policies": "Organization security and behaviour policies - audit, search audit, data access level, data deletion, session limits, dashboard sharing, timestamp format, OAuth CIMD and access key lifetime.", + "roles": "Roles (v1 and v2) and role assignment to users.", + "saml": "SAML identity providers, allowlisted users and SAML lockdown.", + "scheduled_views": "Scheduled views and their quota.", + "schemas": "Schema identities grouped by product (Schema Base Management).", + "scim": "SCIM 2.0 user provisioning.", + "search_jobs": "Search jobs (v2) - create a log search job, poll its status and page through its messages and records.", + "service_accounts": "Service accounts and their access keys.", + "service_allowlist": "The service allowlist of CIDR addresses for login and content access.", + "slos": "SLOs and SLO folders in the SLO library, service level indicators and usage.", + "source_templates": "Source templates for OpenTelemetry collectors (v1 deprecated and v2).", + "threat_intel": "Threat intelligence datastore, data sources, retention and indicator ingestion.", + "tokens": "Installation tokens (tokens library).", + "tracing": "Traces, spans, trace and span queries, tracing metrics and the service map.", + "transformation_rules": "Metrics transformation rules.", + "users": "Users and their lifecycle actions - unlock, password reset, email change, welcome email, MFA." + } +} diff --git a/provider-dev/config/spec_pin.json b/provider-dev/config/spec_pin.json new file mode 100644 index 0000000..0795767 --- /dev/null +++ b/provider-dev/config/spec_pin.json @@ -0,0 +1,16 @@ +{ + "specs": { + "sumologic-api": { + "url": "https://api.sumologic.com/docs/sumologic-api.yaml", + "filename": "sumologic-api.yaml", + "openapi": "3.0.0", + "spec_version": "1.0.0", + "paths": 305, + "operations": 443, + "tags": 58, + "sha256": "111fdae618b1b5a42bb897bd64d5e8f4084fa9a79397d56dc1038e86bbc020c5", + "bytes": 1404982, + "fetched": "2026-09-14" + } + } +} diff --git a/provider-dev/docgen/provider-data/headerContent1.txt b/provider-dev/docgen/provider-data/headerContent1.txt index 14ca8c7..d4569f5 100644 --- a/provider-dev/docgen/provider-data/headerContent1.txt +++ b/provider-dev/docgen/provider-data/headerContent1.txt @@ -1,19 +1,21 @@ ---- -title: sumologic -hide_title: false -hide_table_of_contents: false -keywords: - - sumologic - - stackql - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage Sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png -id: 'provider-intro' ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; - -Cloud-native, real-time, unified logs and metrics analytics platform. \ No newline at end of file +--- +title: sumologic +hide_title: false +hide_table_of_contents: false +keywords: + - sumologic + - sumo logic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory + - observability +description: Query, provision and manage Sumo Logic collectors, sources, users, roles, monitors, dashboards, partitions, fields and the rest of the Sumo Logic platform using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +id: 'provider-intro' +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; + +Query, provision and operate the Sumo Logic platform using SQL - collectors and sources, users, roles and service accounts, access keys, the content library (folders, dashboards, saved searches), monitors, SLOs and muting schedules, partitions, scheduled views, fields and extraction rules, ingest budgets, connections, lookup tables, apps, security policies, tracing and search jobs. The provider covers the Sumo Logic API reference (every deployment) together with the Collector Management API. diff --git a/provider-dev/docgen/provider-data/headerContent2.txt b/provider-dev/docgen/provider-data/headerContent2.txt index 8a5141b..ff9e602 100644 --- a/provider-dev/docgen/provider-data/headerContent2.txt +++ b/provider-dev/docgen/provider-data/headerContent2.txt @@ -1,53 +1,249 @@ -See also: -[[` SHOW `]](https://stackql.io/docs/language-spec/show) [[` DESCRIBE `]](https://stackql.io/docs/language-spec/describe) [[` REGISTRY `]](https://stackql.io/docs/language-spec/registry) -* * * - -## Installation - -To pull the latest version of the `sumologic` provider, run the following command: - -```bash -REGISTRY PULL sumologic; -``` -> To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). - -## Authentication - -The following system environment variables are used for authentication by default: - -- - SumoLogic Access ID (see Generating an Access Key) -- - SumoLogic Access Key (see Generating an Access Key) - -These variables are sourced at runtime (from the local machine or as CI variables/secrets). - -
- -Using different environment variables - -To use different environment variables (instead of the defaults), use the `--auth` flag of the `stackql` program. For example: - -```bash - -AUTH='{ "sumologic": { "type": "basic", "username_var": "YOUR_SUMOLOGIC_ACCESS_ID_VAR", "password_var": "YOUR_SUMOLOGIC_ACCESS_KEY_VAR" }}' -stackql shell --auth="${AUTH}" - -``` -or using PowerShell: - -```powershell - -$Auth = "{ 'sumologic': { 'type': 'basic', 'username_var': 'YOUR_SUMOLOGIC_ACCESS_ID_VAR', 'password_var': 'YOUR_SUMOLOGIC_ACCESS_KEY_VAR' }}" -stackql.exe shell --auth=$Auth - -``` -
- - -## Server Parameters - - -The following parameter is required for the `sumologic` provider if you are not using the `us2` region: - -- - The SumoLogic regional endpoint (e.g. au, ca, de, eu, fed, in, jp) - -This parameter would be supplied to the `WHERE` clause of each `SELECT` statement if you are not usign the `us2` region. \ No newline at end of file +See also: +[[` SHOW `]](https://stackql.io/docs/language-spec/show) [[` DESCRIBE `]](https://stackql.io/docs/language-spec/describe) [[` REGISTRY `]](https://stackql.io/docs/language-spec/registry) +* * * + +## Installation + +To pull the latest version of the `sumologic` provider, run the following command: + +```bash +REGISTRY PULL sumologic; +``` +> To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). + +## Authentication + +The provider authenticates with a Sumo Logic access key pair using HTTP Basic auth (the access ID is the username, the access key is the password). Create a key in the Sumo Logic console under Administration -> Security -> Access Keys (see Access Keys). The following environment variables are read by default - the same variables the Terraform provider uses: + +- - Sumo Logic access ID +- - Sumo Logic access key +- - the deployment your account lives in (`us1`, `us2`, `au`, `ca`, `ch`, `de`, `eu`, `fed`, `in`, `jp` or `kr`, see Sumo Logic endpoints by deployment) + +These variables are sourced at runtime (from the local machine or as CI variables/secrets): + +```bash +export SUMOLOGIC_ACCESSID='su...' +export SUMOLOGIC_ACCESSKEY='...' +export SUMOLOGIC_ENVIRONMENT='us2' +``` + +or using PowerShell: + +```powershell +$env:SUMOLOGIC_ACCESSID = 'su...' +$env:SUMOLOGIC_ACCESSKEY = '...' +$env:SUMOLOGIC_ENVIRONMENT = 'us2' +``` + +
+ +Using different environment variables + +To use different environment variables for the access key pair, use the `--auth` flag of the `stackql` program. For example: + +```bash +AUTH='{ "sumologic": { "type": "basic", "username_var": "YOUR_SUMOLOGIC_ACCESS_ID_VAR", "password_var": "YOUR_SUMOLOGIC_ACCESS_KEY_VAR" }}' +stackql shell --auth="${AUTH}" +``` + +or using PowerShell: + +```powershell +$Auth = "{ 'sumologic': { 'type': 'basic', 'username_var': 'YOUR_SUMOLOGIC_ACCESS_ID_VAR', 'password_var': 'YOUR_SUMOLOGIC_ACCESS_KEY_VAR' }}" +stackql.exe shell --auth=$Auth +``` + +
+ +## Deployment (region) + +Every Sumo Logic deployment has its own API endpoint (`https://api.us2.sumologic.com/api`, `https://api.au.sumologic.com/api` and so on; `us1` is `https://api.sumologic.com/api`). The deployment is the server parameter of every resource, resolved from the environment variable, so with the variable set queries need no `WHERE region` clause: + +```sql +SELECT id, first_name, last_name, email FROM sumologic.users.users; +``` + +A `WHERE region = '...'` value always takes precedence over the environment, which is how a single session addresses accounts in several deployments: + +```sql +SELECT id, name FROM sumologic.collectors.collectors WHERE region = 'au'; +``` + +With unset, `region` is listed as a required parameter by `SHOW METHODS` and must be supplied on `INSERT`, `UPDATE`, `DELETE` and `EXEC` statements (a `SELECT` without it falls back to `us2`, the default of the previous provider release). Access keys are deployment-specific: a key created in one deployment is rejected (`401`) by every other endpoint, so a `401` on a fresh key usually means the wrong `region`. + +## Column and parameter casing + +The Sumo Logic API is camelCase on the wire. Columns, `WHERE` parameters and `INSERT` / `UPDATE` columns are presented in `snake_case` (`first_name`, `is_active`, `role_ids`, `collector_type`); the provider translates them to the wire names. Nested JSON columns keep the wire casing inside the value, so `json_extract(children, '$[0].itemType')` uses `itemType`. + +## Pagination and pushdown + +Paginated lists (users, roles, partitions, dashboards, connections, health events and the other `limit` / `token` lists) are traversed automatically - a `SELECT` returns every page. Every documented query or header parameter of an operation can be supplied in the `WHERE` clause and is sent on the wire, so filtering happens server-side where the API supports it: + +```sql +-- ?email= on GET /v1/users +SELECT id, first_name, last_name FROM sumologic.users.users WHERE email = 'ada@example.com'; + +-- ?filter=hosted on GET /v1/collectors (Collector Management API) +SELECT id, name, category FROM sumologic.collectors.collectors WHERE filter = 'hosted'; + +-- ?query= on GET /v1/monitors/search +SELECT json_extract(item, '$.name') AS name, path FROM sumologic.monitors.search WHERE query = 'type:monitor'; +``` + +## Users and roles + +Users with their state and role assignment: + +```sql +SELECT id, first_name, last_name, email, is_active, is_locked, is_mfa_enabled, last_login_timestamp, + json_array_length(role_ids) AS roles +FROM sumologic.users.users +ORDER BY last_login_timestamp DESC; +``` + +Roles and the capabilities they grant: + +```sql +SELECT id, name, description, system_defined, json_array_length(capabilities) AS capabilities, json_array_length(users) AS users +FROM sumologic.roles.roles; +``` + +## Collectors and sources + +The collector estate - type, liveness and version: + +```sql +SELECT id, name, collector_type, alive, collector_version, category, ephemeral, last_seen_alive +FROM sumologic.collectors.collectors +ORDER BY alive, name; +``` + +Sources of one collector: + +```sql +SELECT id, name, source_type, category, alive, url +FROM sumologic.collectors.sources +WHERE collector_id = '100000001'; +``` + +Installed collectors that have been offline for more than 30 days: + +```sql +SELECT id, name, collector_version, last_seen_alive +FROM sumologic.collectors.offline_collectors +WHERE alive_before_days = 30; +``` + +## Content library, monitors and dashboards + +The personal folder and its children: + +```sql +SELECT id, name, item_type, json_extract(children, '$[0].name') AS first_child, json_array_length(children) AS items +FROM sumologic.content.personal_folder; +``` + +Dashboards (New) with their folder and refresh interval: + +```sql +SELECT id, title, folder_id, refresh_interval, theme +FROM sumologic.dashboards.dashboards; +``` + +Monitors, disabled or not, from the monitors library search: + +```sql +SELECT json_extract(item, '$.name') AS name, + json_extract(item, '$.monitorType') AS monitor_type, + json_extract(item, '$.isDisabled') AS is_disabled, + path +FROM sumologic.monitors.search +WHERE query = 'type:monitor'; +``` + +## Data tiers, partitions and budgets + +Partitions with tier and retention: + +```sql +SELECT id, name, analytics_tier, retention_period, is_active, is_included_in_default_search, total_bytes +FROM sumologic.partitions.partitions +ORDER BY total_bytes DESC; +``` + +Ingest budgets and their current usage: + +```sql +SELECT id, name, capacity_bytes, usage_bytes, usage_status, action, reset_time, timezone +FROM sumologic.ingest_budgets.ingest_budgets; +``` + +## Provision, mutate and tear down + +Mutations use the same SQL grammar - `INSERT` creates a resource, `UPDATE` replaces it (Sumo Logic updates are `PUT`s, so supply every required field), `EXEC` invokes lifecycle actions and `DELETE` removes it. Structured values (arrays, objects) are passed as JSON strings, and booleans are quoted (`is_active = 'false'`) - a bare `true` / `false` on the right-hand side of `SET` is not accepted. A hosted collector with an HTTP source end to end (the Collector Management API wraps its bodies in `collector` / `source` objects, passed as JSON values): + +```sql +-- create a hosted collector +INSERT INTO sumologic.collectors.collectors (collector) +SELECT '{"name": "stackql-hosted", "collectorType": "Hosted", "category": "stackql/demo", "description": "Created by StackQL"}'; + +-- find its id +SELECT id FROM sumologic.collectors.collectors WHERE name = 'stackql-hosted'; + +-- add an HTTP source to it +INSERT INTO sumologic.collectors.sources (collector_id, source) +SELECT '100000002', '{"name": "stackql-http", "sourceType": "HTTP", "category": "stackql/demo/http", "messagePerRequest": false}'; + +-- remove both +DELETE FROM sumologic.collectors.sources WHERE collector_id = '100000002' AND source_id = '200000002'; +DELETE FROM sumologic.collectors.collectors WHERE id = '100000002'; +``` + +A role from creation to deletion, with a user assignment in between: + +```sql +INSERT INTO sumologic.roles.roles (name, description, capabilities) +SELECT 'stackql-readers', 'Read-only', '["viewCollectors", "viewFieldExtraction"]'; + +EXEC sumologic.roles.roles.assign_user @roleId = '00000000000001AC', @userId = '000000000000ABCD'; + +UPDATE sumologic.roles.roles +SET name = 'stackql-readers', description = 'Read-only (audited)', capabilities = '["viewCollectors"]' +WHERE id = '00000000000001AC'; + +DELETE FROM sumologic.roles.roles WHERE id = '00000000000001AC'; +``` + +Deactivating a user (a `PUT`, so the name and role assignment are supplied again): + +```sql +UPDATE sumologic.users.users +SET first_name = 'Ada', last_name = 'Lovelace', is_active = 'false', role_ids = '["00000000000001AB"]' +WHERE id = '000000000000ABCD'; +``` + +## Lifecycle operations + +State transitions are `EXEC` methods on the resource they act on, addressed with the wire-cased parameter names: + +```sql +EXEC sumologic.users.users.unlock @id = '000000000000ABCD'; + +EXEC sumologic.scheduled_views.scheduled_views.pause @id = '0000000000000A01'; + +EXEC sumologic.partitions.partitions.decommission @id = '0000000000000A02'; + +EXEC sumologic.monitors.monitors.disable_by_ids @ids = '0000000000000101,0000000000000102'; +``` + +Asynchronous jobs follow the same shape: an `EXEC` starts the job on a `_jobs` resource, a `SELECT` on the same resource polls its status, and a `_results` resource reads the outcome: + +```sql +EXEC sumologic.content.export_jobs.start @id = '0000000000A1B2C5'; + +SELECT status, status_message FROM sumologic.content.export_jobs +WHERE content_id = '0000000000A1B2C5' AND job_id = '5B4C3D2E1F0A9B8C'; + +SELECT type, name FROM sumologic.content.export_results +WHERE content_id = '0000000000A1B2C5' AND job_id = '5B4C3D2E1F0A9B8C'; +``` diff --git a/provider-dev/downloaded/sumologic-api.yaml b/provider-dev/downloaded/sumologic-api.yaml new file mode 100644 index 0000000..4eea9b3 --- /dev/null +++ b/provider-dev/downloaded/sumologic-api.yaml @@ -0,0 +1,39800 @@ +openapi: 3.0.0 +info: + title: Sumo Logic API + description: "# Getting Started\nWelcome to the Sumo Logic API reference. You can\ + \ use these APIs to interact with the Sumo Logic platform. For information on\ + \ Collector and Search Job APIs, see our [API home page](https://help.sumologic.com/docs/api).\n\ + ## API Endpoints\nSumo Logic has several deployments in different geographic locations.\ + \ You'll need to use the Sumo Logic API endpoint corresponding to your geographic\ + \ location. See the table below for the different API endpoints by deployment.\ + \ For details determining your account's deployment, see [API endpoints](https://help.sumologic.com/?cid=3011).\n\ + \n \n \n \n \n \n \n \n\ + \ \n \n \n \ + \ \n \n \n\ + \ \n \n \n\ + \ \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Deployment \ + \ Endpoint URL
AU https://api.au.sumologic.com/api/
CA https://api.ca.sumologic.com/api/
CH https://api.ch.sumologic.com/api/
DE https://api.de.sumologic.com/api/\ + \
EU https://api.eu.sumologic.com/api/\ + \
FED https://api.fed.sumologic.com/api/\ + \
IN https://api.in.sumologic.com/api/\ + \
JP https://api.jp.sumologic.com/api/\ + \
KR https://api.kr.sumologic.com/api/\ + \
US1 https://api.sumologic.com/api/\ + \
US2 https://api.us2.sumologic.com/api/\ + \
\n\n## Authentication\nThe Sumo Logic API supports\ + \ the following authentication methods:\n### Basic HTTP Authentication\nBasic\ + \ HTTP Authentication uses access key credentials. See [Access Keys](https://help.sumologic.com/docs/manage/security/access-keys)\ + \ to generate an access key.\nAPI requests should include the base-64 encoded\ + \ access ID and access key in the `Authorization` header. Example request:\n\n\ + \ ```http\n GET /api/v1/users HTTP/1.1\n Authorization: Basic \n\ + \ ```\n\nUsing curl:\n\n ```bash\n curl -u \":\" -X GET\ + \ /v1/users\n ```\n\n\nWhere the value of ``\ + \ for each deployment can be found in the [API endpoints](#section/API-Endpoints)\ + \ section above.\nRefer to [API Authentication](https://help.sumologic.com/?cid=3012)\ + \ for additional details on using basic authentication.\n### OAuth\nOAuth authentication\ + \ uses access tokens obtained from client-credentials-grant or authorization-code-grant\ + \ requests. See [OAuth Clients](https://help.sumologic.com/docs/manage/security/oauth)\ + \ for instructions on creating an OAuth client and for using it to obtain an access\ + \ token. \nAPI requests should include the access token in the `Authorization`\ + \ header. Example request:\n\n ```http\n GET /api/v1/users HTTP/1.1\n Authorization:\ + \ Bearer \n ```\n\nRefer to [API Authentication](https://help.sumologic.com/?cid=3012)\ + \ for additional details on using OAuth authentication.\n\n## Status Codes\nGeneric\ + \ status codes that apply to all our APIs. See the [HTTP status code registry](https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml)\ + \ for reference.\n \n \n \n \n \n \n \n \n \n \ + \ \n \n \n \n \n \n \n \n\ + \ \n \n \n \n \n \n \n \n \n\ + \ \n \n \n \n \n \n \n\ + \ \n \n\ + \ \n \n \n \n\ + \ \n \n \n\ + \ \n \n \n \n \n \n \n \n \n
HTTP Status Code\ + \ Error Code Description\ + \
301 moved The requested resource SHOULD be accessed through returned URI in Location\ + \ Header. See [troubleshooting](https://help.sumologic.com/docs/api/troubleshooting/#api---301-error---moved)\ + \ for details.
401 unauthorized\ + \ Credential could not be verified.
403 forbidden This operation is\ + \ not allowed for your account type or the user doesn't have the role capability\ + \ to perform this action. See [troubleshooting](https://help.sumologic.com/docs/api/troubleshooting/#api---401-error---credential-could-not-be-verified)\ + \ for details.
404 notfound\ + \ Requested resource could not be found.
405 method.unsupported \ + \ Unsupported method for URL.
415 contenttype.invalid Invalid content type.
429 rate.limit.exceeded The API request rate is higher than 4 request per second or inflight\ + \ API requests are higher than 10 request per second.
500 internal.error Internal server\ + \ error.
503 service.unavailable\ + \ Service is currently unavailable.
\n\ + \n## Filtering\nSome API endpoints support filtering results on a specified set\ + \ of fields. Each endpoint that supports filtering will list the fields that can\ + \ be filtered. Multiple fields can be combined by using an ampersand `&` character.\n\ + \nExample: To get user with email `john@demo.com`:\n ```bash\n api.sumologic.com/v1/users?email=john@demo.com\n\ + \ ```\n\n## Sorting\nSome API endpoints support sorting fields by using the `sortBy`\ + \ query parameter. The default sort order is ascending. Prefix the field with\ + \ a minus sign `-` to sort in descending order.\n\nFor example, to get 20 users\ + \ sorted by their `email` in descending order:\n ```bash\n api.sumologic.com/v1/users?limit=20&sort=-email\n\ + \ ```\n\n## Asynchronous Request\nAsynchronous requests do not wait for results,\ + \ instead they immediately respond back with a job identifier while the job runs\ + \ in the background. You can use the job identifier to track the status of the\ + \ asynchronous job request. Here is a typical flow for an asynchronous request.\n\ + 1. Start an asynchronous job. On success, a job identifier is returned. The job\ + \ identifier uniquely identifies\n your asynchronous job.\n\n2. Once started,\ + \ use the job identifier from step 1 to track the status of your asynchronous\ + \ job. An asynchronous\n request will typically provide an endpoint to poll for\ + \ the status of asynchronous job. A successful response\n from the status endpoint\ + \ will have the following structure:\n ```json\n {\n \"status\": \"Status\ + \ of asynchronous request\",\n \"statusMessage\": \"Optional message with\ + \ additional information in case request succeeds\",\n \"error\": \"Error\ + \ object in case request fails\"\n }\n ```\n The `status` field can have one\ + \ of the following values:\n 1. `Success`: The job succeeded. The `statusMessage`\ + \ field might have additional information.\n 2. `InProgress`: The job is still\ + \ running.\n 3. `Failed`: The job failed. The `error` field in the response\ + \ will have more information about the failure.\n\n3. Some asynchronous APIs may\ + \ provide a third endpoint (like [export result](#operation/getAsyncExportResult))\n\ + \ to fetch the result of an asynchronous job.\n\n\n### Example\nLet's say we\ + \ want to export a folder with the identifier `0000000006A2E86F`. We will use\ + \ the [async export](#operation/beginAsyncExport) API to export all the content\ + \ under the folder with `id=0000000006A2E86F`.\n1. Start an export job for the\ + \ folder\n ```bash\n curl -X POST -u \":\" https://api..sumologic.com/api/v2/content/0000000006A2E86F/export\n\ + \ ```\n See [authentication section](#section/Authentication) for more details\ + \ about `accessId`, `accessKey`, and\n `deployment`.\n On success, you will\ + \ get back a job identifier. In the response below, `C03E086C137F38B4` is the\ + \ job identifier.\n ```bash\n {\n \"id\": \"C03E086C137F38B4\"\n }\n \ + \ ```\n\n2. Now poll for the status of the asynchronous job with the [status](#operation/getAsyncExportStatus)\ + \ endpoint.\n ```bash\n curl -X GET -u \":\" https://api..sumologic.com/api/v2/content/0000000006A2E86F/export/C03E086C137F38B4/status\n\ + \ ```\n You may get a response like\n ```json\n {\n \"status\": \"InProgress\"\ + ,\n \"statusMessage\": null,\n \"error\": null\n }\n ```\n It implies\ + \ the job is still in progress. Keep polling till the status is either `Success`\ + \ or `Failed`.\n\n3. When the asynchronous job completes (`status != \"InProgress\"\ + `), you can fetch the results with the\n [export result](#operation/getAsyncExportResult)\ + \ endpoint.\n ```bash\n curl -X GET -u \":\" https://api..sumologic.com/api/v2/content/0000000006A2E86F/export/C03E086C137F38B4/result\n\ + \ ```\n\n The asynchronous job may fail (`status == \"Failed\"`). You can look\ + \ at the `error` field for more details.\n ```json\n {\n \"status\": \"\ + Failed\",\n \"errors\": {\n \"code\": \"content1:too_many_items\"\ + ,\n \"message\": \"Too many objects: object count(1100) was greater than\ + \ limit 1000\"\n }\n }\n ```\n\n\n## Rate Limiting\n* A rate limit of four\ + \ API requests per second (240 requests per minute) applies to all API calls from\ + \ a user.\n* A rate limit of 10 concurrent requests to any API endpoint applies\ + \ to an access key.\n\nIf a rate is exceeded, a rate limit exceeded 429 status\ + \ code is returned.\n\n## Generating Clients\nYou can use [OpenAPI Generator](https://openapi-generator.tech)\ + \ to generate clients from the YAML file to access the API.\n\n### Using [NPM](https://www.npmjs.com/get-npm)\n\ + 1. Install [NPM package wrapper](https://github.com/openapitools/openapi-generator-cli)\ + \ globally, exposing the CLI\n on the command line:\n ```bash\n npm install\ + \ @openapitools/openapi-generator-cli -g\n ```\n You can see detailed instructions\ + \ [here](https://openapi-generator.tech/docs/installation#npm).\n\n2. Download\ + \ the [YAML file](/docs/sumologic-api.yaml) and save it locally. Let's say the\ + \ file is saved as `sumologic-api.yaml`.\n3. Use the following command to generate\ + \ `python` client inside the `sumo/client/python` directory:\n ```bash\n openapi-generator\ + \ generate -i sumologic-api.yaml -g python -o sumo/client/python\n ```\n\n\n\ + ### Using [Homebrew](https://brew.sh/)\n1. Install OpenAPI Generator\n ```bash\n\ + \ brew install openapi-generator\n ```\n\n2. Download the [YAML file](/docs/sumologic-api.yaml)\ + \ and save it locally. Let's say the file is saved as `sumologic-api.yaml`.\n\ + 3. Use the following command to generate `python` client side code inside the\ + \ `sumo/client/python` directory:\n ```bash\n openapi-generator generate -i\ + \ sumologic-api.yaml -g python -o sumo/client/python\n ```\n" + version: 1.0.0 + x-logo: + url: ./sumologic_logo.png +servers: +- url: https://api.au.sumologic.com/api/ + description: AU deployment API server +- url: https://api.ca.sumologic.com/api/ + description: CA deployment API server +- url: https://api.ch.sumologic.com/api/ + description: CH deployment API server +- url: https://api.de.sumologic.com/api/ + description: DE deployment API server +- url: https://api.eu.sumologic.com/api/ + description: EU deployment API server +- url: https://api.fed.sumologic.com/api/ + description: FED deployment API server +- url: https://api.jp.sumologic.com/api/ + description: JP deployment API server +- url: https://api.kr.sumologic.com/api/ + description: KR deployment API server +- url: https://api.in.sumologic.com/api/ + description: IN deployment API server +- url: https://api.sumologic.com/api/ + description: US1 deployment API server +- url: https://api.us2.sumologic.com/api/ + description: US2 deployment API server +security: +- basicAuth: [] +tags: +- name: accountManagement + description: | + Account Management API. + + Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information, see [Manage Organization](https://help.sumologic.com/docs/manage/manage-subscription/manage-org-settings). + x-displayName: Account +- name: orgsManagement + description: Organizations Management API. + x-displayName: Organizations Management +- name: appManagement + description: | + App installation API. + + View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information, see [Sumo Logic Apps](https://help.sumologic.com/docs/integrations). + x-displayName: Apps (Beta) +- name: appManagementV2 + description: | + App installation API (V2). + + View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information, see [Sumo Logic Apps](https://help.sumologic.com/docs/integrations). + x-displayName: Apps V2 (Beta) +- name: connectionManagement + description: | + Connection management API. + + Set up connections to send alerts to other tools. For more information, see [Connections and Integrations](https://help.sumologic.com/?cid=1044). + x-displayName: Connections +- name: contentManagement + description: | + Content management API. + + You can export, import, delete and copy content in your organization’s Library. For more information, see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information, see [Admin Mode](https://help.sumologic.com/docs/manage/content-sharing/admin-mode). +

+ ### Example + The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment, see [API endpoints](https://help.sumologic.com/?cid=3011). + The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: + 1. Get the identifier of your `Personal` folder. + ```bash + curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal + ``` + + Find the identifier of your `Personal` folder in the response. + ```json + { + ... + "id": "0000000006A2E86F", <---- + "name": "Personal", + "itemType": "Folder", + ... + } + ``` + + You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), + or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any + folder you want to manage. + + 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your + `Personal` folder. + ```bash + curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import + ``` + + The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. + ```json + // file: search.json + { + "type": "SavedSearchWithScheduleSyncDefinition", + "name": "demo-scheduled-search", + "description": "Runs every hour with timerange of 15m and sends email notifications", + "search": { + "queryText": "\"error\" and \"warn\"", + "defaultTimeRange": "-15m", + "byReceiptTime": false, + "viewName": "", + "viewStartTime": null, + "queryParameters": [] + }, + "searchSchedule": { + "cronExpression": "0 0/15 * * * ? *", + "displayableTimeRange": "-15m", + "parseableTimeRange": { + "from": { + "relativeTime": "-15m", + "type": "RelativeTimeRangeBoundary" + }, + "to": null, + "type": "BeginBoundedTimeRange" + }, + "timeZone": "America/Los_Angeles", + "threshold": null, + "notification": { + "taskType": "EmailSearchNotificationSyncDefinition", + "toList": [ + "ops@acme.org" + ], + "subjectTemplate": "Search Results: {{SearchName}}", + "includeQuery": true, + "includeResultSet": true, + "includeHistogram": true, + "includeCsvAttachment": false + }, + "muteErrorEmails": false, + "scheduleType": "1Hour", + "parameters": [] + } + } + ``` + + The response of above request will have the job identifier that you can use to track the status of the import job. + ```json + { + "id": "74DC17FA765C7443" + } + ``` + + 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the + import job. + ```bash + curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status + ``` + + If you are importing a large item, you might have to wait for the import job to finish. The following is an + example response from a completed job. + ```json + { + "status": "Success", + "statusMessage": null, + "error": null + } + ``` + x-displayName: Content +- name: contentPermissions + description: | + Content permissions API. + + You can share your folders, searches, and dashboards with specific users or roles. For more information, see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information, see [Admin Mode](https://help.sumologic.com/docs/manage/content-sharing/admin-mode). + x-displayName: Permissions +- name: dashboardManagement + description: | + Dashboard (New) management API. + + Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information, see [Dashboard (New)](https://help.sumologic.com/?cid=5500). + x-displayName: Dashboard (New) +- name: dataDeletionRules + description: | + Data Deletion Rules (Beta) API. + Data Deletion Rules allow creating and managing requests to delete log messages satisfying parameters ( query, timerange, etc...). For more information, see [Deletion Requests](https://help.sumologic.com/docs/manage/deletion-requests/) + x-displayName: Data Deletion Rules (Beta) +- name: dataMaskingManagement + description: | + Data Masking Rules (Beta) API. + + Data Masking Rules allow you to define regex patterns that mask sensitive data in log messages at query time. + x-displayName: Data Masking Rules (Beta) +- name: dynamicParsingRuleManagement + description: | + Dynamic Parsing management API. + + Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information, see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). + x-displayName: Dynamic Parsing +- name: extractionRuleManagement + description: | + Field Extraction Rule management API. + + Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information, see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). + x-displayName: Field Extraction Rules +- name: fieldManagementV1 + description: | + Field management API. + + Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information, see [Fields](https://help.sumologic.com/?cid=10116). + x-displayName: Field Management +- name: logSearchesManagement + description: | + Log Searches Management API. + + Whether you are running ad hoc searches during a forensic investigation or running standard searches for health checks, you can save any search to run again later. When you create a search that you would like to reuse, you can save it to the Library. From there you can run it again, share with others, edit the search, or create a Scheduled Search to run at a regularly scheduled time, and set up alerts. The saved search will also include any charts you have created in the Aggregates tab. + x-displayName: Log Searches +- name: folderManagement + description: | + Folder management API. + + You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information, see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information, see [Admin Mode](https://help.sumologic.com/docs/manage/content-sharing/admin-mode). + x-displayName: Folders +- name: ingestBudgetManagementV2 + description: | + Ingest Budget management API V2. + + Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information, see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). + x-displayName: Ingest Budgets V2 +- name: partitionManagement + description: | + Partition management API. + + Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information, see [Manage Partitions](https://help.sumologic.com/?cid=5231). + x-displayName: Partitions +- name: logsDataForwardingManagement + description: | + Logs Data Forwarding management API. + + Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information, see [Forwarding Data to S3](https://help.sumologic.com/docs/manage/data-forwarding/amazon-s3-bucket). + x-displayName: Logs Data Forwarding +- name: roleManagement + description: | + Role management API. + + Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information, see [Manage Roles](https://help.sumologic.com/?cid=5234). + x-displayName: Roles +- name: roleManagementV2 + description: | + Role management API (V2). + Roles determine the functions that users are able to perform in Sumo Logic. It also allows to configure access on partitions. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information, see [Manage Roles](https://help.sumologic.com/?cid=5234). + x-displayName: Roles V2 +- name: lookupManagement + description: | + Lookup Table management API. + + A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information, see [Lookup Tables](https://help.sumologic.com/?cid=10109). + x-displayName: Lookup Tables +- name: scheduledViewManagement + description: | + Scheduled View management API. + + Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information, see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). + x-displayName: Scheduled Views +- name: tokensLibraryManagement + description: | + Tokens management API. + + Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information, see [Installation Tokens](https://help.sumologic.com/?cid=0100). + x-displayName: Tokens +- name: transformationRuleManagement + description: | + Transformation Rule management API. + Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information, see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). + x-displayName: Transformation Rules +- name: userManagement + description: | + User management API. + + To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information, see [Manage Users](https://help.sumologic.com/?cid=1006). + x-displayName: Users +- name: contentConfigManagement + description: | + Content and Configuration Management API. + + Manage Content and Configuration across your organization. + x-displayName: Content and Configuration Management +- name: metricsSearchesManagement + description: | + Metrics Search management API. + + Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information, see [Sharing Metric Charts](https://help.sumologic.com/docs/metrics/metric-charts/interacting-metric-charts). + x-displayName: Metrics Searches (Beta) +- name: metricsSearchesManagementV2 + description: | + New Metrics Searches Management API. + Save metrics searches in the content library and organize them in a folder hierarchy. Allows you to list metrics searches under your personal folder. + x-displayName: Metrics Searches (New) +- name: metricsQuery + description: | + Metrics Query API. + + The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information, see [Metrics - Classic](https://help.sumologic.com/?cid=1079). + x-displayName: Metrics Query +- name: accessKeyManagement + description: | + Access Key management API. + + Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information, see [Access Keys](https://help.sumologic.com/?cid=6690). + x-displayName: Access Keys +- name: samlConfigurationManagement + description: | + SAML configuration management API + + Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information, see [SAML Configuration](https://help.sumologic.com/?cid=4016). + x-displayName: SAML Configuration +- name: serviceAllowlistManagement + description: | + Service Allowlist management API + + Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information, see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). + x-displayName: Service Allowlist +- name: serviceAccountManagement + description: APIs to manage service accounts + x-displayName: Service Accounts +- name: oauthManagement + description: |- + ** Only available to Beta customers. During Beta endpoints are subject to backwards incompatible changes. ** + + APIs to manage OAuth Clients + x-displayName: OAuth Management (Beta) +- name: scimUserManagement + description: APIs to manage scim based users. + x-displayName: SCIM User Management +- name: healthEvents + description: | + Health Events management API. + + Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information, see [Health Events](https://help.sumologic.com/?cid=0020). + x-displayName: Health Events +- name: archiveManagement + description: |- + Archive Ingestion Management API. + + Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information, see [Archive](https://help.sumologic.com/?cid=10011). + x-displayName: Archive Ingestion Management +- name: dataArchivingManagement + description: |- + Data Archiving API. + + Data Archiving allows you to forward data from Installed Collectors to supported archiving destinations such as Amazon S3, Syslog, Hitachi and Generic restAPI. You can use this API to manage data archiving destinations configured for your Installed Collectors. You need the Manage or View Collectors role capability to manage or view archiving destinations. For more information, see [Data Archiving](https://help.sumologic.com/docs/manage/data-archiving). + x-displayName: Data Archiving +- name: logSearchesEstimatedUsage + description: | + Log Search Estimated Usage API. + + Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information, see [Infrequent data tier](https://help.sumologic.com/?cid=11987). + x-displayName: Log Search Estimated Usage +- name: parsersLibraryManagement + description: | + Parsers Library Management API + + Customize the Parsers via this API. The Parsers Library contains the Parsers used in the "_parser" field for collector, FER or query. For more information on customizing parsers, see [Parser Editor](https://help.sumologic.com/docs/cse/schema/parser-editor/). + x-displayName: Parsers Library Management +- name: passwordPolicy + description: | + Password Policy Management API + + The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information, see [how to set a password policy](https://help.sumologic.com/?cid=8595). + x-displayName: Password Policy +- name: policiesManagement + description: | + Policies management API. + + Policies control the security and share settings of your organization. For more information, see [Security](https://help.sumologic.com/?cid=4041). + x-displayName: Policies +- name: traces + description: | + Traces API + + The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information, see [View and investigate traces](https://help.sumologic.com/docs/apm/traces/view-and-investigate-traces). + x-displayName: Traces +- name: spanAnalytics + description: | + Span Analytics API + + The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information, see [Spans](https://help.sumologic.com/docs/apm/traces/spans). + x-displayName: Span Analytics +- name: serviceMap + description: | + Service Map API + + The Service Map API allows you to fetch a graph representation of the Services Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information, see [Services Map](https://help.sumologic.com/docs/apm/traces/services-list-map/#services-map-view). + x-displayName: Service Map +- name: threatIntelIngest + description: | + Threat Intel Datastore Management API + + The Threat Intel Datastore Management API allows you to: + * Get information about the threat indicator datastore and sources. + * Delete the threat indicator database. + * View and set the retention period for threat intel indicators. + + For more information, see [Threat Intel Ingest Management](https://help.sumologic.com/Manage/Threat-Intel-Ingest) + x-displayName: Threat Intel Datastore Management +- name: threatIntelIngestProducer + description: | + Threat Intel Ingestion API + + The Threat Intel Ingestion API allows you to: + * Upload threat intel indicators in STIX 2.x or Sumo normalized format. + * Delete indicators by ID or source. + + For more information, see [Threat Intel Ingest Management](https://help.sumologic.com/Manage/Threat-Intel-Ingest). + x-displayName: Threat Intel Ingestion +- name: otCollectorManagementExternal + description: | + OT Collector Management API External. + x-displayName: OpenTelemetry Collector Management +- name: sourceTemplateManagementExternal + description: | + Source Template Management APIs. + x-displayName: Source Template Management +- name: schemaBaseManagement + description: | + Schema Base Management APIs. + x-displayName: Schema Base Management +- name: eventAnalytics + description: | + Event Analytics (Beta) API. + + APIs for interacting with events in Sumo Logic. + x-displayName: Event Analytics (Beta) +- name: budgetManagement + description: | + Budget Management API. + x-displayName: Budget Management +- name: searchJobManagement + description: | + Search Job API. + x-displayName: Search Job +- name: macroManagement + description: | + Macro Management APIs. Macros allow you to reference a predefined set of query language syntax across multiple queries. This enables reuse of commonly used logic, improves consistency, and reduces duplication. Macros can optionally accept arguments. When arguments are provided, the macro evaluates them dynamically and applies the resulting logic within the query. With the Macro Management APIs, you can create, update, retrieve, and delete macros to simplify and streamline your query writing process. + For more information, see [Macros](https://www.sumologic.com/help/docs/manage/macro/). + x-displayName: Macro Management APIs +- name: orgFeatureSettings + description: | + Org Feature Settings API + + The APIs allow you to view and update settings of some features for the Org. + x-displayName: Org Feature Settings +- name: mutingSchedulesLibraryManagement + description: | + Muting Schedules Management API. + + + Muting Schedule allows you to pause alert notifications from monitors. When a muting schedule is active on a monitor, + the monitor will still generate alerts, but no notifications will be sent. + For more information see [Muting Schedules](https://help.sumologic.com/docs/alerts/monitors/muting-schedules). + x-displayName: Muting Schedules +- name: slosLibraryManagement + description: | + SLO Management API. + + SLOs are used to monitor and alert on KPIs for your most important services or user experience. + x-displayName: SLOs +- name: monitorsLibraryManagement + description: | + Monitor Management API. + + + Monitors continuously query your data to monitor and send notifications when specific events occur. + For more information see [Monitors](https://help.sumologic.com/?cid=10020). + x-displayName: Monitors +paths: + /v1/apps: + get: + tags: + - appManagement + summary: List available apps. + description: Lists all available apps from the App Catalog. + operationId: listApps + responses: + "200": + description: List of all available apps. + content: + application/json: + schema: + $ref: '#/components/schemas/ListAppsResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/apps/{uuid}: + get: + tags: + - appManagement + summary: Get an app by UUID. + description: Gets the app with the given universally unique identifier (UUID). + operationId: getApp + parameters: + - name: uuid + in: path + description: The identifier of the app to retrieve. + required: true + schema: + type: string + format: uuid + responses: + "200": + description: The retrieved app. + content: + application/json: + schema: + $ref: '#/components/schemas/App' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/apps/{uuid}/install: + post: + tags: + - appManagement + summary: Install an app by UUID. + description: Installs the app with given UUID in the folder specified using + destinationFolderId. + operationId: installApp + parameters: + - name: uuid + in: path + description: UUID of the app to install. + required: true + schema: + type: string + format: uuid + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AppInstallRequest' + required: true + responses: + "200": + description: App install job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: App installation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/apps/install/{jobId}/status: + get: + tags: + - appManagement + summary: App install job status. + description: Get the status of an asynchronous app install request for the given + job identifier. + operationId: getAsyncInstallStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous install job. + required: true + schema: + type: string + responses: + "200": + description: The status of the app install job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: App installation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/install: + post: + tags: + - appManagementV2 + summary: Start app install job + description: |- + Schedule an asynchronous job to install the app with the given UUID and version from the App Catalog. The app will be installed in 'Installed Apps' folder in the Content Library. + + _You get back an identifier of asynchronous job in response to this endpoint. You can then use the [app install status API](#operation/getAsyncInstallAppStatus) to get the status of the installation request. See [Asynchronous-Request](#section/Getting-Started/Asynchronous-Request) section for more details on how to work with asynchronous request._ + operationId: asyncInstallApp + parameters: + - name: uuid + in: path + description: UUID of the app to install. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + requestBody: + description: Information about the app to install. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncInstallAppRequest' + required: true + responses: + "200": + description: App installation job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/install/{jobId}/status: + get: + tags: + - appManagementV2 + summary: App install job status + description: Get the status of an asynchronous app install request for the given + job identifier. + operationId: getAsyncInstallAppStatus + parameters: + - name: jobId + in: path + description: Identifier of the asynchronous job for installing the app. + required: true + schema: + type: string + example: C03E086C137F38B4 + responses: + "200": + description: Status of the app installation job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncInstallAppJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/uninstall: + post: + tags: + - appManagementV2 + summary: Start app uninstall job + description: |- + Schedule an asynchronous job to uninstall app with the given UUID. + + _You get back an identifier of asynchronous job in response to this endpoint. You can then use the [app uninstall status API](#operation/getAsyncUninstallAppStatus) to get the status of the uninstallation request. See [Asynchronous-Request](#section/Getting-Started/Asynchronous-Request) section for more details on how to work with asynchronous request._ + operationId: asyncUninstallApp + parameters: + - name: uuid + in: path + description: UUID of the app to uninstall. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + "200": + description: App uninstall job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/uninstall/{jobId}/status: + get: + tags: + - appManagementV2 + summary: App uninstall job status + description: Get the status of an asynchronous app uninstall request for the + given job identifier. + operationId: getAsyncUninstallAppStatus + parameters: + - name: jobId + in: path + description: Identifier of the asynchronous job for uninstalling the app. + required: true + schema: + type: string + example: C03E086C137F38B4 + responses: + "200": + description: Status of the app uninstall job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncUninstallAppJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/upgrade: + post: + tags: + - appManagementV2 + summary: Start app upgrade job + description: |- + Schedule an asynchronous job to upgrade the app with the given UUID and version from the App Catalog. The app will be installed in 'Installed Apps' folder in the Content Library. + + _You get back an identifier of asynchronous job in response to this endpoint. You can then use the [app upgrade status API](#operation/getAsyncUpgradeAppStatus) to get the status of the upgrade request. See [Asynchronous-Request](#section/Getting-Started/Asynchronous-Request) section for more details on how to work with asynchronous request._ + operationId: asyncUpgradeApp + parameters: + - name: uuid + in: path + description: UUID of the app to upgrade. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + requestBody: + description: Information about the app to upgrade. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncUpgradeAppRequest' + required: true + responses: + "200": + description: App upgrade job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/upgrade/{jobId}/status: + get: + tags: + - appManagementV2 + summary: App upgrade job status + description: Get the status of an asynchronous app upgrade request for the given + job identifier. + operationId: getAsyncUpgradeAppStatus + parameters: + - name: jobId + in: path + description: Identifier of the asynchronous job for upgrading the app. + required: true + schema: + type: string + example: C03E086C137F38B4 + responses: + "200": + description: Status of the app upgrade job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncUpgradeAppJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps: + get: + tags: + - appManagementV2 + summary: List apps + description: List all apps from the App Catalog. + operationId: listAppsV2 + parameters: + - name: name + in: query + description: Name of the app. + required: false + schema: + type: string + example: AWS%20CloudTrail + - name: author + in: query + description: Author of the app. + required: false + schema: + type: string + example: Sumo%20Logic + responses: + "200": + description: List of apps. + content: + application/json: + schema: + $ref: '#/components/schemas/ListAppsV2Response' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/details: + get: + tags: + - appManagementV2 + summary: Get details of an app version. + description: |- + Get details about an app with the given UUID and version. The details include: + + 1. The base URL for all the resource for the app. + 2. The app manifest + operationId: getAppDetails + parameters: + - name: uuid + in: path + description: UUID of the app. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + - name: version + in: query + description: Version of the app. The latest version is used if this is omitted + or specified as "latest". + required: false + schema: + type: string + example: 1.0.0 + responses: + "200": + description: Information about the requested app. + content: + application/json: + schema: + $ref: '#/components/schemas/GetAppDetailsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/subscription: + get: + tags: + - appManagementV2 + summary: Get subscription status for the user + description: Get Subscription status for the user for a specific app. This + will indicate whether the user has subscribed to the app or not. + operationId: getAppNotificationSubscriptionStatus + parameters: + - name: uuid + in: path + description: UUID of the app. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + "200": + description: Information about user's subscription status for the app. + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - appManagementV2 + summary: Subscribe to an app upgrade notification + description: Subscribe to an app upgrade notification. This will allow the user + to receive notifications for the app updates. + operationId: subscribeToAppNotification + parameters: + - name: uuid + in: path + description: UUID of the app to subscribe to. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + "204": + description: Successfully subscribed to the app notification. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - appManagementV2 + summary: Unsubscribe from an app upgrade notification + description: Unsubscribe from an app. This will remove the user's subscription + to notifications for the app. + operationId: unsubscribeFromAppNotification + parameters: + - name: uuid + in: path + description: UUID of the app to unsubscribe from. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + "204": + description: App Notification unsubscription was successful. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/connections: + get: + tags: + - connectionManagement + summary: Get a list of connections. + description: Get a list of all connections in the organization. The response + is paginated with a default limit of 100 connections per page. + operationId: listConnections + parameters: + - name: limit + in: query + description: Limit the number of connections returned in the response. The + number of connections returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + "200": + description: A paginated list of connections in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListConnectionsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - connectionManagement + summary: Create a new connection. + description: Create a new connection in the organization. + operationId: createConnection + parameters: [] + requestBody: + description: Information about the new connection. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectionDefinition' + required: true + responses: + "200": + description: The connection has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/Connection' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/connections/test: + post: + tags: + - connectionManagement + summary: Test a new connection url. + description: Test a new connection url is valid and can connect. + operationId: testConnection + parameters: + - name: functionalities + in: query + description: "A comma-separated functionalities of webhook payload to test.\ + \ Acceptable values: `alert`, `resolution`." + style: form + explode: false + schema: + type: array + items: + type: string + default: + - alert + example: "alert,resolution" + - name: connectionId + in: query + description: "Unique identifier of an existing connection to test. It should\ + \ be provided when the request body of an existing connection contains masked\ + \ authorization headers. If not provided, the authorization headers will\ + \ not be correctly unmasked, and the test may fail due to unauthorized access." + required: false + schema: + type: string + example: 0000000000123ABC + requestBody: + description: Information about the new connection. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectionDefinition' + required: true + responses: + "200": + description: The connection url has been tested. + content: + application/json: + schema: + $ref: '#/components/schemas/TestConnectionResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/connections/incidentTemplates: + post: + tags: + - connectionManagement + summary: Get incident templates for CloudSOAR connections. + description: Get incident templates for CloudSOAR connections. + operationId: getIncidentTemplates + parameters: [] + requestBody: + description: Information about the new connection. + content: + application/json: + schema: + $ref: '#/components/schemas/GetIncidentTemplatesRequest' + required: false + responses: + "200": + description: A list of the incident templates for the given CloudSOAR account. + content: + application/json: + schema: + $ref: '#/components/schemas/GetIncidentTemplatesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/connections/{id}: + get: + tags: + - connectionManagement + summary: Get a connection. + description: Get a connection with the given identifier. + operationId: getConnection + parameters: + - name: id + in: path + description: Identifier of connection to return. + required: true + schema: + type: string + - name: type + in: query + description: "Type of connection to return. Valid values are `WebhookConnection`,\ + \ `ServiceNowConnection`." + schema: + type: string + default: WebhookConnection + responses: + "200": + description: Connection object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/Connection' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - connectionManagement + summary: Update a connection. + description: Update an existing connection. + operationId: updateConnection + parameters: + - name: id + in: path + description: Identifier of the connection to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the connection. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectionDefinition' + required: true + responses: + "200": + description: The connection was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/Connection' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - connectionManagement + summary: Delete a connection. + description: Delete a connection with the given identifier. + operationId: deleteConnection + parameters: + - name: id + in: path + description: Identifier of the connection to delete. + required: true + schema: + type: string + - name: type + in: query + description: "Type of connection to delete. Valid values are `WebhookConnection`,\ + \ `ServiceNowConnection`." + required: true + schema: + pattern: ^(WebhookConnection|ServiceNowConnection)$ + type: string + x-pattern-message: must be either `WebhookConnection` or `ServiceNowConnection` + responses: + "204": + description: Connection was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/scheduledViews: + get: + tags: + - scheduledViewManagement + summary: Get a list of scheduled views. + description: Get a list of all scheduled views in the organization. The response + is paginated with a default limit of 100 scheduled views per page. + operationId: listScheduledViews + parameters: + - name: limit + in: query + description: Limit the number of scheduled views returned in the response. + The number of scheduled views returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + "200": + description: A paginated list of scheduled views in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListScheduledViewsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - scheduledViewManagement + summary: Create a new scheduled view. + description: Creates a new scheduled view in the organization. + operationId: createScheduledView + parameters: [] + requestBody: + description: Information about the new scheduled view. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateScheduledViewDefinition' + required: true + responses: + "200": + description: The scheduled view has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledView' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createScheduledView + /v1/scheduledViews/{id}: + get: + tags: + - scheduledViewManagement + summary: Get a scheduled view. + description: Get a scheduled view with the given identifier. + operationId: getScheduledView + parameters: + - name: id + in: path + description: Identifier of the scheduled view to fetch. + required: true + schema: + type: string + responses: + "200": + description: Scheduled view object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledView' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getScheduledView + put: + tags: + - scheduledViewManagement + summary: Update a scheduled view. + description: Update an existing scheduled view. + operationId: updateScheduledView + parameters: + - name: id + in: path + description: Identifier of the scheduled view to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the scheduled view. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateScheduledViewDefinition' + required: true + responses: + "200": + description: The scheduled view was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledView' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateScheduledView + /v1/scheduledViews/{id}/disable: + delete: + tags: + - scheduledViewManagement + summary: Disable a scheduled view. + description: Disable a scheduled view with the given identifier. + operationId: disableScheduledView + parameters: + - name: id + in: path + description: Identifier of the scheduled view to disable. + required: true + schema: + type: string + responses: + "204": + description: The scheduled view was disabled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteScheduledView + /v1/scheduledViews/{id}/pause: + post: + tags: + - scheduledViewManagement + summary: Pause a scheduled view. + description: Pause a scheduled view with the given identifier. + operationId: pauseScheduledView + parameters: + - name: id + in: path + description: Identifier of the scheduled view to pause. + required: true + schema: + type: string + responses: + "200": + description: The scheduled view was paused successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledView' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/scheduledViews/{id}/start: + post: + tags: + - scheduledViewManagement + summary: Start a scheduled view. + description: Start a scheduled view with the given identifier. + operationId: startScheduledView + parameters: + - name: id + in: path + description: Identifier of the scheduled view to start. + required: true + schema: + type: string + responses: + "200": + description: The scheduled view was started successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledView' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/scheduledViews/quota: + get: + tags: + - scheduledViewManagement + summary: Provides information about scheduled views quota. + description: Every customer can use a limited number of scheduled views. This + endpoint allows learning about these limitations and remaining quota. + operationId: getScheduledViewsQuota + responses: + "200": + description: Current state of scheduled views quota usage (limit and remaining). + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledViewsQuotaUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/lookupTables: + post: + tags: + - lookupManagement + summary: Create a lookup table. + description: |- + Create a new lookup table by providing a schema and specifying its configuration. Providing parentFolderId + is mandatory. Use the [getItemByPath](#operation/getItemByPath) endpoint to get content id of a path. + Please check [Content management API](#tag/contentManagement) and [Folder management API](#tag/folderManagement) for all available options. + operationId: createTable + parameters: [] + requestBody: + description: The schema and configuration for the lookup table. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupTableDefinition' + required: true + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "200": + description: Lookup table created successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupTable' + /v1/lookupTables/{id}: + get: + tags: + - lookupManagement + summary: Get a lookup table. + description: Get a lookup table for the given identifier. + operationId: lookupTableById + parameters: + - name: id + in: path + description: Identifier of the lookup table. + required: true + schema: + type: string + example: 0000000001C41EE4 + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "200": + description: Definition of the lookup table. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupTable' + put: + tags: + - lookupManagement + summary: Edit a lookup table. + description: Edit the lookup table data. All the fields are mandatory in the + request. + operationId: updateTable + parameters: + - name: id + in: path + description: Identifier of the lookup table. + required: true + schema: + type: string + example: 0000000001C41EE4 + requestBody: + description: The configuration changes for the lookup table. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupUpdateDefinition' + required: true + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "200": + description: Configuration updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupTable' + delete: + tags: + - lookupManagement + summary: Delete a lookup table. + description: Delete a lookup table completely.
**Warning:** `This operation + cannot be undone`. + operationId: deleteTable + parameters: + - name: id + in: path + description: Identifier of the lookup table. + required: true + schema: + type: string + example: 0000000001C41EE4 + responses: + "204": + description: Deletion successful. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/lookupTables/{id}/upload: + post: + tags: + - lookupManagement + summary: Upload a CSV file. + description: Create a request to populate a lookup table with a CSV file. + operationId: uploadFile + parameters: + - name: id + in: path + description: Identifier of the lookup table to populate. + required: true + schema: + type: string + example: 0000000001C41EE4 + - name: merge + in: query + description: "This indicates whether the file contents will be merged with\ + \ existing data in the lookup table or not. If this is true then data with\ + \ the same primary keys will be updated while the rest of the rows will\ + \ be appended. By default, merge is false. The response includes a request\ + \ identifier that you need to use in the [Request Status API](#operation/requestStatus)\ + \ to track the status of the upload request." + schema: + type: boolean + example: true + default: false + - name: fileEncoding + in: query + description: File encoding of file being uploaded. + schema: + type: string + example: UTF-16 + default: UTF-8 + requestBody: + content: + multipart/form-data: + schema: + required: + - file + type: object + properties: + file: + type: string + description: |- + The CSV file to upload. + - The size limit for the CSV file is 100MB. + - Use Unix format, with newlines ("\n") separating rows. + - The first row should contain headers that match the lookup table schema. Matching is + case-insensitive. + format: binary + required: true + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "200": + description: The upload request was accepted. Use the provided token in + a status request to track the status of the upload. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupRequestToken' + /v1/lookupTables/jobs/{jobId}/status: + get: + tags: + - lookupManagement + summary: Get the status of an async job. + description: "Retrieve the status of a previously made request. If the request\ + \ was successful, the status of the response object will be `Success`." + operationId: requestJobStatus + parameters: + - name: jobId + in: path + description: An identifier returned in response to an asynchronous request. + required: true + schema: + type: string + example: 0000000001C41AA3 + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "200": + description: The status of async job with given identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupAsyncJobStatus' + /v1/lookupTables/{id}/truncate: + post: + tags: + - lookupManagement + summary: Empty a lookup table. + description: Delete all data from a lookup table. + operationId: truncateTable + parameters: + - name: id + in: path + description: Identifier of the table to clear. + required: true + schema: + type: string + example: 0000000001C41EE4 + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "200": + description: The delete data request was accepted. Use the provided token + in a status request to track the status of the delete. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupRequestToken' + /v1/lookupTables/{id}/row: + put: + tags: + - lookupManagement + summary: Insert or Update a lookup table row. + description: "Insert or update a row of a lookup table with the given identifier.\ + \ A new row is inserted if the primary key does not exist already, otherwise\ + \ the existing row with the specified primary key is updated. All the fields\ + \ of the lookup table are required and will be updated to the given values.\ + \ In case a field is not specified then it will be assumed to be set to null.\ + \ If the table size exceeds the maximum limit of 100MB then based on the size\ + \ limit action of the table the update will be processed or discarded." + operationId: updateTableRow + parameters: + - name: id + in: path + description: Identifier of the lookup table. + required: true + schema: + type: string + example: 0000000001C41EE4 + requestBody: + description: Lookup table row update definition. + content: + application/json: + schema: + $ref: '#/components/schemas/RowUpdateDefinition' + required: true + responses: + "204": + description: Row updated successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/lookupTables/{id}/deleteTableRow: + put: + tags: + - lookupManagement + summary: Delete a lookup table row. + description: Delete a row from lookup table by providing the row's primary keys' + values. The complete set of primary key fields of the lookup table should + be provided. + operationId: deleteTableRow + parameters: + - name: id + in: path + description: Identifier of the lookup table. + required: true + schema: + type: string + example: 0000000001C41EE4 + requestBody: + description: Lookup table row delete definition. + content: + application/json: + schema: + $ref: '#/components/schemas/RowDeleteDefinition' + required: true + responses: + "204": + description: Row deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/partitions: + get: + tags: + - partitionManagement + summary: Get a list of partitions. + description: Get a list of all partitions in the organization. The response + is paginated with a default limit of 100 partitions per page. + operationId: listPartitions + parameters: + - name: limit + in: query + description: Limit the number of partitions returned in the response. The + number of partitions returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: viewTypes + in: query + description: |- + The type of partitions to retrieve. Valid values are: + 1. `DefaultView`: To get General Index partition. + 2. `Partition`: To get user defined views/partitions. + 3. `AuditIndex`: To get the internal audit indexes. Eg. sumologic_audit_events. + + More than one type of partitions can be retrieved in same request. + required: false + style: form + explode: false + schema: + type: array + items: + pattern: ^(AuditIndex|Partition|DefaultView)$ + type: string + example: + - AuditIndex + - Partition + responses: + "200": + description: A paginated list of partitions in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListPartitionsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - partitionManagement + summary: Create a new partition. + description: Create a new partition. + operationId: createPartition + parameters: [] + requestBody: + description: Information about the new partition. + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePartitionDefinition' + required: true + responses: + "200": + description: The partition has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/Partition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/partitions/{id}: + get: + tags: + - partitionManagement + summary: Get a partition. + description: Get a partition with the given identifier from the organization. + operationId: getPartition + parameters: + - name: id + in: path + description: Identifier of partition to return. + required: true + schema: + type: string + responses: + "200": + description: Partition object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/Partition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - partitionManagement + summary: Update a partition. + description: Update an existing partition in the organization. + operationId: updatePartition + parameters: + - name: id + in: path + description: Identifier of the partition to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the partition. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdatePartitionDefinition' + required: true + responses: + "200": + description: The partition was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/Partition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/partitions/{id}/decommission: + post: + tags: + - partitionManagement + summary: Decommission a partition. + description: Decommission a partition with the given identifier from the organization. + operationId: decommissionPartition + parameters: + - name: id + in: path + description: Identifier of the partition to decommission. + required: true + schema: + type: string + responses: + "200": + description: The partition was decommissioned successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/partitions/{id}/cancelRetentionUpdate: + post: + tags: + - partitionManagement + summary: Cancel a retention update for a partition + description: Cancel update to retention of a partition for which retention was + updated previously using `reduceRetentionPeriodImmediately` parameter as false + operationId: cancelRetentionUpdate + parameters: + - name: id + in: path + description: Identifier of the partition to cancel the retention update for. + required: true + schema: + type: string + example: 1 + responses: + "204": + description: The retention update was cancelled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/partitions/quota: + get: + tags: + - partitionManagement + summary: Provides information about partitions quota. + description: Every customer can use a limited number of partitions. This endpoint + allows learning about these limitations and remaining quota. + operationId: getPartitionsQuota + responses: + "200": + description: Current state of partitions quota usage (limit and remaining). + content: + application/json: + schema: + $ref: '#/components/schemas/PartitionsQuotaUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logsDataForwarding/destinations: + get: + tags: + - logsDataForwardingManagement + summary: Get Amazon S3 data forwarding destinations. + description: Get a list of all Amazon S3 data forwarding destinations. + operationId: getDataForwardingBuckets + parameters: + - name: limit + in: query + description: Limit the number of data forwarding destinations returned in + the response. The number of data forwarding destinations returned may be + less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + "200": + description: List of all S3 data forwarding destinations. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDataForwardingDestinations' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - logsDataForwardingManagement + summary: Create an S3 data forwarding destination. + description: Create a new Amazon S3 data forwarding destination. + operationId: createDataForwardingBucket + parameters: [] + requestBody: + description: Parameters to create new S3 data forwarding destination. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateBucketDefinition' + required: true + responses: + "200": + description: The new data forwarding destination has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/BucketDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logsDataForwarding/destinations/{id}: + get: + tags: + - logsDataForwardingManagement + summary: Get an S3 data forwarding destination. + description: Get an S3 data forwarding destination by the given identifier. + operationId: getDataForwardingDestination + parameters: + - name: id + in: path + description: Identifier of the S3 data forwarding destination to return. + required: true + schema: + type: string + example: 1 + responses: + "200": + description: Data forwarding destination object requested. + content: + application/json: + schema: + $ref: '#/components/schemas/BucketDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - logsDataForwardingManagement + summary: Update an S3 data forwarding destination. + description: Update an S3 data forwarding destination by the given identifier. + operationId: UpdateDataForwardingBucket + parameters: + - name: id + in: path + description: Identifier of the data forwarding destination to update. + required: true + schema: + type: string + example: 1 + requestBody: + description: Object with the updated parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateBucketDefinition' + required: true + responses: + "200": + description: The data forwarding destination has been updated. + content: + application/json: + schema: + $ref: '#/components/schemas/BucketDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - logsDataForwardingManagement + summary: Delete an S3 data forwarding destination. + description: Delete an existing Amazon S3 data forwarding destination with the + given identifier. + operationId: deleteDataForwardingBucket + parameters: + - name: id + in: path + description: Identifier of the data forwarding destination to delete. + required: true + schema: + type: string + example: 1 + responses: + "204": + description: The data forwarding destination has been deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logsDataForwarding/rules: + get: + tags: + - logsDataForwardingManagement + summary: Get all S3 data forwarding rules. + description: Get a list of all S3 data forwarding rules. + operationId: getRulesAndBuckets + parameters: + - name: limit + in: query + description: Limit the number of data forwarding rules returned in the response. + The number of data forwarding rules returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + "200": + description: List of all S3 data forwarding rules. + content: + application/json: + schema: + $ref: '#/components/schemas/GetRulesAndBucketsResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - logsDataForwardingManagement + summary: Create an S3 data forwarding rule. + description: Create a data forwarding rule to send data from a Partition or + Scheduled View to an S3 bucket. + operationId: createDataForwardingRule + parameters: [] + requestBody: + description: Parameters to create the new S3 data forwarding rule. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDataForwardingRule' + required: true + responses: + "200": + description: The data forwarding rule was created. + content: + application/json: + schema: + $ref: '#/components/schemas/DataForwardingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logsDataForwarding/rules/{indexId}: + get: + tags: + - logsDataForwardingManagement + summary: Get an S3 data forwarding rule by its index. + description: Get the details of an S3 data forwarding rule by its Partition + or Scheduled View identifier. + operationId: getDataForwardingRule + parameters: + - name: indexId + in: path + description: The `id` of the Partition or Scheduled View. + required: true + schema: + type: string + example: 1 + responses: + "200": + description: Data forwarding rule that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/RuleAndBucketDetail' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - logsDataForwardingManagement + summary: Update an S3 data forwarding rule by its index. + description: Update an S3 data forwarding rule by its Partition or Scheduled + View identifier. + operationId: updateDataForwardingRule + parameters: + - name: indexId + in: path + description: The `id` of the Partition or Scheduled View with the data forwarding + rule to update. + required: true + schema: + type: string + example: 1 + requestBody: + description: Parameters of an S3 data forwarding rule. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateDataForwardingRule' + required: true + responses: + "200": + description: The data forwarding rule was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/DataForwardingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - logsDataForwardingManagement + summary: Delete an S3 data forwarding rule by its index. + description: Delete an S3 data forwarding rule by its Partition or Scheduled + View identifier. + operationId: deleteDataForwardingRule + parameters: + - name: indexId + in: path + description: The `id` of the Partition or Scheduled View with the data forwarding + rule to delete. + required: true + schema: + type: string + example: 1 + responses: + "204": + description: The S3 data forwarding rule was deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logSearches: + get: + tags: + - logSearchesManagement + summary: List all saved log searches. + description: List all saved log searches viewable by the user. + operationId: listLogSearches + parameters: + - name: limit + in: query + description: Limit the number of log searches returned in the response. The + number of log searches returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + responses: + "200": + description: Paginated list of log searches under the Personal folder created + by the user. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLogSearches' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - logSearchesManagement + summary: Save a log search. + description: Save the log search in the content library. + operationId: createLogSearch + parameters: [] + requestBody: + description: The definition of the saved log search. + content: + application/json: + schema: + $ref: '#/components/schemas/SaveLogSearchRequest' + required: true + responses: + "200": + description: Newly saved log search. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearch' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createLogSearch + /v1/logSearches/{id}: + get: + tags: + - logSearchesManagement + summary: Get the saved log search. + description: Get a saved log search from the content library by identifier. + operationId: getLogSearch + parameters: + - name: id + in: path + description: Identifier of the saved log search. + required: true + schema: + type: string + responses: + "200": + description: Saved log search that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearch' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getLogSearch + put: + tags: + - logSearchesManagement + summary: Update the saved log Search. + description: "Update the saved log search with the specified identifier. Partial\ + \ update is not supported, you must provide values for all fields." + operationId: updateLogSearch + parameters: + - name: id + in: path + description: Identifier of the saved log search. + required: true + schema: + type: string + requestBody: + description: An updated saved log search definition. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchDefinition' + required: true + responses: + "200": + description: The saved log search that was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearch' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateLogSearch + delete: + tags: + - logSearchesManagement + summary: Delete the saved log search. + description: Delete the saved log search from the content library. + operationId: deleteLogSearch + parameters: + - name: id + in: path + description: Identifier of the saved log search. + required: true + schema: + type: string + responses: + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "204": + description: The saved log search was successfully deleted. + x-tf-delete: deleteLogSearch + /v1/dataDeletionRules: + get: + tags: + - dataDeletionRules + summary: Get a list of Data Deletion Rules + description: Get a list of data deletion rules in the organization. The response + is paginated with a default limit of 50 rules. + operationId: listDeletionRules + parameters: + - name: limit + in: query + description: Limit the number of deletion Rules returned in the response + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + "200": + description: A paginated list of data deletion Rules + content: + application/json: + schema: + $ref: '#/components/schemas/ListDeletionRulesResponse' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dataDeletionRules + summary: Create a new Data Deletion Rule + description: Create a new data deletion rule to delete logs. + operationId: createDataDeletionRule + parameters: [] + requestBody: + description: Information about the new deletion rule. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDeletionRuleRequest' + required: true + responses: + "200": + description: The data deletion Rule that has been created + content: + application/json: + schema: + $ref: '#/components/schemas/DeletionRuleDefinition' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataDeletionRules/{id}: + get: + tags: + - dataDeletionRules + summary: Get Data Deletion Rule information for the given Id. + description: Get Data Deletion Rule information for the given Id with updated + fields. + operationId: getDataDeletionRule + parameters: + - name: id + in: path + description: Identifier of the Deletion Rule to fetch + required: true + schema: + type: string + responses: + "200": + description: The data deletion Rule Definition that was requested + content: + application/json: + schema: + $ref: '#/components/schemas/DeletionRuleDefinition' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataDeletionRules/{id}/cancel: + post: + tags: + - dataDeletionRules + summary: Cancel the data Deletion Rule with the given Id. + description: Cancel the data Deletion Rule with the given Id. Allowed only if + the rule is waiting for approval. + operationId: cancelDataDeletionRule + parameters: + - name: id + in: path + description: Identifier of the Deletion Rule to cancel + required: true + schema: + type: string + responses: + "200": + description: The data deletion Rule has been cancelled successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletionRuleDefinition' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataDeletionRules/{id}/delete: + delete: + tags: + - dataDeletionRules + summary: Delete the data Deletion Rule with the given Id. + description: Delete the data Deletion Rule with the given Id. Allowed only if + the rule is cancelled. + operationId: deleteDataDeletionRule + parameters: + - name: id + in: path + description: Identifier of the Deletion Rule to delete + required: true + schema: + type: string + responses: + "204": + description: The data deletion Rule has been deleted successfully. + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataMaskingRules: + get: + tags: + - dataMaskingManagement + summary: Get a list of data masking rules. + description: Get a list of all data masking rules for the current organization. + The response is paginated with a default limit of 100 rules per page. + operationId: listDataMaskingRules + parameters: + - name: limit + in: query + description: Limit the number of data masking rules returned in the response. + The number of rules returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. + required: false + schema: + type: string + responses: + "200": + description: A paginated list of data masking rules. + content: + application/json: + schema: + $ref: '#/components/schemas/ListDataMaskingRulesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dataMaskingManagement + summary: Create a new data masking rule. + description: |- + Create a new data masking rule. The rule will be applied to search results at query time, replacing matches of the regex pattern with the specified mask string. + **Note:** Changes to data masking rules may take up to 30 seconds to take effect. + operationId: createDataMaskingRule + parameters: [] + requestBody: + description: Information about the new data masking rule. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRuleDefinition' + required: true + responses: + "200": + description: The data masking rule has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createDataMaskingRule + /v1/dataMaskingRules/{id}: + get: + tags: + - dataMaskingManagement + summary: Get a data masking rule. + description: Get a data masking rule with the given identifier. + operationId: getDataMaskingRule + parameters: + - name: id + in: path + description: Identifier of the data masking rule to return. + required: true + schema: + type: string + responses: + "200": + description: Data masking rule object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getDataMaskingRule + put: + tags: + - dataMaskingManagement + summary: Update a data masking rule. + description: |- + Update an existing data masking rule. Only the fields provided in the request are updated; omitted fields retain their current values. The rule name is immutable and cannot be changed after creation. + **Note:** Changes to data masking rules may take up to 30 seconds to take effect. + operationId: updateDataMaskingRule + parameters: + - name: id + in: path + description: Identifier of the data masking rule to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the data masking rule. The name field + cannot be changed as it is immutable. Only fields provided will be updated; + omitted fields retain their current values. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseDataMaskingRuleDefinition' + required: true + responses: + "200": + description: The data masking rule was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateDataMaskingRule + delete: + tags: + - dataMaskingManagement + summary: Delete a data masking rule. + description: |- + Delete a data masking rule with the given identifier. + **Note:** Changes to data masking rules may take up to 30 seconds to take effect. + operationId: deleteDataMaskingRule + parameters: + - name: id + in: path + description: Identifier of the data masking rule to delete. + required: true + schema: + type: string + responses: + "204": + description: Data masking rule was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteDataMaskingRule + /v1/dataMaskingRules/evaluate: + post: + tags: + - dataMaskingManagement + summary: Test and preview a regex pattern by evaluating it against sample input + text. Optionally provide a maskString to use as the replacement for text that + matches the regex. + description: "Evaluate a regex pattern against input text. This endpoint can\ + \ be used to test regex patterns for data masking rules. You can provide your\ + \ own mask string which will be used for masking, otherwise it will be masked\ + \ with default value of ##redactedPII##. The response includes the masked\ + \ text, match count, and positions of matches in the masked output text." + operationId: evaluateDataMaskingPattern + parameters: [] + requestBody: + description: Input regex and sample message for data masking evaluation. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingEvaluateDefinition' + required: true + responses: + "200": + description: Evaluation result for the provided sample message. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingEvaluateResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/extractionRules: + get: + tags: + - extractionRuleManagement + summary: Get a list of field extraction rules. + description: Get a list of all field extraction rules. The response is paginated + with a default limit of 100 field extraction rules per page. + operationId: listExtractionRules + parameters: + - name: limit + in: query + description: Limit the number of field extraction rules returned in the response. + The number of field extraction rules returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. + required: false + schema: + type: string + responses: + "200": + description: A paginated list of field extraction rules. + content: + application/json: + schema: + $ref: '#/components/schemas/ListExtractionRulesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - extractionRuleManagement + summary: Create a new field extraction rule. + description: Create a new field extraction rule. + operationId: createExtractionRule + parameters: [] + requestBody: + description: Information about the new field extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/ExtractionRuleDefinition' + required: true + responses: + "200": + description: The field extraction rule has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/ExtractionRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createExtractionRule + /v1/extractionRules/{id}: + get: + tags: + - extractionRuleManagement + summary: Get a field extraction rule. + description: Get a field extraction rule with the given identifier. + operationId: getExtractionRule + parameters: + - name: id + in: path + description: Identifier of field extraction rule to return. + required: true + schema: + type: string + responses: + "200": + description: Extraction rule object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/ExtractionRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getExtractionRule + put: + tags: + - extractionRuleManagement + summary: Update a field extraction rule. + description: Update an existing field extraction rule. All properties specified + in the request are replaced. Missing properties are set to their default values. + operationId: updateExtractionRule + parameters: + - name: id + in: path + description: Identifier of the field extraction rule to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the field extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateExtractionRuleDefinition' + required: true + responses: + "200": + description: The field extraction rule was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/ExtractionRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateExtractionRule + delete: + tags: + - extractionRuleManagement + summary: Delete a field extraction rule. + description: Delete a field extraction rule with the given identifier. + operationId: deleteExtractionRule + parameters: + - name: id + in: path + description: Identifier of the field extraction rule to delete. + required: true + schema: + type: string + responses: + "204": + description: Extraction rule was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteExtractionRule + /v1/dynamicParsingRules: + get: + tags: + - dynamicParsingRuleManagement + summary: Get a list of dynamic parsing rules. + description: Get a list of all dynamic parsing rules. The response is paginated + with a default limit of 100 dynamic parsing rules per page. + operationId: listDynamicParsingRules + parameters: + - name: limit + in: query + description: Limit the number of dynamic parsing rules returned in the response. + The number of dynamic parsing rules returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + example: 10 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. + required: false + schema: + type: string + example: 0000000001C51FF7 + responses: + "200": + description: A paginated list of dynamic parsing rules. + content: + application/json: + schema: + $ref: '#/components/schemas/ListDynamicRulesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dynamicParsingRuleManagement + summary: Create a new dynamic parsing rule. + description: Create a new dynamic parsing rule. + operationId: createDynamicParsingRule + requestBody: + description: Information about the new dynamic parsing rule. + content: + application/json: + schema: + $ref: '#/components/schemas/DynamicRuleDefinition' + required: true + responses: + "200": + description: The dynamic parsing rule has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/DynamicRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dynamicParsingRules/{id}: + get: + tags: + - dynamicParsingRuleManagement + summary: Get a dynamic parsing rule. + description: Get a dynamic parsing rule with the given identifier. + operationId: getDynamicParsingRule + parameters: + - name: id + in: path + description: Identifier of dynamic parsing rule to return. + required: true + schema: + type: string + example: 0000000001C41EE4 + responses: + "200": + description: Dynamic parsing rule object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/DynamicRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - dynamicParsingRuleManagement + summary: Update a dynamic parsing rule. + description: Update an existing dynamic parsing rule. All properties specified + in the request are replaced. Missing properties are set to their default values. + operationId: updateDynamicParsingRule + parameters: + - name: id + in: path + description: Identifier of the dynamic parsing rule to update. + required: true + schema: + type: string + example: 0000000001C41EE4 + requestBody: + description: Information to update about the dynamic parsing rule. + content: + application/json: + schema: + $ref: '#/components/schemas/DynamicRuleDefinition' + required: true + responses: + "200": + description: The dynamic parsing rule was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/DynamicRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - dynamicParsingRuleManagement + summary: Delete a dynamic parsing rule. + description: Delete a dynamic parsing rule with the given identifier. + operationId: deleteDynamicParsingRule + parameters: + - name: id + in: path + description: Identifier of the dynamic parsing rule to delete. + required: true + schema: + type: string + example: 0000000001C41EE4 + responses: + "204": + description: Dynamic parsing rule was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields: + get: + tags: + - fieldManagementV1 + summary: Get a list of all custom fields. + description: Request a list of all the custom fields configured in your account. + operationId: listCustomFields + responses: + "200": + description: List of all custom fields. + content: + application/json: + schema: + $ref: '#/components/schemas/ListCustomFieldsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - fieldManagementV1 + summary: Create a new field. + description: Adding a field will define it in the Fields schema allowing it + to be assigned as metadata to your logs. + operationId: createField + parameters: [] + requestBody: + description: Name of a field to add. The name is used as the key in the key-value + pair. + content: + application/json: + schema: + $ref: '#/components/schemas/FieldName' + required: true + responses: + "200": + description: The field was created successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/CustomField' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields/{id}: + get: + tags: + - fieldManagementV1 + summary: Get a custom field. + description: Get the details of a custom field. + operationId: getCustomField + parameters: + - name: id + in: path + description: Identifier of a field. + required: true + schema: + type: string + example: 00000000031D02DA + responses: + "200": + description: The details of the custom field. + content: + application/json: + schema: + $ref: '#/components/schemas/CustomField' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - fieldManagementV1 + summary: Delete a custom field. + description: "Deleting a field does not delete historical data assigned with\ + \ that field. If you delete a field by mistake and one or more of those dependencies\ + \ break, you can re-add the field to get things working properly again. You\ + \ should always disable a field and ensure things are behaving as expected\ + \ before deleting a field." + operationId: deleteField + parameters: + - name: id + in: path + description: Identifier of a field to delete. + required: true + schema: + type: string + example: 00000000031D02DA + responses: + "204": + description: The field was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields/{id}/enable: + put: + tags: + - fieldManagementV1 + summary: Enable custom field with a specified identifier. + description: Fields have to be enabled to be assigned to your data. This operation + ensures that a specified field is enabled and Sumo Logic will treat it as + safe to process. All manually created custom fields are enabled by default. + operationId: enableField + parameters: + - name: id + in: path + description: Identifier of a field to enable. + required: true + schema: + type: string + example: 00000000031D02DA + responses: + "204": + description: Field has been enabled. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields/{id}/disable: + delete: + tags: + - fieldManagementV1 + summary: Disable a custom field. + description: "After disabling a field Sumo Logic will start dropping its incoming\ + \ values at ingest. As a result, they won't be searchable or usable. Historical\ + \ values are not removed and remain searchable." + operationId: disableField + parameters: + - name: id + in: path + description: Identifier of a field to disable. + required: true + schema: + type: string + example: 00000000031D02DA + responses: + "204": + description: Field has been disabled. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields/dropped: + get: + tags: + - fieldManagementV1 + summary: Get a list of dropped fields. + description: "Dropped fields are fields sent to Sumo Logic, but are ignored\ + \ since they are not defined in your Fields schema. In order to save these\ + \ values a field must both exist and be enabled." + operationId: listDroppedFields + responses: + "200": + description: | + List of dropped fields. + content: + application/json: + schema: + $ref: '#/components/schemas/ListDroppedFieldsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields/builtin: + get: + tags: + - fieldManagementV1 + summary: Get a list of built-in fields. + description: Built-in fields are created automatically by Sumo Logic for standard + configuration purposes. They include `_sourceHost` and `_sourceCategory`. + Built-in fields can't be deleted or disabled. + operationId: listBuiltInFields + responses: + "200": + description: List of all built-in fields. + content: + application/json: + schema: + $ref: '#/components/schemas/ListBuiltinFieldsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields/builtin/{id}: + get: + tags: + - fieldManagementV1 + summary: Get a built-in field. + description: Get the details of a built-in field. + operationId: getBuiltInField + parameters: + - name: id + in: path + description: Identifier of a built-in field. + required: true + schema: + type: string + example: 000000000000000A + responses: + "200": + description: The details of the built-in field. + content: + application/json: + schema: + $ref: '#/components/schemas/BuiltinField' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields/quota: + get: + tags: + - fieldManagementV1 + summary: Get capacity information. + description: Every account has a limited number of fields available. This endpoint + returns your account limitations and remaining quota. + operationId: getFieldQuota + responses: + "200": + description: Current fields capacity usage (fields count). + content: + application/json: + schema: + $ref: '#/components/schemas/FieldQuotaUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/ingestBudgets: + get: + tags: + - ingestBudgetManagementV2 + summary: Get a list of ingest budgets. + description: Get a list of all ingest budgets. The response is paginated with + a default limit of 100 budgets per page. + operationId: listIngestBudgetsV2 + parameters: + - name: limit + in: query + description: Limit the number of budgets returned in the response. The number + of budgets returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. + required: false + schema: + type: string + responses: + "200": + description: A paginated list of budgets. + content: + application/json: + schema: + $ref: '#/components/schemas/ListIngestBudgetsResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - ingestBudgetManagementV2 + summary: Create a new ingest budget. + description: Create a new ingest budget. + operationId: createIngestBudgetV2 + parameters: [] + requestBody: + description: Information about the new ingest budget. + content: + application/json: + schema: + $ref: '#/components/schemas/IngestBudgetDefinitionV2' + required: true + responses: + "200": + description: The ingest budget has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/IngestBudgetV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/ingestBudgets/{id}: + get: + tags: + - ingestBudgetManagementV2 + summary: Get an ingest budget. + description: Get an ingest budget by the given identifier. + operationId: getIngestBudgetV2 + parameters: + - name: id + in: path + description: Identifier of ingest budget to return. + required: true + schema: + type: string + responses: + "200": + description: Ingest budget object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/IngestBudgetV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - ingestBudgetManagementV2 + summary: Update an ingest budget. + description: Update an existing ingest budget. All properties specified in the + request are required. + operationId: updateIngestBudgetV2 + parameters: + - name: id + in: path + description: Identifier of the ingest budget to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the ingest budget. + content: + application/json: + schema: + $ref: '#/components/schemas/IngestBudgetDefinitionV2' + required: true + responses: + "200": + description: The ingest budget was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/IngestBudgetV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - ingestBudgetManagementV2 + summary: Delete an ingest budget. + description: Delete an ingest budget with the given identifier. + operationId: deleteIngestBudgetV2 + parameters: + - name: id + in: path + description: Identifier of the ingest budget to delete. + required: true + schema: + type: string + responses: + "204": + description: The ingest budget was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/ingestBudgets/{id}/usage/reset: + post: + tags: + - ingestBudgetManagementV2 + summary: Reset usage. + description: Reset ingest budget's current usage to 0 before the scheduled reset + time. This is only applicable to `dailyVolume` budgetType. + operationId: resetUsageV2 + parameters: + - name: id + in: path + description: Identifier of the ingest budget to reset usage. + required: true + schema: + type: string + responses: + "200": + description: Ingest budget's usage was reset successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/users: + get: + tags: + - userManagement + summary: Get a list of users. + description: Get a list of all users in the organization. The response is paginated + with a default limit of 100 users per page. + operationId: listUsers + parameters: + - name: limit + in: query + description: Limit the number of users returned in the response. The number + of users returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: sortBy + in: query + description: "Sort the list of users by the `firstName`, `lastName`, or `email`\ + \ field." + required: false + schema: + type: string + - name: email + in: query + description: Find user with the given email address. + required: false + schema: + minLength: 1 + type: string + - name: includeServiceAccounts + in: query + description: Include service accounts while listing users within the organization. + required: false + schema: + type: boolean + responses: + "200": + description: A paginated list of users in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListUserModelsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - userManagement + summary: Create a new user. + description: Create a new user in the organization. + operationId: createUser + parameters: [] + requestBody: + description: Information about the new user. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateUserDefinition' + required: true + responses: + "200": + description: The user has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/UserModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/users/{id}: + get: + tags: + - userManagement + summary: Get a user. + description: Get a user with the given identifier from the organization. + operationId: getUser + parameters: + - name: id + in: path + description: Identifier of user to return. + required: true + schema: + type: string + responses: + "200": + description: User object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/UserModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - userManagement + summary: Update a user. + description: Update an existing user in the organization. + operationId: updateUser + parameters: + - name: id + in: path + description: Identifier of the user to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the user. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateUserDefinition' + required: true + responses: + "200": + description: The user was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/UserModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - userManagement + summary: Delete a user. + description: Delete a user with the given identifier from the organization and + transfer their content to the user with the identifier specified in "transferTo". + operationId: deleteUser + parameters: + - name: id + in: path + description: Identifier of the user to delete. + required: true + schema: + type: string + - name: transferTo + in: query + description: "Identifier of the user to receive the transfer of content from\ + \ the deleted user.
**Note:** If `deleteContent` is not set to `true`,\ + \ and no user identifier is specified in `transferTo`, content from the\ + \ deleted user is transferred to the executing user." + required: false + schema: + type: string + - name: deleteContent + in: query + description: "Whether to delete content from the deleted user or not.
\ + \ **Warning:** If `deleteContent` is set to `true`, all of the content for\ + \ the user being deleted is permanently deleted and cannot be recovered." + required: false + schema: + type: boolean + responses: + "204": + description: User was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/users/{id}/email/requestChange: + post: + tags: + - userManagement + summary: Change email address. + description: "An email with an activation link is sent to the user’s new email\ + \ address. The user must click the link in the email within seven days to\ + \ complete the email address change, or the link will expire." + operationId: requestChangeEmail + parameters: + - name: id + in: path + description: Identifier of the user to change email address. + required: true + schema: + type: string + requestBody: + description: New email address of the user. + content: + application/json: + schema: + $ref: '#/components/schemas/ChangeEmailRequest' + required: true + responses: + "204": + description: Email change request was submitted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/users/{id}/password/reset: + post: + tags: + - userManagement + summary: Reset password. + description: Reset a user's password. + operationId: resetPassword + parameters: + - name: id + in: path + description: Identifier of the user to reset password. + required: true + schema: + type: string + responses: + "204": + description: User's password was reset successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/users/{id}/unlock: + post: + tags: + - userManagement + summary: Unlock a user. + description: Unlock another user's account. + operationId: unlockUser + parameters: + - name: id + in: path + description: The id of the user that needs to be unlocked. + required: true + schema: + type: string + responses: + "204": + description: User's account was unlocked successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/users/{id}/mfa/disable: + put: + tags: + - userManagement + summary: Disable MFA for user. + description: Disable multi-factor authentication for given user. + operationId: disableMfa + parameters: + - name: id + in: path + description: Identifier of the user to disable MFA for. + required: true + schema: + type: string + requestBody: + description: Email and Password of the user to disable MFA for. + content: + application/json: + schema: + $ref: '#/components/schemas/DisableMfaRequest' + required: true + responses: + "204": + description: User's MFA was disabled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/users/{id}/resendWelcomeEmail: + post: + tags: + - userManagement + summary: Resend verification email. + description: Resend the welcome email to a user. + operationId: resendWelcomeEmail + parameters: + - name: id + in: path + description: Identifier of the user to resend the welcome email. + required: true + schema: + type: string + responses: + "204": + description: Welcome email was resent successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/roles: + get: + tags: + - roleManagement + summary: Get a list of roles. + description: Get a list of all the roles in the organization. The response is + paginated with a default limit of 100 roles per page. + operationId: listRoles + parameters: + - name: limit + in: query + description: Limit the number of roles returned in the response. The number + of roles returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: sortBy + in: query + description: Sort the list of roles by the `name` field. + required: false + schema: + type: string + - name: name + in: query + description: Only return roles matching the given name. + required: false + schema: + minLength: 1 + type: string + responses: + "200": + description: A paginated list of roles in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListRoleModelsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - roleManagement + summary: Create a new role. + description: Create a new role in the organization. + operationId: createRole + parameters: [] + requestBody: + description: Information about the new role. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateRoleDefinition' + required: true + responses: + "200": + description: The role has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createRole + /v1/roles/{id}: + get: + tags: + - roleManagement + summary: Get a role. + description: Get a role with the given identifier in the organization. + operationId: getRole + parameters: + - name: id + in: path + description: Identifier of the role to fetch. + required: true + schema: + type: string + responses: + "200": + description: Role object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getRole + put: + tags: + - roleManagement + summary: Update a role. + description: Update an existing role in the organization. + operationId: updateRole + parameters: + - name: id + in: path + description: Identifier of the role to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the role. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateRoleDefinition' + required: true + responses: + "200": + description: The user was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateRole + delete: + tags: + - roleManagement + summary: Delete a role. + description: Delete a role with the given identifier from the organization. + operationId: deleteRole + parameters: + - name: id + in: path + description: Identifier of the role to delete. + required: true + schema: + type: string + responses: + "204": + description: Role was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteRole + /v1/roles/{roleId}/users/{userId}: + put: + tags: + - roleManagement + summary: Assign a role to a user. + description: Assign a role to a user in the organization. + operationId: assignRoleToUser + parameters: + - name: roleId + in: path + description: Identifier of the role to assign. + required: true + schema: + type: string + - name: userId + in: path + description: Identifier of the user to assign the role to. + required: true + schema: + type: string + responses: + "200": + description: Role was successfully assigned to the user. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - roleManagement + summary: Remove role from a user. + description: Remove a role from a user in the organization. + operationId: removeRoleFromUser + parameters: + - name: roleId + in: path + description: Identifier of the role to delete. + required: true + schema: + type: string + - name: userId + in: path + description: Identifier of the user to remove the role from. + required: true + schema: + type: string + responses: + "204": + description: Role was successfully removed from the user. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/roles: + get: + tags: + - roleManagementV2 + summary: Get a list of roles. + description: Get a list of all the roles in the organization. The response is + paginated with a default limit of 100 roles per page. + operationId: listRolesV2 + parameters: + - name: limit + in: query + description: Limit the number of roles returned in the response. The number + of roles returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: sortBy + in: query + description: Sort the list of roles by the `name` field. + required: false + schema: + type: string + - name: name + in: query + description: Only return roles matching the given name. + required: false + schema: + minLength: 1 + type: string + responses: + "200": + description: A paginated list of roles in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListRoleModelsResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - roleManagementV2 + summary: Create a new role. + description: Create a new role in the organization. + operationId: createRoleV2 + parameters: [] + requestBody: + description: Information about the new role. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateRoleDefinitionV2' + required: true + responses: + "200": + description: The role has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModelV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createRoleV2 + /v2/roles/{id}: + get: + tags: + - roleManagementV2 + summary: Get a role. + description: Get a role with the given identifier in the organization. + operationId: getRoleV2 + parameters: + - name: id + in: path + description: Identifier of the role to fetch. + required: true + schema: + type: string + responses: + "200": + description: Role object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/GetRoleDefinitionV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getRoleV2 + put: + tags: + - roleManagementV2 + summary: Update a role. + description: Update an existing role in the organization. + operationId: updateRoleV2 + parameters: + - name: id + in: path + description: Identifier of the role to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the role. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateRoleDefinitionV2' + required: true + responses: + "200": + description: The user was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModelV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateRoleV2 + delete: + tags: + - roleManagementV2 + summary: Delete a role. + description: Delete a role with the given identifier from the organization. + operationId: deleteRoleV2 + parameters: + - name: id + in: path + description: Identifier of the role to delete. + required: true + schema: + type: string + responses: + "204": + description: Role was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteRoleV2 + /v2/roles/{roleId}/users/{userId}: + put: + tags: + - roleManagementV2 + summary: Assign a role to a user. + description: Assign a role to a user in the organization. + operationId: assignRoleToUserV2 + parameters: + - name: roleId + in: path + description: Identifier of the role to assign. + required: true + schema: + type: string + - name: userId + in: path + description: Identifier of the user to assign the role to. + required: true + schema: + type: string + responses: + "200": + description: Role was successfully assigned to the user. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModelV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - roleManagementV2 + summary: Remove role from a user. + description: Remove a role from a user in the organization. + operationId: removeRoleFromUserV2 + parameters: + - name: roleId + in: path + description: Identifier of the role to delete. + required: true + schema: + type: string + - name: userId + in: path + description: Identifier of the user to remove the role from. + required: true + schema: + type: string + responses: + "204": + description: Role was successfully removed from the user. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders: + post: + tags: + - folderManagement + summary: Create a new folder. + description: Creates a new folder under the given parent folder. Set the header + parameter `isAdminMode` to `"true"` to create a folder inside "Admin Recommended" + folder. + operationId: createFolder + parameters: + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + requestBody: + description: Information about the new folder. + content: + application/json: + schema: + $ref: '#/components/schemas/FolderDefinition' + required: true + responses: + "200": + description: The folder has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/{id}: + get: + tags: + - folderManagement + summary: Get a folder. + description: Get a folder with the given identifier. Set the header parameter + `isAdminMode` to `"true"` if fetching a folder inside "Admin Recommended" + folder. + operationId: getFolder + parameters: + - name: id + in: path + description: Identifier of the folder to fetch. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: Folder that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - folderManagement + summary: Update a folder. + description: Update an existing folder with the given identifier. Set the header + parameter `isAdminMode` to `"true"` if updating a folder inside "Admin Recommended" + folder. + operationId: updateFolder + parameters: + - name: id + in: path + description: Identifier of the folder to update. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + requestBody: + description: Information to update about the folder. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFolderRequest' + required: true + responses: + "200": + description: The folder was successfully updated. + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/personal: + get: + tags: + - folderManagement + summary: Get personal folder. + description: Get the personal folder of the current user. + operationId: getPersonalFolder + responses: + "200": + description: | + The personal folder of the current user. + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/global: + get: + tags: + - folderManagement + summary: Schedule Global View job + description: |- + Schedule an asynchronous job to get Global View. Global View contains all top-level content items that a user has permissions to view in the organization. User can traverse the top-level folders using [GetFolder API](#operation/getFolder) to get rest of the content items. Make sure you set `isAdminMode` header parameter to `true` when traversing top-level items. + + _Global View is not a real folder, therefore there is no folder identifier associated with it_. + + _You get back a identifier of asynchronous job in response to this endpoint. See [Asynchronous-Request](#section/Getting-Started/Asynchronous-Request) section for more details on how to work with asynchronous request._ + operationId: getGlobalFolderAsync + parameters: + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: An asynchronous job to get a list of all content items been + scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/global/{jobId}/status: + get: + tags: + - folderManagement + summary: Get Global View job status + description: "Get the status of an asynchronous Global View job for the given\ + \ job identifier. If job succeeds, use [Global View Result](#operation/getGlobalFolderAsyncResult)\ + \ endpoint to fetch all content items that you have permissions to view." + operationId: getGlobalFolderAsyncStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Global View job. + required: true + schema: + type: string + responses: + "200": + description: Asynchronous Global View job status. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/global/{jobId}/result: + get: + tags: + - folderManagement + summary: Get Global View job result + description: Get result of a Global View job for the given job identifier. The + result will be a list of all content items that a user has permissions to + view in the organization. + operationId: getGlobalFolderAsyncResult + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Global View job. + required: true + schema: + type: string + responses: + "200": + description: List of all content items with view permission. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentList' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/adminRecommended: + get: + tags: + - folderManagement + summary: Schedule Admin Recommended folder job + description: |- + Schedule an asynchronous job to get the top-level Admin Recommended content items. You can read more about Admin Recommended folder [here](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode#move-important-content-to-admin-recommended). + + _You get back a identifier of asynchronous job in response to this endpoint. See [Asynchronous-Request](#section/Getting-Started/Asynchronous-Request) section for more details on how to work with asynchronous request._ + operationId: getAdminRecommendedFolderAsync + parameters: + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: An asynchronous job to get the Admin Recommended folder has + been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/adminRecommended/{jobId}/status: + get: + tags: + - folderManagement + summary: Get Admin Recommended folder job status + description: "Get the status of an asynchronous Admin Recommended folder job\ + \ for the given job identifier. If job succeeds, use [Admin Recommended Job\ + \ Result](#operation/getAdminRecommendedFolderAsyncResult) endpoint to fetch\ + \ top-level content items in Admin Recommended folder." + operationId: getAdminRecommendedFolderAsyncStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Admin Recommended folder job. + required: true + schema: + type: string + responses: + "200": + description: Asynchronous Admin Recommended folder job status. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/adminRecommended/{jobId}/result: + get: + tags: + - folderManagement + summary: Get Admin Recommended folder job result + description: Get result of an Admin Recommended job for the given job identifier. + The result will be "Admin Recommended" folder with a list of top-level Admin + Recommended content items in `children` field. + operationId: getAdminRecommendedFolderAsyncResult + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Admin Recommended folder job. + required: true + schema: + type: string + responses: + "200": + description: Admin Recommended folder. + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/installedApps: + get: + tags: + - folderManagement + summary: Schedule Installed Apps folder job + description: |- + Schedule an asynchronous job to get the top-level Installed Apps content items. + + _You get back a identifier of asynchronous job in response to this endpoint. See [Asynchronous-Request](#section/Getting-Started/Asynchronous-Request) section for more details on how to work with asynchronous request._ + operationId: getInstalledAppsFolderAsync + parameters: + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: An asynchronous job to get the Installed Apps folder has been + scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/installedApps/{jobId}/status: + get: + tags: + - folderManagement + summary: Get Installed Apps folder job status + description: "Get the status of an asynchronous Installed Apps folder job for\ + \ the given job identifier. If job succeeds, use [Installed Apps Job Result](#operation/getInstalledAppsFolderAsyncResult)\ + \ endpoint to fetch top-level content items in Installed Apps folder." + operationId: getInstalledAppsFolderAsyncStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Installed Apps folder job. + required: true + schema: + type: string + responses: + "200": + description: Asynchronous Installed Apps folder job status. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/installedApps/{jobId}/result: + get: + tags: + - folderManagement + summary: Get Installed Apps folder job result + description: Get result of an Installed Apps job for the given job identifier. + The result will be "Installed Apps" folder with a list of top-level Installed + Apps content items in `children` field. + operationId: getInstalledAppsFolderAsyncResult + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Installed Apps folder job. + required: true + schema: + type: string + responses: + "200": + description: Installed Apps folder. + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/permissions: + get: + tags: + - contentPermissions + summary: Get permissions of a content item + description: Returns content permissions of a content item with the given identifier. + operationId: getContentPermissions + parameters: + - name: id + in: path + description: The identifier of the content item. + required: true + schema: + type: string + - name: explicitOnly + in: query + description: "There are two permission types: explicit and implicit. Permissions\ + \ specifically assigned to the content item are explicit. Permissions derived\ + \ from a parent content item, like a folder are implicit. To return only\ + \ explicit permissions set this to true." + schema: + type: boolean + default: false + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: A list of permissions for the requested content item. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPermissionResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/permissions/add: + put: + tags: + - contentPermissions + summary: Add permissions to a content item. + description: Add permissions to a content item with the given identifier. + operationId: addContentPermissions + parameters: + - name: id + in: path + description: The identifier of the content item. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + requestBody: + description: New permissions to add to the content item with the given identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPermissionUpdateRequest' + required: true + responses: + "200": + description: Updated permission object for the requested content item. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPermissionResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/permissions/remove: + put: + tags: + - contentPermissions + summary: Remove permissions from a content item. + description: Remove permissions from a content item with the given identifier. + operationId: removeContentPermissions + parameters: + - name: id + in: path + description: The identifier of the content item. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + requestBody: + description: Permissions to remove from a content item with the given identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPermissionUpdateRequest' + required: true + responses: + "200": + description: Updated permissions for the requested content item. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPermissionResult' + default: + description: Operation failed with an error. Check that your request is + valid. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/path: + get: + tags: + - contentManagement + summary: Get content item by path. + description: |- + Get a content item corresponding to the given path. + + _Path is specified in the required query parameter `path`. The path should be URL encoded._ For example, to get "Acme Corp" folder of a user "user@sumo.com" you can use the following curl command: + ```bash + curl https://api.sumologic.com/api/v2/content/path?path=/Library/Users/user%40sumo.com/Acme%20Corp + ``` + + + The absolute path to a content item should be specified to get the item. The content library has "Library" folder at the root level. For items in "Personal" folder, the base path is "/Library/Users/user@sumo.com" where "user@sumo.com" is the email address of the user. For example if a user with email address `wile@acme.com` has `Rockets` folder inside Personal folder, the path of Rockets folder will be `/Library/Users/wile@acme.com/Rockets`. + + For items in "Admin Recommended" folder, the base path is "/Library/Admin Recommended". For example, given a folder `Acme` in Admin Recommended folder, the path will be `/Library/Admin Recommended/Acme`. + operationId: getItemByPath + parameters: + - name: path + in: query + description: Path of the content item to retrieve. + required: true + schema: + type: string + example: /Library/Users/user@sumo.com/SampleFolder + responses: + "200": + description: Content item corresponding to the given path. + content: + application/json: + schema: + $ref: '#/components/schemas/Content' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{contentId}/path: + get: + tags: + - contentManagement + summary: Get path of an item. + description: | + Get full path of a content item with the given identifier. + operationId: getPathById + parameters: + - name: contentId + in: path + description: Identifier of the content item to get the path. + required: true + schema: + type: string + responses: + "200": + description: Full path of the content item. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPath' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/export: + post: + tags: + - contentManagement + summary: Start a content export job. + description: |- + Schedule an _asynchronous_ export of content with the given identifier. You will get back an asynchronous job identifier on success. Use the [getAsyncExportStatus](#operation/getAsyncExportStatus) endpoint and the job identifier you got back in the response to track the status of an asynchronous export job. + If the content item is a folder, everything under the folder is exported recursively. Keep in mind when exporting large folders that there is a limit of 1000 content objects that can be exported at once. If you want to import more than 1000 content objects, then be sure to split the import into batches of 1000 objects or less. + The results from the export are compatible with the Library import feature in the Sumo Logic user interface as well as the API content import job. + operationId: beginAsyncExport + parameters: + - name: id + in: path + description: The identifier of the content item to export. Identifiers from + the Library in the Sumo user interface are provided in decimal format which + is incompatible with this API. The identifier needs to be in hexadecimal + format. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: Export job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{contentId}/export/{jobId}/status: + get: + tags: + - contentManagement + summary: Content export job status. + description: "Get the status of an asynchronous content export request for the\ + \ given job identifier. On success, use the [getExportResult](#operation/getAsyncExportResult)\ + \ endpoint to get the result of the export job." + operationId: getAsyncExportStatus + parameters: + - name: contentId + in: path + description: The identifier of the exported content item. + required: true + schema: + type: string + - name: jobId + in: path + description: The identifier of the asynchronous export job. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: The status of the export job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{contentId}/export/{jobId}/result: + get: + tags: + - contentManagement + summary: Content export job result. + description: Get results from content export job for the given job identifier. + The results from this export are incompatible with the Library import feature + in the Sumo user interface. + operationId: getAsyncExportResult + parameters: + - name: contentId + in: path + description: The identifier of the exported content item. + required: true + schema: + type: string + - name: jobId + in: path + description: The identifier of the asynchronous job. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: The result of export job. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/{folderId}/import: + post: + tags: + - contentManagement + summary: Start a content import job. + description: "Schedule an asynchronous import of content inside an existing\ + \ folder with the given identifier. Import requests can be used to create\ + \ or update content within a folder. Content items need to have a unique name\ + \ within their folder. If there is already a content item with the same name\ + \ in the folder, you can set the `overwrite` parameter to `true` to overwrite\ + \ existing content items. By default, the `overwrite` parameter is set to\ + \ `false`, where the import will fail if a content item with the same name\ + \ already exist. Keep in mind when importing large folders that there is a\ + \ limit of 1000 content objects that can be imported at once. If you want\ + \ to import more than 1000 content objects, then be sure to split the import\ + \ into batches of 1000 objects or less." + operationId: beginAsyncImport + parameters: + - name: folderId + in: path + description: The identifier of the folder to import into. Identifiers from + the Library in the Sumo user interface are provided in decimal format which + is incompatible with this API. The identifier needs to be in hexadecimal + format. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + - name: overwrite + in: query + description: Set this to "true" to overwrite a content item if the name already + exists. + required: false + schema: + type: boolean + default: false + requestBody: + description: The content to import. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncDefinition' + required: true + responses: + "200": + description: Import job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/{folderId}/import/{jobId}/status: + get: + tags: + - contentManagement + summary: Content import job status. + description: Get the status of a content import job for the given job identifier. + operationId: getAsyncImportStatus + parameters: + - name: folderId + in: path + description: The identifier of the folder to import into. + required: true + schema: + type: string + - name: jobId + in: path + description: The identifier of the import request. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: The status of the import job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/{folderId}/import/{jobId}/result: + get: + tags: + - contentManagement + summary: Content import job result. + description: Get the complete summary of content import job for the given job + identifier. + operationId: getAsyncImportResult + parameters: + - name: folderId + in: path + description: The identifier of the folder to import into. + required: true + schema: + type: string + - name: jobId + in: path + description: The identifier of the import request. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: The result of the import job. + content: + application/json: + schema: + $ref: '#/components/schemas/ImportResult' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/delete: + delete: + tags: + - contentManagement + summary: Start a content deletion job. + description: Start an asynchronous content deletion job with the given identifier. + operationId: beginAsyncDelete + parameters: + - name: id + in: path + description: Identifier of the content to delete. Identifiers from the Library + in the Sumo user interface are provided in decimal format which is incompatible + with this API. The identifier needs to be in hexadecimal format. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: Deletion job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/delete/{jobId}/status: + get: + tags: + - contentManagement + summary: Content deletion job status. + description: Get the status of an asynchronous content deletion job request + for the given job identifier. + operationId: getAsyncDeleteStatus + parameters: + - name: id + in: path + description: Identifier of the content to delete. + required: true + schema: + type: string + - name: jobId + in: path + description: The identifier of the asynchronous job. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: The status of the content deletion job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/copy: + post: + tags: + - contentManagement + summary: Start a content copy job. + description: "Start an asynchronous content copy job with the given identifier\ + \ to the destination folder. If the content item is a folder, everything under\ + \ the folder is copied recursively." + operationId: beginAsyncCopy + parameters: + - name: id + in: path + description: The identifier of the content item to copy. Identifiers from + the Library in the Sumo user interface are provided in decimal format which + is incompatible with this API. The identifier needs to be in hexadecimal + format. + required: true + schema: + type: string + - name: destinationFolder + in: query + description: The identifier of the destination folder. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: Content copy job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/copy/{jobId}/status: + get: + tags: + - contentManagement + summary: Content copy job status. + description: | + Get the status of the copy request with the given job identifier. On success, field `statusMessage` will contain identifier of the newly copied content in format: `id: {hexIdentifier}`. + operationId: asyncCopyStatus + parameters: + - name: id + in: path + description: The identifier of the content which was copied. + required: true + schema: + type: string + - name: jobId + in: path + description: The identifier of the asynchronous copy request job. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: The status of the content copy job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + example: + status: Success + statusMessage: "id: 0000000000000197" + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/move: + post: + tags: + - contentManagement + summary: Move an item. + description: | + Moves an item from its current location to another folder. + operationId: moveItem + parameters: + - name: destinationFolderId + in: query + description: Identifier of the destination folder. + required: true + schema: + type: string + - name: id + in: path + description: Identifier of the item the user wants to move. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content + Administrator. + required: false + schema: + type: string + responses: + "200": + description: Content was moved successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/transformationRules: + get: + tags: + - transformationRuleManagement + summary: Get a list of transformation rules. + description: Get a list of transformation rules in the organization. The response + is paginated with a default limit of 100 rules per page. + operationId: getTransformationRules + parameters: + - name: limit + in: query + description: Limit the number of transformation rules returned in the response. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + example: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + "200": + description: List of transformation rules. + content: + application/json: + schema: + $ref: '#/components/schemas/TransformationRulesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - transformationRuleManagement + summary: Create a new transformation rule. + description: Create a new transformation rule. + operationId: createRule + parameters: [] + requestBody: + description: The configuration of the transformation rule to create. + content: + application/json: + schema: + $ref: '#/components/schemas/TransformationRuleRequest' + required: true + responses: + "200": + description: The transformation rule was successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/TransformationRuleResponse' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/transformationRules/{id}: + get: + tags: + - transformationRuleManagement + summary: Get a transformation rule. + description: Get a transformation rule with the given identifier. + operationId: getTransformationRule + parameters: + - name: id + in: path + description: Identifier of transformation rule to return. + required: true + schema: + type: string + responses: + "200": + description: Transformation rule object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/TransformationRuleResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - transformationRuleManagement + summary: Update a transformation rule. + description: Update an existing transformation rule. All properties specified + in the request are replaced. Missing properties will remain the same. + operationId: updateTransformationRule + parameters: + - name: id + in: path + description: Identifier of the transformation rule to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the transformation rule. + content: + application/json: + schema: + $ref: '#/components/schemas/TransformationRuleRequest' + required: true + responses: + "200": + description: The transformation rule was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/TransformationRuleResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - transformationRuleManagement + summary: Delete a transformation rule. + description: Delete a transformation rule with the given identifier. + operationId: deleteRule + parameters: + - name: id + in: path + description: Identifier of the transformation rule to delete. + required: true + schema: + type: string + responses: + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "204": + description: The transformation rule was successfully deleted. + /v1/account/accountOwner: + get: + tags: + - accountManagement + summary: Get the owner of an account. + description: Returns the user identifier of the account owner. + operationId: getAccountOwner + responses: + "200": + description: User identifier of the account owner. + content: + application/json: + schema: + type: string + example: 00000000000001E7 + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/status: + get: + tags: + - accountManagement + summary: Get overview of the account status. + description: "Get information related to the account's plan, pricing model,\ + \ expiration and payment status." + operationId: getStatus + responses: + "200": + description: Overview of the account. + content: + application/json: + schema: + $ref: '#/components/schemas/AccountStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/subdomain: + get: + tags: + - accountManagement + summary: Get the configured subdomain. + description: Get the configured subdomain. + operationId: getSubdomain + responses: + "200": + description: The subdomain's definition. + content: + application/json: + schema: + $ref: '#/components/schemas/SubdomainDefinitionResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - accountManagement + summary: Update account subdomain. + description: Update a subdomain. Only the Account Owner can update the subdomain. + operationId: updateSubdomain + requestBody: + description: The new subdomain. + content: + application/json: + schema: + $ref: '#/components/schemas/ConfigureSubdomainRequest' + required: true + responses: + "200": + description: The updated subdomain's definition. + content: + application/json: + schema: + $ref: '#/components/schemas/SubdomainDefinitionResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - accountManagement + summary: Create account subdomain. + description: Create a subdomain. Only the Account Owner can create a subdomain. + operationId: createSubdomain + requestBody: + description: The new subdomain. + content: + application/json: + schema: + $ref: '#/components/schemas/ConfigureSubdomainRequest' + required: true + responses: + "200": + description: Created a new subdomain. + content: + application/json: + schema: + $ref: '#/components/schemas/SubdomainDefinitionResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - accountManagement + summary: Delete the configured subdomain. + description: Delete the configured subdomain. + operationId: deleteSubdomain + responses: + "204": + description: The subdomain was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/subdomain/recover: + post: + tags: + - accountManagement + summary: Recover subdomains for a user. + description: Send an email with the subdomain information for a user with the + given email address. + operationId: recoverSubdomains + parameters: + - name: email + in: query + description: Email address of the user to get subdomain information. + required: true + schema: + type: string + responses: + "204": + description: An email containing information about associated subdomains + for the given email was sent. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/usage/report: + post: + tags: + - accountManagement + summary: Export credits usage details as CSV. + description: "Export the credit usage details as csv for the specific period\ + \ of time given as input in the form of a start and end date with a specific\ + \ grouping according to `day`, `week`, `month`, Note that this API will work\ + \ only for credits plan customers." + operationId: exportUsageReport + requestBody: + description: Export Usage Report Request. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageReportRequest' + required: true + responses: + "200": + description: Export Response with Job Id. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageReportResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/usage/report/{jobId}/status: + get: + tags: + - accountManagement + summary: Get report generation status. + description: Get the report download URL and status using Job Id. + operationId: getStatusForReport + parameters: + - name: jobId + in: path + description: Job Id for the report to be exported. + required: true + schema: + type: string + responses: + "200": + description: Status response containing status and downloadURL if successful. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageReportStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/usageForecast: + get: + tags: + - accountManagement + summary: Get usage forecast with respect to last number of days specified. + description: "Get usage forecast with respect to last number of days specified.\ + \ If nothing is provided for last number of days, the average of term period\ + \ will be taken to do the forecast." + operationId: getUsageForecast + parameters: + - name: numberOfDays + in: query + description: Number of days to use for calculating average usage and forecast. + required: false + schema: + type: number + responses: + "200": + description: Usage Forecast. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageForecastResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/plan/pendingUpdateRequest: + get: + tags: + - accountManagement + summary: "Get the pending plan update request, if any." + description: Get the pending plan update request which will be applicable from + next billing cycle. + operationId: getPendingUpdateRequest + responses: + "200": + description: Pending plan update request. + content: + application/json: + schema: + $ref: '#/components/schemas/PendingUpdateRequest' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - accountManagement + summary: "Delete the pending plan update request, if any." + description: Delete the pending plan update request which would be applicable + from next billing cycle. + operationId: deletePendingUpdateRequest + responses: + "204": + description: Deleted the pending update request. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/organizations/usages: + post: + tags: + - orgsManagement + summary: Get usages for child orgs. + description: Get the credits usage details of the child orgs for a parent. + operationId: getChildUsages + requestBody: + description: Details for the usages to be fetched. + content: + application/json: + schema: + $ref: '#/components/schemas/ChildUsageDetailsRequest' + responses: + "200": + description: Usage details for the child orgs. + content: + application/json: + schema: + $ref: '#/components/schemas/ChildUsageDetailsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/metricsSearches: + post: + tags: + - metricsSearchesManagement + summary: Save a metrics search. + description: "Saves a metrics search in the content library. Metrics search\ + \ consists of one or more queries, a time range, a quantization period and\ + \ a set of chart properties like line width." + operationId: createMetricsSearch + parameters: [] + requestBody: + description: The definition of the metrics search. + content: + application/json: + schema: + $ref: '#/components/schemas/SaveMetricsSearchRequest' + required: true + responses: + "200": + description: Newly created metrics search. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchInstance' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/metricsSearches/{id}: + get: + tags: + - metricsSearchesManagement + summary: Get a metrics search. + description: Returns a metrics search with the specified identifier. + operationId: getMetricsSearch + parameters: + - name: id + in: path + description: Identifier of the metrics search. + required: true + schema: + type: string + responses: + "200": + description: A metrics search object with metadata. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchInstance' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - metricsSearchesManagement + summary: Updates a metrics search. + description: "Updates a metrics search with the specified identifier. Partial\ + \ updates are not supported, you must provide values for all fields." + operationId: updateMetricsSearch + parameters: + - name: id + in: path + description: Identifier of the metrics search. + required: true + schema: + type: string + requestBody: + description: An updated metrics search definition. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchV1' + required: true + responses: + "200": + description: The metrics saved search that was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchInstance' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - metricsSearchesManagement + summary: Deletes a metrics search. + description: Deletes a metrics search from the content library. + operationId: deleteMetricsSearch + parameters: + - name: id + in: path + description: Identifier of the metrics search. + required: true + schema: + type: string + responses: + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "204": + description: The metrics search was successfully deleted. + /v1/tokens: + get: + tags: + - tokensLibraryManagement + summary: Get a list of tokens. + description: Get a list of all tokens in the token library. + operationId: listTokens + responses: + "200": + description: A list of tokens. + content: + application/json: + schema: + $ref: '#/components/schemas/ListTokensBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - tokensLibraryManagement + summary: Create a token. + description: Create a token in the token library. + operationId: createToken + requestBody: + description: Information about the token to create. + content: + application/json: + schema: + $ref: '#/components/schemas/TokenBaseDefinition' + required: true + responses: + "200": + description: The token has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/TokenBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tokens/{id}: + get: + tags: + - tokensLibraryManagement + summary: Get a token. + description: Get a token with the given identifier in the token library. + operationId: getToken + parameters: + - name: id + in: path + description: Identifier of the token to return. + required: true + schema: + type: string + responses: + "200": + description: Token object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/TokenBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - tokensLibraryManagement + summary: Update a token. + description: Update a token with the given identifier in the token library. + operationId: updateToken + parameters: + - name: id + in: path + description: Identifier of the token to update. + required: true + schema: + type: string + requestBody: + description: The token to update. + content: + application/json: + schema: + $ref: '#/components/schemas/TokenBaseDefinitionUpdate' + required: true + responses: + "200": + description: The token was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/TokenBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - tokensLibraryManagement + summary: Delete a token. + description: Delete a token with the given identifier in the token library. + operationId: deleteToken + parameters: + - name: id + in: path + description: Identifier of the token to delete. + required: true + schema: + type: string + responses: + "204": + description: The token was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/accessKeys: + get: + tags: + - accessKeyManagement + summary: List all access keys. + description: List all access keys in your account. + operationId: listAccessKeys + parameters: + - name: limit + in: query + description: Limit the number of access keys returned in the response. The + number of access keys returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + "200": + description: A list of all access keys in your account. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListAccessKeysResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - accessKeyManagement + summary: Create an access key. + description: |- + Creates a new access ID and key pair. The new access key can be used from the domains specified in corsHeaders field. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + operationId: createAccessKey + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyCreateRequest' + required: true + responses: + "200": + description: Access key created successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKey' + default: + description: Access key creation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/accessKeys/personal: + get: + tags: + - accessKeyManagement + summary: List personal keys. + description: List all access keys that belong to your user. + operationId: listPersonalAccessKeys + responses: + "200": + description: A list of all access keys that belong to the user making the + request. + content: + application/json: + schema: + $ref: '#/components/schemas/ListAccessKeysResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/accessKeys/scopes: + get: + tags: + - accessKeyManagement + summary: Get all scopes. + description: Get a list of all of the scopes that can be added to an access + key. + operationId: listScopes + responses: + "200": + description: A list of scopes that can be added to an access key. + content: + application/json: + schema: + $ref: '#/components/schemas/ScopesList' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/accessKeys/{id}: + put: + tags: + - accessKeyManagement + summary: Update an access key. + description: Updates the properties of existing accessKey by accessId. It can + be used to enable or disable the access key and to update the corsHeaders + list. + operationId: updateAccessKey + parameters: + - name: id + in: path + description: The accessId of the access key to update. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyUpdateRequest' + required: true + responses: + "200": + description: Access key updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyPublic' + default: + description: Access key update failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - accessKeyManagement + summary: Delete an access key. + description: Deletes the access key with the given accessId. + operationId: deleteAccessKey + parameters: + - name: id + in: path + description: The accessId of the access key to delete. + required: true + schema: + type: string + responses: + "204": + description: Access key deletion completed successfully. + default: + description: Access key deletion failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/accessKeys/{id}/rotate: + put: + tags: + - accessKeyManagement + summary: Rotate the access key secret + description: "Generates a new secret for the access key that is passed in the\ + \ call, keeping the same access ID." + operationId: rotateAccessKeySecret + parameters: + - name: id + in: path + description: The accessId of the access key to rotate the secret for. + required: true + schema: + type: string + responses: + "200": + description: Access key secret rotated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKey' + default: + description: Access key secret rotation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/saml/identityProviders: + get: + tags: + - samlConfigurationManagement + summary: Get a list of SAML configurations. + description: Get a list of all SAML configurations in the organization. + operationId: getIdentityProviders + responses: + "200": + description: A list of SAML configurations in the organization. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/SamlIdentityProvider' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - samlConfigurationManagement + summary: Create a new SAML configuration. + description: Create a new SAML configuration in the organization. + operationId: createIdentityProvider + parameters: [] + requestBody: + description: The configuration of the SAML identity provider. + content: + application/json: + schema: + $ref: '#/components/schemas/SamlIdentityProviderRequest' + required: true + responses: + "200": + description: The SAML configuration was successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/SamlIdentityProvider' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/saml/identityProviders/{id}: + put: + tags: + - samlConfigurationManagement + summary: Update a SAML configuration. + description: Update an existing SAML configuration in the organization. + operationId: updateIdentityProvider + parameters: + - name: id + in: path + description: Identifier of the SAML configuration to update. + required: true + schema: + type: string + requestBody: + description: Information to update in the SAML configuration. + content: + application/json: + schema: + $ref: '#/components/schemas/SamlIdentityProviderRequest' + required: true + responses: + "200": + description: The SAML configuration was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/SamlIdentityProvider' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - samlConfigurationManagement + summary: Delete a SAML configuration. + description: Delete a SAML configuration with the given identifier from the + organization. + operationId: deleteIdentityProvider + parameters: + - name: id + in: path + description: Identifier of the SAML configuration to delete. + required: true + schema: + type: string + responses: + "204": + description: The SAML configuration was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/saml/allowlistedUsers: + get: + tags: + - samlConfigurationManagement + summary: Get list of allowlisted users. + description: Get a list of allowlisted users. + operationId: getAllowlistedUsers + responses: + "200": + description: A list of allowlisted users from the organization. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AllowlistedUserResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/saml/allowlistedUsers/{userId}: + post: + tags: + - samlConfigurationManagement + summary: Allowlist a user. + description: Allowlist a user from SAML lockdown allowing them to sign in using + a password in addition to SAML. + operationId: createAllowlistedUser + parameters: + - name: userId + in: path + description: Identifier of the user. + required: true + schema: + type: string + responses: + "200": + description: User was successfully allowlisted. + content: + application/json: + schema: + $ref: '#/components/schemas/AllowlistedUserResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - samlConfigurationManagement + summary: Remove an allowlisted user. + description: Remove an allowlisted user requiring them to sign in using SAML. + operationId: deleteAllowlistedUser + parameters: + - name: userId + in: path + description: Identifier of user that will no longer be allowlisted from SAML + Lockdown. + required: true + schema: + type: string + responses: + "204": + description: User was successfully removed from the allowlist for SAML Lockdown. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/saml/lockdown/enable: + post: + tags: + - samlConfigurationManagement + summary: Require SAML for sign-in. + description: Enabling SAML lockdown requires users to sign in using SAML preventing + them from logging in with an email and password. + operationId: enableSamlLockdown + responses: + "204": + description: SAML lockdown was enabled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/saml/lockdown/disable: + post: + tags: + - samlConfigurationManagement + summary: Disable SAML lockdown. + description: Disable SAML lockdown for the organization. + operationId: disableSamlLockdown + responses: + "204": + description: SAML lockdown was disabled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/saml/identityProviders/{id}/metadata: + get: + tags: + - samlConfigurationManagement + summary: Get SAML configuration metadata XML. + description: Get metadata XML for a specific SAML configuration within the organization. + operationId: getSamlMetadata + parameters: + - name: id + in: path + description: Identifier of the SAML configuration for which metadata should + be returned. + required: true + schema: + type: string + responses: + "200": + description: A SAML configuration metadata XML within the organization. + content: + application/xml: + schema: + type: string + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAllowlist/addresses: + get: + tags: + - serviceAllowlistManagement + summary: List all allowlisted CIDRs/IP addresses. + description: Get a list of all allowlisted CIDR notations and/or IP addresses + for the organization. + operationId: listAllowlistedCidrs + responses: + "200": + description: List of all allowlisted CIDR notations and/or IP addresses + for the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/CidrList' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAllowlist/addresses/add: + post: + tags: + - serviceAllowlistManagement + summary: Allowlist CIDRs/IP addresses. + description: "Add CIDR notations and/or IP addresses to the allowlist of the\ + \ organization if not already there. When service allowlisting functionality\ + \ is enabled, CIDRs/IP addresses that are allowlisted will have access to\ + \ Sumo Logic and/or content sharing." + operationId: addAllowlistedCidrs + parameters: [] + requestBody: + description: List of all CIDR notations and/or IP addresses to be added to + the allowlist of the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/CidrList' + required: true + responses: + "200": + description: List of all allowlisted CIDR notations and/or IP addresses + for the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/CidrList' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAllowlist/addresses/remove: + post: + tags: + - serviceAllowlistManagement + summary: Remove allowlisted CIDRs/IP addresses. + description: Remove allowlisted CIDR notations and/or IP addresses from the + organization. Removed CIDRs/IPs will immediately lose access to Sumo Logic + and content sharing. + operationId: deleteAllowlistedCidrs + parameters: [] + requestBody: + description: List of all CIDR notations and/or IP addresses to be removed + from the allowlist of the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/CidrList' + required: true + responses: + "200": + description: List of all allowlisted CIDR notations and/or IP addresses + for the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/CidrList' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAllowlist/enable: + post: + tags: + - serviceAllowlistManagement + summary: Enable service allowlisting. + description: "Enable service allowlisting functionality for the organization.\ + \ The service allowlisting can be for 1. Login: If enabled, access to Sumo\ + \ Logic is granted only to CIDRs/IP addresses that are allowlisted. 2. Content:\ + \ If enabled, dashboards can be shared with users connecting from CIDRs/IP\ + \ addresses that are allowlisted without logging in." + operationId: enableAllowlisting + parameters: + - name: allowlistType + in: query + description: "The type of allowlisting to be enabled. It can be one of: `Login`,\ + \ `Content`, or `Both`." + required: true + schema: + pattern: ^(Login|Content|Both)$ + type: string + description: "One of: `Login`, `Content`, `Both`." + example: Login + x-pattern-message: "must be `Login`, `Content`, or `Both`" + responses: + "204": + description: Service allowlisting was enabled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAllowlist/disable: + post: + tags: + - serviceAllowlistManagement + summary: Disable service allowlisting. + description: Disable service allowlisting functionality for login/API authentication + or content sharing for the organization. + operationId: disableAllowlisting + parameters: + - name: allowlistType + in: query + description: "The type of allowlisting to be disabled. It can be one of: `Login`,\ + \ `Content`, or `Both`." + required: true + schema: + pattern: ^(Login|Content|Both)$ + type: string + description: "One of: `Login`, `Content`, `Both`." + example: Login + x-pattern-message: "must be `Login`, `Content`, or `Both`" + responses: + "204": + description: Service allowlisting was disabled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAllowlist/status: + get: + tags: + - serviceAllowlistManagement + summary: Get the allowlisting status. + description: Get the status of the service allowlisting functionality for login/API + authentication or content sharing for the organization. + operationId: getAllowlistingStatus + responses: + "200": + description: The status of service allowlisting for Content and Login. + content: + application/json: + schema: + $ref: '#/components/schemas/AllowlistingStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/audit: + get: + tags: + - policiesManagement + summary: Get Audit policy. + description: "Get the Audit policy. This policy specifies whether audit records\ + \ for your account are enabled. You can access details about reported account\ + \ events in the Sumo Logic Audit Index. [Learn More](https://help.sumologic.com/Manage/Security/Audit-Index)" + operationId: getAuditPolicy + responses: + "200": + description: The Audit policy. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Audit policy. + description: "Set the Audit policy. This policy specifies whether audit records\ + \ for your account are enabled. You can access details about reported account\ + \ events in the Sumo Logic Audit Index. [Learn More](https://help.sumologic.com/Manage/Security/Audit-Index)" + operationId: setAuditPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AuditPolicy' + required: true + responses: + "200": + description: Audit policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/searchAudit: + get: + tags: + - policiesManagement + summary: Get Search Audit policy. + description: "Get the Search Audit policy. This policy specifies whether search\ + \ records for your account are enabled. You can access details about your\ + \ account's search capacity, queries run by users from the Sumo Search Audit\ + \ Index. [Learn More](https://help.sumologic.com/Manage/Security/Search_Audit_Index)" + operationId: getSearchAuditPolicy + responses: + "200": + description: The Search Audit policy. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchAuditPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Search Audit policy. + description: "Set the Search Audit policy. This policy specifies whether search\ + \ records for your account are enabled. You can access details about your\ + \ account's search capacity, queries run by users from the Sumo Search Audit\ + \ Index. [Learn More](https://help.sumologic.com/Manage/Security/Search_Audit_Index)" + operationId: setSearchAuditPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SearchAuditPolicy' + required: true + responses: + "200": + description: Search Audit policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchAuditPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/shareDashboardsOutsideOrganization: + get: + tags: + - policiesManagement + summary: Get Share Dashboards Outside Organization policy. + description: "Get the Share Dashboards Outside Organization policy. This policy\ + \ allows users to share the dashboard with view only privileges outside of\ + \ the organization (capability must be enabled from the Roles page). Disabling\ + \ this policy will disable all dashboards that have been shared outside of\ + \ the organization. [Learn More](https://help.sumologic.com/Visualizations-and-Alerts/Dashboards/Share_Dashboards/Share_a_Dashboard_Outside_Your_Org)" + operationId: getShareDashboardsOutsideOrganizationPolicy + responses: + "200": + description: The Share Dashboards Outside Organization policy. + content: + application/json: + schema: + $ref: '#/components/schemas/ShareDashboardsOutsideOrganizationPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Share Dashboards Outside Organization policy. + description: "Set the Share Dashboards Outside Organization policy. This policy\ + \ allows users to share the dashboard with view only privileges outside of\ + \ the organization (capability must be enabled from the Roles page). Disabling\ + \ this policy will disable all dashboards that have been shared outside of\ + \ the organization. [Learn More](https://help.sumologic.com/Visualizations-and-Alerts/Dashboards/Share_Dashboards/Share_a_Dashboard_Outside_Your_Org)" + operationId: setShareDashboardsOutsideOrganizationPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ShareDashboardsOutsideOrganizationPolicy' + required: true + responses: + "200": + description: Share Dashboards Outside Organization policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ShareDashboardsOutsideOrganizationPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/dataAccessLevel: + get: + tags: + - policiesManagement + summary: Get Data Access Level policy. + description: "Get the Data Access Level policy. When enabled, this policy sets\ + \ the default data access level for all newly created dashboards to the viewer’\ + s role access filter. Otherwise, newly created dashboards will default to\ + \ the sharer’s role access filter and might display data that viewers’ roles\ + \ don’t allow them to view. [Learn More](https://help.sumologic.com/Manage/Security/Data_Access_Level_for_Shared_Dashboards)" + operationId: getDataAccessLevelPolicy + responses: + "200": + description: The Data Access Level policy. + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessLevelPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Data Access Level policy. + description: "Set the Data Access Level policy. When enabled, this policy sets\ + \ the default data access level for all newly created dashboards to the viewer’\ + s role access filter. Otherwise, newly created dashboards will default to\ + \ the sharer’s role access filter and might display data that viewers’ roles\ + \ don’t allow them to view. [Learn More](https://help.sumologic.com/Manage/Security/Data_Access_Level_for_Shared_Dashboards)" + operationId: setDataAccessLevelPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessLevelPolicy' + required: true + responses: + "200": + description: Data Access Level policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessLevelPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/userConcurrentSessionsLimit: + get: + tags: + - policiesManagement + summary: Get User Concurrent Sessions Limit policy. + description: "Get the User Concurrent Sessions Limit policy. When enabled, the\ + \ number of concurrent sessions a user may have is limited to the value entered.\ + \ If a user exceeds the allowed number of sessions, the user's oldest session\ + \ will be logged out to accommodate the new one. Disabling this policy means\ + \ a user may have an unlimited number of concurrent sessions. [Learn More](https://help.sumologic.com/Manage/Security/Set_a_Limit_for_User_Concurrent_Sessions)" + operationId: getUserConcurrentSessionsLimitPolicy + responses: + "200": + description: The User Concurrent Sessions Limit policy. + content: + application/json: + schema: + $ref: '#/components/schemas/UserConcurrentSessionsLimitPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set User Concurrent Sessions Limit policy. + description: "Set the User Concurrent Sessions Limit policy. When enabled, the\ + \ number of concurrent sessions a user may have is limited to the value entered.\ + \ If a user exceeds the allowed number of sessions, the user's oldest session\ + \ will be logged out to accommodate the new one. Disabling this policy means\ + \ a user may have an unlimited number of concurrent sessions. [Learn More](https://help.sumologic.com/Manage/Security/Set_a_Limit_for_User_Concurrent_Sessions)" + operationId: setUserConcurrentSessionsLimitPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserConcurrentSessionsLimitPolicy' + required: true + responses: + "200": + description: User Concurrent Sessions Limit policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/UserConcurrentSessionsLimitPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/maxUserSessionTimeout: + get: + tags: + - policiesManagement + summary: Get Max User Session Timeout policy. + description: "Get the Max User Session Timeout policy. When enabled, this policy\ + \ sets the maximum web session timeout users are able to configure within\ + \ their user preferences. Users preferences will be updated to match this\ + \ value only if their current preference is set to a higher value. [Learn\ + \ More](https://help.sumologic.com/Manage/Security/Set_a_Maximum_Web_Session_Timeout)" + operationId: getMaxUserSessionTimeoutPolicy + responses: + "200": + description: The Max User Session Timeout policy. + content: + application/json: + schema: + $ref: '#/components/schemas/MaxUserSessionTimeoutPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Max User Session Timeout policy. + description: "Set the Max User Session Timeout policy. When enabled, this policy\ + \ sets the maximum web session timeout users are able to configure within\ + \ their user preferences. Users preferences will be updated to match this\ + \ value only if their current preference is set to a higher value. [Learn\ + \ More](https://help.sumologic.com/Manage/Security/Set_a_Maximum_Web_Session_Timeout)" + operationId: setMaxUserSessionTimeoutPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MaxUserSessionTimeoutPolicy' + required: true + responses: + "200": + description: Max User Session Timeout policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/MaxUserSessionTimeoutPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/accessKeysLifetime: + get: + tags: + - policiesManagement + summary: Get access key lifetime policy. + description: "Get access key lifetime policy. This policy defines the maximum\ + \ time an access key has once it has been created or rotated before it must\ + \ be rotated. Otherwise, it will no longer be able to be used. The value 0\ + \ represents that the access keys will never expire and the time specified\ + \ can be configured by the organization." + operationId: getAccessKeysLifetimePolicy + responses: + "200": + description: The Access Key Lifetime Policy. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeysLifetimePolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set access keys lifetime policy. + description: "Sets the access keys lifetime policy. By setting this policy,\ + \ the time an access key has to live before it is expired or must be rotated\ + \ is defined based on the period (default = never) configured for the organization.\ + \ Setting the value to 0 would represent that the access keys never expire." + operationId: setAccessKeysLifetimePolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeysLifetimePolicy' + required: true + responses: + "200": + description: Access Keys Lifetime policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeysLifetimePolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/dataDeletion: + get: + tags: + - policiesManagement + summary: Get Data Deletion policy. + description: "Get the Data Deletion policy. This policy specifies whether users\ + \ are allowed to delete data from Sumo Logic. Disabling this policy prevents\ + \ users from deleting log data. [Learn More](https://help.sumologic.com/Manage/Security/Data_Deletion)" + operationId: getDataDeletionPolicy + responses: + "200": + description: The Data Deletion policy. + content: + application/json: + schema: + $ref: '#/components/schemas/DataDeletionPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Data Deletion policy. + description: "Set the Data Deletion policy. This policy specifies whether users\ + \ are allowed to delete data from Sumo Logic. Disabling this policy prevents\ + \ users from deleting log data. [Learn More](https://help.sumologic.com/Manage/Security/Data_Deletion)" + operationId: setDataDeletionPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataDeletionPolicy' + required: true + responses: + "200": + description: Data Deletion policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/DataDeletionPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/timestampFormat: + get: + tags: + - policiesManagement + summary: Get Alert Timestamp Format policy. + description: "Get the Alert Timestamp Format policy. This policy controls the\ + \ date/time format used in alert and recovery notification payloads across\ + \ all connections and monitor types. When set to ISO, timestamps use the format\ + \ yyyy-MM-dd HH:mm:ss z. When set to LEGACY, timestamps use the format MM/dd/yyyy\ + \ hh:mm:ss a z." + operationId: getTimestampFormatPolicy + responses: + "200": + description: The Alert Timestamp Format policy. + content: + application/json: + schema: + $ref: '#/components/schemas/TimestampFormatPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Alert Timestamp Format policy. + description: "Set the Alert Timestamp Format policy. This policy controls the\ + \ date/time format used in alert and recovery notification payloads across\ + \ all connections and monitor types. When set to ISO, timestamps use the format\ + \ yyyy-MM-dd HH:mm:ss z. When set to LEGACY, timestamps use the format MM/dd/yyyy\ + \ hh:mm:ss a z." + operationId: setTimestampFormatPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TimestampFormatPolicy' + required: true + responses: + "200": + description: Alert Timestamp Format policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/TimestampFormatPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/oAuthCimd: + get: + tags: + - policiesManagement + summary: Get OAuth policy for Client ID Metadata Documents (CIMD) authentication. + description: If disabled then authentication with Client ID Metadata Documents + (CIMD) is disabled and no new CIMD clients can be created. If set to "enabled" + then authentication with CIMD clients is enabled and new CIMD clients can + be created automatically as part of authentication. If set to "enabled-pre-registered-only" + then authentication with CIMD clients is enabled but new CIMD clients can + only be created manually on the OAuth Clients page in the UI. + operationId: getOAuthCimdPolicy + responses: + "200": + description: The OAuth policy for Client ID Metadata Documents (CIMD) authentication. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthCimdPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set OAuth policy for Client ID Metadata Documents (CIMD) authentication. + description: If disabled then authentication with Client ID Metadata Documents + (CIMD) is disabled and no new CIMD clients can be created. If set to "enabled" + then authentication with CIMD clients is enabled and new CIMD clients can + be created automatically as part of authentication. If set to "enabled-pre-registered-only" + then authentication with CIMD clients is enabled but new CIMD clients can + only be created manually on the OAuth Clients page in the UI. + operationId: setOAuthCimdPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthCimdPolicy' + required: true + responses: + "200": + description: The OAuth policy for Client ID Metadata Documents (CIMD) authentication. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthCimdPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/healthEvents: + get: + tags: + - healthEvents + summary: Get a list of health events. + description: Get a list of all the unresolved health events in your account. + operationId: listAllHealthEvents + parameters: + - name: limit + in: query + description: Limit the number of health events returned in the response. The + number of health events returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + "200": + description: A paginated list of all the health events. + content: + application/json: + schema: + $ref: '#/components/schemas/ListHealthEventResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/healthEvents/resources: + post: + tags: + - healthEvents + summary: Health events for specific resources. + description: Get a list of all the unresolved events in your account that belong + to the supplied resource identifiers. + operationId: listAllHealthEventsForResources + parameters: + - name: limit + in: query + description: Limit the number of health events returned in the response. The + number of health events returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + requestBody: + description: Resource identifiers to request health events from. + content: + application/json: + schema: + $ref: '#/components/schemas/ResourceIdentities' + required: true + responses: + "200": + description: List of all the health events for the specified resources. + content: + application/json: + schema: + $ref: '#/components/schemas/ListHealthEventResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/archive/{sourceId}/jobs: + get: + tags: + - archiveManagement + summary: Get ingestion jobs for an Archive Source. + description: Get a list of all the ingestion jobs created on an Archive Source. + The response is paginated with a default limit of 10 jobs per page. + operationId: listArchiveJobsBySourceId + parameters: + - name: sourceId + in: path + description: The identifier of an Archive Source. + required: true + schema: + type: string + example: 000000000606C009 + - name: limit + in: query + description: Limit the number of jobs returned in the response. The number + of jobs returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + "200": + description: A paginated list of ingestion jobs for an Archive Source. + content: + application/json: + schema: + $ref: '#/components/schemas/ListArchiveJobsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - archiveManagement + summary: Create an ingestion job. + description: Create an ingestion job to pull data from your S3 bucket. + operationId: createArchiveJob + parameters: + - name: sourceId + in: path + description: The identifier of the Archive Source for which the job is to + be added. + required: true + schema: + type: string + example: 000000000606C009 + requestBody: + description: The definition of the ingestion job to create. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateArchiveJobRequest' + required: true + responses: + "200": + description: The ingestion job was created successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ArchiveJob' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/archive/{sourceId}/jobs/{id}: + delete: + tags: + - archiveManagement + summary: Delete an ingestion job. + description: Delete an ingestion job with the given identifier from the organization. + The delete operation is only possible for jobs with a Succeeded or Failed + status. + operationId: deleteArchiveJob + parameters: + - name: sourceId + in: path + description: The identifier of the Archive Source. + required: true + schema: + type: string + - name: id + in: path + description: The identifier of the ingestion job to delete. + required: true + schema: + type: string + responses: + "204": + description: The ingestion job was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/archive/jobs/count: + get: + tags: + - archiveManagement + summary: List ingestion jobs for all Archive Sources. + description: Get a list of all Archive Sources with the count and status of + ingestion jobs. + operationId: listArchiveJobsCountPerSource + parameters: [] + responses: + "200": + description: A list of Archive Sources with ingestion jobs. + content: + application/json: + schema: + $ref: '#/components/schemas/ListArchiveJobsCount' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataarchiving/destinations: + get: + tags: + - dataArchivingManagement + summary: Get all data archiving destinations. + description: Get a list of all data archiving destinations configured for installed + collectors. + operationId: getDataArchivingDestinations + parameters: + - name: limit + in: query + description: Limit the number of destinations returned in the response. The + number of destinations returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + "200": + description: List of all data archiving destinations. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDataArchivingDestinationsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dataArchivingManagement + summary: Create a data archiving destination. + description: Create a new data archiving destination. + operationId: createDataArchivingDestination + parameters: [] + requestBody: + description: Parameters to create a new data archiving destination. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDataArchivingDestinationRequest' + required: true + responses: + "200": + description: The data archiving destination has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/DataArchivingDestination' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataarchiving/destinations/{id}: + get: + tags: + - dataArchivingManagement + summary: Get a data archiving destination. + description: Get a data archiving destination by the given identifier. + operationId: getDataArchivingDestination + parameters: + - name: id + in: path + description: Identifier of the data archiving destination to return. + required: true + schema: + type: string + example: 1 + responses: + "200": + description: Data archiving destination object requested. + content: + application/json: + schema: + $ref: '#/components/schemas/DataArchivingDestination' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - dataArchivingManagement + summary: Update a data archiving destination. + description: Update a data archiving destination by the given identifier. + operationId: updateDataArchivingDestination + parameters: + - name: id + in: path + description: Identifier of the data archiving destination to update. + required: true + schema: + type: string + example: 1 + requestBody: + description: Object with the updated parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateDataArchivingDestinationRequest' + required: true + responses: + "200": + description: The data archiving destination has been updated. + content: + application/json: + schema: + $ref: '#/components/schemas/DataArchivingDestination' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - dataArchivingManagement + summary: Delete a data archiving destination. + description: Delete an existing data archiving destination with the given identifier. + operationId: deleteDataArchivingDestination + parameters: + - name: id + in: path + description: Identifier of the data archiving destination to delete. + required: true + schema: + type: string + example: 1 + responses: + "204": + description: The data archiving destination has been deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logSearches/estimatedUsage: + post: + tags: + - logSearchesEstimatedUsage + summary: Gets estimated usage details. + description: | + Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier. + operationId: getLogSearchEstimatedUsage + parameters: [] + requestBody: + description: The definition of the log search estimated usage. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageRequest' + required: true + responses: + "200": + description: Log search information along with its estimated usage details. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logSearches/estimatedUsageByTier: + post: + tags: + - logSearchesEstimatedUsage + summary: Gets Tier Wise estimated usage details. + description: | + Gets the estimated volume of data that would be scanned for a given log search per data tier. + operationId: getLogSearchEstimatedUsageByTier + parameters: [] + requestBody: + description: The definition of the log search estimated usage. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV2' + required: true + responses: + "200": + description: Log search information along with its tier wise estimated usage + details. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageByTierDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logSearches/estimatedUsageByMeteringType: + post: + tags: + - logSearchesEstimatedUsage + summary: Gets estimated usage details per metering type. + description: | + Gets the estimated volume of data, per metering type, that would be scanned for running a given log search for a given timerange. + operationId: getLogSearchEstimatedUsageByMeteringType + parameters: [] + requestBody: + description: The definition of the log search estimated usage. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV3' + required: true + responses: + "200": + description: Log search information along with its metering type wise estimated + usage details. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageByMeteringTypeDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logSearches/estimatedUsageByView: + post: + tags: + - logSearchesEstimatedUsage + summary: Gets estimated usage details per view. + description: | + Gets the estimated volume of data, per view, that would be scanned for running a given log search for a given timerange. + operationId: logSearchesEstimatedUsageByView + parameters: [] + requestBody: + description: The definition of the log search estimated usage. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV3' + required: true + responses: + "200": + description: Log search information along with its view wise estimated usage + details. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageByViewDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards: + get: + tags: + - dashboardManagement + summary: List all dashboards. + description: List all dashboards under the Personal folder created by the user + or under folders viewable by user. + operationId: listDashboards + parameters: + - name: limit + in: query + description: Limit the number of dashboard returned in the response. The number + of dashboards returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + - name: mode + in: query + description: whether to list all viewable dashboards under the folders + required: false + schema: + pattern: ^(createdByUser|allViewableByUser)$ + type: string + example: createdByUser + x-pattern-message: Must be `createdByUser` or `allViewableByUser` + example: createdByUser + responses: + "200": + description: Paginated list of dashboards under the Personal folder created + by the user. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDashboards' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dashboardManagement + summary: Create a new dashboard. + description: Creates a new dashboard. + operationId: createDashboard + requestBody: + description: Information to create the new dashboard. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardRequest' + required: true + responses: + "200": + description: The dashboard has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/Dashboard' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/{id}: + get: + tags: + - dashboardManagement + summary: Get a dashboard. + description: Get a dashboard by the given identifier. + operationId: getDashboard + parameters: + - name: id + in: path + description: UUID of the dashboard to return. + required: true + schema: + type: string + responses: + "200": + description: Dashboard object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/Dashboard' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - dashboardManagement + summary: Update a dashboard. + description: Update a dashboard by the given identifier. + operationId: updateDashboard + parameters: + - name: id + in: path + description: Identifier of the dashboard to update. + required: true + schema: + type: string + requestBody: + description: Information to update on the dashboard. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardRequest' + required: true + responses: + "200": + description: The dashboard was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/Dashboard' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - dashboardManagement + summary: Delete a dashboard. + description: Delete a dashboard by the given identifier. + operationId: deleteDashboard + parameters: + - name: id + in: path + description: Identifier of the dashboard to delete. + required: true + schema: + type: string + responses: + "204": + description: Dashboard was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/reportJobs: + post: + tags: + - dashboardManagement + summary: Start a report job + description: | + Schedule an asynchronous job to generate a report from a template. All items in the template will be included unless specified. See template section for more details on individual templates. Reports can be generated in Pdf or Png format and exported in various methods (ex. direct download). You will get back an asynchronous job identifier on success. Use the [getAsyncReportGenerationStatus](#operation/getAsyncExportStatus) endpoint and the job identifier you got back in the response to track the status of an asynchronous report generation job. + operationId: generateDashboardReport + requestBody: + description: Request for a report. + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateReportRequest' + required: true + responses: + "200": + description: Export job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/reportJobs/{jobId}/status: + get: + tags: + - dashboardManagement + summary: Get report generation job status + description: "Get the status of an asynchronous report generation request for\ + \ the given job identifier. On success, use the [getReportGenerationResult](#operation/getAsyncReportGenerationResult)\ + \ endpoint to get the result of the report generation job." + operationId: getAsyncReportGenerationStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous report generation job. + required: true + schema: + type: string + responses: + "200": + description: The status of the report generation job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/reportJobs/{jobId}/result: + get: + tags: + - dashboardManagement + summary: Get report generation job result + description: Get the result of an asynchronous report generation request for + the given job identifier. + operationId: getAsyncReportGenerationResult + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous report generation job. + required: true + schema: + type: string + responses: + "200": + description: The result of export job. + content: + application/pdf: + schema: + type: string + format: binary + image/png: + schema: + type: string + format: binary + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate: + post: + tags: + - dashboardManagement + summary: Migrate Legacy Dashboards to Dashboards(New) + description: | + Schedule an asynchronous job to migrate a list of legacy Dashboards to Dashboard(New). Once migration is finished, the migrated dashboards will be in the same folder as the corresponding legacy Dashboard. + Note: This feature is in beta and may not support all existing features of legacy dashboards. + operationId: migrateReportToDashboard + requestBody: + description: List of legacy dashboard content identifiers. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardMigrationRequest' + required: true + responses: + "200": + description: Async job identifier to get the status and result of the dashboard + migration job. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate/preview: + post: + tags: + - dashboardManagement + summary: Preview of Migrating Legacy Dashboards to Dashboards(New) + description: Get a preview of migrating Legacy Dashboards to Dashboard(New) + operationId: previewMigrateReportToDashboard + requestBody: + description: List of content identifiers. Can be folders or classic dashboard. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardMigrationRequest' + required: true + responses: + "200": + description: Preview of the dashboard migration job. + content: + application/json: + schema: + $ref: '#/components/schemas/MigrationPreviewResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate/{jobId}/status: + get: + tags: + - dashboardManagement + summary: Get dashboard migration status. + description: "Get the status of an asynchronous Dashboard Migration job for\ + \ the given job identifier. If job succeeds, use Dashboard Migration Result\ + \ endpoint to see results of the migration." + operationId: getDashboardMigrationStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Dashboard Migration job. + required: true + schema: + type: string + responses: + "200": + description: Dashboard migration job status. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate/{jobId}/result: + get: + tags: + - dashboardManagement + summary: Get dashboard migration result. + description: Get the result of an asynchronous Dashboard Migration request for + the given job identifier. + operationId: getDashboardMigrationResult + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Dashboard Migration job. + required: true + schema: + type: string + responses: + "200": + description: Dashboard migration job result. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardMigrationResult' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dashboards/reportSchedules: + get: + tags: + - dashboardManagement + summary: List all dashboard report schedules. + description: List all dashboard report schedules created by the user. + operationId: listReportSchedules + parameters: + - name: dashboardId + in: query + description: UUID of the dashboard that the report shedules are associated + with. + required: false + schema: + type: string + - name: limit + in: query + description: Limit the number of dashboard report schedules returned in the + response. The number of dashboard report schedules returned may be less + than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + responses: + "200": + description: Paginated list of dashboard report schedules created by the + user. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReportSchedules' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dashboardManagement + summary: Schedule dashboard report + description: "Schedule dashboard report to send at a specific date and time.\ + \ The report should be sent as attachment or downloadable URL in one of the\ + \ following notification types: 'Email', 'AWSLambda', 'AzureFunctions', 'Datadog',\ + \ 'HipChat', 'Jira', 'NewRelic', 'Opsgenie', 'PagerDuty', 'Slack', 'MicrosoftTeams',\ + \ 'ServiceNow', 'SumoCloudSOAR' and 'Webhook'." + operationId: createScheduleReport + requestBody: + description: Request for scheduling dashboard report. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportScheduleRequest' + required: true + responses: + "200": + description: Dashboard report has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSchedule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dashboards/reportSchedules/{scheduleId}: + get: + tags: + - dashboardManagement + summary: Get dashboard report schedule. + description: Get the schedule of a scheduled dashboard report by the given identifier. + operationId: getReportSchedule + parameters: + - name: scheduleId + in: path + description: Identifier of the dashboard report schedule to return. + required: true + schema: + type: string + responses: + "200": + description: Dashboard report schedule object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSchedule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - dashboardManagement + summary: Update dashboard report schedule. + description: Update the schedule of a scheduled dashboard report by the given + identifier. + operationId: updateReportSchedule + parameters: + - name: scheduleId + in: path + description: identifier of the dashboard report schedule to update. + required: true + schema: + type: string + requestBody: + description: Request to update on the dashboard report schedule. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportScheduleRequest' + required: true + responses: + "200": + description: The dashboard report schedule was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSchedule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - dashboardManagement + summary: Delete dashboard report schedule. + description: Delete the schedule of a scheduled dashboard report by the given + identifier. The scheduled dashboard report will no longer be generated and + sent. + operationId: deleteReportSchedule + parameters: + - name: scheduleId + in: path + description: UUID of the dashboard report schedule to delete. + required: true + schema: + type: string + responses: + "204": + description: Dashboard report schedule was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/metricsSearches: + get: + tags: + - metricsSearchesManagementV2 + summary: List all metrics search pages. + description: List all metrics search pages under the Personal folder created + by the user or under folders viewable by user. + operationId: ListMetricsSearches + parameters: + - name: limit + in: query + description: Limit the number of metric searches returned in the response. + The number of metric searches returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + - name: mode + in: query + description: whether to list all viewable metric searches under the folders + required: false + schema: + pattern: ^(createdByUser|allViewableByUser)$ + type: string + example: createdByUser + x-pattern-message: Must be `createdByUser` or `allViewableByUser` + example: createdByUser + responses: + "200": + description: Paginated list of metrics search pages under the Personal folder + created by the user or viewable by user. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedMetricsSearches' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - metricsSearchesManagementV2 + summary: Create a new metrics search page. + description: Creates a new metrics search page. + operationId: createMetricsSearches + requestBody: + description: Information to create the new metrics search page. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchRequest' + required: true + responses: + "200": + description: The metrics search page has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/metricsSearches/{id}: + get: + tags: + - metricsSearchesManagementV2 + summary: Get a metrics search page. + description: Get a metrics search page by the given identifier. + operationId: getMetricsSearches + parameters: + - name: id + in: path + description: Unique identifier of the metrics search page to return. + required: true + schema: + type: string + responses: + "200": + description: Metrics search page that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - metricsSearchesManagementV2 + summary: Update a metrics search page. + description: Update a metrics search page by the given identifier. + operationId: updateMetricsSearches + parameters: + - name: id + in: path + description: Unique identifier of the metrics search page to return. + required: true + schema: + type: string + requestBody: + description: Information to update the metrics search page. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchRequest' + required: true + responses: + "200": + description: The metrics search page was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - metricsSearchesManagementV2 + summary: Delete a metrics search page. + description: Delete metrics search page by the given identifier. + operationId: deleteMetricsSearches + parameters: + - name: id + in: path + description: Unique identifier of the metrics search page to delete. + required: true + schema: + type: string + responses: + "204": + description: Metrics search page was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/usageInfo: + get: + tags: + - monitorsLibraryManagement + summary: Usage info of monitors. + description: Get the current number and the allowed number of log and metrics + monitors. + operationId: getMonitorUsageInfo + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "200": + description: MonitorUsageInfo has been retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorUsageInfo' + /v1/monitors/disable: + put: + tags: + - monitorsLibraryManagement + summary: Disable monitors. + description: Bulk disable monitors by the given identifiers. + operationId: disableMonitorByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + style: form + explode: false + schema: + type: array + items: + type: string + example: "0000000000000001,0000000000000002,0000000000000003" + responses: + "200": + description: Disabled monitors + content: + application/json: + schema: + $ref: '#/components/schemas/DisableMonitorResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/playbooks: + get: + tags: + - monitorsLibraryManagement + summary: List all playbooks. + description: List all playbooks available to run. + operationId: getMonitorPlaybooks + parameters: + - name: playbookType + in: query + description: A string value for playbook type. + required: false + schema: + type: string + example: CSE + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "200": + description: MonitorPlaybooks have been retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorPlaybooksList' + /v1/monitors/playbooksDetails: + get: + tags: + - monitorsLibraryManagement + summary: Get playbook details. + description: Get the details of the playbooks with the specified identifiers. + operationId: getPlaybooksDetails + parameters: + - name: ids + in: query + description: A comma-separated list of playbook identifiers. + required: true + style: form + explode: false + schema: + type: array + items: + type: string + example: "649074b5b3d402d6e80b0d1d,649074b7b3d402d6e80b0da1,649074b6b3d402d6e80b0d75" + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "200": + description: MonitorPlaybooks have been retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorPlaybooksList' + /v1/slos/sli: + get: + tags: + - slosLibraryManagement + summary: "Bulk fetch SLI values, error budget remaining and SLI computation\ + \ status for the current compliance period." + description: "Bulk fetch SLI values, error budget remaining and SLI computation\ + \ status for the current compliance period." + operationId: sli + parameters: + - name: ids + in: query + description: The identifiers of the SLOs. + required: true + schema: + type: array + items: + type: string + example: "000000000000000A,000000000000000B" + responses: + "200": + description: "A map containing current status, SLI value and error budget\ + \ remaining corresponding to each SLO id." + content: + application/json: + schema: + $ref: '#/components/schemas/IdToSliStatusMap' + default: + description: Error getting SLI metrics for the SLO ids. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/usageInfo: + get: + tags: + - slosLibraryManagement + summary: Usage info of SLOs. + description: Get the current number and the allowed number of log and metrics + SLOs. + operationId: getSloUsageInfo + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "200": + description: SLO Usage Info has been retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/SloUsageInfo' + /v1/passwordPolicy: + get: + tags: + - passwordPolicy + summary: Get the current password policy. + description: Get the current password policy. + operationId: getPasswordPolicy + parameters: [] + responses: + "200": + description: The current password policy. + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - passwordPolicy + summary: Update password policy. + description: Update the current password policy. + operationId: setPasswordPolicy + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordPolicy' + required: true + responses: + "200": + description: Password Policy set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordPolicy' + default: + description: Setting the password policy failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/root: + get: + tags: + - parsersLibraryManagement + summary: Get the root folder in the library. + description: | + Get the root folder in the library. + operationId: getParsersLibraryRoot + responses: + "200": + description: Root folder in the library. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryFolderResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers: + get: + tags: + - parsersLibraryManagement + summary: Bulk read folders and parsers. + description: | + Bulk read folders and parsers by the given identifiers from the library. + operationId: parsersReadByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + example: "0000000000000001,0000000000000002,0000000000000003" + items: + type: string + responses: + "200": + description: A map between an identifier and its definition (folder or parser). + content: + application/json: + schema: + $ref: '#/components/schemas/IdToParsersLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - parsersLibraryManagement + summary: | + Create a folder or parser. + description: | + Create a folder or parser. + operationId: parsersCreate + parameters: + - name: parentId + in: query + description: Identifier of the parent folder in which to create the folder + or parser. + required: true + schema: + type: string + requestBody: + description: The folder or parser to be created. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBase' + required: true + responses: + "200": + description: Newly created folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - parsersLibraryManagement + summary: | + Bulk delete folders and parsers. + description: | + Bulk delete folders and parsers by the given identifiers from the library. + operationId: parsersDeleteByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + example: "0000000000000001,0000000000000002,0000000000000003" + items: + type: string + responses: + "200": + description: A map between the deleted identifier and its meta data. + content: + application/json: + schema: + $ref: '#/components/schemas/IdToParsersLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}: + get: + tags: + - parsersLibraryManagement + summary: | + Read a folder or parser. + description: | + Read a folder or parser. + operationId: parsersReadById + parameters: + - name: id + in: path + description: Identifier of the folder or parser to read. + required: true + schema: + type: string + responses: + "200": + description: Requested folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - parsersLibraryManagement + summary: | + Update a folder or parser. + description: | + Update a folder or parser. + operationId: parsersUpdateById + parameters: + - name: id + in: path + description: Identifier of the folder or parser to update. + required: true + schema: + type: string + requestBody: + description: | + The folder or parser to be updated. Content version must match its latest version number in the library. Any staled version will not be updated. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseUpdate' + required: true + responses: + "200": + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - parsersLibraryManagement + summary: | + Delete a folder or parser. + description: | + Delete a folder or parser. + operationId: parsersDeleteById + parameters: + - name: id + in: path + description: Identifier of the folder or parser to delete. + required: true + schema: + type: string + responses: + "204": + description: The folder or parser was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/path: + get: + tags: + - parsersLibraryManagement + summary: Get full path of folder or parser. + description: | + Get full path of folder or parser. + operationId: getParsersFullPath + parameters: + - name: id + in: path + description: Identifier of the folder or parser. + required: true + schema: + type: string + responses: + "200": + description: Full path of the folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/Path' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/lock: + post: + tags: + - parsersLibraryManagement + summary: Lock a folder or a parser. + description: | + Locking requires the `LockParsers` capability. When an object is locked, it can't be moved or deleted and only the local fields can be modified. Locking recursively locks all of the objects children. + operationId: parsersLockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be locked. + required: true + schema: + type: string + responses: + "200": + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/unlock: + post: + tags: + - parsersLibraryManagement + summary: Unlock a folder or a parser. + description: | + Unlocking requires the `LockParsers` capability. It is only possible to unlock the highest locked object in a tree of locked objects. Unlocking recursively unlocks all of the objects children. + operationId: parsersUnlockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be unlocked. + required: true + schema: + type: string + responses: + "200": + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/move: + post: + tags: + - parsersLibraryManagement + summary: Move a folder or parser. + description: | + Move a folder or parser. + operationId: parsersMove + parameters: + - name: id + in: path + description: Identifier of the folder or parser to move. + required: true + schema: + type: string + - name: parentId + in: query + description: Identifier of the parent folder to move the folder or parser + to. + required: true + schema: + type: string + responses: + "200": + description: Moved folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/copy: + post: + tags: + - parsersLibraryManagement + summary: Copy a folder or parser. + description: | + Copy a folder or parser. + operationId: parsersCopy + parameters: + - name: id + in: path + description: Identifier of the folder or parser to copy. + required: true + schema: + type: string + requestBody: + description: | + Fields include: + 1) Identifier of the parent folder to copy to. + 2) Optionally provide a new name. + 3) Optionally provide a new description. + 4) Optionally set to true if you want to copy and preserved the locked status. Requires `LockParsers` capability. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentCopyParams' + required: true + responses: + "200": + description: Newly copied folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/export: + get: + tags: + - parsersLibraryManagement + summary: Export a folder or parser. + description: Export a folder or parser. + operationId: parsersExportItem + parameters: + - name: id + in: path + description: Identifier of the folder or parser to export. + required: true + schema: + type: string + - name: preserveLock + in: query + description: | + Set this to true if you want to export an object and preserve the locked status. + required: false + schema: + type: boolean + default: false + responses: + "200": + description: Exported folder or parser + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryExportBase' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{parentId}/import: + post: + tags: + - parsersLibraryManagement + summary: Import a folder or parser + description: | + Import a folder or parser + operationId: parsersImportItem + parameters: + - name: parentId + in: path + description: Identifier of the parent folder in which to import the folder + or parser. + required: true + schema: + type: string + requestBody: + description: | + The folder or parser to be imported. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryExportBase' + required: true + responses: + "200": + description: Newly imported folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/path: + get: + tags: + - parsersLibraryManagement + summary: Read a folder or parser by its path. + description: | + Read a folder or parser by its path. + operationId: parsersGetByPath + parameters: + - name: path + in: query + description: The path of the folder or parser. + required: true + schema: + type: string + responses: + "200": + description: Requested folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/search: + get: + tags: + - parsersLibraryManagement + summary: Search for folders or parsers. + description: Search for a folder or parser in the cloud SIEM parsers library + structure. + operationId: parsersSearch + parameters: + - name: query + in: query + description: |- + The search query to find folder or parsers. Below is the list of different filters with examples: + - **createdBy** : Filter by the user's identifier who created the content. Example: `createdBy:000000000000968B`. + - **createdBefore** : Filter by the content objects created before the given timestamp(in milliseconds). Example: `createdBefore:1457997222`. + - **createdAfter** : Filter by the content objects created after the given timestamp(in milliseconds). Example: `createdAfter:1457997111`. + - **modifiedBefore** : Filter by the content objects modified before the given timestamp(in milliseconds). Example: `modifiedBefore:1457997222`. + - **modifiedAfter** : Filter by the content objects modified after the given timestamp(in milliseconds). Example: `modifiedAfter:1457997111`. + - **type** : Filter by the type of the content object. Example: `type:folder`. + You can also use multiple filters in one query. For example to search for all content objects created by user with identifier 000000000000968B with creation timestamp after 1457997222 containing the text Test, the query would look like: + `createdBy:000000000000968B createdAfter:1457997222 Test` + required: true + schema: + type: string + example: createdBy:000000000000968B Test + - name: limit + in: query + description: Maximum number of items you want in the response. + required: false + schema: + type: integer + format: int32 + example: 10 + default: 100 + - name: offset + in: query + description: The position or row from where to start the search operation. + required: false + schema: + type: integer + format: int32 + example: 5 + default: 0 + responses: + "200": + description: List of folders and parsers matching the search query. + content: + application/json: + schema: + $ref: '#/components/schemas/ListParsersLibraryItemWithPath' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/system/parsers/{id}/lock: + post: + tags: + - parsersLibraryManagement + summary: Lock a folder or a parser. + description: | + Locking requires the `LockParsers` capability. When an object is locked, it can't be moved or deleted and only the local fields can be modified. Locking recursively locks all of the objects children. + operationId: systemParsersLockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be locked. + required: true + schema: + type: string + responses: + "200": + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/system/parsers/{id}/unlock: + post: + tags: + - parsersLibraryManagement + summary: Unlock a folder or a parser. + description: | + Unlocking requires the `LockParsers` capability. It is only possible to unlock the highest locked object in a tree of locked objects. Unlocking recursively unlocks all of the objects children. + operationId: systemParsersUnlockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be unlocked. + required: true + schema: + type: string + responses: + "200": + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAccounts: + get: + tags: + - serviceAccountManagement + summary: Get a list of service accounts. + description: Get a list of all service accounts in the organization. + operationId: listServiceAccounts + responses: + "200": + description: A list of service accounts in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListServiceAccountModelsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - serviceAccountManagement + summary: Create a new service account. + description: Create a new service account in the organization. + operationId: createServiceAccount + parameters: [] + requestBody: + description: Information about the new service account. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateServiceAccountDefinition' + required: true + responses: + "200": + description: A service account has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAccountModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAccounts/{id}: + get: + tags: + - serviceAccountManagement + summary: Get a service account. + description: Get a service account with the given identifier from the organization. + operationId: getServiceAccount + parameters: + - name: id + in: path + description: Identifier of service account to return. + required: true + schema: + type: string + responses: + "200": + description: Service account object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAccountModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - serviceAccountManagement + summary: Update a service account. + description: Update an existing service account in the organization. + operationId: updateServiceAccount + parameters: + - name: id + in: path + description: Identifier of the service account to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the service account. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateServiceAccountDefinition' + required: true + responses: + "200": + description: The service account was successfully updated. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAccountModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - serviceAccountManagement + summary: Delete a service account. + description: Delete a service account with the given identifier from the organization + and transfer its content to a user or a service account with the identifier + specified in "transferTo". + operationId: deleteServiceAccount + parameters: + - name: id + in: path + description: Identifier of the service account to delete. + required: true + schema: + type: string + - name: transferTo + in: query + description: "Identifier of a user/service account to receive the transfer\ + \ of content from the deleted service account.
**Note:** If `deleteContent`\ + \ is not set to `true`, and no user identifier is specified in `transferTo`,\ + \ content from the deleted service account is transferred to the executing\ + \ user." + required: false + schema: + type: string + - name: deleteContent + in: query + description: "Whether to delete content from the deleted service account or\ + \ not.
**Warning:** If `deleteContent` is set to `true`, all of the\ + \ content for the service account being deleted is permanently deleted\ + \ and cannot be recovered." + required: false + schema: + type: boolean + responses: + "204": + description: Service account was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAccounts/{serviceAccountId}/accessKeys: + get: + tags: + - serviceAccountManagement + summary: List access keys for a service account. + description: List all access keys of a service account. + operationId: listAccessKeysForServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + responses: + "200": + description: A list of all access keys within the organization of a service + account. + content: + application/json: + schema: + $ref: '#/components/schemas/ListAccessKeysResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - serviceAccountManagement + summary: Create a new access key for a service account. + description: Creates a new access ID and key pair for a service account. + operationId: createAccessKeyForServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + requestBody: + description: Information about the new access key of a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyCreateRequest' + required: true + responses: + "200": + description: The access key has been created for a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKey' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAccounts/{serviceAccountId}/accessKeys/{accessId}: + get: + tags: + - serviceAccountManagement + summary: Get an access key of a service account. + description: Get an access key with the given identifier from the organization + of a service account. + operationId: getAccessKeyByIdOfAServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + - name: accessId + in: path + description: Identifier of an access key to return. + required: true + schema: + type: string + responses: + "200": + description: Access key object that was requested of a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyPublic' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - serviceAccountManagement + summary: Update an access key of a service account. + description: Updates the properties of existing accessKey by Id of a service + account. + operationId: updateAccessKeyOfAServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + - name: accessId + in: path + description: The id of an access key to update of a service account. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyUpdateRequest' + required: true + responses: + "200": + description: Access key of a service account updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyPublic' + default: + description: Access key updation of a service account failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - serviceAccountManagement + summary: Delete an access key of a service account. + description: Deletes the access key with the given Id of a service account. + operationId: deleteAccessKeyOfAServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + - name: accessId + in: path + description: The Id of the access key to delete of a service account. + required: true + schema: + type: string + responses: + "204": + description: Access key deletion of a service account completed successfully. + default: + description: Access key deletion of a service account failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/scopes: + get: + tags: + - oauthManagement + summary: Get all scopes. + description: Get a list of all of the scopes that can be added to an oauth client. + operationId: listOAuthScopes + responses: + "200": + description: A list of scopes that can be added to an oauth client. + content: + application/json: + schema: + $ref: '#/components/schemas/ScopesList' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/clients: + get: + tags: + - oauthManagement + summary: List the OAuth clients. + description: List all OAuth clients. + operationId: listOAuthClients + parameters: + - name: limit + in: query + description: Limit the number of OAuth clients returned in the response. The + number of OAuth clients returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: runAsId + in: query + description: Identifier of the service account that the OAuth Client runs + as. + required: false + schema: + type: string + - name: clientId + in: query + description: "Filter clients by exact client ID. When specified, returns only\ + \ the client matching this ID. Supports URL-based client identifiers (URL-encode\ + \ the value)." + required: false + schema: + type: string + responses: + "200": + description: A list of all OAuth clients within the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListOAuthClientsResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - oauthManagement + summary: Create a new OAuth client. + description: Creates a new OAuth clientId and clientSecret. + operationId: createOAuthClient + requestBody: + description: Information about the new OAuth client. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientCreateRequest' + required: true + responses: + "200": + description: The OAuth client has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientCreationResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/clients/{id}: + get: + tags: + - oauthManagement + summary: Get an OAuth client. + description: Get an OAuth client with the given identifier from the organization. + operationId: getOAuthClientById + parameters: + - name: id + in: path + description: Identifier of an OAuth client to return. + required: true + schema: + type: string + responses: + "200": + description: OAuth client object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClient' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - oauthManagement + summary: Update an OAuth client. + description: Updates the properties of existing OAuth client by Id. + operationId: updateOAuthClient + parameters: + - name: id + in: path + description: The id of an OAuth client to update. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientUpdateRequest' + required: true + responses: + "200": + description: OAuth client updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClient' + default: + description: OAuth client update failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - oauthManagement + summary: Delete an OAuth client. + description: Deletes the OAuth client with the given Id. + operationId: deleteOAuthClient + parameters: + - name: id + in: path + description: The Id of the OAuth client to delete. + required: true + schema: + type: string + responses: + "204": + description: OAuth client deletion completed successfully. + default: + description: OAuth client deletion failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/clients/{id}/rotate: + put: + tags: + - oauthManagement + summary: Rotate the oauth client secret + description: "Generates a new secret for the oauth client that is passed in\ + \ the call, keeping the same client ID." + operationId: rotateOauthSecret + parameters: + - name: id + in: path + description: The ID of the oauth client to rotate the secret for. + required: true + schema: + type: string + responses: + "200": + description: OAuth client secret rotated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientCreationResponse' + default: + description: Oauth client secret rotation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/consents: + get: + tags: + - oauthManagement + summary: List OAuth consents. + description: "Get a list of OAuth consents within the organization. Administrators\ + \ can list all consents, while others can only list consents that they have\ + \ authorized." + operationId: listOAuthConsents + parameters: + - name: limit + in: query + description: Limit the number of consents returned in the response. + required: false + schema: + maximum: 10000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. + required: false + schema: + type: string + - name: authorizedUser + in: query + description: Filter consents by the identifier of the user who authorized + the consent. + required: false + schema: + type: string + - name: clientId + in: query + description: Filter consents by the clientId of a registered OAuth client. + required: false + schema: + type: string + responses: + "200": + description: A list of OAuth consents. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListOAuthConsentsResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/consents/{consentId}: + delete: + tags: + - oauthManagement + summary: Delete an OAuth consent. + description: Deletes the OAuth consent with the given Id. + operationId: deleteOAuthConsent + parameters: + - name: consentId + in: path + description: The ID of the OAuth consent to delete. + required: true + schema: + type: string + responses: + "204": + description: OAuth consent deletion completed successfully. + default: + description: OAuth consent deletion failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/scim/Users: + get: + tags: + - scimUserManagement + summary: List SCIM Users + description: "Retrieves a list of users in the SCIM system, with optional pagination" + operationId: listSCIMUsers + parameters: + - name: startIndex + in: query + description: "The index of the first result to return. Defaults to 1 if not\ + \ specified, a value less than 1 SHALL be interpreted as 1" + required: false + schema: + minimum: 1 + type: integer + format: int32 + default: 1 + - name: count + in: query + description: The maximum number of results to return. Defaults to 100 + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + default: 100 + - name: filter + in: query + description: Find user with the given email address + required: false + schema: + minLength: 1 + type: string + example: emails.value eq "john@doe.com" + - name: sortOrder + in: query + description: The sort order. Use "ascending" or "descending" + required: false + schema: + type: string + example: descending + enum: + - ascending + - descending + - name: sortBy + in: query + description: "Sort the list of users by the `givenName`, `familyName`, or\ + \ `emails` field" + required: false + schema: + type: string + example: givenName + responses: + "200": + description: A paginated list of users in the organization + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + post: + tags: + - scimUserManagement + summary: Create SCIM User + description: Creates a new user in the SCIM system + operationId: createSCIMUser + requestBody: + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMCreateUserDefinition' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + required: true + responses: + "201": + description: The user has been created successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + /v1/scim/Users/{id}: + get: + tags: + - scimUserManagement + summary: Get a SCIM User + description: Fetches the details of a SCIM user by their unique identifier + operationId: getSCIMUserById + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user + required: true + schema: + type: string + responses: + "200": + description: User details retrieved successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + put: + tags: + - scimUserManagement + summary: Update SCIM User + description: Updates an existing user's attributes in the SCIM system + operationId: updateSCIMUser + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user + required: true + schema: + type: string + requestBody: + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUpdateUserDefinition' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + required: true + responses: + "200": + description: The user has been updated successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + delete: + tags: + - scimUserManagement + summary: Delete SCIM User + description: Deletes a SCIM user by their unique identifier + operationId: deleteSCIMUserById + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user to delete + required: true + schema: + type: string + responses: + "204": + description: User was deleted successfully + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + patch: + tags: + - scimUserManagement + summary: Update SCIM User Attributes + description: Updates specific attributes of an existing user in the SCIM system + operationId: patchSCIMUser + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user + required: true + schema: + type: string + requestBody: + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMPatchUserDefinition' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + required: true + responses: + "200": + description: The user attributes updated successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + /v1/metricsQueries: + post: + tags: + - metricsQuery + summary: Run metrics queries + description: "Execute multiple metrics queries. Limits of this API are described\ + \ in [Metrics Query Error Messages](https://help.sumologic.com/docs/metrics/metrics-queries/metric-query-error-messages/).\ + \ For general information about Metrics Queries see [Metrics Queries](https://help.sumologic.com/docs/metrics/metrics-queries/)." + operationId: runMetricsQueries + parameters: [] + requestBody: + description: The parameters for the metrics query. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsQueryRequest' + required: true + responses: + "200": + description: A set of time series grouped by the query. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsQueryResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/tracequery: + post: + tags: + - traces + summary: Run a trace search query asynchronously. + description: "Execute a trace search query and get the id to fetch its status\ + \ and results. Use the [Trace Query Status](#operation/getTraceQueryStatus)\ + \ endpoint to check a query status. When the query has been completed, use\ + \ the [Trace Query Result](#operation/getTraceQueryResult) endpoint to get\ + \ the result of the asynchronous query." + operationId: createTraceQuery + parameters: [] + requestBody: + description: Query parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncTraceQueryRequest' + required: true + responses: + "200": + description: Query execution result. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTraceQueryResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/tracequery/{queryId}: + delete: + tags: + - traces + summary: Cancel a trace search query. + description: Cancel a currently processed trace search query with the given + id. + operationId: cancelTraceQuery + parameters: + - name: queryId + in: path + description: Identifier of the query to cancel. + required: true + schema: + type: string + example: 798a13dc1ceeb19a + responses: + "204": + description: Query canceled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/tracequery/{queryId}/status: + get: + tags: + - traces + summary: Get a trace search query status. + description: "Get a status of a trace query with the given id. When the query\ + \ has been completed, use the [Trace Query Result](#operation/getTraceQueryResult)\ + \ endpoint to get the result of the asynchronous query." + operationId: getTraceQueryStatus + parameters: + - name: queryId + in: path + description: Identifier of the executed query. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + responses: + "200": + description: Status of the given trace search query. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceQueryStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/tracequery/{queryId}/rows/{rowId}/traces: + get: + tags: + - traces + summary: Get results of a trace search query. + description: Get a list of traces matching a query with the specified id. The + response is paginated with a default limit of 100 traces per page. + operationId: getTraceQueryResult + parameters: + - name: queryId + in: path + description: Identifier of the executed query. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + - name: rowId + in: path + description: Identifier of the query row. + required: true + schema: + type: string + example: A + - name: limit + in: query + description: Limit of the number of traces returned in the response. + required: false + schema: + maximum: 500 + minimum: 1 + type: integer + format: int32 + example: 100 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + responses: + "200": + description: Details about the given span query. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceQueryResultResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/metrics: + get: + tags: + - traces + summary: Get trace search query metrics. + description: Get a list of available trace metrics that can be used in trace + search queries. + operationId: getMetrics + parameters: [] + responses: + "200": + description: List of available metrics. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceMetricsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/tracequery/fields: + get: + tags: + - traces + summary: Get filter fields for trace search queries. + description: Get a list of available fields which can be used in trace search + queries. + operationId: getTraceQueryFields + parameters: [] + responses: + "200": + description: List of available fields. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceFieldsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/tracequery/fields/{field}/values: + get: + tags: + - traces + summary: Get trace search query filter field values. + description: Get a list of available values for the given trace search query + filter field. Not all fields support value listing. The response is paginated + with a default limit of 10 values per page. + operationId: getTraceQueryFieldValues + parameters: + - name: field + in: path + description: Field identifier. + required: true + schema: + type: string + - name: query + in: query + description: Search filter to apply on the values to be returned. Only values + containing the search query term will be returned. + required: false + schema: + type: string + - name: limit + in: query + description: The maximum number of results to fetch. + required: false + schema: + maximum: 500 + minimum: 1 + type: integer + format: int32 + default: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: fieldType + in: query + description: "Indicates the kind of a field. Possible values: `SpanAttribute`,\ + \ `SpanEventAttribute`." + required: false + schema: + pattern: ^(SpanAttribute|SpanEventAttribute)$ + type: string + example: SpanEventAttribute + x-pattern-message: "Should be one of: `SpanAttribute`, `SpanEventAttribute`." + responses: + "200": + description: List of available filter values for the given field. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceFieldValuesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}: + get: + tags: + - traces + summary: Get trace details. + description: Get details of a trace with the given identifier. + operationId: getTrace + parameters: + - name: traceId + in: path + description: Identifier of the trace to get the details. + required: true + schema: + type: string + responses: + "200": + description: Details of the trace with the given identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceDetail' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}/exists: + get: + tags: + - traces + summary: Check if the trace exists. + description: Check if the trace with the given identifier exists. + operationId: traceExists + parameters: + - name: traceId + in: path + description: Identifier of the trace to check. + required: true + schema: + type: string + responses: + "200": + description: The response contains the information whether the trace exists + with other optional attributes. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceExistsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}/spans: + get: + tags: + - traces + summary: Get a list of trace spans. + description: Get a list of spans for the given trace. The response is paginated + with a default limit of 100 spans per page. + operationId: getSpans + parameters: + - name: traceId + in: path + description: Identifier of the trace to get the spans. + required: true + schema: + type: string + - name: limit + in: query + description: The maximum number of results to fetch. + required: false + schema: + maximum: 500 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + "200": + description: List of spans for the given trace. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceSpansResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}/traceEvents: + get: + tags: + - traces + summary: Get a list of events (without their attributes) per span for a trace. + description: Gets a list of the events (without their attributes) attached to + each span in a given trace. The response is paginated with a default limit + of 100 spans per page. + operationId: getTraceLightEvents + parameters: + - name: traceId + in: path + description: Identifier of the trace for which span events will be returned. + required: true + schema: + maxLength: 32 + minLength: 16 + type: string + example: 695068749d21cd104222a95cabc4707c + - name: limit + in: query + description: The maximum number of spans with events returned by a single + query. + required: false + schema: + maximum: 500 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + responses: + "200": + description: Map of spans to events relations. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceLightEventsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}/criticalPath: + get: + tags: + - traces + summary: Get a critical path of a trace. + description: Get a list of span segments composing the critical path of the + trace. A span segment represents the processing time that was consumed within + the span itself and does not incorporate the processing time of its children. + The critical path is the sequence of span segments that contribute to the + total trace duration. An increase of the processing time of any segment from + the critical path would result in an increase of the total trace processing + time. + operationId: getCriticalPath + parameters: + - name: traceId + in: path + description: Identifier of the trace. + required: true + schema: + type: string + - name: limit + in: query + description: The maximum number of results to fetch. + required: false + schema: + maximum: 500 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + "200": + description: List of span segments composing the critical path. + content: + application/json: + schema: + $ref: '#/components/schemas/CriticalPathResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}/criticalPath/breakdown/service: + get: + tags: + - traces + summary: Get a critical path service breakdown of a trace. + description: Get a critical path breakdown by services of the spans contributing + to the critical path of a trace with the given identifier. + operationId: getCriticalPathServiceBreakdown + parameters: + - name: traceId + in: path + description: Identifier of the trace. + required: true + schema: + type: string + responses: + "200": + description: List of elements representing the critical path service breakdown. + content: + application/json: + schema: + $ref: '#/components/schemas/CriticalPathServiceBreakdownResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}/spans/{spanId}: + get: + tags: + - traces + summary: Get span details. + description: Get details of a span with the given identifier. + operationId: getSpan + parameters: + - name: traceId + in: path + description: Identifier of the trace the span belongs to. + required: true + schema: + type: string + - name: spanId + in: path + description: Identifier of the span to get the details. + required: true + schema: + type: string + responses: + "200": + description: Details of the span with the given identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceSpanDetail' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}/spans/{spanId}/billingInfo: + get: + tags: + - traces + summary: Get span billing details. + description: Get the billing information of the span. + operationId: getSpanBillingInfo + parameters: + - name: traceId + in: path + description: Identifier of the trace the span belongs to. + required: true + schema: + type: string + - name: spanId + in: path + description: Identifier of the span to get the billing info. + required: true + schema: + type: string + responses: + "200": + description: Billing information of the span with the given identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceSpanBillingInfo' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery: + post: + tags: + - spanAnalytics + summary: Run a span analytics query asynchronously. + description: "Execute a span analytics query and get the id to fetch its status\ + \ and results. Use the [Span Query Status](#operation/getSpanQueryStatus)\ + \ endpoint to check a query status. When the query has been completed, use\ + \ the [Span Query Result](#operation/getSpanQueryResult) endpoint to get the\ + \ result of the asynchronous query." + operationId: createSpanQuery + parameters: [] + requestBody: + description: Query parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/SpanQueryRequest' + required: true + responses: + "200": + description: Query execution result. + content: + application/json: + schema: + $ref: '#/components/schemas/SpanQueryResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/{queryId}: + delete: + tags: + - spanAnalytics + summary: Cancel a span analytics query. + description: Cancel a currently processed span search query with the given id. + operationId: cancelSpanQuery + parameters: + - name: queryId + in: path + description: Identifier of the query to cancel. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + responses: + "204": + description: Query canceled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/{queryId}/status: + get: + tags: + - spanAnalytics + summary: Get a span analytics query status. + description: "Get a status of a span analytics query with the given id. When\ + \ the query has been completed, use the [Span Query Result](#operation/getSpanQueryResult)\ + \ endpoint to get the result of the asynchronous query." + operationId: getSpanQueryStatus + parameters: + - name: queryId + in: path + description: Identifier of the executed query. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + responses: + "200": + description: Details about the given span query. + content: + application/json: + schema: + $ref: '#/components/schemas/SpanQueryStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/{queryId}/pause: + put: + tags: + - spanAnalytics + summary: Pause a span analytics query. + description: Pause a currently processed span search query with the given id. + operationId: pauseSpanQuery + parameters: + - name: queryId + in: path + description: Identifier of the query to pause. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + responses: + "204": + description: Query paused successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/{queryId}/resume: + put: + tags: + - spanAnalytics + summary: Resume a span analytics query. + description: Resume a previously paused span search query with the given id. + operationId: resumeSpanQuery + parameters: + - name: queryId + in: path + description: Identifier of the query to resume. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + responses: + "204": + description: Query resumed successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/{queryId}/rows/{rowId}/spans: + get: + tags: + - spanAnalytics + summary: Get results of a span analytics query. + description: Get a list of spans matching a query with the specified id. The + response is paginated with a default limit of 100 spans per page. + operationId: getSpanQueryResult + parameters: + - name: queryId + in: path + description: Identifier of the executed query. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + - name: rowId + in: path + description: Identifier of the query row. + required: true + schema: + type: string + example: A + - name: limit + in: query + description: Limit of the number of spans returned in the response. + required: false + schema: + maximum: 500 + minimum: 1 + type: integer + format: int32 + example: 100 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + responses: + "200": + description: Details about the given span query. + content: + application/json: + schema: + $ref: '#/components/schemas/SpanQueryResultSpansResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/{queryId}/rows/{rowId}/facets: + get: + tags: + - spanAnalytics + summary: Get a list of facets of a span analytics query. + description: Get a list of facets of a span analytics query with the specified + id. + operationId: getSpanQueryFacets + parameters: + - name: queryId + in: path + description: Identifier of the executed query. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + - name: rowId + in: path + description: Identifier of the query row. + required: true + schema: + type: string + example: A + responses: + "200": + description: The list of facets from the executed query. + content: + application/json: + schema: + $ref: '#/components/schemas/SpanQueryResultFacetsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/{queryId}/aggregates: + get: + tags: + - spanAnalytics + summary: Get span analytics query aggregated results. + description: Get span aggregation results for an aggregated span analytics query + with the specified id. Only aggregated rows being part of the executed query + will have matching results in the response of this endpoint. + operationId: getSpanQueryAggregates + parameters: + - name: queryId + in: path + description: Identifier of the executed query. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + responses: + "200": + description: The aggregation result of the executed query. + content: + application/json: + schema: + $ref: '#/components/schemas/SpanQueryAggregateResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/fields: + get: + tags: + - spanAnalytics + summary: Get filter fields for span analytics queries. + description: Get a list of available fields which can be used in span analytics + queries. + operationId: getSpanQueryFields + parameters: [] + responses: + "200": + description: List of available fields. + content: + application/json: + schema: + $ref: '#/components/schemas/SpanQueryFieldsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/fields/{field}/values: + get: + tags: + - spanAnalytics + summary: Get span analytics query filter field values. + description: Get a list of available values for the given span analytics query + filter field. Not all fields support value listing. The response is paginated + with a default limit of 10 field values per page. + operationId: getSpanQueryFieldValues + parameters: + - name: field + in: path + description: Field identifier. + required: true + schema: + type: string + - name: query + in: query + description: Search filter to apply on the values to be returned. Only values + containing the search query term will be returned. + required: false + schema: + type: string + - name: limit + in: query + description: The maximum number of results to fetch. + required: false + schema: + maximum: 500 + minimum: 1 + type: integer + format: int32 + default: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + "200": + description: List of available filter values for the given field. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceFieldValuesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/serviceMap: + get: + tags: + - serviceMap + summary: Get a service map. + description: Run a search request to get a map of services and connections between + them. + operationId: getServiceMap + parameters: [] + responses: + "200": + description: List of nodes and list of edges. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceMapResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/db: + get: + tags: + - threatIntelIngest + summary: Get threat intel indicators DB information + description: "Get threat intel indicators DB information, such as storage utilization\ + \ and indicator counts" + operationId: datastoreGet + responses: + "200": + description: Threat intel ingest DB information. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - threatIntelIngest + summary: Remove the threat intel indicators DB + description: Removes the entire database and all indicators associated with + this tenant + operationId: removeDatastore + responses: + "204": + description: Removing the indicator database succeeded + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/retentionPeriod: + get: + tags: + - threatIntelIngest + summary: Get threat intel indicators store retention period in terms of days. + description: Get the threat intel indicators store retention period in terms + of days. + operationId: retentionPeriod + responses: + "200": + description: Threat intel indicators store retention period. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreRetentionPeriod' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - threatIntelIngest + summary: Set the threat intel indicators store retention period in terms of + days. + description: Sets the threat intel indicators store retention period in terms + of days. + operationId: setRetentionPeriod + parameters: [] + requestBody: + description: The threat intel indicators store retention period in terms of + days. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreRetentionPeriod' + required: true + responses: + "200": + description: Threat intel indicators store retention period. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreRetentionPeriod' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/indicators/normalized: + post: + tags: + - threatIntelIngestProducer + summary: Uploads indicators in a Sumo normalized format. + description: Uploads a list indicators in a Sumo normalized format. + operationId: uploadNormalizedIndicators + parameters: [] + requestBody: + description: The list of normalized threat intel indicators to upload. + content: + application/json: + schema: + $ref: '#/components/schemas/UploadNormalizedIndicatorRequest' + required: true + responses: + "204": + description: Normalized indicators successfully uploaded. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/indicators/stix: + post: + tags: + - threatIntelIngestProducer + summary: Uploads indicators in a STIX 2.x json format. + description: Uploads a list indicators in in a STIX 2.x json format. + operationId: uploadStixIndicators + parameters: [] + requestBody: + description: Upload stix indicators request body. + content: + application/json: + schema: + $ref: '#/components/schemas/UploadStixIndicatorsRequest' + required: true + responses: + "200": + description: Stix indicators successfully uploaded. + content: + application/json: + schema: + $ref: '#/components/schemas/UploadStixIndicatorsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/indicators: + delete: + tags: + - threatIntelIngestProducer + summary: Removes indicators by their IDS + description: Removes indicators by specifying a list of indicator IDs + operationId: removeIndicators + parameters: [] + requestBody: + description: The list of indicator IDs to remove + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveIndicatorsRequest' + required: true + responses: + "204": + description: Indicators successfully removed + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/dataSource/{dataSourceName}: + put: + tags: + - threatIntelIngest + summary: Updates source properties + description: Updates source properties + operationId: dataSourcePropertiesUpdate + parameters: + - name: dataSourceName + in: path + description: Source name + required: true + schema: + type: string + requestBody: + description: Source properties + content: + application/json: + schema: + $ref: '#/components/schemas/DataSourceProperties' + required: true + responses: + "204": + description: Data source properties successfuly updated. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors: + post: + tags: + - otCollectorManagementExternal + summary: Get paginated list of OT Collectors + description: "Given different filter, search and sort conditions, get list of\ + \ otCollectors." + operationId: getPaginatedOTCollectors + requestBody: + description: pagination request details + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedOTCollectorsRequest' + required: true + responses: + "200": + description: A list of paginated OT Collectors. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedOTCollectorsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/{id}: + get: + tags: + - otCollectorManagementExternal + summary: Get OT Collector by ID. + description: Get OT Collector by ID. + operationId: getOTCollector + parameters: + - name: id + in: path + description: Identifier of the OT Collector to get. + required: true + schema: + type: string + responses: + "200": + description: An OT Collector by identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/OTCollector' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - otCollectorManagementExternal + summary: Delete an OT Collector. + description: Delete an OT Collector with the given identifier. + operationId: deleteOTCollector + parameters: + - name: id + in: path + description: Identifier of the OT Collector to delete. + required: true + schema: + type: string + responses: + "204": + description: The OT Collector was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/totalCount: + get: + tags: + - otCollectorManagementExternal + summary: Get a count of OT Collectors. + description: Get total count of OT Collectors for a customer. + operationId: getOTCollectorsCount + responses: + "200": + description: Total count of OT Collectors. + content: + application/json: + schema: + $ref: '#/components/schemas/OTCollectorCountResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/otCollectorsByName: + get: + tags: + - otCollectorManagementExternal + summary: Get OT Collectors by name. + description: "provided list of names, get all OT Collectors with metadata." + operationId: getOTCollectorsByNames + parameters: + - name: names + in: query + description: A required parameter that accepts a list of names for which we + need to collect all metadata. + required: true + schema: + type: array + items: + type: string + responses: + "200": + description: A list of OT Collectors. + content: + application/json: + schema: + $ref: '#/components/schemas/OTCollectorListResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/offline: + delete: + tags: + - otCollectorManagementExternal + summary: Delete all Offline OT Collectors + description: Delete all offline OT Collectors for a given customer. + operationId: deleteOfflineOTCollectors + responses: + "204": + description: All offline OT Collectors of the given customer deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates: + get: + tags: + - sourceTemplateManagementExternal + summary: List all source templates. + description: Get a list of all source templates. + operationId: getSourceTemplatesV2 + parameters: + - name: showDisabled + in: query + description: "A boolean parameter to get all, including disabled source templates." + required: false + schema: + type: boolean + default: false + - name: name + in: query + description: Only return source template matching the given name (exact match). + required: false + schema: + minLength: 1 + type: string + nullable: true + - name: fleetIds + in: query + description: Comma-separated list of fleet IDs (hex-encoded). + required: false + explode: false + schema: + type: array + items: + type: string + responses: + "200": + description: A list of source templates. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateListResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - sourceTemplateManagementExternal + summary: Create source template. + description: Create source template. + operationId: createSourceTemplateV2 + parameters: + - name: dryRun + in: query + description: "Whether this creation request is a dry run. With dryRun set\ + \ to true, the source template will not be created but the request will\ + \ be validated." + required: false + schema: + type: boolean + example: true + default: false + requestBody: + description: Create source template details + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateRequest' + required: true + responses: + "200": + description: Create source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/{id}: + get: + tags: + - sourceTemplateManagementExternal + summary: Get a source template by Id. + description: Get a source template with the given identifier. + operationId: getSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to get. + required: true + schema: + type: string + responses: + "200": + description: Get source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - sourceTemplateManagementExternal + summary: Update source template. + description: Update a source template with the given identifier. + operationId: updateSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Request details of update source template. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateUpdateRequest' + required: true + responses: + "200": + description: Update source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - sourceTemplateManagementExternal + summary: Delete a source template. + description: Delete a source template with the given identifier. + operationId: deleteSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to delete. + required: true + schema: + type: string + responses: + "204": + description: The source template was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/{id}/status: + put: + tags: + - sourceTemplateManagementExternal + summary: Update status of source template + description: Update the status (enable or disable) of a source template. + operationId: updateSourceTemplateStatusV2 + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Status of source template + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateStatusUpdateRequest' + required: true + responses: + "200": + description: Update source template status response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/{id}/upgrade: + post: + tags: + - sourceTemplateManagementExternal + summary: Upgrade source template. + description: Upgrade a source template with the given identifier. + operationId: upgradeSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to upgrade. + required: true + schema: + type: string + requestBody: + description: Source template upgrade request details. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateUpgradeRequest' + required: true + responses: + "200": + description: Upgrade source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/getLinkedSourceTemplatesImpact: + post: + tags: + - sourceTemplateManagementExternal + summary: Preview source template linking changes. + description: "Given the set of tags user wants to update, display the list of\ + \ source templates that will be linked/unlinked to the otCollector." + operationId: getLinkedSourceTemplatesImpact + requestBody: + description: Request body containing otCollector id and set of tags. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateRequest' + required: true + responses: + "200": + description: A list of source templates whose linking to the otCollector + will be impacted. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplate: + get: + tags: + - sourceTemplateManagementExternal + summary: Return all source templates of a customer (deprecated). + description: | + Get a list of source template. + + **DEPRECATED**: This endpoint will be removed soon. Please use GET /v1/sourceTemplates instead. + operationId: getSourceTemplates + parameters: + - name: showDisabled + in: query + description: "A boolean parameter to get all, including disabled source templates." + required: false + schema: + type: boolean + default: false + - name: name + in: query + description: Only return source template matching the given name (exact match). + required: false + schema: + minLength: 1 + type: string + nullable: true + - name: fleetIds + in: query + description: Comma-separated list of fleet IDs (hex-encoded). + required: false + explode: false + schema: + type: array + items: + type: string + responses: + "200": + description: A list of source templates. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateListResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + post: + tags: + - sourceTemplateManagementExternal + summary: Create source template (deprecated). + description: | + Create source template. + + **DEPRECATED**: This endpoint will be removed soon. Please use POST /v1/sourceTemplates instead. + operationId: createSourceTemplate + parameters: + - name: dryRun + in: query + description: "Whether this creation request is a dry run. With dryRun set\ + \ to true, the source template will not be created but the request will\ + \ be validated." + required: false + schema: + type: boolean + example: true + default: false + requestBody: + description: Create source template details + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateRequest' + required: true + responses: + "200": + description: Create source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + /v1/sourceTemplate/{id}: + get: + tags: + - sourceTemplateManagementExternal + summary: Get a source template by Id (deprecated). + description: | + Get a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use GET /v1/sourceTemplates/{id} instead. + operationId: getSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to get. + required: true + schema: + type: string + responses: + "200": + description: Get source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + post: + tags: + - sourceTemplateManagementExternal + summary: Update source template (deprecated). + description: | + Update a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use POST /v1/sourceTemplates/{id} instead. + operationId: updateSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Source template request details. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateRequest' + required: true + responses: + "200": + description: Update source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + delete: + tags: + - sourceTemplateManagementExternal + summary: Delete a source template (deprecated). + description: | + Delete a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use DELETE /v1/sourceTemplates/{id} instead. + operationId: deleteSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to delete. + required: true + schema: + type: string + responses: + "204": + description: The source template was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + /v1/upgrade/sourceTemplate/{id}: + post: + tags: + - sourceTemplateManagementExternal + summary: Upgrade source template (deprecated). + description: | + Upgrade a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use POST /v1/sourceTemplates/{id}/upgrade instead. + operationId: upgradeSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to upgrade. + required: true + schema: + type: string + requestBody: + description: Source template upgrade request details. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateUpgradeRequest' + required: true + responses: + "200": + description: Upgrade source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + /v1/sourceTemplate/getLinkedSourceTemplatesImpact: + post: + tags: + - sourceTemplateManagementExternal + summary: Get linked source templates update based on the ot-collector tags user + is wants to update. + description: "Given the set of tags user wants to update, display the list of\ + \ source templates that will be linked/unlinked to the otCollector." + operationId: getLinkedSourceTemplatesUpdate + requestBody: + description: Request body containing otCollector id and set of tags. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateRequest' + required: true + responses: + "200": + description: A list of source templates whose linking to the otCollector + will be impacted. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplate/{id}/status: + put: + tags: + - sourceTemplateManagementExternal + summary: Update status of source template (deprecated) + description: | + Update the status (enable or disable) of a source template. + + **DEPRECATED**: This endpoint will be removed soon. Please use PUT /v1/sourceTemplates/{id}/status instead. + operationId: updateSourceTemplateStatus + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Status of source template + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateStatusUpdateRequest' + required: true + responses: + "200": + description: Update source template status response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + /v1/schemaIdentitiesGrouped: + get: + tags: + - schemaBaseManagement + summary: Get schema base identities grouped by type and sorted by version. + description: Get a summary of all available schema bases grouped by type and + their versions sorted by latest. + operationId: getSchemaIdentitiesGrouped + responses: + "200": + description: A summary of all available schema bases grouped by type and + their versions sorted by latest. + content: + application/json: + schema: + $ref: '#/components/schemas/ListSchemaBaseTypeToVersionsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/eventExtractionRules: + get: + tags: + - eventAnalytics + summary: Get all event extraction rules. + description: Get all event extraction rules. + operationId: getEventExtractionRules + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "200": + description: Event extraction rules. + content: + application/json: + schema: + $ref: '#/components/schemas/ListEventExtractionRulesResponse' + post: + tags: + - eventAnalytics + summary: Create event extraction rule. + description: Create event extraction rule. + operationId: createEventExtractionRule + requestBody: + description: Information to create a new event extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRule' + required: true + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "200": + description: The event extraction rule was created. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + /v1/eventExtractionRules/quota: + get: + tags: + - eventAnalytics + summary: Get event extraction rules quota. + description: Every customer can use a limited number of Event Extraction Rules. + This endpoint allows learning about these limitations and remaining quota. + operationId: getEventExtractionRulesQuota + responses: + "200": + description: Current state of Event Extraction Rules quota usage (limit + and remaining). + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRulesQuotaUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/eventExtractionRules/{id}: + get: + tags: + - eventAnalytics + summary: Get an event extraction rule. + description: Get an event extraction rule. + operationId: getEventExtractionRule + parameters: + - name: id + in: path + description: The identifier of the event extraction rule. + required: true + schema: + type: string + example: 000000000000000A + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "200": + description: Requested event extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + put: + tags: + - eventAnalytics + summary: Update an event extraction rule. + description: Update an event extraction rule. + operationId: updateEventExtractionRule + parameters: + - name: id + in: path + description: The identifier of the event extraction rule. + required: true + schema: + type: string + example: 000000000000000A + requestBody: + description: Information to update event extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRule' + required: true + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "200": + description: The event extraction rule was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + delete: + tags: + - eventAnalytics + summary: Delete an event extraction rule. + description: Delete an event extraction rule. + operationId: deleteEventExtractionRule + parameters: + - name: id + in: path + description: The identifier of the event extraction rule. + required: true + schema: + type: string + example: 000000000000000A + responses: + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + "204": + description: The event extraction rule was successfully deleted. + /v1/budgets: + get: + tags: + - budgetManagement + summary: Get budgets + description: Get budgets + operationId: getBudgets + parameters: + - name: limit + in: query + description: Limit the number of budgets returned in the response. The number + of budgets returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. + required: false + schema: + type: string + responses: + "200": + description: Budgets assigned to the org. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetList' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - budgetManagement + summary: Creates a budget definition + description: Create a budget definition + operationId: createBudget + parameters: [] + requestBody: + description: Information about the new budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetDefinition' + required: true + responses: + "200": + description: The created budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudget' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/budgets/{budgetId}: + get: + tags: + - budgetManagement + summary: Get budget + description: Get budget + operationId: getBudget + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + responses: + "200": + description: The requested budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudget' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - budgetManagement + summary: Update budget + description: Update budget + operationId: updateBudget + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + requestBody: + description: Updated budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetDefinition' + required: true + responses: + "200": + description: The updated budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudget' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - budgetManagement + summary: Delete budget + description: Delete budget + operationId: deleteBudget + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + responses: + "204": + description: The budget was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/budgets/usage: + get: + tags: + - budgetManagement + summary: Get budget usages + description: Get budget usages + operationId: getBudgetUsages + parameters: + - name: limit + in: query + description: Limit the number of budget usages returned in the response. The + number of budget usages returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. + required: false + schema: + type: string + responses: + "200": + description: Scan budget usages. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetUsageList' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/budgets/{budgetId}/usage: + get: + tags: + - budgetManagement + summary: Get budget usage + description: Get budget usage + operationId: getBudgetUsage + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + responses: + "200": + description: The requested budget usage. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync: + get: + tags: + - contentConfigManagement + summary: Get Content Sync Job Id. + description: Get Content Sync Job Id of last triggered job. + operationId: getContentSyncJobDetails + responses: + "200": + description: Last triggered Content Sync Job Details. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResponse' + default: + description: Error occurred while getting Content Sync Job Id. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - contentConfigManagement + summary: Sync Content and Configuration across Organization. + description: Sync Content and Configuration across Organization. + operationId: contentSync + requestBody: + description: Content and Organisation Information for Syncing. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncRequest' + required: true + responses: + "200": + description: Content Sync Job created successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResponse' + default: + description: Failed to created Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/status: + get: + tags: + - contentConfigManagement + summary: Get Status of Content Sync Job. + description: Get Status of Content Sync Job. + operationId: contentSyncStatus + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + responses: + "200": + description: Content Sync Job Status + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncStatusResponse' + default: + description: Error occurred while getting Content Sync Job Status. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/retry: + post: + tags: + - contentConfigManagement + summary: Retry Content Sync Job by ID + description: Retry Content Sync Job by ID to re-execute job. + operationId: contentSyncRetry + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + - name: retryOptions + in: query + description: Controls which contents to retry + required: false + schema: + $ref: '#/components/schemas/RetryOptions' + responses: + "200": + description: Content Sync Job restarted successfully + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResponse' + default: + description: Error occurred while restarting Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/cancel: + post: + tags: + - contentConfigManagement + summary: Cancel Content Sync Job by ID + description: Cancel In Progress Sync Job by ID.. + operationId: contentSyncCancel + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + responses: + "202": + description: Content Sync Job Cancellation started successfully + content: {} + default: + description: Error occurred while cancelling Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/result: + get: + tags: + - contentConfigManagement + summary: Get Result of Content Sync Job by ID. + description: Get Result Of Content Sync Job by ID. + operationId: contentSyncResult + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + - name: status + in: query + description: "Specific Status of Content Sync Job Result to be fetched. Possible\ + \ values are \"SUCCESS\", \"FAILED\", \"WARNING\", \"CANCELLED\"." + required: true + schema: + type: string + responses: + "200": + description: Result of Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResult' + default: + description: Error occurred while getting Result for Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/info: + get: + tags: + - contentConfigManagement + summary: Get Information of Content Sync Job by ID. + description: Information Of Content Sync Job by ID. + operationId: contentSyncJobInfo + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + responses: + "200": + description: Information of Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncJobInfo' + default: + description: Error occurred while getting Result for Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/search/jobs: + post: + tags: + - searchJobManagement + summary: Create a search job. + description: Create a new search job. + operationId: createSearchJob + parameters: [] + requestBody: + description: Information about the new search job to be created. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateJobRequest' + required: true + responses: + "202": + description: The search job has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateJobResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/search/jobs/{jobId}: + get: + tags: + - searchJobManagement + summary: Get a search job's status. + description: Use the search job identifier to obtain the current status of a + search job. + operationId: getSearchJobStatus + parameters: + - name: jobId + in: path + description: The identifier of the search job. + required: true + schema: + type: string + responses: + "200": + description: The search job's status. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchJobStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - searchJobManagement + summary: Delete a search job. + description: Use the search job identifier to delete the search job. + operationId: deleteSearchJob + parameters: + - name: jobId + in: path + description: The identifier of the search job to be deleted. + required: true + schema: + type: string + responses: + "200": + description: The search job was deleted successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchJobDeleteResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/search/jobs/{jobId}/messages: + get: + tags: + - searchJobManagement + summary: Get paginated messages from an offset. + description: Use the search job identifier to obtain the paginated messages + from an offset. + operationId: getSearchJobPaginatedMessages + parameters: + - name: jobId + in: path + description: The identifier of the search job. + required: true + schema: + type: string + - name: offset + in: query + description: Return messages starting at this offset. + required: true + schema: + type: integer + - name: limit + in: query + description: | + Limit the number of messages returned in the response. The number of messages returned may be less than the `limit`. + required: true + schema: + maximum: 10000 + type: integer + responses: + "200": + description: A paginated list of messages. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchQueryPaginatedMessages' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/search/jobs/{jobId}/records: + get: + tags: + - searchJobManagement + summary: Get aggregated records. + description: Use the search job identifier to obtain the aggregated records + from an offset. + operationId: getSearchJobPaginatedRecords + parameters: + - name: jobId + in: path + description: The identifier of the search job. + required: true + schema: + type: string + - name: offset + in: query + description: Return aggregated records starting at this offset. + required: true + schema: + type: integer + - name: limit + in: query + description: | + Limit the number of records returned in the response. + required: true + schema: + maximum: 10000 + type: integer + responses: + "200": + description: A paginated list of records. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchQueryPaginatedRecords' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/macros: + get: + tags: + - macroManagement + summary: List all macros. + description: List all viewable macros for the customer. + operationId: listMacros + parameters: + - name: limit + in: query + description: Limit the number of macro returned in the response. The number + of macros returned may be less than the `limit`. Default 50. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object + with the next continuation token is returned in the response body. Subsequent + GET requests should specify the continuation token to get the next page + of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + responses: + "200": + description: Paginated list of viewable macros for the customer. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedMacros' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - macroManagement + summary: Create a new macro. + description: Creates a new macro. + operationId: createMacro + requestBody: + description: Information to create the new macro. + content: + application/json: + schema: + $ref: '#/components/schemas/MacroRequest' + required: true + responses: + "200": + description: The macro has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/Macro' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/macros/{id}: + get: + tags: + - macroManagement + summary: Get a macro. + description: Get a macro by the given identifier. + operationId: getMacro + parameters: + - name: id + in: path + description: UUID of the macro. + required: true + schema: + type: string + responses: + "200": + description: Macro object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/Macro' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - macroManagement + summary: Edit a macro. + description: Edits an existing macro by id. Macro name is immutable. + operationId: editMacro + parameters: + - name: id + in: path + description: UUID of the macro to edit. + required: true + schema: + type: string + requestBody: + description: Macro fields to update. Macro name is immutable. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseMacroRequest' + required: true + responses: + "200": + description: The edited macro. + content: + application/json: + schema: + $ref: '#/components/schemas/Macro' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - macroManagement + summary: Delete a macro. + description: Delete a macro by id. + operationId: deleteMacro + parameters: + - name: id + in: path + description: Id of macro to delete. + required: true + schema: + type: string + responses: + "204": + description: Macro was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/featureSettings: + get: + tags: + - orgFeatureSettings + summary: Get a list of opt-in/out features. + description: Get a list of opt-in/out features for the organization. + operationId: listFeatureSettings + responses: + "200": + description: A list of opt-in/out features for the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/FeatureSettingsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - orgFeatureSettings + summary: Update one or more feature settings. + description: Update feature settings for the organization. + operationId: updateFeatureSettings + parameters: [] + requestBody: + description: List of feature Id and its settings. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFeatureSettingsRequest' + required: true + responses: + "200": + description: One or more feature settings have been updated. + content: + application/json: + schema: + $ref: '#/components/schemas/FeatureSettingsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Bulk read a mutingschedule or folder. + description: Bulk read a mutingschedule or folder by the given identifiers from + the mutingSchedules library. + operationId: mutingSchedulesReadByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: "0000000000000001,0000000000000002,0000000000000003" + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of + requested folder(s) + required: false + schema: + type: boolean + responses: + "200": + description: A map between an identifier and its definition (mutingschedule + or folder). + content: + application/json: + schema: + $ref: '#/components/schemas/IdToMutingSchedulesLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - mutingSchedulesLibraryManagement + summary: | + Create a mutingschedule or folder. + description: Create a mutingschedule or folder in the mutingSchedules library. + operationId: mutingSchedulesCreate + parameters: + - name: parentId + in: query + description: Identifier of the parent folder in which to create the mutingschedule + or folder. + required: true + schema: + type: string + requestBody: + description: The mutingschedule or folder to create. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBase' + required: true + responses: + "200": + description: The mutingschedule or folder was created. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - mutingSchedulesLibraryManagement + summary: | + Bulk delete a mutingschedule or folder. + description: Bulk delete a mutingschedule or folder by the given identifiers + in the mutingSchedules library. + operationId: mutingSchedulesDeleteByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: "0000000000000001,0000000000000002,0000000000000003" + responses: + "200": + description: A map between the deleted identifier and its metadata. + content: + application/json: + schema: + $ref: '#/components/schemas/IdToMutingSchedulesLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/root: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Get the root mutingSchedules folder. + description: Get the root folder in the mutingSchedules library. + operationId: getMutingSchedulesLibraryRoot + responses: + "200": + description: Root folder of the mutingSchedules library. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryFolderResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/search: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Search for a mutingschedule or folder. + description: Search for a mutingschedule or folder in the mutingSchedules library + structure. + operationId: mutingSchedulesSearch + parameters: + - name: query + in: query + description: |- + The search query to find mutingschedule or folder. Below is the list of different filters with examples: + - **createdBy** : Filter by the user's identifier who created the content. Example: `createdBy:000000000000968B`. + - **createdBefore** : Filter by the content objects created before the given timestamp(in milliseconds). Example: `createdBefore:1457997222`. + - **createdAfter** : Filter by the content objects created after the given timestamp(in milliseconds). Example: `createdAfter:1457997111`. + - **modifiedBefore** : Filter by the content objects modified before the given timestamp(in milliseconds). Example: `modifiedBefore:1457997222`. + - **modifiedAfter** : Filter by the content objects modified after the given timestamp(in milliseconds). Example: `modifiedAfter:1457997111`. + - **type** : Filter by the type of the content object. Example: `type:folder`. + + You can also use multiple filters in one query. For example to search for all content objects created by user with identifier 000000000000968B with creation timestamp after 1457997222 containing the text Test, the query would look like: + + `createdBy:000000000000968B createdAfter:1457997222 Test` + required: true + schema: + type: string + example: createdBy:000000000000968B Test + - name: limit + in: query + description: Maximum number of items you want in the response. + required: false + schema: + maximum: 5000 + type: integer + format: int32 + default: 1000 + example: 10 + - name: offset + in: query + description: The position or row from where to start the search operation. + required: false + schema: + type: integer + format: int32 + default: 0 + example: 5 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of + requested folder(s) + required: false + schema: + type: boolean + responses: + "200": + description: List of folders and mutingSchedules matching the search query. + content: + application/json: + schema: + $ref: '#/components/schemas/ListMutingSchedulesLibraryItemWithPath' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Get a mutingschedule or folder. + description: Get a mutingschedule or folder from the mutingSchedules library. + operationId: mutingSchedulesReadById + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to read. + required: true + schema: + type: string + responses: + "200": + description: Requested mutingschedule or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - mutingSchedulesLibraryManagement + summary: | + Update a mutingschedule or folder. + description: Update a mutingschedule or folder in the mutingSchedules library. + operationId: mutingSchedulesUpdateById + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to update. + required: true + schema: + type: string + requestBody: + description: The mutingschedule or folder to update. The content version must + match its latest version number in the mutingSchedules library. If the version + does not match it will not be updated. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseUpdate' + required: true + responses: + "200": + description: The mutingschedule or folder was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - mutingSchedulesLibraryManagement + summary: | + Delete a mutingschedule or folder. + description: Delete a mutingschedule or folder from the mutingSchedules library. + operationId: mutingSchedulesDeleteById + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to delete. + required: true + schema: + type: string + responses: + "204": + description: The mutingschedule or folder was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}/path: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Get the path of a mutingschedule or folder. + description: Get the full path of the mutingschedule or folder in the mutingSchedules + library. + operationId: getMutingSchedulesFullPath + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder. + required: true + schema: + type: string + responses: + "200": + description: Full path of the mutingschedule or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/Path' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}/copy: + post: + tags: + - mutingSchedulesLibraryManagement + summary: Copy a mutingschedule or folder. + description: Copy a mutingschedule or folder in the mutingSchedules library. + operationId: mutingSchedulesCopy + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to copy. + required: true + schema: + type: string + requestBody: + description: |- + Fields include: + 1) Identifier of the parent folder to copy to. + 2) Optionally provide a new name. + 3) Optionally provide a new description. + 4) Optionally set to true if you want to copy and preserve the locked status. Requires `LockMutingSchedules` capability. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentCopyParams' + required: true + responses: + "200": + description: The mutingschedule or folder was copied. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}/export: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Export a mutingschedule or folder. + description: "Export a mutingschedule or folder. If the given identifier is\ + \ a folder, everything under the folder is exported recursively with folder\ + \ as the root." + operationId: mutingSchedulesExportItem + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to export. + required: true + schema: + type: string + responses: + "200": + description: Exported mutingschedule or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseExport' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{parentId}/import: + post: + tags: + - mutingSchedulesLibraryManagement + summary: Import a mutingschedule or folder. + description: Import a mutingschedule or folder. + operationId: mutingSchedulesImportItem + parameters: + - name: parentId + in: path + description: Identifier of the parent folder in which to import the mutingschedule + or folder. + required: true + schema: + type: string + requestBody: + description: The mutingschedule or folder to be imported. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseExport' + required: true + responses: + "200": + description: "Newly imported mutingschedule or folder. NOTE: Permissions\ + \ field will not be filled (empty list)." + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos: + get: + tags: + - slosLibraryManagement + summary: Bulk read a slo or folder. + description: Bulk read a slo or folder by the given identifiers from the slos + library. + operationId: slosReadByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: "0000000000000001,0000000000000002,0000000000000003" + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of + requested folder(s) + required: false + schema: + type: boolean + responses: + "200": + description: A map between an identifier and its definition (slo or folder). + content: + application/json: + schema: + $ref: '#/components/schemas/IdToSlosLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - slosLibraryManagement + summary: | + Create a slo or folder. + description: Create a slo or folder in the slos library. + operationId: slosCreate + parameters: + - name: parentId + in: query + description: Identifier of the parent folder in which to create the slo or + folder. + required: true + schema: + type: string + requestBody: + description: The slo or folder to create. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBase' + required: true + responses: + "200": + description: The slo or folder was created. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - slosLibraryManagement + summary: | + Bulk delete a slo or folder. + description: Bulk delete a slo or folder by the given identifiers in the slos + library. + operationId: slosDeleteByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: "0000000000000001,0000000000000002,0000000000000003" + responses: + "200": + description: A map between the deleted identifier and its metadata. + content: + application/json: + schema: + $ref: '#/components/schemas/IdToSlosLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/root: + get: + tags: + - slosLibraryManagement + summary: Get the root slos folder. + description: Get the root folder in the slos library. + operationId: getSlosLibraryRoot + responses: + "200": + description: Root folder of the slos library. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryFolderResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/path: + get: + tags: + - slosLibraryManagement + summary: Read a slo or folder by its path. + description: Read a slo or folder by its path in the slos library structure. + operationId: slosGetByPath + parameters: + - name: path + in: query + description: The path of the slo or folder. + required: true + schema: + type: string + responses: + "200": + description: Requested slo or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/search: + get: + tags: + - slosLibraryManagement + summary: Search for a slo or folder. + description: Search for a slo or folder in the slos library structure. + operationId: slosSearch + parameters: + - name: query + in: query + description: |- + The search query to find slo or folder. Below is the list of different filters with examples: + - **createdBy** : Filter by the user's identifier who created the content. Example: `createdBy:000000000000968B`. + - **createdBefore** : Filter by the content objects created before the given timestamp(in milliseconds). Example: `createdBefore:1457997222`. + - **createdAfter** : Filter by the content objects created after the given timestamp(in milliseconds). Example: `createdAfter:1457997111`. + - **modifiedBefore** : Filter by the content objects modified before the given timestamp(in milliseconds). Example: `modifiedBefore:1457997222`. + - **modifiedAfter** : Filter by the content objects modified after the given timestamp(in milliseconds). Example: `modifiedAfter:1457997111`. + - **type** : Filter by the type of the content object. Example: `type:folder`. + + You can also use multiple filters in one query. For example to search for all content objects created by user with identifier 000000000000968B with creation timestamp after 1457997222 containing the text Test, the query would look like: + + `createdBy:000000000000968B createdAfter:1457997222 Test` + required: true + schema: + type: string + example: createdBy:000000000000968B Test + - name: limit + in: query + description: Maximum number of items you want in the response. + required: false + schema: + maximum: 5000 + type: integer + format: int32 + default: 1000 + example: 10 + - name: offset + in: query + description: The position or row from where to start the search operation. + required: false + schema: + type: integer + format: int32 + default: 0 + example: 5 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of + requested folder(s) + required: false + schema: + type: boolean + responses: + "200": + description: List of folders and slos matching the search query. + content: + application/json: + schema: + $ref: '#/components/schemas/ListSlosLibraryItemWithPath' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/{id}: + get: + tags: + - slosLibraryManagement + summary: Get a slo or folder. + description: Get a slo or folder from the slos library. + operationId: slosReadById + parameters: + - name: id + in: path + description: Identifier of the slo or folder to read. + required: true + schema: + type: string + responses: + "200": + description: Requested slo or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - slosLibraryManagement + summary: | + Update a slo or folder. + description: Update a slo or folder in the slos library. + operationId: slosUpdateById + parameters: + - name: id + in: path + description: Identifier of the slo or folder to update. + required: true + schema: + type: string + requestBody: + description: The slo or folder to update. The content version must match its + latest version number in the slos library. If the version does not match + it will not be updated. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseUpdate' + required: true + responses: + "200": + description: The slo or folder was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - slosLibraryManagement + summary: | + Delete a slo or folder. + description: Delete a slo or folder from the slos library. + operationId: slosDeleteById + parameters: + - name: id + in: path + description: Identifier of the slo or folder to delete. + required: true + schema: + type: string + responses: + "204": + description: The slo or folder was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/{id}/path: + get: + tags: + - slosLibraryManagement + summary: Get the path of a slo or folder. + description: Get the full path of the slo or folder in the slos library. + operationId: getSlosFullPath + parameters: + - name: id + in: path + description: Identifier of the slo or folder. + required: true + schema: + type: string + responses: + "200": + description: Full path of the slo or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/Path' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/{id}/move: + post: + tags: + - slosLibraryManagement + summary: Move a slo or folder. + description: Move a slo or folder to a different location in the slos library. + operationId: slosMove + parameters: + - name: id + in: path + description: Identifier of the slo or folder to move. + required: true + schema: + type: string + - name: parentId + in: query + description: Identifier of the parent folder to move the slo or folder to. + required: true + schema: + type: string + responses: + "200": + description: Moved slo or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/{id}/copy: + post: + tags: + - slosLibraryManagement + summary: Copy a slo or folder. + description: Copy a slo or folder in the slos library. + operationId: slosCopy + parameters: + - name: id + in: path + description: Identifier of the slo or folder to copy. + required: true + schema: + type: string + requestBody: + description: |- + Fields include: + 1) Identifier of the parent folder to copy to. + 2) Optionally provide a new name. + 3) Optionally provide a new description. + 4) Optionally set to true if you want to copy and preserve the locked status. Requires `LockSlos` capability. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentCopyParams' + required: true + responses: + "200": + description: The slo or folder was copied. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/{id}/export: + get: + tags: + - slosLibraryManagement + summary: Export a slo or folder. + description: "Export a slo or folder. If the given identifier is a folder, everything\ + \ under the folder is exported recursively with folder as the root." + operationId: slosExportItem + parameters: + - name: id + in: path + description: Identifier of the slo or folder to export. + required: true + schema: + type: string + responses: + "200": + description: Exported slo or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseExport' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/{parentId}/import: + post: + tags: + - slosLibraryManagement + summary: Import a slo or folder. + description: Import a slo or folder. + operationId: slosImportItem + parameters: + - name: parentId + in: path + description: Identifier of the parent folder in which to import the slo or + folder. + required: true + schema: + type: string + requestBody: + description: The slo or folder to be imported. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseExport' + required: true + responses: + "200": + description: "Newly imported slo or folder. NOTE: Permissions field will\ + \ not be filled (empty list)." + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors: + get: + tags: + - monitorsLibraryManagement + summary: Bulk read a monitor or folder. + description: Bulk read a monitor or folder by the given identifiers from the + monitors library. + operationId: monitorsReadByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: "0000000000000001,0000000000000002,0000000000000003" + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of + requested folder(s) + required: false + schema: + type: boolean + responses: + "200": + description: A map between an identifier and its definition (monitor or + folder). + content: + application/json: + schema: + $ref: '#/components/schemas/IdToMonitorsLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - monitorsLibraryManagement + summary: | + Create a monitor or folder. + description: Create a monitor or folder in the monitors library. + operationId: monitorsCreate + parameters: + - name: parentId + in: query + description: Identifier of the parent folder in which to create the monitor + or folder. + required: true + schema: + type: string + requestBody: + description: The monitor or folder to create. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBase' + required: true + responses: + "200": + description: The monitor or folder was created. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - monitorsLibraryManagement + summary: | + Bulk delete a monitor or folder. + description: Bulk delete a monitor or folder by the given identifiers in the + monitors library. + operationId: monitorsDeleteByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: "0000000000000001,0000000000000002,0000000000000003" + responses: + "200": + description: A map between the deleted identifier and its metadata. + content: + application/json: + schema: + $ref: '#/components/schemas/IdToMonitorsLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/root: + get: + tags: + - monitorsLibraryManagement + summary: Get the root monitors folder. + description: Get the root folder in the monitors library. + operationId: getMonitorsLibraryRoot + responses: + "200": + description: Root folder of the monitors library. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryFolderResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/path: + get: + tags: + - monitorsLibraryManagement + summary: Read a monitor or folder by its path. + description: Read a monitor or folder by its path in the monitors library structure. + operationId: monitorsGetByPath + parameters: + - name: path + in: query + description: The path of the monitor or folder. + required: true + schema: + type: string + responses: + "200": + description: Requested monitor or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/search: + get: + tags: + - monitorsLibraryManagement + summary: Search for a monitor or folder. + description: Search for a monitor or folder in the monitors library structure. + operationId: monitorsSearch + parameters: + - name: query + in: query + description: |- + The search query to find monitor or folder. Below is the list of different filters with examples: + - **createdBy** : Filter by the user's identifier who created the content. Example: `createdBy:000000000000968B`. + - **createdBefore** : Filter by the content objects created before the given timestamp(in milliseconds). Example: `createdBefore:1457997222`. + - **createdAfter** : Filter by the content objects created after the given timestamp(in milliseconds). Example: `createdAfter:1457997111`. + - **modifiedBefore** : Filter by the content objects modified before the given timestamp(in milliseconds). Example: `modifiedBefore:1457997222`. + - **modifiedAfter** : Filter by the content objects modified after the given timestamp(in milliseconds). Example: `modifiedAfter:1457997111`. + - **type** : Filter by the type of the content object. Example: `type:folder`. + - **monitorStatus** : Filter by the status of the monitor: Normal, Critical, Warning, MissingData, Disabled, AllTriggered. Example: `monitorStatus:Normal`. + + You can also use multiple filters in one query. For example to search for all content objects created by user with identifier 000000000000968B with creation timestamp after 1457997222 containing the text Test, the query would look like: + + `createdBy:000000000000968B createdAfter:1457997222 Test` + required: true + schema: + type: string + example: createdBy:000000000000968B Test + - name: limit + in: query + description: Maximum number of items you want in the response. + required: false + schema: + maximum: 5000 + type: integer + format: int32 + default: 1000 + example: 10 + - name: offset + in: query + description: The position or row from where to start the search operation. + required: false + schema: + type: integer + format: int32 + default: 0 + example: 5 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of + requested folder(s) + required: false + schema: + type: boolean + responses: + "200": + description: List of folders and monitors matching the search query. + content: + application/json: + schema: + $ref: '#/components/schemas/ListMonitorsLibraryItemWithPath' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{id}: + get: + tags: + - monitorsLibraryManagement + summary: Get a monitor or folder. + description: Get a monitor or folder from the monitors library. + operationId: monitorsReadById + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to read. + required: true + schema: + type: string + responses: + "200": + description: Requested monitor or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - monitorsLibraryManagement + summary: | + Update a monitor or folder. + description: "Update a monitor or folder in the monitors library. When making\ + \ updates to existing monitors via API, all configurations are over-written.\ + \ Make sure to include all configurations of the monitor (existing with new\ + \ updates), not just the new configurations you want to apply." + operationId: monitorsUpdateById + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to update. + required: true + schema: + type: string + requestBody: + description: The monitor or folder to update. The content version must match + its latest version number in the monitors library. If the version does not + match it will not be updated. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseUpdate' + required: true + responses: + "200": + description: The monitor or folder was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - monitorsLibraryManagement + summary: | + Delete a monitor or folder. + description: Delete a monitor or folder from the monitors library. + operationId: monitorsDeleteById + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to delete. + required: true + schema: + type: string + responses: + "204": + description: The monitor or folder was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{id}/path: + get: + tags: + - monitorsLibraryManagement + summary: Get the path of a monitor or folder. + description: Get the full path of the monitor or folder in the monitors library. + operationId: getMonitorsFullPath + parameters: + - name: id + in: path + description: Identifier of the monitor or folder. + required: true + schema: + type: string + responses: + "200": + description: Full path of the monitor or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/Path' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{id}/move: + post: + tags: + - monitorsLibraryManagement + summary: Move a monitor or folder. + description: Move a monitor or folder to a different location in the monitors + library. + operationId: monitorsMove + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to move. + required: true + schema: + type: string + - name: parentId + in: query + description: Identifier of the parent folder to move the monitor or folder + to. + required: true + schema: + type: string + responses: + "200": + description: Moved monitor or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{id}/copy: + post: + tags: + - monitorsLibraryManagement + summary: Copy a monitor or folder. + description: Copy a monitor or folder in the monitors library. + operationId: monitorsCopy + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to copy. + required: true + schema: + type: string + requestBody: + description: |- + Fields include: + 1) Identifier of the parent folder to copy to. + 2) Optionally provide a new name. + 3) Optionally provide a new description. + 4) Optionally set to true if you want to copy and preserve the locked status. Requires `LockMonitors` capability. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentCopyParams' + required: true + responses: + "200": + description: The monitor or folder was copied. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{id}/export: + get: + tags: + - monitorsLibraryManagement + summary: Export a monitor or folder. + description: "Export a monitor or folder. If the given identifier is a folder,\ + \ everything under the folder is exported recursively with folder as the root." + operationId: monitorsExportItem + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to export. + required: true + schema: + type: string + responses: + "200": + description: Exported monitor or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseExport' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{parentId}/import: + post: + tags: + - monitorsLibraryManagement + summary: Import a monitor or folder. + description: Import a monitor or folder. + operationId: monitorsImportItem + parameters: + - name: parentId + in: path + description: Identifier of the parent folder in which to import the monitor + or folder. + required: true + schema: + type: string + requestBody: + description: The monitor or folder to be imported. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseExport' + required: true + responses: + "200": + description: "Newly imported monitor or folder. NOTE: Permissions field\ + \ will not be filled (empty list)." + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{id}/permissions: + get: + tags: + - monitorsLibraryManagement + summary: | + List explicit permissions on monitor or folder. + description: List explicit permissions on monitor or folder in the monitors + library. + operationId: monitorsReadPermissionsById + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to list permissions. + required: true + schema: + type: string + responses: + "200": + description: The list of explicit permission statements for the monitor + or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/ListPermissionsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/permissions/set: + put: + tags: + - monitorsLibraryManagement + summary: | + Set permissions on monitor or folder. + description: Set permissions on monitor or folder in the monitors library. + operationId: monitorsSetPermissions + requestBody: + description: The permission statement definitions to set. + content: + application/json: + schema: + $ref: '#/components/schemas/PermissionStatementDefinitions' + required: true + responses: + "200": + description: List of the successfully set `PermissionStatements`. + content: + application/json: + schema: + $ref: '#/components/schemas/PermissionStatements' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/permissions/revoke: + put: + tags: + - monitorsLibraryManagement + summary: | + Revoke all permissions on monitor or folder. + description: Revoke all permissions on monitor or folder in the monitors library. + operationId: monitorsRevokePermissions + requestBody: + description: The identifiers of the permissions statements to revoke. + content: + application/json: + schema: + $ref: '#/components/schemas/PermissionIdentifiers' + required: true + responses: + "204": + description: Permissions were successfully revoked for monitor or folder. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{id}/permissionSummariesBySubjects: + get: + tags: + - monitorsLibraryManagement + summary: | + List permission summaries for a monitor or folder. + description: List permission summary meta(s) grouped by subjects on monitor + or folder in the monitors library. + operationId: monitorsReadPermissionSummariesByIdGroupBySubjects + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to list permissions. + required: true + schema: + type: string + responses: + "200": + description: The list of permission summary meta(s) grouped by subjects + for the monitor or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/PermissionSummariesBySubjects' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + AddOrReplaceTransformation: + allOf: + - $ref: '#/components/schemas/DimensionTransformation' + - required: + - dimensionToReplace + - value + type: object + properties: + dimensionToReplace: + type: string + description: The dimension that needs to be modified or added. + example: metric + value: + type: string + description: The value for the dimension. + example: "{{metric}}_aggregated" + AggregateOnTransformation: + allOf: + - $ref: '#/components/schemas/DimensionTransformation' + - required: + - aggregateOn + type: object + properties: + aggregateOn: + type: array + description: A list of dimensions that should be aggregated on. + example: + - metric + - cluster + items: + type: string + default: [] + BeginBoundedTimeRange: + allOf: + - $ref: '#/components/schemas/ResolvableTimeRange' + - required: + - from + type: object + properties: + from: + $ref: '#/components/schemas/TimeRangeBoundary' + to: + $ref: '#/components/schemas/TimeRangeBoundary' + CompleteLiteralTimeRange: + allOf: + - $ref: '#/components/schemas/ResolvableTimeRange' + - required: + - rangeName + type: object + properties: + rangeName: + pattern: ^(today|yesterday|previous_week|previous_month)$ + type: string + description: "Name of the complete time range. Possible values are: -\ + \ `today`, - `yesterday`, - `previous_week`, - `previous_month`." + example: previous_month + x-pattern-message: "must be one of the following: `today`, `yesterday`,\ + \ `previous_week`, `previous_month`" + EpochTimeRangeBoundary: + allOf: + - $ref: '#/components/schemas/TimeRangeBoundary' + - required: + - epochMillis + type: object + properties: + epochMillis: + type: integer + description: Starting point in time as a number of milliseconds since + the epoch. For example `1538392220000` + format: int64 + example: 1538392220000 + Iso8601TimeRangeBoundary: + allOf: + - $ref: '#/components/schemas/TimeRangeBoundary' + - required: + - iso8601Time + type: object + properties: + iso8601Time: + type: string + description: Starting point in time as a string in ISO 8601 format. For + example `2018-10-01T11:10:20.52+01:00` + format: date-time + example: 2018-10-01T11:10:20.52+01:00 + LiteralTimeRangeBoundary: + allOf: + - $ref: '#/components/schemas/TimeRangeBoundary' + - required: + - rangeName + type: object + properties: + rangeName: + type: string + description: |- + Name of the time range. Possible values are: + - `now`, + - `second`, + - `minute`, + - `hour`, + - `day`, + - `today`, + - `week`, + - `month`, + - `year` + example: week + RelativeTimeRangeBoundary: + allOf: + - $ref: '#/components/schemas/TimeRangeBoundary' + - required: + - relativeTime + type: object + properties: + relativeTime: + type: string + description: |- + Relative time as a string consisting of following elements: - `-` (optional): minus sign indicates time in the past, - ``: number of time units, - ``: time unit; possible values are: `w` (week), `d` (day), `h` (hour), `m` (minute), `s` (second). + Multiple pairs of `` may be provided, and they may be in any order. For example, `-2w5d3h` points to the moment in time 2 weeks, 5 days and 3 hours ago. + example: -2w5d3h + ResolvableTimeRange: + required: + - type + type: object + properties: + type: + type: string + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` + or `BeginBoundedTimeRange`. + example: + type: BeginBoundedTimeRange + from: + type: RelativeTimeRangeBoundary + relativeTime: -15m + discriminator: + propertyName: type + TimeRangeBoundary: + required: + - type + type: object + properties: + type: + type: string + description: "Type of the time range boundary. Value must be from list:\ + \ - `RelativeTimeRangeBoundary`, - `EpochTimeRangeBoundary`, - `Iso8601TimeRangeBoundary`,\ + \ - `LiteralTimeRangeBoundary`." + example: RelativeTimeRangeBoundary + discriminator: + propertyName: type + Header: + required: + - name + - value + type: object + properties: + name: + type: string + description: Name of the header field. + value: + type: string + description: Value of the header field. + ConnectionSubtype: + pattern: ^(Event|Incident)$ + type: string + description: The subtype of the connection. Valid values are `Event` or `Incident`. + x-pattern-message: must be `Event` or `Incident` + ServiceNowConnection: + allOf: + - $ref: '#/components/schemas/Connection' + - required: + - url + - username + type: object + properties: + url: + type: string + description: URL for the ServiceNow connection. + username: + type: string + description: User name for the ServiceNow connection. + ServiceNowDefinition: + allOf: + - $ref: '#/components/schemas/ConnectionDefinition' + - required: + - password + - url + - username + type: object + properties: + url: + type: string + description: URL for the ServiceNow connection. + example: https://www.google.com + username: + type: string + description: User name for the ServiceNow connection. + password: + type: string + description: User password for the ServiceNow connection. + WebhookConnection: + allOf: + - $ref: '#/components/schemas/Connection' + - required: + - customHeaders + - defaultPayload + - headers + - url + - webhookType + type: object + properties: + url: + type: string + description: URL for the webhook connection. + headers: + type: array + description: List of access authorization headers. + items: + $ref: '#/components/schemas/Header' + customHeaders: + type: array + description: List of custom webhook headers. + items: + $ref: '#/components/schemas/Header' + defaultPayload: + type: string + description: Default payload of the webhook. + webhookType: + $ref: '#/components/schemas/ConnectionType' + connectionSubtype: + $ref: '#/components/schemas/ConnectionSubtype' + resolutionPayload: + maxLength: 4096 + type: string + description: Resolution payload of the webhook. + warnings: + type: array + description: Webhook endpoint warning for incorrect variable names and + syntax. + example: "The following variables are not supported: NotSupportedVariable" + items: + type: string + WebhookDefinition: + allOf: + - $ref: '#/components/schemas/ConnectionDefinition' + - required: + - defaultPayload + - url + type: object + properties: + url: + type: string + description: URL for the webhook connection. + example: https://www.google.com + headers: + maxItems: 7995 + type: array + description: List of access authorization headers. + items: + $ref: '#/components/schemas/Header' + default: [] + customHeaders: + maxItems: 5 + type: array + description: List of custom webhook headers. + items: + $ref: '#/components/schemas/Header' + default: [] + defaultPayload: + minLength: 1 + type: string + description: Default payload of the webhook. + webhookType: + $ref: '#/components/schemas/ConnectionType' + connectionSubtype: + $ref: '#/components/schemas/ConnectionSubtype' + resolutionPayload: + maxLength: 4096 + type: string + description: Resolution payload of the webhook. + Layout: + required: + - layoutStructures + - layoutType + type: object + properties: + layoutType: + type: string + description: "The type of panel layout on the Dashboard. For example, Grid,\ + \ Tabs, or Hierarchical. Currently supports `Grid` only." + example: Grid + layoutStructures: + type: array + description: Layout structures for the panel childen. + items: + $ref: '#/components/schemas/LayoutStructure' + discriminator: + propertyName: layoutType + Panel: + required: + - key + - panelType + type: object + properties: + id: + type: string + description: Unique identifier for the panel. + example: 2F7D449E3D511066 + key: + type: string + description: | + Key for the panel. Used to create searches for the queries in the panel and configure the layout of the panel in the dashboard. + example: panelca6280e4a75fca45 + title: + type: string + description: Title of the panel. + example: This panel shows memory usage for your kubernetes pod. + visualSettings: + type: string + description: Visual settings of the panel. + example: "{\\\"general\\\":{\\\"type\\\":\\\"column\\\"}" + keepVisualSettingsConsistentWithParent: + type: boolean + description: "Keeps the visual settings, like series colors, consistent\ + \ with the settings of the parent panel." + default: true + panelType: + type: string + description: Type of panel. + example: SumoSearchPanel + discriminator: + propertyName: panelType + SumoSearchPanel: + allOf: + - $ref: '#/components/schemas/Panel' + - required: + - queries + type: object + properties: + queries: + type: array + description: Metrics and log queries of the panel. + items: + $ref: '#/components/schemas/Query' + description: + type: string + description: Description of the panel. + example: This panel gives an overview of CPU metrics for a pod + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + coloringRules: + type: array + description: Rules to set the color of data. + items: + $ref: '#/components/schemas/ColoringRule' + linkedDashboards: + type: array + description: List of linked dashboards. + items: + $ref: '#/components/schemas/LinkedDashboard' + description: A panel that has logs and metrics search queries. + Query: + required: + - queryKey + - queryString + - queryType + type: object + properties: + queryString: + type: string + description: "The metrics, traces or logs query." + example: _sourceCategory=cqsplitter metric=CPU_user | count by _sourceHost + queryType: + pattern: ^(Logs|Metrics|Traces|Spans)$ + type: string + description: "The type of the query, either `Metrics`, `Traces`, `Spans`\ + \ or `Logs`." + example: Logs + x-pattern-message: "Must be `Logs`, `Traces`, `Spans` or `Metrics`" + queryKey: + type: string + description: | + The key for metric, traces or log queries. Used as an identifier for queries. It is displayed on the panel builder and used for display overrides and query toggling. + example: A + metricsQueryMode: + pattern: ^(Basic|Advanced|basic|advanced)$ + type: string + description: | + The mode of the metrics query that the user was editing. Can be `Basic` or `Advanced`. Will ONLY be specified for metrics queries. + example: Basic + x-pattern-message: "Must be `Basic`, or `Advanced`" + metricsQueryData: + $ref: '#/components/schemas/MetricsQueryData' + tracesQueryData: + $ref: '#/components/schemas/TracesQueryData' + spansQueryData: + $ref: '#/components/schemas/SpansQueryData' + parseMode: + pattern: ^(Auto|Manual|Intelliparse)$ + type: string + description: |- + This field only applies for queryType of `Logs` but other query types may be supported in the future. Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `Auto` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: Auto + default: Auto + x-pattern-message: "Must be either `Auto`,`Manual` or `Intelliparse`" + timeSource: + pattern: ^(Message|Receipt|Searchable)$ + type: string + description: "This field only applies for queryType of `Logs` but other\ + \ query types may be supported in the future. Define the time source of\ + \ this query. Possible values are `Message`, `Receipt`. `Message` will\ + \ use the timeStamp on the message, while `Receipt` will use the timestamp\ + \ it was received by Sumo." + example: Message + default: Message + x-pattern-message: "Must be `Message`, or `Receipt`" + transient: + type: boolean + description: "This field only applies for queryType of `Metrics` but other\ + \ query types may be supported in the future. Determines if the row should\ + \ be returned in the response. Can be used in conjunction with a join,\ + \ if only the result of the join is needed, and not the intermediate rows.\ + \ Setting `transient` to `true` wherever the intermediate results aren't\ + \ required speeds up the computation and reduces the amount of data transferred\ + \ over the network." + default: false + outputCardinalityLimit: + maximum: 3000 + minimum: 1 + type: integer + description: "This field only applies for queryType of `Metrics` but other\ + \ query types may be supported in the future. Specifies the output cardinality\ + \ limitations for the query, which is the maximum number of timeseries\ + \ returned in the result." + format: int32 + example: 1000 + default: 1000 + TextPanel: + allOf: + - $ref: '#/components/schemas/Panel' + - required: + - text + type: object + properties: + text: + type: string + description: Text to display in the panel. + example: Kubernetes pods + description: A panel that has text. + CollapsiblePanel: + allOf: + - $ref: '#/components/schemas/Panel' + - type: object + properties: + collapsed: + type: boolean + description: Indicates whether the panel is collapsed. + example: false + collapsiblePanelChildKeys: + type: array + description: A list of panel keys that will be collapsible. + items: + type: string + description: A panel that contains other panels in a collapsible/expanded + state. + PanelOverride: + required: + - id + - panelType + type: object + properties: + id: + type: string + description: The ID of the panel to override + example: "0000000000001" + panelType: + type: string + description: The type of panel to override. `CollapsiblePanel` controls + collapsible panel behavior. New panel types may be supported in the future. + example: CollapsiblePanel + discriminator: + propertyName: panelType + mapping: + CollapsiblePanel: '#/components/schemas/CollapsiblePanelOverride' + CollapsiblePanelOverride: + allOf: + - $ref: '#/components/schemas/PanelOverride' + - required: + - collapsed + type: object + properties: + collapsed: + type: boolean + description: Whether the collapsible panel should be collapsed in the + report. + example: true + EventsOfInterestScatterPanel: + allOf: + - $ref: '#/components/schemas/Panel' + TracesListPanel: + allOf: + - $ref: '#/components/schemas/Panel' + - type: object + properties: + queries: + maxItems: 6 + type: array + description: Traces queries of the panel. + example: + traceQueryExample: + value: + queryKey: A + queryString: "" + queryType: Traces + tracesQueryData: + filters: + type: FieldDescriptor + items: + $ref: '#/components/schemas/Query' + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: A panel for traces list + ServiceMapPanel: + allOf: + - $ref: '#/components/schemas/Panel' + - type: object + properties: + application: + type: string + description: Filter services by the application custom tag. + example: sumologic + service: + type: string + description: Show only the specific service and its connections to other + services. + example: prada + showRemoteServices: + type: boolean + description: "Show remote services, like databases or external calls,\ + \ automatically detected in client traffic." + example: true + environment: + type: string + description: Show only service map data specific to the provided environment. + example: default-environment + description: A panel for service map. + ColoringRule: + required: + - colorThresholds + - multipleSeriesAggregateFunction + - scope + - singleSeriesAggregateFunction + type: object + properties: + scope: + type: string + description: Regex string to match queries to apply coloring to. + example: CPU_* + singleSeriesAggregateFunction: + type: string + description: Function to aggregate one series into one single value. + example: Average + multipleSeriesAggregateFunction: + type: string + description: Function to aggregate the aggregate values of multiple time + series into one single value. + example: Average + colorThresholds: + type: array + description: Color thresholds. + items: + $ref: '#/components/schemas/ColoringThreshold' + Grid: + allOf: + - $ref: '#/components/schemas/Layout' + LayoutStructure: + required: + - key + - structure + type: object + properties: + key: + type: string + description: The identifier of the panel that this structure applies to. + example: panelPANE-3DC454FD977E2A46 + structure: + type: string + description: The structure of a panel. + example: "{\\\"height\\\":5,\\\"width\\\":9,\\\"x\\\":0,\\\"y\\\":0}" + ColoringThreshold: + required: + - color + type: object + properties: + color: + type: string + description: Color for the threshold. + example: FFFFFF + min: + type: number + description: Absolute inclusive threshold to color by. + format: double + example: 0 + max: + type: number + description: Absolute exclusive threshold to color by. + format: double + example: 50 + MetricsQueryData: + required: + - filters + - metric + type: object + properties: + metric: + type: string + description: The metric of the query. + example: CPU_user + aggregationType: + pattern: ^(Count|Minimum|Maximum|Sum|Average|None)$|^$ + type: string + description: "The type of aggregation. Can be `Count`, `Minimum`, `Maximum`,\ + \ `Sum`, `Average` or `None`." + example: Count + x-pattern-message: "Must be `Count`, `Minimum`, `Maximum`, `Sum`, `Average`\ + \ or `None`" + groupBy: + type: string + description: The field to group the results by. + example: _sourceHost + filters: + type: array + description: A list of filters for the metrics query. + items: + $ref: '#/components/schemas/MetricsFilter' + operators: + type: array + description: A list of operator data for the metrics query. + items: + $ref: '#/components/schemas/OperatorData' + description: The data format describing a basic metrics query. + example: + metric: CPU_user + aggregationType: count + groupBy: _sourceHost + filters: + - key: _sourceCategory + value: kubernetes + - key: _sourceHost + value: dep-kubernetes-1 + operators: + operatorName: avg + parameters: + - key: aggregator + value: max + - key: operation + value: "" + - key: value + value: 50 + SpansQueryData: + required: + - filters + - groupBy + - limit + - visualizations + type: object + properties: + filters: + type: array + description: A list of filters for the spans query. + items: + $ref: '#/components/schemas/SpansFilter' + visualizations: + type: array + description: A list of used visualization methods for the spans query. + items: + $ref: '#/components/schemas/SpansVisualization' + groupBy: + type: array + description: A list of group-by clauses for the spans query. + items: + $ref: '#/components/schemas/SpansGroupBy' + limit: + type: array + description: A list of limits that will be applied to the spans query. + items: + $ref: '#/components/schemas/SpansLimitItem' + description: The data format describing a basic spans query. + SpansCountVisualization: + allOf: + - $ref: '#/components/schemas/SpansVisualization' + - type: object + properties: + distinctBy: + type: string + description: A field by which the spans need to be counted. + example: service + description: | + Represents the visualization type where the total number of all spans is counted or where the spans are counted by a specific field. + SpansCalculationVisualization: + allOf: + - $ref: '#/components/schemas/SpansVisualization' + - required: + - aggregator + - field + type: object + properties: + field: + type: string + description: A field by which the spans are aggregated. + example: duration + aggregator: + $ref: '#/components/schemas/SpanCalculationAggregator' + description: | + Represents the visualization type where a specific aggregation by a particular field is applied to all spans / all grouped spans. + SpansFilterStandaloneKey: + allOf: + - $ref: '#/components/schemas/SpansFilter' + - type: object + description: | + A representation of a span filter where only a single filtering key is provided. The given value is then looked up in all span data. + SpansFilterKeyValuePair: + allOf: + - $ref: '#/components/schemas/SpansFilter' + - required: + - fieldValue + - operator + type: object + properties: + operator: + pattern: ^(<|<=|>|>=|=|!=)$ + type: string + description: A symbol that indicates an operation to be performed between + a `fieldName` and `fieldValue`. + example: < + x-pattern-message: "Must be `<`, `<=`, `>`, `>=`, `=` or `!=`" + fieldValue: + type: string + description: The second argument of the operation applied to a `fieldName`. + example: some_service + description: | + A representation of a span filter where both the field name and field value are provided, e.g. http.response.status_code > 500. + SpansTimeGroupBy: + allOf: + - $ref: '#/components/schemas/SpansGroupBy' + - required: + - fieldValue + type: object + properties: + fieldValue: + pattern: "^[0-9]+(w|d|h|m|s)$" + type: string + description: | + A fixed interval grouping in the following format <#>, supported values are weeks (w), days (d), hours (h), minutes (m), and seconds (s). + example: 5m + description: | + A representation of a group-by clause where results are bucketed based on a fixed interval are created, e.g. five-minute buckets. + SpansFieldGroupBy: + allOf: + - $ref: '#/components/schemas/SpansGroupBy' + - required: + - fieldName + type: object + properties: + fieldName: + type: string + description: A name of the field to group by. + example: http.response.status_code + description: | + A representation of a group-by clause where results are bucketed based on a grouping by a specific field. + SpanCalculationAggregator: + required: + - key + type: object + properties: + key: + pattern: ^(sum|avg|max|min|pct)$ + type: string + description: A specific aggregation type applied to spans. + example: sum + x-pattern-message: "Must be `sum`, `avg`, `max`, `min` or `pct`" + discriminator: + propertyName: key + mapping: + sum: '#/components/schemas/SpanCalculationSumAggregator' + avg: '#/components/schemas/SpanCalculationAvgAggregator' + max: '#/components/schemas/SpanCalculationMaxAggregator' + min: '#/components/schemas/SpanCalculationMinAggregator' + pct: '#/components/schemas/SpanCalculationPctAggregator' + SpanCalculationSumAggregator: + allOf: + - $ref: '#/components/schemas/SpanCalculationAggregator' + - type: object + SpanCalculationAvgAggregator: + allOf: + - $ref: '#/components/schemas/SpanCalculationAggregator' + - type: object + SpanCalculationMaxAggregator: + allOf: + - $ref: '#/components/schemas/SpanCalculationAggregator' + - type: object + SpanCalculationMinAggregator: + allOf: + - $ref: '#/components/schemas/SpanCalculationAggregator' + - type: object + SpanCalculationPctAggregator: + allOf: + - $ref: '#/components/schemas/SpanCalculationAggregator' + - required: + - percentile + type: object + properties: + percentile: + type: number + description: The specified percentile of a given field. + format: double + example: 95 + MetricsFilter: + required: + - value + type: object + properties: + key: + type: string + description: The key of the metrics filter. + example: _sourceCategory + value: + type: string + description: The value of the metrics filter. + example: kubernetes + negation: + type: boolean + description: Whether or not the metrics filter is negated. + example: false + description: The filter for metrics query. + example: + key: _sourceCategory + value: cqmerger + negation: false + VariablesValuesData: + required: + - data + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + type: array + items: + type: string + description: Data for variable values. + default: {} + richData: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/VariableValuesData' + description: "A rich form of data for the variable search, including variable\ + \ values, status and variable type. This field is different from `data`\ + \ in that it includes an object instead of list as the value in the map.\ + \ The `data` field is kept for backwards compatibility, please use `richData`\ + \ for all usages going forward." + GenerateReportRequest: + required: + - action + - exportFormat + - template + - timezone + type: object + properties: + action: + $ref: '#/components/schemas/ReportAction' + exportFormat: + pattern: ^(Pdf|Png)$ + type: string + description: File format of the report. Can be `Pdf` or `Png`. `Pdf` is + portable document format. `Png` is portable graphics image format. + example: Pdf + x-pattern-message: "should be one of the following: 'Pdf', 'Png'" + timezone: + type: string + description: "Time zone for the query time ranges. Follow the format in\ + \ the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + template: + $ref: '#/components/schemas/Template' + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: "Theme for the report rendering. If absent, the default theme\ + \ of the dashboard is used." + example: Light + x-pattern-message: "Must be `Light`, 'light, `Dark`, 'dark'" + exportWidth: + maximum: 6000 + minimum: 1500 + type: integer + description: "Pixel width of the exported PDF or PNG. If absent, the default\ + \ width is used." + example: 1500 + ReportAction: + required: + - actionType + type: object + properties: + actionType: + pattern: ^DirectDownloadReportAction$ + type: string + description: Type of action. + example: DirectDownloadReportAction + x-pattern-message: should be 'DirectDownloadReportAction' + description: The base class of all report action types. `DirectDownloadReportAction` + downloads dashboard from browser. New action types may be supported in the + future. + discriminator: + propertyName: actionType + DirectDownloadReportAction: + allOf: + - $ref: '#/components/schemas/ReportAction' + - type: object + description: Generate a direct download report action. + Template: + required: + - templateType + type: object + properties: + templateType: + pattern: ^(DashboardTemplate|DashboardReportModeTemplate)$ + type: string + description: The type of template. `DashboardTemplate` provides a snapshot + view of the exported dashboard. `DashboardReportModeTemplate` provides + a printer-friendly view of the exported dashboard. New templates may be + supported in the future. + example: DashboardTemplate + x-pattern-message: "Must be `DashboardTemplate`, or `DashboardReportModeTemplate`" + discriminator: + propertyName: templateType + DashboardTemplate: + allOf: + - $ref: '#/components/schemas/Template' + - required: + - id + type: object + properties: + id: + type: string + description: Id of the dashboard. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + panelToSessionIdMap: + type: object + additionalProperties: + type: string + description: | + A map of panel to session id. The session id will be used to fetch data of the panel for the report. If not specified, a new session id will be created for the panel. + example: + "1": 64 + "2": 128 + "3": 192 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + variableValues: + $ref: '#/components/schemas/VariablesValuesData' + panelOverrides: + type: array + description: Override settings for panels in the report + example: + - id: "0000000000001" + panelType: CollapsiblePanel + collapsed: true + - id: "0000000000002" + panelType: CollapsiblePanel + collapsed: false + items: + $ref: '#/components/schemas/PanelOverride' + description: Generate the report from a dashboard template. + DashboardReportModeTemplate: + allOf: + - $ref: '#/components/schemas/DashboardTemplate' + - type: object + description: Generate the report from a dashboard template in report mode. + DashboardSearchSessionIds: + required: + - data + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map of search keys to session ids. + default: {} + errors: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/ErrorResponse' + description: Error description for the session keys that failed validation. + Variable: + required: + - name + - sourceDefinition + type: object + properties: + id: + type: string + description: Unique identifier for the variable. + name: + maxLength: 256 + type: string + description: Name of the variable. The variable name is case-insensitive. + example: _sourceHost + displayName: + maxLength: 256 + type: string + description: | + Display name of the variable shown in the UI. If this field is empty, the name field will be used. + The display name is case-insensitive. Only numbers, and underscores are allowed in the variable name. + This field is not yet supported by the UI. + example: Source Host + defaultValue: + type: string + description: Default value of the variable. + example: default_value + sourceDefinition: + $ref: '#/components/schemas/VariableSourceDefinition' + allowMultiSelect: + type: boolean + description: Allow multiple selections in the values dropdown. + example: false + default: false + includeAllOption: + type: boolean + description: Include an "All" option at the top of the variable's values + dropdown. + example: true + default: true + hideFromUI: + type: boolean + description: Hide the variable in the dashboard UI. + example: false + default: false + valueType: + type: string + description: | + The type of value of the variable. Allowed values are `String`, Any` and `Numeric`. - `String` considers as a single phrase and will wrap in double-quotes. - `Any` is all characters. - `Numeric` consists of a numeric value for variables, it will be displayed differently in the UI. - `Integer` is a variable with an `Int` value. - `Long` is a variable with a `Long` value. - `Double` is a variable with a `Double` value. - `Boolean` is a variable with a `Boolean` value. + example: Any + default: Any + VariableSourceDefinition: + required: + - variableSourceType + type: object + properties: + variableSourceType: + type: string + description: Source type of the variable values. + example: MetadataVariableSourceDefinition + discriminator: + propertyName: variableSourceType + MetadataVariableSourceDefinition: + allOf: + - $ref: '#/components/schemas/VariableSourceDefinition' + - required: + - filter + - key + type: object + properties: + filter: + maxLength: 65536 + type: string + description: A metrics query to filter the metadata catalog. + example: _sourceHost=prod-* metric=CPU_Idle + key: + type: string + description: Return the values for this given key. + example: _sourceCategory + description: Variable with values that are powered by a metadata search. + CsvVariableSourceDefinition: + allOf: + - $ref: '#/components/schemas/VariableSourceDefinition' + - required: + - values + type: object + properties: + values: + maxLength: 65536 + type: string + description: Comma separated values for the variable. + example: "host1, host2" + description: Variable with values that are powered by a csv file. + LogQueryVariableSourceDefinition: + allOf: + - $ref: '#/components/schemas/VariableSourceDefinition' + - required: + - field + - query + type: object + properties: + query: + maxLength: 65536 + type: string + description: A log query. + example: "_sourceCategory=forge error | parse \"[pod=*]\" podid | count\ + \ by podid" + field: + maxLength: 65536 + type: string + description: A field in log query to populate the variable values. + example: podid + description: Variable with values that are powered by a log query. + VariableValuesLogQueryRequest: + required: + - field + - query + type: object + properties: + query: + type: string + description: The original log query of the variable. + example: _sourceCategory=forge | count by _sourceHost + field: + type: string + description: A field in log query to populate the variable values. + example: _sourceHost + variablesValues: + $ref: '#/components/schemas/VariablesValuesData' + description: The request to get a log query to populate variable values. + TopologySearchLabel: + required: + - key + - value + type: object + properties: + key: + type: string + description: Key of a topology label to search for. + value: + type: string + description: Value of a topology label to search for. + isRequired: + type: boolean + description: | + Whether the content item is required to contain this label in order to be matched. If true, content items without this label will not be matched. If false, content items without this label will be matched. + description: | + Topology label to search for. Each label has a key and a list of values. If a value is `*`, it means we want to match for all values of the label's key. + example: + key: pod + value: '*' + isRequired: true + AlertSearchNotificationSyncDefinition: + allOf: + - $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + - required: + - sourceId + type: object + properties: + sourceId: + type: string + description: A String value to uniquely identify a Collector's Source. + EmailSearchNotificationSyncDefinition: + allOf: + - $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + - required: + - toList + type: object + properties: + toList: + type: array + description: A list of email recipients. + items: + type: string + subjectTemplate: + type: string + description: "If the notification is scheduled with a threshold, the default\ + \ subject template will be \"Search Alert: {{AlertCondition}} results\ + \ found for {{SearchName}}\". For email notifications without a threshold,\ + \ the default subject template is \"Search Results: {{SearchName}}\"\ + ." + includeQuery: + type: boolean + description: A boolean value to indicate if the search query should be + included in the notification email. + default: true + includeResultSet: + type: boolean + description: A boolean value to indicate if the search result set should + be included in the notification email. + default: true + includeHistogram: + type: boolean + description: A boolean value to indicate if the search result histogram + should be included in the notification email. + default: true + includeCsvAttachment: + type: boolean + description: A boolean value to indicate if the search results should + be included in the notification email as a CSV attachment. + default: false + FolderSyncDefinition: + allOf: + - $ref: '#/components/schemas/ContentSyncDefinition' + - required: + - children + type: object + properties: + description: + type: string + description: An optional description for the folder. + children: + type: array + description: "The items in the folder, a list of Dashboard and/or Folder\ + \ items." + items: + $ref: '#/components/schemas/ContentSyncDefinition' + QueryParameterSyncDefinition: + required: + - autoComplete + - dataType + - description + - label + - name + - value + type: object + properties: + name: + type: string + description: The name of the parameter. + label: + type: string + description: The label of the parameter. + description: + type: string + description: A description of the parameter. + dataType: + type: string + description: |- + The data type of the parameter. Supported values are: + 1. `NUMBER` + 2. `STRING` + 3. `QUERY_FRAGMENT` + 4. `SEARCH_KEYWORD` + value: + type: string + description: A value for the parameter. Should be compatible with the type + set in dataType field. + autoComplete: + $ref: '#/components/schemas/ParameterAutoCompleteSyncDefinition' + LogSearchQueryParameterSyncDefinition: + type: object + allOf: + - $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + - required: + - autoComplete + - dataType + - name + - value + type: object + properties: + autoComplete: + $ref: '#/components/schemas/LogSearchParameterAutoCompleteSyncDefinition' + LogSearchParameterAutoCompleteSyncDefinition: + required: + - autoCompleteType + type: object + properties: + autoCompleteType: + type: string + description: The autocomplete parameter type. + discriminator: + propertyName: autoCompleteType + mapping: + None: '#/components/schemas/NoneAutoCompleteSyncDefinition' + TextEntries: '#/components/schemas/TextEntriesAutoCompleteSyncDefinition' + LabelValuePairs: '#/components/schemas/LabelValuePairsAutoCompleteSyncDefinition' + ValueOnlyLookup: '#/components/schemas/ValueOnlyLookupAutoCompleteSyncDefinition' + LabelValueLookup: '#/components/schemas/LabelValueLookupAutoCompleteSyncDefinition' + AutoCompleteDefinition: + required: + - type + type: object + properties: + type: + type: string + description: The autocomplete parameter type. + example: SKIP_AUTOCOMPLETE + autoCompleteKey: + type: string + description: The autocomplete key to be used to fetch autocomplete values. + example: Ephemeral-3644138589235809747-1583470806220-parameter + autoCompleteValues: + type: array + description: The array of label-value pairs for autocomplete. + items: + $ref: '#/components/schemas/AutoCompleteValueSyncDefinition' + lookupMetaData: + $ref: '#/components/schemas/AutoCompleteLookupMetaData' + AutoCompleteLookupMetaData: + type: object + properties: + fileName: + type: string + description: The lookup file name to use as a source for autocomplete values. + example: users.csv + valueColumn: + type: string + description: The column from the lookup file to use as the value. + example: user_id + labelColumn: + type: string + description: The column from the lookup file to use as the label. + example: user_name + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + NoneAutoCompleteSyncDefinition: + allOf: + - $ref: '#/components/schemas/LogSearchParameterAutoCompleteSyncDefinition' + - type: object + TextEntriesAutoCompleteSyncDefinition: + allOf: + - $ref: '#/components/schemas/LogSearchParameterAutoCompleteSyncDefinition' + - required: + - autoCompleteKey + type: object + properties: + autoCompleteKey: + type: string + description: The autocomplete key to be used to fetch autocomplete values. + example: Ephemeral-3644138589235809747-1583470806220-parameter + LabelValuePairsAutoCompleteSyncDefinition: + allOf: + - $ref: '#/components/schemas/LogSearchParameterAutoCompleteSyncDefinition' + - required: + - autoCompleteKey + type: object + properties: + autoCompleteKey: + type: string + description: The autocomplete key to be used to fetch autocomplete values. + example: Ephemeral-3644138589235809747-1583470806220-parameter + ValueOnlyLookupAutoCompleteSyncDefinition: + allOf: + - $ref: '#/components/schemas/LogSearchParameterAutoCompleteSyncDefinition' + - required: + - autoCompleteKey + - lookupFileName + - lookupValueColumn + type: object + properties: + autoCompleteKey: + type: string + description: The autocomplete key to be used to fetch autocomplete values. + example: Ephemeral-3644138589235809747-1583470806220-parameter + lookupFileName: + type: string + description: The lookup file to use as a source for autocomplete values. + lookupValueColumn: + type: string + description: The column from the lookup file to fill the actual value + when a particular label is selected. + LabelValueLookupAutoCompleteSyncDefinition: + allOf: + - $ref: '#/components/schemas/LogSearchParameterAutoCompleteSyncDefinition' + - required: + - autoCompleteKey + - lookupFileName + - lookupLabelColumn + - lookupValueColumn + type: object + properties: + autoCompleteKey: + type: string + description: The autocomplete key to be used to fetch autocomplete values. + example: Ephemeral-3644138589235809747-1583470806220-parameter + lookupFileName: + type: string + description: The lookup file to use as a source for autocomplete values. + lookupLabelColumn: + type: string + description: The column from the lookup file to use for autocomplete labels. + lookupValueColumn: + type: string + description: The column from the lookup file to fill the actual value + when a particular label is selected. + DashboardSyncDefinition: + allOf: + - $ref: '#/components/schemas/ContentSyncDefinition' + - required: + - description + - detailLevel + - filters + - panels + - properties + type: object + properties: + description: + type: string + description: A description of the dashboard. + detailLevel: + type: integer + description: |- + Supported values are: + - `1` for small + - `2` for medium + - `3` for large + properties: + type: string + description: Visual settings for the panel. + panels: + type: array + description: The panels of the dashboard. _Dashboard links are not supported._ + items: + $ref: '#/components/schemas/ReportPanelSyncDefinition' + filters: + type: array + description: The filters for the dashboard. Filters allow you to control + the amount of information displayed in your dashboards. + items: + $ref: '#/components/schemas/ReportFilterSyncDefinition' + MewboardSyncDefinition: + allOf: + - $ref: '#/components/schemas/ContentSyncDefinition' + - required: + - title + type: object + properties: + description: + maxLength: 65546 + type: string + description: A description of the dashboard. + example: "A view of pods, namespaces and nodes of your cluster." + title: + maxLength: 255 + minLength: 1 + type: string + description: The title of the dashboard. + example: Kubernetes Dashboard + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the dashboard. Must be `light` or `dark`. + example: light + default: light + x-pattern-message: "Must be `Light`, or `Dark`" + topologyLabelMap: + $ref: '#/components/schemas/TopologyLabelMap' + refreshInterval: + type: integer + description: Interval of time (in seconds) to automatically refresh the + dashboard. A value of 0 means we never automatically refresh the dashboard. + format: int32 + example: 5 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + layout: + $ref: '#/components/schemas/Layout' + panels: + type: array + description: Children panels that the container panel contains. + items: + $ref: '#/components/schemas/Panel' + variables: + type: array + description: Variables that could be applied to the panel's children. + items: + $ref: '#/components/schemas/Variable' + coloringRules: + type: array + description: Coloring rules to color the panel/data with. + items: + $ref: '#/components/schemas/ColoringRule' + DashboardV2SyncDefinition: + allOf: + - $ref: '#/components/schemas/ContentSyncDefinition' + - required: + - title + type: object + properties: + description: + maxLength: 65546 + type: string + description: A description of the dashboard. + example: "A view of pods, namespaces and nodes of your cluster." + title: + maxLength: 255 + minLength: 1 + type: string + description: The title of the dashboard. + example: Kubernetes Dashboard + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the dashboard. Must be `light` or `dark`. + example: light + default: light + x-pattern-message: "Must be `Light`, or `Dark`" + topologyLabelMap: + $ref: '#/components/schemas/TopologyLabelMap' + refreshInterval: + type: integer + description: Interval of time (in seconds) to automatically refresh the + dashboard. A value of 0 means we never automatically refresh the dashboard. + format: int32 + example: 5 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + layout: + $ref: '#/components/schemas/Layout' + panels: + type: array + description: Children panels that the container panel contains. + items: + $ref: '#/components/schemas/Panel' + variables: + type: array + description: Variables that could be applied to the panel's children. + items: + $ref: '#/components/schemas/Variable' + coloringRules: + type: array + description: Coloring rules to color the panel/data with. + items: + $ref: '#/components/schemas/ColoringRule' + schedules: + type: array + description: Dashboard report schedules. + items: + $ref: '#/components/schemas/ReportScheduleSyncDefinition' + NotificationThresholdSyncDefinition: + required: + - count + - operator + type: object + properties: + thresholdType: + type: string + description: |- + This property is deprecated. The system will automatically infer the value of this field from the query going forward, so the user-specified value will no longer be honored. + Threshold type. Possible values are: + 1. `message` + 2. `group` + + Use `group` as threshold type if the search query is of aggregate type. For non-aggregate queries, set it to `message`. + deprecated: true + operator: + pattern: ^(eq|gt|ge|lt|le)$ + type: string + description: |- + Criterion to be applied when comparing actual result count with expected count. Possible values are: + 1. `eq` + 2. `gt` + 3. `ge` + 4. `lt` + 5. `le` + x-pattern-message: "must be one of the following: `eq`, `gt`, `ge`, `lt`,\ + \ or `le`" + count: + type: integer + description: Expected result count. + ReportFilterSyncDefinition: + required: + - fieldName + - filterType + - label + - panelIds + - properties + type: object + properties: + fieldName: + type: string + description: "The name af the field being filtered on, as listed in PanelField." + label: + type: string + description: "The name of the field being filtered on, as displayed to the\ + \ user." + defaultValue: + type: string + description: The default value of the parameter. + filterType: + type: string + description: Type of filter. Can only be `numeric` or `textbox`. + properties: + type: string + description: Visual settings for the panel. + panelIds: + type: array + description: A list of panel identifiers that the filter applies to. + items: + type: string + ReportPanelSyncDefinition: + required: + - detailLevel + - height + - id + - metricsQueries + - name + - properties + - queryParameters + - queryString + - timeRange + - viewerType + - width + - x + - "y" + type: object + properties: + name: + type: string + description: The title of the panel. + viewerType: + type: string + description: |- + Type of [area chart](https://help.sumologic.com/Dashboards-and-Alerts/Dashboards/Chart-Panel-Types). Supported values are: + 1. `table` for Table + 2. `bar` for Bar Chart + 3. `column` for Column Chart + 4. `line` for Line Chart + 5. `area` for Area Chart + 6. `pie` for Pie Chart + 7. `svv` for Single Value Viewer + 8. `title` for Title Panel + 9. `text` for Text Panel + + Values 1-7 are used for Data Panels. + detailLevel: + type: integer + description: |- + Supported values are: + - `1` for small + - `2` for medium + - `3` for large + queryString: + type: string + description: "The query to run, for panels associated to log searches." + metricsQueries: + type: array + description: "The query or queries to run, for panels associated to metrics\ + \ searches." + items: + $ref: '#/components/schemas/MetricsQuerySyncDefinition' + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + x: + type: integer + description: The horizontal position of the panel. A sumo screen is divided + into 24 columns. The value for x can be any integer from 0 to 24. + "y": + type: integer + description: The vertical position of the panel. A sumo screen is divided + into 24 rows. The value for y can be any integer from 0 to 24. + width: + type: integer + description: The width of the panel. + height: + type: integer + description: The height of the panel. + properties: + type: string + description: Visual settings for the panel. + id: + type: string + description: A string identifier that you can use to refer to the panel + in filters.panelIds. + desiredQuantizationInSecs: + type: integer + description: The quantization interval aligns your time series data to common + intervals on the time axis (for example every one minute) to optimize + the visualization and performance. + queryParameters: + type: array + description: The parameters for parameterized searches. + items: + $ref: '#/components/schemas/QueryParameterSyncDefinition' + autoParsingInfo: + $ref: '#/components/schemas/ReportAutoParsingInfo' + SavedSearchWithScheduleSyncDefinition: + allOf: + - $ref: '#/components/schemas/ContentSyncDefinition' + - required: + - description + - search + type: object + properties: + search: + $ref: '#/components/schemas/SavedSearchSyncDefinition' + searchSchedule: + $ref: '#/components/schemas/SearchScheduleSyncDefinition' + description: + type: string + description: Description of the saved search. + SavedSearchWithScheduleAndDependencySyncDefinition: + allOf: + - $ref: '#/components/schemas/ContentSyncDefinition' + - required: + - description + - search + type: object + properties: + search: + $ref: '#/components/schemas/SavedSearchSyncDefinition' + scheduleWithDependency: + $ref: '#/components/schemas/SearchScheduleWithDependencySyncDefinition' + description: + type: string + description: Description of the saved search. + SavedSearchSyncDefinition: + allOf: + - $ref: '#/components/schemas/SavedSearchSyncDefinitionBase' + - required: + - defaultTimeRange + type: object + properties: + defaultTimeRange: + type: string + description: |- + Default time range for the search. Possible types of time ranges are: + - relative time range: e.g. "-1d -12h" represents a time range from one day ago to 12 hours ago. + - absolute time range: e.g. "01-04-2017 20:32:00 to 01-04-2017 20:35:00" represents a time range + from April 1st, 2017 at 8:32 PM until April 1st, 2017 at 8:35 PM. + SaveToViewNotificationSyncDefinition: + allOf: + - $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + - required: + - viewName + type: object + properties: + viewName: + type: string + description: Name of the View to save the notification to. + SaveToLookupNotificationSyncDefinition: + allOf: + - $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + - required: + - isLookupMergeOperation + - lookupFilePath + type: object + properties: + lookupFilePath: + type: string + description: The path of the lookup table that will store the results + of the scheduled search. + example: /personal/folder/testLookupTable + isLookupMergeOperation: + type: boolean + description: This indicates whether the file contents will be merged with + existing data in the lookup table or not. If this is true then data + with the same primary keys will be updated while the rest of the rows + will be appended. + example: false + ScheduleNotificationSyncDefinition: + required: + - taskType + type: object + properties: + taskType: + type: string + description: Delivery channel for notifications. + discriminator: + propertyName: taskType + ScheduleSearchParameterSyncDefinition: + required: + - name + - value + type: object + properties: + name: + maxLength: 60 + type: string + description: Name of scheduled search parameter. + value: + maxLength: 300 + type: string + description: Value of scheduled search parameter. + SearchScheduleSyncDefinition: + required: + - parseableTimeRange + - scheduleType + - timeZone + type: object + properties: + cronExpression: + type: string + description: "Cron-like expression specifying the search's schedule. Field\ + \ scheduleType must be set to \"Custom\", otherwise, scheduleType takes\ + \ precedence over cronExpression." + example: 0 0/15 * * * ? * + displayableTimeRange: + type: string + description: "A human-friendly text describing the query time range. For\ + \ e.g. \"-2h\", \"last three days\", \"team default time\". This value\ + \ can not be set via API." + example: -2h + parseableTimeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + timeZone: + type: string + description: "Time zone identifier for time specification. Either an abbreviation\ + \ such as \"PST\", a full name such as \"America/Los_Angeles\", or a custom\ + \ ID such as \"GMT-8:00\". Note that the support of abbreviations is for\ + \ JDK 1.1.x compatibility only and full names should be used." + threshold: + $ref: '#/components/schemas/NotificationThresholdSyncDefinition' + notification: + $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + scheduleType: + type: string + description: |- + Run schedule of the scheduled search. Set to "Custom" to specify the schedule with a CRON expression.Please note that with Custom, 1Day and 1Week schedule types you need to provide the corresponding cron expression to determine when to actually run the search. e.g. Sample Valid Cron for 1Day is "0 0 16 ? * 2-6 *". Possible schedule types are: + - `RealTime` + - `15Minutes` + - `1Hour` + - `2Hours` + - `4Hours` + - `6Hours` + - `8Hours` + - `12Hours` + - `1Day` + - `1Week` + - `Custom` + muteErrorEmails: + type: boolean + description: "If enabled, emails are not sent out in case of errors with\ + \ the search." + parameters: + maxLength: 50 + type: array + description: A list of scheduled search parameters. + items: + $ref: '#/components/schemas/ScheduleSearchParameterSyncDefinition' + notifications: + type: array + description: "List of notification actions for this schedule. Mutually exclusive\ + \ with 'notification' — exactly one of these fields must be provided.\ + \ Sending both or neither returns a 400 error. Supports multiple notification\ + \ channels (e.g., email and webhook) for a single scheduled search execution." + items: + $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + description: Schedule definition for a saved search. Exactly one of 'notification' + (single notification) or 'notifications' (multiple notification actions) must + be provided. Sending both or neither will result in a 400 error. + ServiceNowSearchNotificationSyncDefinition: + allOf: + - $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + - required: + - externalId + type: object + properties: + externalId: + type: string + description: ServiceNow identifier. + fields: + $ref: '#/components/schemas/ServiceNowFieldsSyncDefinition' + ServiceNowFieldsSyncDefinition: + type: object + properties: + eventType: + type: string + description: The category that the event source uses to identify the event. + severity: + type: integer + description: |- + An integer value representing the severity of the alert. Supported values are: + - `0` for Clear + - `1` for Critical + - `2` for Major + - `3` for Minor + - `4` for Warning + resource: + type: string + description: The component on the node to which the event applies. + node: + type: string + description: The physical or virtual device on which the event occurred. + WebhookSearchNotificationSyncDefinition: + allOf: + - $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + - required: + - webhookId + type: object + properties: + webhookId: + type: string + description: Identifier of the webhook connection. + payload: + type: string + description: "A JSON object in the format required by the target WebHook\ + \ URL. For details on variables that can be used as parameters within\ + \ your JSON object, please refer to Sumo Logic Doc Hub." + itemizeAlerts: + type: boolean + description: "If this field is set to true, one webhook per result will\ + \ be sent when the trigger conditions are met" + example: true + default: false + maxItemizedAlerts: + minimum: 0 + type: integer + description: The maximum number of results for which we send separate + alerts. This value should be between 1 and 100. + format: int32 + example: 10 + CseSignalNotificationSyncDefinition: + allOf: + - $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + - required: + - recordType + type: object + properties: + recordType: + type: string + description: Name of the Cloud SIEM Enterprise Record to be created. + MetricsSavedSearchSyncDefinition: + allOf: + - $ref: '#/components/schemas/ContentSyncDefinition' + - required: + - desiredQuantizationInSecs + - metricsQueries + - timeRange + type: object + properties: + description: + maxLength: 8192 + type: string + description: Item description in the content library. + example: Long and detailed description + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + logQuery: + maxLength: 10240 + type: string + description: Query used to add an overlay to the chart. + example: my_metric | timeslice 1m | count by _timeslice + metricsQueries: + type: array + description: Metrics queries. + items: + $ref: '#/components/schemas/MetricsSavedSearchQuerySyncDefinition' + desiredQuantizationInSecs: + minimum: 0 + type: integer + description: Desired quantization in seconds. + format: int32 + example: 60 + properties: + type: string + description: Chart properties. This field is optional. + example: "{ \\\"key\\\": \\\"value\\\" }" + MetricsSearchSyncDefinition: + allOf: + - $ref: '#/components/schemas/ContentSyncDefinition' + - required: + - queries + - timeRange + type: object + properties: + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: + type: string + description: Description of the metrics search page. + example: CPU and memory utilization for RDS cluster + queries: + type: array + description: Queries of the metrics search page. + example: + - queryString: CPU_Idle Namespace=RDS + queryType: Metrics + queryKey: A + - queryString: Mem_Used Namespace=RDS + queryType: Metrics + queryKey: B + items: + $ref: '#/components/schemas/Query' + visualSettings: + type: string + description: | + Visual settings of the metrics search page. Must be a string representing a valid JSON object. + example: "{\"title\": {\"fontsize\": 9}}" + LookupTableSyncDefinition: + allOf: + - $ref: '#/components/schemas/ContentSyncDefinition' + - $ref: '#/components/schemas/ExportableLookupTableInfo' + CollectorRegistrationTokenResponse: + allOf: + - $ref: '#/components/schemas/TokenBaseResponse' + - required: + - encodedTokenAndUrl + type: object + properties: + encodedTokenAndUrl: + type: string + description: The token and URL used to register the Collector as an encoded + string. + CollectorResourceIdentity: + allOf: + - $ref: '#/components/schemas/ResourceIdentity' + OrgIdentity: + allOf: + - $ref: '#/components/schemas/ResourceIdentity' + SourceResourceIdentity: + allOf: + - $ref: '#/components/schemas/ResourceIdentity' + - type: object + properties: + collectorId: + type: string + description: The unique identifier of the Collector this Source belongs + to. + default: Unknown + collectorName: + type: string + description: The name of the Collector this Source belongs to. + default: Unknown + IngestBudgetResourceIdentity: + allOf: + - $ref: '#/components/schemas/ResourceIdentity' + - type: object + properties: + ingestBudgetFieldValue: + type: string + description: The unique field value of the ingest budget v1. This will + be empty for v2 budgets. + default: Unknown + scope: + type: string + description: The scope of the ingest budget v2. This will be empty for + v1 budgets. + default: Unknown + budgetType: + type: string + description: "The type of budget. Supported values are: * `dailyVolume`\ + \ * `minuteVolume`" + LogsToMetricsRuleIdentity: + allOf: + - $ref: '#/components/schemas/ResourceIdentity' + ScheduledViewResourceIdentity: + allOf: + - $ref: '#/components/schemas/ResourceIdentity' + CollectorLimitApproachingTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + OTCollectorLimitApproachingTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + AgentRemoteConfigStatusTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - type: object + properties: + CustomerId: + type: string + description: The CustomerId. + message: + type: string + description: The error message. + GcpMetricsCollectionBrokenTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + OAuthRefreshFailedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - type: object + properties: + exceptionType: + type: string + description: The type of exception received while attempting OAuth. + exceptionMessage: + type: string + description: The error message received with the failed OAuth request. + IngestBudgetExceededTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/DataIngestAffectedTracker' + CollectionAffectedDueToIngestBudgetTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/DataIngestAffectedTracker' + - type: object + properties: + associatedBudgetNames: + type: string + description: The list of budget names. + CollectionS3AccessDeniedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/S3CollectionErrorTracker' + - type: object + properties: + bucketName: + type: string + description: The bucket name of the associated Source. + accessKey: + type: string + description: "The access key used to make the request. In the case of\ + \ IAM roles, this is the temporary key used for authentication." + CollectionS3GetObjectAccessDeniedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/S3CollectionErrorTracker' + - type: object + properties: + bucketName: + type: string + description: The bucket name of the associated Source. + accessKey: + type: string + description: "The access key used to make the request. In the case of\ + \ IAM roles, this is the temporary key used for authentication." + CollectionS3InvalidKeyTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/S3CollectionErrorTracker' + - type: object + properties: + accessKey: + type: string + description: "The access key used to make the request. In the case of\ + \ IAM roles, this is the temporary key used for authentication." + CollectionS3ListingFailedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/S3CollectionErrorTracker' + - type: object + properties: + bucketName: + type: string + description: The bucket name of the associated Source. + CollectionS3SlowListingTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/S3CollectionErrorTracker' + - type: object + properties: + bucketName: + type: string + description: The bucket name of the associated Source. + flaggedAfterMinutes: + type: string + description: The number of minutes elapsed in scanning after which this + incident was created. + InstalledCollectorOfflineTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - type: object + properties: + minutesSinceLastHeartbeat: + type: string + description: The number of minutes since the last heartbeat for the collector + was received. + IngestThrottlingTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/DataIngestAffectedTracker' + - type: object + properties: + dataType: + type: string + description: The type of data for which the rate limit was enabled. The + possible values are `LogIngest` and `MetricsIngest`. + AgentOpampConnectionStatusTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - type: object + CollectionInvalidFilePathTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/FileCollectionErrorTracker' + - type: object + properties: + path: + type: string + description: The path to the file. + CollectionPathAccessDeniedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/FileCollectionErrorTracker' + - type: object + properties: + path: + type: string + description: The path to the file. + CollectionRemoteConnectionFailedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/FileCollectionErrorTracker' + CollectionDockerClientBuildingFailedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + CollectionWindowsEventChannelConnectionFailedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + CollectionWindowsHostConnectionFailedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + CollectionAwsMetadataTagsFetchDeniedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + CollectionCloudWatchTagsFetchDeniedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/AwsCloudWatchCollectionErrorTracker' + CollectionCloudWatchListMetricsDeniedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/AwsCloudWatchCollectionErrorTracker' + - type: object + properties: + errorCode: + type: string + description: The error code from AWS for the request made to get metrics. + errorMessage: + type: string + description: The error message from AWS for the request made to get metrics. + CollectionCloudWatchGetStatisticsDeniedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/AwsCloudWatchCollectionErrorTracker' + - type: object + properties: + errorCode: + type: string + description: The error code from AWS for the request made to get metrics. + errorMessage: + type: string + description: The error message from AWS for the request made to get metrics. + CollectionCloudWatchGetStatisticsThrottledTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/AwsCloudWatchCollectionErrorTracker' + MetricsHighCardinalityDetectedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - type: object + properties: + retention: + type: string + description: The retention of metrics that approached the limit. + MetricsCardinalityLimitExceededTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - type: object + properties: + retention: + type: string + description: The retention of metrics that exceeded the limit. + HighCardinalityDimensionDroppedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - type: object + properties: + dimension: + type: string + description: The dropped high cardinality dimension. + LogsToMetricsRuleDisabledTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + SpanIngestLimitExceededTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + CollectionAwsInventoryThrottledTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/AwsInventoryCollectionErrorTracker' + CollectionAwsInventoryUnauthorizedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/AwsInventoryCollectionErrorTracker' + CSEWindowsInvalidConfigurationTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/CSEWindowsErrorTracker' + - type: object + properties: + sensorId: + type: string + description: The sensor ID. + sensorHostname: + type: string + description: The sensor's hostname. + sensorUserName: + type: string + description: The sensor's user name. + CSEWindowsRuntimeErrorTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/CSEWindowsErrorTracker' + - type: object + properties: + sensorId: + type: string + description: The sensor ID. + sensorHostname: + type: string + description: The sensor's hostname. + sensorUserName: + type: string + description: The sensor's user name. + CSEWindowsExcessiveEventLogMonitorsTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/CSEWindowsErrorTracker' + - type: object + properties: + sensorId: + type: string + description: The sensor ID. + sensorHostname: + type: string + description: The sensor's hostname. + sensorUserName: + type: string + description: The sensor's user name. + CSEWindowsRuntimeWarningTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/CSEWindowsErrorTracker' + - type: object + properties: + sensorId: + type: string + description: The sensor ID. + sensorHostname: + type: string + description: The sensor's hostname. + sensorUserName: + type: string + description: The sensor's user name. + CSEWindowsInvalidUserPermissionsTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/CSEWindowsAccessErrorTracker' + - type: object + properties: + sensorId: + type: string + description: The sensor ID. + sensorHostname: + type: string + description: The sensor's hostname. + sensorUserName: + type: string + description: The sensor's user name. + folderPath: + type: string + description: The path of the folder. + filePath: + type: string + description: The complete file path. + source: + type: string + description: The HostName + EventLog name for EventLogs and Domain name + for Directory.. + CSEWindowsWriteQueueFilesToSensorDirectoryFailedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/CSEWindowsAccessErrorTracker' + - type: object + properties: + sensorId: + type: string + description: The sensor ID. + sensorHostname: + type: string + description: The sensor's hostname. + sensorUserName: + type: string + description: The sensor's user name. + folderPath: + type: string + description: The path of the folder. + filePath: + type: string + description: The complete file path. + source: + type: string + description: The HostName + EventLog name for EventLogs and Domain name + for Directory.. + CSEWindowsStorageLimitExceededTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/CSEWindowsSensorOutOfStorageTracker' + - type: object + properties: + sensorId: + type: string + description: The sensor ID. + sensorHostname: + type: string + description: The sensor's hostname. + folderPath: + type: string + description: The path of the folder. + folderSizeLimit: + type: string + description: The complete file path. + currentFolderSize: + type: string + description: Current size of the folder. + percentageAvailableDiskSpaceLimit: + type: string + description: The percentage available disk space limit. + currentPercentageAvailableDiskSpace: + type: string + description: The current percentage available disk space. + lastError: + type: string + description: The last error. + CSEWindowsStorageLimitApproachingTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/CSEWindowsSensorOutOfStorageTracker' + - type: object + properties: + sensorId: + type: string + description: The sensor ID. + sensorHostname: + type: string + description: The sensor's hostname. + folderPath: + type: string + description: The path of the folder. + folderSizeLimit: + type: string + description: The complete file path. + currentFolderSize: + type: string + description: Current size of the folder. + percentageAvailableDiskSpaceLimit: + type: string + description: The percentage available disk space limit. + currentPercentageAvailableDiskSpace: + type: string + description: The current percentage available disk space. + lastError: + type: string + description: The last error. + CSEWindowsErrorAppendingToQueueFilesTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/CSEWindowsSensorOutOfStorageTracker' + - type: object + properties: + sensorId: + type: string + description: The sensor ID. + sensorHostname: + type: string + description: The sensor's hostname. + folderPath: + type: string + description: The path of the folder. + folderSizeLimit: + type: string + description: The complete file path. + currentFolderSize: + type: string + description: Current size of the folder. + percentageAvailableDiskSpaceLimit: + type: string + description: The percentage available disk space limit. + currentPercentageAvailableDiskSpace: + type: string + description: The current percentage available disk space. + lastError: + type: string + description: The last error. + CSEWindowsErrorParsingRecordsTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/CSEWindowsParsingErrorTracker' + - type: object + properties: + sensorId: + type: string + description: The sensor ID. + sensorHostname: + type: string + description: The sensor's hostname. + source: + type: string + description: The HostName + EventLog name for EventLogs and Domain name + for Directory. + errorCount: + type: string + description: The error count. + lastErrorMessage: + type: string + description: The last error message. + CSEWindowsExcessiveFilesPendingUploadTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/CSEWindowsExcessiveBacklogTracker' + - type: object + properties: + sensorId: + type: string + description: The sensor ID. + sensorHostname: + type: string + description: The sensor's hostname. + source: + type: string + description: The HostName + EventLog name for EventLogs and Domain name + for Directory. + lastErrorMessage: + type: string + description: The last error message. + numberOfFilesPending: + type: string + description: The number of files pending upload. + oldestTimestampInQueue: + type: string + description: The oldest timestamp in the queue. + CSEWindowsOldestRecordTimestampExceedsThresholdTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/CSEWindowsExcessiveBacklogTracker' + - type: object + properties: + sensorId: + type: string + description: The sensor ID. + sensorHostname: + type: string + description: The sensor's hostname. + source: + type: string + description: The HostName + EventLog name for EventLogs and Domain name + for Directory. + lastErrorMessage: + type: string + description: The last error message. + numberOfFilesPending: + type: string + description: The number of files pending upload. + oldestTimestampInQueue: + type: string + description: The oldest timestamp in the queue. + CSEWindowsSensorOfflineTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - type: object + properties: + minutesWithNoHeartbeatBeforeMarkingOffline: + type: string + description: The number of minutes without heartbeat after which sensor + is marked offline. + MetricsMetadataKeyLengthLimitExceeded: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/MetricsMetadataLimitsExceededTracker' + MetricsMetadataValueLengthLimitExceeded: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/MetricsMetadataLimitsExceededTracker' + MetricsMetadataKeyValuePairsLimitExceeded: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/MetricsMetadataLimitsExceededTracker' + MetricsMetadataTotalMetadataSizeLimitExceeded: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/MetricsMetadataLimitsExceededTracker' + MetricNameMissingTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/MetricNameErrorTracker' + MetricNameAsMetatagTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/MetricNameErrorTracker' + OTCReceiverNoSpansObservedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/OTCReceiverErrorTracker' + - type: object + properties: + instanceId: + type: string + description: "The collector instance ID, e.g. `974b444b-4b45-4f32-aa03-1dbf2a16826d`." + instanceAddress: + type: string + description: "The collector instance address, e.g. `172.16.1.14`." + receiverId: + type: string + description: "The collector receiver ID, e.g. `otlphttp/2`." + OTCReceiverSpansDroppedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/OTCReceiverErrorTracker' + - type: object + properties: + instanceId: + type: string + description: "The collector instance ID, e.g. `974b444b-4b45-4f32-aa03-1dbf2a16826d`." + instanceAddress: + type: string + description: "The collector instance address, e.g. `172.16.1.14`." + receiverId: + type: string + description: "The collector receiver ID, e.g. `otlphttp/2`." + count: + type: string + description: The count of dropped spans. + OTCReceiverSpansRefusedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/OTCReceiverErrorTracker' + - type: object + properties: + instanceId: + type: string + description: "The collector instance ID, e.g. `974b444b-4b45-4f32-aa03-1dbf2a16826d`." + instanceAddress: + type: string + description: "The collector instance address, e.g. `172.16.1.14`." + receiverId: + type: string + description: "The collector receiver ID, e.g. `otlphttp/2`." + count: + type: string + description: The count of refused spans. + OTCExporterHighFailuresExportingSpansTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/OTCExporterErrorTracker' + - type: object + properties: + instanceId: + type: string + description: "The collector instance ID, e.g. `974b444b-4b45-4f32-aa03-1dbf2a16826d`." + instanceAddress: + type: string + description: "The collector instance address, e.g. `172.16.1.14`." + exporterId: + type: string + description: "The collector exporter ID, e.g. `otlphttp`." + count: + type: string + description: The failure count. + OTCExporterLargeTraceBatchesTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/OTCExporterErrorTracker' + - type: object + properties: + instanceId: + type: string + description: "The collector instance ID, e.g. `974b444b-4b45-4f32-aa03-1dbf2a16826d`." + instanceAddress: + type: string + description: "The collector instance address, e.g. `172.16.1.14`." + exporterId: + type: string + description: "The collector exporter ID, e.g. `otlphttp`." + count: + type: string + description: The failure count. + OTCProcessHighMemoryUsageTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/OTCProcessErrorTracker' + - type: object + properties: + instanceId: + type: string + description: "The collector instance ID, e.g. `974b444b-4b45-4f32-aa03-1dbf2a16826d`." + instanceAddress: + type: string + description: "The collector instance address, e.g. `172.16.1.14`." + memoryUsage: + type: string + description: "The collector memory usage in bytes, e.g. `142606592`" + memoryLimit: + type: string + description: "The collector memory limit (if set) in bytes, e.g. `4000000000`" + OTCProcessSpansDroppedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/OTCProcessErrorTracker' + - type: object + properties: + instanceId: + type: string + description: "The collector instance ID, e.g. `974b444b-4b45-4f32-aa03-1dbf2a16826d`." + instanceAddress: + type: string + description: "The collector instance address, e.g. `172.16.1.14`." + processorId: + type: string + description: "The collector processor ID, e.g. `cascading_filter`." + count: + type: string + description: The count of dropped spans. + OTCProcessSpansRefusedTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/OTCProcessErrorTracker' + - type: object + properties: + instanceId: + type: string + description: "The collector instance ID, e.g. `974b444b-4b45-4f32-aa03-1dbf2a16826d`." + instanceAddress: + type: string + description: "The collector instance address, e.g. `172.16.1.14`." + processorId: + type: string + description: "The collector processor ID, e.g. `cascading_filter`." + count: + type: string + description: The count of refused spans. + OTCWarningProcessingSpansTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/OTCProcessErrorTracker' + - type: object + properties: + instanceId: + type: string + description: "The collector instance ID, e.g. `974b444b-4b45-4f32-aa03-1dbf2a16826d`." + instanceAddress: + type: string + description: "The collector instance address, e.g. `172.16.1.14`." + processorId: + type: string + description: "The collector processor ID, e.g. `cascading_filter`." + message: + type: string + description: The warning message. + OTCErrorProcessingSpansTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/OTCProcessErrorTracker' + - type: object + properties: + instanceId: + type: string + description: "The collector instance ID, e.g. `974b444b-4b45-4f32-aa03-1dbf2a16826d`." + instanceAddress: + type: string + description: "The collector instance address, e.g. `172.16.1.14`." + processorId: + type: string + description: "The collector processor ID, e.g. `cascading_filter`." + message: + type: string + description: The error message. + AzureEventHubConnectionErrorTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - type: object + properties: + reason: + type: string + description: The specific reason of the connection error + AzureEventHubPermissionErrorTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - properties: + reason: + type: string + description: The specific reason of the permission error + AzureMetricsInvalidClientSecretTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + AzureMetricsNoAccessibleSubscriptionsTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + FsrTooManyFieldsCreationErrorTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + InstalledCollectorDeprecatedJreTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + PartitionLimitApproachingTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + FieldsLimitApproachingTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + LookupLimitApproachingTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + FerLimitApproachingTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + ScheduledViewFailureTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + OTCollectorNoDataTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + PermissionSubject: + required: + - subjectId + - subjectType + type: object + properties: + subjectType: + pattern: ^(user|role|org)$ + type: string + description: "Type of subject for the permission. Valid values are: `user`\ + \ or `role` or `org`." + example: role + x-pattern-message: "must be one of the following: `user`, `role`, `org`" + subjectId: + type: string + description: "The identifier that belongs to the subject type chosen above.\ + \ For e.g. if the subjectType is set to `user`, subjectId should be the\ + \ identifier of a user (same goes for `role` or `org` subjectType)." + example: 0000000006743FDA + description: Identifier for the entity (subject) that is granted the permission + on resource(s). + PermissionIdentifier: + allOf: + - $ref: '#/components/schemas/PermissionSubject' + - required: + - targetId + type: object + properties: + targetId: + type: string + description: The identifier that belongs to the resource this permission + assignment applies to. + example: 0000000006743FE2 + PermissionIdentifiers: + required: + - permissionIdentifiers + type: object + properties: + permissionIdentifiers: + maxItems: 1000 + minItems: 1 + type: array + description: List of permission identifiers. + items: + $ref: '#/components/schemas/PermissionIdentifier' + PermissionStatementDefinition: + allOf: + - $ref: '#/components/schemas/Permissions' + - required: + - subjectId + - subjectType + - targetId + type: object + properties: + subjectType: + pattern: ^(role|org)$ + type: string + description: "Type of subject for the permission. Valid values are: `role`\ + \ or `org`." + example: role + x-pattern-message: "must be one of the following: `role` or `org`" + subjectId: + type: string + description: "The identifier that belongs to the subject type chosen above.\ + \ For e.g. if the subjectType is set to `role`, subjectId should be\ + \ the identifier of a role. Similarly, if the subjectType is `org`,\ + \ the subjectId should be the identifier of the same org, which owns\ + \ the resource target." + example: 0000000006743FDA + targetId: + type: string + description: The identifier that belongs to the resource this permission + assignment applies to. + example: 0000000006743FE2 + PermissionStatementDefinitions: + required: + - permissionStatementDefinitions + type: object + properties: + permissionStatementDefinitions: + maxItems: 1000 + minItems: 1 + type: array + description: List of permission statement definitions. + items: + $ref: '#/components/schemas/PermissionStatementDefinition' + PermissionStatement: + type: object + allOf: + - $ref: '#/components/schemas/PermissionStatementDefinition' + - $ref: '#/components/schemas/MetadataModel' + PermissionStatements: + required: + - permissionStatements + type: object + properties: + permissionStatements: + type: array + description: A list of permission statements. + items: + $ref: '#/components/schemas/PermissionStatement' + PermissionSummaryMeta: + required: + - isExplicit + - isInherited + - isRecursive + - isRevoked + - isSystemDefined + - name + type: object + properties: + name: + type: string + description: "Name of the permission. Example values are: `Read`, `Update`,\ + \ `Create`, etc." + example: Read + isInherited: + type: boolean + description: A true value implies that the permission is inherited from + some ancestors of the resource. A false value implies that the permission + is explicitly assigned to the resource. + example: true + isExplicit: + type: boolean + description: A true value implies that the permission is explicitly assigned + to the resource. A false value implies that the permission is not explicitly + assigned to the resource. + example: true + isRevoked: + type: boolean + description: A true value implies that the capability required for this + permission has been revoked. + example: true + isRecursive: + type: boolean + description: A true value implies that the permission is recursively cascaded + down to all the direct and indirect children of the resource. + example: true + isSystemDefined: + type: boolean + description: A true value implies that the permission is defined by the + system on the resource and can not be modified by the user. A false value + implies that the permission is defined by the user on the resource and + can be modified by the user. + example: true + description: "Permission Summary with additional information like inheritance,\ + \ revocation, etc about the permission." + PermissionSummaryBySubjects: + description: A list of PermissionSubjects and PermissionSummaryMeta(s) associated + with each subject. + allOf: + - $ref: '#/components/schemas/PermissionSubject' + - required: + - permissionSummaries + type: object + properties: + permissionSummaries: + type: array + items: + $ref: '#/components/schemas/PermissionSummaryMeta' + PermissionSummariesBySubjects: + required: + - permissionSummariesBySubjects + type: object + properties: + permissionSummariesBySubjects: + type: array + description: A list of PermissionSubjects and PermissionSummaryMeta(s) associated + with each subject. + items: + $ref: '#/components/schemas/PermissionSummaryBySubjects' + ListPermissionsResponse: + required: + - permissionStatements + type: object + properties: + permissionStatements: + type: array + description: A list of permission statements. + items: + $ref: '#/components/schemas/PermissionStatement' + Permissions: + required: + - permissions + type: object + properties: + permissions: + type: array + description: List of permissions. + example: + - Read + - Delete + items: + type: string + Email: + allOf: + - $ref: '#/components/schemas/Action' + - required: + - recipients + - subject + type: object + properties: + recipients: + type: array + description: A list of email addresses to send to when the rule fires. + items: + type: string + example: john@doe.com + subject: + type: string + description: The subject line of the email. + example: Sample Email Subject + messageBody: + type: string + description: The message body of the email to send. + example: Sample Email Message Body + timeZone: + type: string + description: "Time zone for the email content. All dates/times will be\ + \ displayed in this timeZone in the email payload. Follow the format\ + \ in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + includeQuery: + type: boolean + description: Whether to include the triggering query in the notification + email. + includeResultSet: + type: boolean + description: Whether to include the result set in the notification email. + This field is not applicable for SLO monitors. + AWSLambda: + allOf: + - $ref: '#/components/schemas/Action' + - required: + - connectionId + type: object + properties: + connectionId: + type: string + description: The identifier of the connection. + example: 000000000BF39283 + payloadOverride: + type: string + description: The override of the default JSON payload of the connection. + Should be in JSON format. + resolutionPayloadOverride: + type: string + description: The override of the resolution JSON payload of the connection. + Should be in JSON format. + AzureFunctions: + allOf: + - $ref: '#/components/schemas/Action' + - required: + - connectionId + type: object + properties: + connectionId: + type: string + description: The identifier of the connection. + example: 000000000BF39283 + payloadOverride: + type: string + description: The override of the default JSON payload of the connection. + Should be in JSON format. + resolutionPayloadOverride: + type: string + description: The override of the resolution JSON payload of the connection. + Should be in JSON format. + Datadog: + allOf: + - $ref: '#/components/schemas/Action' + - required: + - connectionId + type: object + properties: + connectionId: + type: string + description: The identifier of the connection. + example: 000000000BF39283 + payloadOverride: + type: string + description: The override of the default JSON payload of the connection. + Should be in JSON format. + HipChat: + allOf: + - $ref: '#/components/schemas/Action' + - required: + - connectionId + type: object + properties: + connectionId: + type: string + description: The identifier of the connection. + example: 000000000BF39283 + payloadOverride: + type: string + description: The override of the default JSON payload of the connection. + Should be in JSON format. + PagerDuty: + allOf: + - $ref: '#/components/schemas/Action' + - required: + - connectionId + type: object + properties: + connectionId: + type: string + description: The identifier of the connection. + example: 000000000BF39283 + payloadOverride: + type: string + description: The override of the default JSON payload of the connection. + Should be in JSON format. + resolutionPayloadOverride: + type: string + description: The override of the resolution JSON payload of the connection. + Should be in JSON format. + Slack: + allOf: + - $ref: '#/components/schemas/Action' + - required: + - connectionId + type: object + properties: + connectionId: + type: string + description: The identifier of the connection. + example: 000000000BF39283 + payloadOverride: + type: string + description: The override of the default JSON payload of the connection. + Should be in JSON format. + resolutionPayloadOverride: + type: string + description: The override of the resolution JSON payload of the connection. + Should be in JSON format. + NewRelic: + allOf: + - $ref: '#/components/schemas/Action' + - required: + - connectionId + type: object + properties: + connectionId: + type: string + description: The identifier of the connection. + example: 000000000BF39283 + payloadOverride: + type: string + description: The override of the default JSON payload of the connection. + Should be in JSON format. + Jira: + allOf: + - $ref: '#/components/schemas/Action' + - required: + - connectionId + type: object + properties: + connectionId: + type: string + description: The identifier of the connection. + example: 000000000BF39283 + payloadOverride: + type: string + description: The override of the default JSON payload of the connection. + Should be in JSON format. + Opsgenie: + allOf: + - $ref: '#/components/schemas/Action' + - required: + - connectionId + type: object + properties: + connectionId: + type: string + description: The identifier of the connection. + example: 000000000BF39283 + payloadOverride: + type: string + description: The override of the default JSON payload of the connection. + Should be in JSON format. + resolutionPayloadOverride: + type: string + description: The override of the resolution JSON payload of the connection. + Should be in JSON format. + MicrosoftTeams: + allOf: + - $ref: '#/components/schemas/Action' + - required: + - connectionId + type: object + properties: + connectionId: + type: string + description: The identifier of the connection. + example: 000000000BF39283 + payloadOverride: + type: string + description: The override of the default JSON payload of the connection. + Should be in JSON format. + resolutionPayloadOverride: + type: string + description: The override of the resolution JSON payload of the connection. + Should be in JSON format. + ServiceNow: + allOf: + - $ref: '#/components/schemas/Action' + - required: + - connectionId + type: object + properties: + connectionId: + type: string + description: The identifier of the connection. + example: 000000000BF39283 + connectionSubtype: + $ref: '#/components/schemas/ConnectionSubtype' + payloadOverride: + type: string + description: The override of the default JSON payload of the connection. + Should be in JSON format. + resolutionPayloadOverride: + type: string + description: The override of the resolution JSON payload of the connection. + Should be in JSON format. + SumoCloudSOAR: + allOf: + - $ref: '#/components/schemas/Action' + - required: + - connectionId + type: object + properties: + connectionId: + type: string + description: The identifier of the connection. + example: 000000000BF39283 + connectionSubtype: + $ref: '#/components/schemas/ConnectionSubtype' + payloadOverride: + type: string + description: The override of the default JSON payload of the connection. + Should be in JSON format. + Webhook: + allOf: + - $ref: '#/components/schemas/Action' + - required: + - connectionId + type: object + properties: + connectionId: + type: string + description: The identifier of the connection. + example: 000000000BF39283 + payloadOverride: + type: string + description: The override of the default JSON payload of the connection. + Should be in JSON format. + resolutionPayloadOverride: + type: string + description: The override of the resolution JSON payload of the connection. + Should be in JSON format. + ChartDataRequest: + required: + - monitorType + - queries + type: object + properties: + monitorType: + pattern: ^(Logs|Metrics)$ + type: string + description: |- + The type of monitor. Valid values: + 1. `Logs`: A logs query monitor. + 2. `Metrics`: A metrics query monitor. + example: Logs + x-pattern-message: should be either 'Logs' or 'Metrics' + queries: + uniqueItems: true + type: array + description: All queries from the monitor. + items: + $ref: '#/components/schemas/MonitorQuery' + triggers: + type: array + description: Defines the conditions of when to send notifications. + items: + $ref: '#/components/schemas/TriggerCondition' + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: Request payload for monitor chart data visualization. + ChartDataResult: + type: object + properties: + warnings: + type: array + description: Execution warnings of queries. + items: + $ref: '#/components/schemas/ErrorDescription' + series: + type: array + description: List of time series of the monitor chart data. + items: + $ref: '#/components/schemas/SeriesData' + description: Response for monitor chart data visualization. + OutlierSeriesDataPoint: + allOf: + - $ref: '#/components/schemas/DataPoint' + - required: + - x + - "y" + type: object + properties: + x: + type: integer + description: Epoch unix time stamp. + format: int64 + example: 1617146107 + "y": + $ref: '#/components/schemas/OutlierDataValue' + description: Data point of outlier series. + StaticSeriesDataPoint: + allOf: + - $ref: '#/components/schemas/DataPoint' + - required: + - x + - "y" + type: object + properties: + x: + type: integer + description: Epoch unix time stamp. + format: int64 + example: 1617146107 + "y": + type: number + description: The value of the data point. + format: double + example: 70.0 + description: Data point of static series. + SearchQueryFieldsAndTypes: + type: array + items: + $ref: '#/components/schemas/SearchQueryFieldAndType' + SearchQueryFieldAndType: + type: object + properties: + fieldName: + type: string + description: Log field parsed from log search query. + example: status_code + fieldType: + pattern: ^(NumericValue|DistinctCount)$ + type: string + description: |- + The type of the field inferred from log results and explicit configuration. Valid values: + 1. `NumericValue`: A field with a numerical type. + 2. `DistinctCount`: A field with a dimensional type. + x-pattern-message: should be either 'NumericValue' or 'DistinctCount' + isImplicitField: + type: boolean + description: Indicates if the field is implicit or user defined. + example: true + description: A log field and its associated type + TriggerCondition: + required: + - triggerType + type: object + properties: + detectionMethod: + pattern: ^(StaticCondition|LogsStaticCondition|MetricsStaticCondition|LogsOutlierCondition|MetricsOutlierCondition|LogsMissingDataCondition|MetricsMissingDataCondition|SloSliCondition|SloBurnRateCondition|LogsAnomalyCondition|MetricsAnomalyCondition)$ + type: string + description: |- + Detection method of the trigger condition. Valid values: + 1. `StaticCondition`: A condition that triggers based off of a static threshold. This `detectionMethod` is deprecated, it is recommended to use other ones instead. + 2. `LogsStaticCondition`: A logs condition that triggers based off of a static threshold. + 3. `MetricsStaticCondition`: A metrics condition that triggers based off of a static threshold. + 4. `LogsOutlierCondition`: A logs condition that triggers based off of a dynamic outlier threshold. + 5. `MetricsOutlierCondition`: A metrics condition that triggers based off of a dynamic outlier threshold. + 6. `LogsMissingDataCondition`: A logs missing data condition that triggers based off of no data available. + 7. `MetricsMissingDataCondition`: A metrics missing data condition that triggers based off of no data available. + 8. `SloSliCondition`: An SLO condition that triggers based off of current SLI value. + 9. `SloBurnRateCondition`: An SLO condition that triggers based off of error budget burn rate. + 10. `LogsAnomalyCondition`: A log anomaly condition that triggers based off anomalies in the data. + 11. `MetricsAnomalyCondition`: A metric anomaly condition that triggers based off anomalies in the data. + example: StaticCondition + default: StaticCondition + x-pattern-message: "should be one of the following: 'StaticCondition', 'LogsStaticCondition',\ + \ 'MetricsStaticCondition', 'LogsOutlierCondition', 'MetricsOutlierCondition',\ + \ 'LogsMissingDataCondition', 'MetricsMissingDataCondition', 'SloSliCondition',\ + \ 'SloBurnRateCondition', 'LogsAnomalyCondition', 'MetricsAnomalyCondition' " + triggerType: + pattern: ^(Critical|Warning|MissingData|ResolvedCritical|ResolvedWarning|ResolvedMissingData)$ + type: string + description: |- + The type of trigger condition. Valid values: + 1. `Critical`: A critical condition to trigger on. + 2. `Warning`: A warning condition to trigger on. + 3. `MissingData`: A condition that indicates data is missing. + 4. `ResolvedCritical`: A condition to resolve a Critical trigger on. + 5. `ResolvedWarning`: A condition to resolve a Warning trigger on. + 6. `ResolvedMissingData`: A condition to resolve a MissingData trigger. + example: Critical + x-pattern-message: "should be one of the following: 'Critical', 'Warning',\ + \ 'MissingData', 'ResolvedCritical', 'ResolvedWarning', or 'ResolvedMissingData'" + resolutionWindow: + type: string + description: "The resolution window that the recovery condition must be\ + \ met in each evaluation that happens within this entire duration before\ + \ the alert is recovered (resolved). If not specified, the time range\ + \ of your trigger will be used. Valid values are: `0m`, `-5m`, `-10m`,\ + \ `-15m`, `-30m`, `-1h`, `-3h`, `-6h`, `-12h`, or `-24h`" + nullable: true + example: -5m + discriminator: + propertyName: detectionMethod + mapping: + StaticCondition: '#/components/schemas/StaticCondition' + LogsStaticCondition: '#/components/schemas/LogsStaticCondition' + MetricsStaticCondition: '#/components/schemas/MetricsStaticCondition' + LogsOutlierCondition: '#/components/schemas/LogsOutlierCondition' + MetricsOutlierCondition: '#/components/schemas/MetricsOutlierCondition' + LogsMissingDataCondition: '#/components/schemas/LogsMissingDataCondition' + MetricsMissingDataCondition: '#/components/schemas/MetricsMissingDataCondition' + SloSliCondition: '#/components/schemas/SloSliCondition' + SloBurnRateCondition: '#/components/schemas/SloBurnRateCondition' + LogsAnomalyCondition: '#/components/schemas/LogsAnomalyCondition' + MetricsAnomalyCondition: '#/components/schemas/MetricsAnomalyCondition' + StaticCondition: + allOf: + - $ref: '#/components/schemas/TriggerCondition' + - required: + - occurrenceType + - timeRange + - triggerSource + type: object + properties: + timeRange: + type: string + description: "The relative time range of the monitor. Valid values of\ + \ time ranges are `-5m`, `-10m`, `-15m`, `-30m`, `-1h`, `-3h`, `-6h`,\ + \ `-12h`, or `-24h`." + example: -15m + threshold: + $ref: '#/components/schemas/StaticThreshold' + thresholdType: + $ref: '#/components/schemas/StaticThresholdType' + field: + type: string + description: "The name of the field that the trigger condition will alert\ + \ on. The trigger could compare the value of specified field with the\ + \ threshold. If `field` is not specified, monitor would default to result\ + \ count instead." + example: _count + occurrenceType: + $ref: '#/components/schemas/OccurrenceType' + triggerSource: + $ref: '#/components/schemas/TriggerSource' + minDataPoints: + maximum: 100 + minimum: 1 + type: integer + description: "The minimum number of data points to alert or resolve a\ + \ metrics monitor within the time range. This field is only valid for\ + \ Metrics Monitor, it will always be set to 1 for `AtleastOnce` occurrence\ + \ type and for `Always`, if not specified by user it will default to\ + \ 2." + format: int32 + example: 5 + description: A rule that defines how the monitor should evaluate data and + trigger notifications. + LogsStaticCondition: + allOf: + - $ref: '#/components/schemas/TriggerCondition' + - required: + - threshold + - thresholdType + - timeRange + type: object + properties: + timeRange: + type: string + description: "The relative time range of the monitor. Valid values of\ + \ time ranges are `-5m`, `-10m`, `-15m`, `-30m`, `-1h`, `-3h`, `-6h`,\ + \ `-12h`, or `-24h`." + example: -15m + threshold: + $ref: '#/components/schemas/StaticThreshold' + thresholdType: + $ref: '#/components/schemas/StaticThresholdType' + field: + type: string + description: "The name of the field that the trigger condition will alert\ + \ on. The trigger could compare the value of specified field with the\ + \ threshold. If `field` is not specified, monitor would default to result\ + \ count instead." + example: _count + frequency: + type: string + description: "The frequency that this trigger will be evaluated. Valid\ + \ values of frequencies are `1m`, `2m`, `10m`, `20m`, `1h`" + example: 1m + description: A rule that defines how logs monitor should evaluate static data + and trigger notifications. + MetricsStaticCondition: + allOf: + - $ref: '#/components/schemas/TriggerCondition' + - required: + - occurrenceType + - threshold + - thresholdType + - timeRange + type: object + properties: + timeRange: + type: string + description: "The relative time range of the monitor. Valid values of\ + \ time ranges are `-5m`, `-10m`, `-15m`, `-30m`, `-1h`, `-3h`, `-6h`,\ + \ `-12h`, or `-24h`." + example: -15m + threshold: + $ref: '#/components/schemas/StaticThreshold' + thresholdType: + $ref: '#/components/schemas/StaticThresholdType' + occurrenceType: + $ref: '#/components/schemas/OccurrenceType' + minDataPoints: + maximum: 100 + minimum: 1 + type: integer + description: "The minimum number of data points required for the monitor\ + \ to alert or resolve within the time range specified. This field will\ + \ always be set to 1 for `AtleastOnce` occurrence type and for `Always`,\ + \ if not specified by user it will default to 2." + format: int32 + example: 5 + description: A rule that defines how metrics monitor should evaluate static + data and trigger notifications. + LogsOutlierCondition: + allOf: + - $ref: '#/components/schemas/TriggerCondition' + - type: object + properties: + window: + type: integer + description: Sets the trailing number of data points to calculate mean + and sigma. + format: int64 + example: 15 + default: 50 + consecutive: + type: integer + description: Sets the required number of consecutive indicator data points + (outliers) to trigger a violation. + format: int64 + example: 3 + default: 1 + direction: + $ref: '#/components/schemas/OutlierDirection_1' + threshold: + type: number + description: Sets the number of standard deviations for calculating violations. + format: double + example: 10.0 + default: 3.0 + field: + type: string + description: The name of the field that the trigger condition will alert + on. + example: _count + description: A rule that defines how logs monitor should evaluate outlier + data and trigger notifications. + MetricsOutlierCondition: + allOf: + - $ref: '#/components/schemas/TriggerCondition' + - type: object + properties: + baselineWindow: + type: string + description: The time range used to compute the baseline. + example: 1h + default: 1d + direction: + $ref: '#/components/schemas/OutlierDirection_1' + threshold: + type: number + description: How much should the indicator be different from the baseline + for each datapoint. + format: double + example: 10.0 + default: 3.0 + description: A rule that defines how metrics monitor should evaluate outlier + data and trigger notifications. + LogsMissingDataCondition: + allOf: + - $ref: '#/components/schemas/TriggerCondition' + - required: + - timeRange + type: object + properties: + timeRange: + type: string + description: "The relative time range of the monitor. Valid values of\ + \ time ranges are `-5m`, `-10m`, `-15m`, `-30m`, `-1h`, `-3h`, `-6h`,\ + \ `-12h`, or `-24h`." + example: -15m + frequency: + type: string + description: "The frequency that this trigger will be evaluated. Valid\ + \ values of frequencies are `1m`, `2m`, `10m`, `20m`, `1h`" + example: 1m + description: A rule that defines how logs monitors should evaluate missing + data and trigger notifications. + MetricsMissingDataCondition: + allOf: + - $ref: '#/components/schemas/TriggerCondition' + - required: + - timeRange + - triggerSource + type: object + properties: + triggerSource: + $ref: '#/components/schemas/TriggerSource' + timeRange: + type: string + description: "The relative time range of the monitor. Valid values of\ + \ time ranges are `-5m`, `-10m`, `-15m`, `-30m`, `-1h`, `-3h`, `-6h`,\ + \ `-12h`, or `-24h`." + example: -15m + description: A rule that defines how metrics monitors should evaluate missing + data and trigger notifications. + SloSliCondition: + allOf: + - $ref: '#/components/schemas/TriggerCondition' + - required: + - sliThreshold + type: object + properties: + sliThreshold: + type: number + description: The remaining SLI error budget threshold percentage. + format: double + example: 90 + description: A rule that defines how SLO monitors should evaluate remaining + error budget and trigger notifications. + SloBurnRateCondition: + allOf: + - $ref: '#/components/schemas/TriggerCondition' + - type: object + properties: + burnRateThreshold: + type: number + description: The error budget depletion percentage. + format: double + example: 90 + timeRange: + type: string + description: The relative time range for measuring error budget depletion. + example: -2h + description: A rule that defines parameters for burn rate based monitor evaluation + and trigger notifications. + AnomalyCondition: + type: object + properties: + timeRange: + type: string + description: "The relative time range of the monitor. Valid values of time\ + \ ranges are `-5m`, `-10m`, `-15m`, `-30m`, `-1h`, `-3h`, `-6h`, `-12h`,\ + \ `-24h` or `-1d`." + example: -15m + sensitivity: + type: number + description: The triggering sensitivity of the anomaly model used for this + monitor. + format: double + example: 0.5 + default: 0.5 + anomalyDetectorType: + pattern: ^Cluster$ + type: string + description: The type of anomaly model that will be used for evaluating + this monitor. Only `Cluster` option is supported currently. + example: Cluster + field: + type: string + description: "The name of the field that the trigger condition will alert\ + \ on. The trigger could compare the value of specified field with the\ + \ threshold. If `field` is not specified, monitor would default to result\ + \ count instead." + example: _count + minAnomalyCount: + type: integer + description: The minimum number of anomalies required to exist in the current + time range for the condition to trigger. + format: int32 + example: 1 + default: 1 + direction: + $ref: '#/components/schemas/OutlierDirection_1' + description: A rule that defines a monitor based on anomaly models. + LogsAnomalyCondition: + allOf: + - $ref: '#/components/schemas/AnomalyCondition' + - $ref: '#/components/schemas/TriggerCondition' + - required: + - anomalyDetectorType + - field + - timeRange + type: object + description: A rule that defines a log monitor based on an anomaly model. + MetricsAnomalyCondition: + allOf: + - $ref: '#/components/schemas/AnomalyCondition' + - $ref: '#/components/schemas/TriggerCondition' + - required: + - anomalyDetectorType + - timeRange + type: object + description: A rule that defines a metrics monitor based on an anomaly model. + MonitorFolderDefinition: + allOf: + - $ref: '#/components/schemas/MonitorContentSyncDefinition' + - required: + - children + type: object + properties: + description: + type: string + description: An optional description for the folder. + children: + type: array + description: "The items in the folder, a list of Monitor and/or Folder\ + \ items." + items: + $ref: '#/components/schemas/MonitorContentSyncDefinition' + MonitorWithDependenciesDefinition: + allOf: + - $ref: '#/components/schemas/MonitorContentSyncDefinition' + - required: + - monitor + type: object + properties: + monitor: + $ref: '#/components/schemas/MonitorsLibraryMonitorExport' + dependencies: + type: array + items: + $ref: '#/components/schemas/MonitorDependency' + lookupTableDependencies: + type: array + description: Lookup tables that this monitor depends on + items: + $ref: '#/components/schemas/LookupTableSyncDefinition' + AlertSignalContext: + type: object + description: Details of the alert signal context. + allOf: + - $ref: '#/components/schemas/SignalContext' + - required: + - alertId + type: object + properties: + alertId: + type: string + description: Alert Identifier. + example: 00000000F5000634 + TraceQueryExpression: + required: + - type + type: object + properties: + type: + type: string + description: Expression type of the object model. + description: Base query expression object. + discriminator: + propertyName: type + AndTracingExpression: + allOf: + - $ref: '#/components/schemas/TraceQueryExpression' + - required: + - expressions + type: object + properties: + expressions: + type: array + description: "Evaluates to true, if (and only if) all expressions evaluate\ + \ to true, otherwise evaluates to false." + items: + $ref: '#/components/schemas/TraceQueryExpression' + OrTracingExpression: + description: "Evaluates to true, if at least one expression evaluates to true,\ + \ otherwise evaluates to false." + allOf: + - $ref: '#/components/schemas/TraceQueryExpression' + - required: + - expressions + type: object + properties: + expressions: + type: array + items: + $ref: '#/components/schemas/TraceQueryExpression' + MetricTracingFilter: + allOf: + - $ref: '#/components/schemas/TraceQueryExpression' + - required: + - metric + - operator + type: object + properties: + metric: + type: string + description: "The name of the metric to filter by. The list of supported\ + \ metrics can be retrieved using the [Trace Metrics](#operation/getMetrics)\ + \ endpoint." + operator: + type: string + description: |- + The operator to use. Accepted values: + + + + + + + + + + + + + +
OperatorAccepted value types
< <= > >= =DoubleTracingValue IntegerTracingValue
betweenRangeTracingValue of DoubleTracingValue / IntegerTracingValue
+ value: + $ref: '#/components/schemas/TracingValue' + FieldTracingFilter: + allOf: + - $ref: '#/components/schemas/TraceQueryExpression' + - required: + - field + - operator + type: object + properties: + field: + type: string + description: "The field name to filter by. The list of supported field\ + \ names can be retrieved using the [Trace Query Fields](#operation/getTraceQueryFields)\ + \ endpoint." + operator: + type: string + description: |- + The operator to use. Accepted values: + + + + + + + + + + + + + + + + + +
OperatorAccepted value types
< <= > >= = !=StringTracingValue DoubleTracingValue IntegerTracingValue DateTimeTracingValue
inArrayTracingValue of StringTracingValue / DoubleTracingValue / IntegerTracingValue / DateTimeTracingValue
betweenRangeTracingValue of StringTracingValue / DoubleTracingValue / IntegerTracingValue / DateTimeTracingValue
+ value: + $ref: '#/components/schemas/TracingValue' + RootSpanTracingFilter: + allOf: + - $ref: '#/components/schemas/TraceQueryExpression' + - required: + - field + - operator + type: object + properties: + field: + type: string + description: "The field name to filter by. The list of supported field\ + \ names can be retrieved using the [Trace Query Fields](#operation/getTraceQueryFields)\ + \ endpoint." + operator: + type: string + description: |- + The operator to use. Accepted values: + + + + + + + + + + + + + + + + + +
OperatorAccepted value types
< <= > >= = !=StringTracingValue DoubleTracingValue IntegerTracingValue DateTimeTracingValue
inArrayTracingValue of StringTracingValue / DoubleTracingValue / IntegerTracingValue / DateTimeTracingValue
betweenRangeTracingValue of StringTracingValue / DoubleTracingValue / IntegerTracingValue / DateTimeTracingValue
+ value: + $ref: '#/components/schemas/TracingValue' + TracingValue: + required: + - type + properties: + type: + type: string + description: Type of the value model. + discriminator: + propertyName: type + DoubleTracingValue: + allOf: + - $ref: '#/components/schemas/TracingValue' + - required: + - value + type: object + properties: + value: + type: number + format: double + IntegerTracingValue: + allOf: + - $ref: '#/components/schemas/TracingValue' + - required: + - value + type: object + properties: + value: + type: integer + format: int64 + StringTracingValue: + allOf: + - $ref: '#/components/schemas/TracingValue' + - required: + - value + type: object + properties: + value: + type: string + DateTimeTracingValue: + allOf: + - $ref: '#/components/schemas/TracingValue' + - required: + - value + type: object + properties: + value: + type: string + description: "Timestamp in UTC in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2019-11-22T09:00:00Z + ArrayTracingValue: + allOf: + - $ref: '#/components/schemas/TracingValue' + - required: + - values + type: object + properties: + values: + type: array + items: + $ref: '#/components/schemas/TracingValue' + RangeTracingValue: + allOf: + - $ref: '#/components/schemas/TracingValue' + - required: + - from + - to + type: object + properties: + from: + $ref: '#/components/schemas/TracingValue' + to: + $ref: '#/components/schemas/TracingValue' + EventAttributeValue: + required: + - type + properties: + type: + pattern: ^(BooleanEventAttributeValue|StringEventAttributeValue|DoubleEventAttributeValue|IntegerEventAttributeValue|BooleanArrayEventAttributeValue|StringArrayEventAttributeValue|DoubleArrayEventAttributeValue|IntegerArrayEventAttributeValue)$ + type: string + description: Type of the event attribute value. + example: BooleanAttributeValue + discriminator: + propertyName: type + BooleanEventAttributeValue: + allOf: + - $ref: '#/components/schemas/EventAttributeValue' + - required: + - value + type: object + properties: + value: + type: boolean + DoubleEventAttributeValue: + allOf: + - $ref: '#/components/schemas/EventAttributeValue' + - required: + - value + type: object + properties: + value: + type: number + format: double + IntegerEventAttributeValue: + allOf: + - $ref: '#/components/schemas/EventAttributeValue' + - required: + - value + type: object + properties: + value: + type: integer + format: int64 + StringEventAttributeValue: + allOf: + - $ref: '#/components/schemas/EventAttributeValue' + - required: + - value + type: object + properties: + value: + type: string + BooleanArrayEventAttributeValue: + allOf: + - $ref: '#/components/schemas/EventAttributeValue' + - required: + - values + type: object + properties: + values: + type: array + items: + type: boolean + DoubleArrayEventAttributeValue: + allOf: + - $ref: '#/components/schemas/EventAttributeValue' + - required: + - values + type: object + properties: + values: + type: array + items: + type: number + format: double + IntegerArrayEventAttributeValue: + allOf: + - $ref: '#/components/schemas/EventAttributeValue' + - required: + - values + type: object + properties: + values: + type: array + items: + type: integer + format: int64 + StringArrayEventAttributeValue: + allOf: + - $ref: '#/components/schemas/EventAttributeValue' + - required: + - values + type: object + properties: + values: + type: array + items: + type: string + TraceHttpSpanInfo: + allOf: + - $ref: '#/components/schemas/TraceSpanInfo' + - type: object + properties: + method: + pattern: ^(GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE)$ + type: string + description: HTTP method of the request for the associated span. + example: GET + url: + type: string + description: "URL of the request being handled in this span, in the standard\ + \ URI format." + example: https://domain.net/path/to?resource=here + statusCode: + type: integer + description: HTTP response status code for the associated span. + example: 200 + TraceDbSpanInfo: + allOf: + - $ref: '#/components/schemas/TraceSpanInfo' + - type: object + properties: + dbType: + type: string + description: Database type. + example: sql + instance: + type: string + description: "Database instance name, e.g. in java, if jdbc.url=\"jdbc:mysql://127.0.0.1:3306/customers\"\ + , the instance name is \"customers\"." + example: customers + statement: + type: string + description: Database statement for the given database type. + example: SELECT * FROM user_table + TraceMessageBusSpanInfo: + allOf: + - $ref: '#/components/schemas/TraceSpanInfo' + - type: object + properties: + destination: + type: string + description: An address at which messages can be exchanged e.g. a Kafka + record has an associated "topic name" that can be stored using this + tag. + example: kafka.topic.name + OTCollectorListResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of OT Collectors. + items: + $ref: '#/components/schemas/OTCollector' + PaginatedOTCollectorsRequest: + type: object + properties: + search: + type: string + description: search by collector id or free text search on collector properties. + example: testAgent + filters: + type: object + properties: + tags: + type: array + description: tags associated with the OT collector + example: + - - key: region + values: + - us2 + - mum + - - key: key2 + values: + - value2 + items: + type: array + items: + $ref: '#/components/schemas/OtTag' + default: [] + os: + type: string + description: Name of the Operating System. + nullable: true + example: linux + x-visibility: private + collectorVersionRange: + $ref: '#/components/schemas/VersionRange' + alive: + type: boolean + description: alive Status of the OT Collector based on heartbeat. + nullable: true + example: true + isRemotelyManaged: + type: boolean + description: Management Status of the OT Collector based on if it is + remotely or locally managed. + nullable: true + example: true + isUpgradeAvailable: + type: boolean + description: upgrade availability status of the OT Collector. + nullable: true + example: true + hasNoSourceTemplateLinked: + type: boolean + description: whether the remotely managed OT Collector has no source + template linked. + nullable: true + example: true + healthStatus: + type: array + description: Filter by one or more health statuses of the OT Collector. + example: + - Error + - Warning + items: + type: string + enum: + - Healthy + - Error + - Warning + hasNoData: + type: boolean + description: "Filter OT Collectors by no-data status. When true, returns\ + \ only collectors with no data. When false, returns only collectors\ + \ that have data." + nullable: true + example: true + fleetIds: + maxItems: 50 + type: array + description: Filter OT Collectors by fleet IDs. + example: + - 0000000005F5E105 + items: + maxLength: 16 + minLength: 1 + type: string + x-visibility: private + description: parameter which is used for filtering. + sortBy: + type: string + description: parameter which is used for sorting. + example: name + next: + type: string + description: parameter which is used for fetching next set of results. + example: token + limit: + maximum: 1000 + minimum: 1 + type: integer + description: parameter which is used for limiting number of otCollectors + on a page. + format: int32 + example: 30 + includeCount: + type: boolean + description: count of filtered otCollectors. + nullable: true + example: false + PaginatedOTCollectorsResponse: + required: + - data + type: object + properties: + data: + type: array + description: paginated list of OT Collectors. + items: + $ref: '#/components/schemas/OTCollector' + next: + type: string + description: next page token. + count: + type: integer + description: count of otCollectors in response. + format: int32 + OTCollectorCountResponse: + required: + - totalCount + type: object + properties: + totalCount: + type: integer + description: Total number of OT Collector for a customer. + format: int32 + example: 100 + description: response for total count of otCollectors. + SearchQueryContext: + allOf: + - $ref: '#/components/schemas/EventContext' + - required: + - queryId + type: object + properties: + queryId: + type: string + description: The query id of the log search. + example: 0BA5454CDE467 + ParsersLibraryBase: + required: + - description + - name + - type + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the folder or parser. + description: + maxLength: 4096 + type: string + description: Description of the folder or parser. + type: + type: string + description: Type of the object model. + isLocked: + type: boolean + description: Locking/Unlocking requires the `LockParsers` capability. Locked + objects can only be `Localized`. Updating or moving requires unlocking + the object. Locking/Unlocking recursively locks all of the objects children. + All children of a locked object must be locked. + default: false + discriminator: + propertyName: type + ParsersLibraryBaseUpdate: + required: + - description + - name + - version + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the folder or parser. + description: + maxLength: 4096 + type: string + description: Description of the folder or parser. + version: + type: integer + description: Version of the folder or parser. + format: int64 + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + ParsersLibraryBaseResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isLocked + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the folder or parser. + name: + type: string + description: Name of the folder or parser. + description: + type: string + description: Description of the folder or parser. + version: + type: integer + description: Version of the folder or parser. + format: int64 + createdAt: + type: string + description: | + Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: | + Type of the content. Valid values: + 1) Folder + 2) Parser + type: + type: string + description: Type of the object model. + isLocked: + type: boolean + description: Whether the object is locked. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects + can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + discriminator: + propertyName: type + ParsersLibraryParser: + allOf: + - $ref: '#/components/schemas/ParsersLibraryBase' + - required: + - stanzas + type: object + properties: + stanzas: + type: string + description: Collection of stanzas describing the parser. + example: | + [sourcetype:PAN-firewall] + EVENT_MULTILINE = False + FORMAT = CSV + modelPath: + type: string + description: The path to the Model a Model-Connector is associated with. + example: Models/firewalls/PAN + sourcetypePath: + type: string + description: The path to the sourcetype a Model-Connector is associated + with. + example: Parsers/firewalls/PAN-firewall + families: + type: string + description: CSV list of model families this object belongs/applies to + example: "firewalls,IDS" + isPartial: + type: boolean + description: "Is this a complete Parser or Model-Connector, or just a\ + \ config fragment?" + default: false + localStanzas: + type: string + description: Localized stanzas. + example: | + [sourcetype:PAN-firewall] + WRAPPER = BSD_SYSLOG + ParsersLibraryFolder: + allOf: + - $ref: '#/components/schemas/ParsersLibraryBase' + ParsersLibraryParserUpdate: + allOf: + - $ref: '#/components/schemas/ParsersLibraryBaseUpdate' + - required: + - stanzas + type: object + properties: + stanzas: + type: string + description: Collection of stanzas describing the parser. + example: | + [sourcetype:PAN-firewall] + EVENT_MULTILINE = False + FORMAT = CSV + modelPath: + type: string + description: The path to the Model a Model-Connector is associated with. + example: Models/firewalls/PAN + sourcetypePath: + type: string + description: The path to the sourcetype a Model-Connector is associated + with. + example: Parsers/firewalls/PAN-firewall + families: + type: string + description: CSV list of model families this object belongs/applies to + example: "firewalls,IDS" + isPartial: + type: boolean + description: "Is this a complete Parser or Model-Connector, or just a\ + \ config fragment?" + default: false + localStanzas: + type: string + description: Localized stanzas. + example: | + [sourcetype:PAN-firewall] + WRAPPER = BSD_SYSLOG + ParsersLibraryFolderUpdate: + allOf: + - $ref: '#/components/schemas/ParsersLibraryBaseUpdate' + ParsersLibraryParserResponse: + allOf: + - $ref: '#/components/schemas/ParsersLibraryBaseResponse' + - required: + - stanzas + type: object + properties: + stanzas: + type: string + description: Collection of stanzas describing the parser. + example: | + [sourcetype:PAN-firewall] + EVENT_MULTILINE = False + FORMAT = CSV + modelPath: + type: string + description: The path to the Model a Model-Connector is associated with. + example: Models/firewalls/PAN + sourcetypePath: + type: string + description: The path to the sourcetype a Model-Connector is associated + with. + example: Parsers/firewalls/PAN-firewall + families: + type: string + description: CSV list of model families this object belongs/applies to + example: "firewalls,IDS" + isPartial: + type: boolean + description: "Is this a complete Parser or Model-Connector, or just a\ + \ config fragment?" + default: false + localStanzas: + type: string + description: Localized stanzas. + example: | + [sourcetype:PAN-firewall] + WRAPPER = BSD_SYSLOG + ParsersLibraryFolderResponse: + allOf: + - $ref: '#/components/schemas/ParsersLibraryBaseResponse' + - required: + - children + type: object + properties: + children: + type: array + description: Children of the folder. + items: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + IdToParsersLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + ParsersLibraryExportBase: + required: + - description + - name + - type + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the folder or parser. + description: + maxLength: 4096 + type: string + description: Description of the folder or parser. + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + ParsersLibraryParserExportV2: + allOf: + - $ref: '#/components/schemas/ParsersLibraryExportBase' + - required: + - stanzas + type: object + properties: + stanzas: + type: array + description: Array of lines of stanzas describing the parser. + example: | + ["[sourcetype:PAN-firewall]", + "EVENT_MULTILINE = False", + "FORMAT = CSV"] + items: + type: string + modelPath: + type: string + description: The path to the Model a Model-Connector is associated with. + example: Models/firewalls/PAN + sourcetypePath: + type: string + description: The path to the sourcetype a Model-Connector is associated + with. + example: Parsers/firewalls/PAN-firewall + families: + type: string + description: CSV list of model families this object belongs/applies to + example: "firewalls,IDS" + isPartial: + type: boolean + description: "Is this a complete Parser or Model-Connector, or just a\ + \ config fragment?" + default: false + localStanzas: + type: string + description: Localized stanzas. + example: | + [sourcetype:PAN-firewall] + WRAPPER = BSD_SYSLOG + ParsersLibraryParserExport: + allOf: + - $ref: '#/components/schemas/ParsersLibraryExportBase' + - required: + - stanzas + type: object + properties: + stanzas: + type: string + description: Collection of stanza or array of lines of stanzas describing + the parser. + example: | + [sourcetype:PAN-firewall] + EVENT_MULTILINE = False + FORMAT = CSV + modelPath: + type: string + description: The path to the Model a Model-Connector is associated with. + example: Models/firewalls/PAN + sourcetypePath: + type: string + description: The path to the sourcetype a Model-Connector is associated + with. + example: Parsers/firewalls/PAN-firewall + families: + type: string + description: CSV list of model families this object belongs/applies to + example: "firewalls,IDS" + isPartial: + type: boolean + description: "Is this a complete Parser or Model-Connector, or just a\ + \ config fragment?" + default: false + localStanzas: + type: string + description: Localized stanzas. + example: | + [sourcetype:PAN-firewall] + WRAPPER = BSD_SYSLOG + ParsersLibraryFolderExport: + allOf: + - $ref: '#/components/schemas/ParsersLibraryExportBase' + - type: object + properties: + children: + type: array + description: Children of the folder + items: + $ref: '#/components/schemas/ParsersLibraryExportBase' + ParsersLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + path: + type: string + description: Path of the folder or parser. + example: /Parsers/SampleFolder/TestParser + ListParsersLibraryItemWithPath: + type: array + description: List of folders or parsers. + items: + $ref: '#/components/schemas/ParsersLibraryItemWithPath' + SCIMRoles: + required: + - primary + - value + type: object + properties: + value: + type: string + description: Role assigned to the user + example: Administrator + primary: + type: boolean + description: Always set to 'true' as sumologic doesn't have a concept of + primary/secondary roles + example: true + default: true + OAuthClientCreateRequest: + required: + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + default: [] + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/CreateClientCredentialsClientRequest' + AuthorizationCodeClient: '#/components/schemas/CreateAuthorizationCodeClientRequest' + CimdAuthorizationCodeClient: '#/components/schemas/CreateCimdAuthorizationCodeClientRequest' + OAuthRunAs: + required: + - type + type: object + properties: + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + mapping: + ServiceAccount: '#/components/schemas/OAuthRunAsId' + OAuthRunAsId: + allOf: + - $ref: '#/components/schemas/OAuthRunAs' + - required: + - runAsId + type: object + properties: + runAsId: + type: string + description: Identifier of the service account that the OAuth Client runs + as. + example: 0000000006743FDA + CreateClientCredentialsClientRequest: + allOf: + - $ref: '#/components/schemas/OAuthClientCreateRequest' + - required: + - name + - runAs + type: object + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the OAuth client. + example: My OAuth Client + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the OAuth client. + example: OAuth client for data ingestion + default: "" + runAs: + $ref: '#/components/schemas/OAuthRunAs' + CreateAuthorizationCodeClientRequest: + allOf: + - $ref: '#/components/schemas/OAuthClientCreateRequest' + - required: + - name + - redirectUris + type: object + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the OAuth client. + example: My OAuth Client + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the OAuth client. + example: OAuth client for data ingestion + default: "" + redirectUris: + type: array + description: Redirect URIs for the OAuth client. Redirect URI's during + Authorization Code flow must be an exact match. + example: + - https://www.example.com/oauth/callback + items: + type: string + default: [] + CreateCimdAuthorizationCodeClientRequest: + allOf: + - $ref: '#/components/schemas/OAuthClientCreateRequest' + - required: + - clientId + type: object + properties: + clientId: + maxLength: 1000 + minLength: 8 + pattern: ^https?://.+ + type: string + description: The CIMD client ID (a URL starting with https://). Client + metadata will be fetched from this URL during creation. + example: https://example.com/.well-known/oauth-client-metadata.json + OAuthClientUpdateRequest: + required: + - disabled + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + disabled: + type: boolean + description: Whether the OAuth client is disabled. Disabled OAuth clients + cannot be used to authenticate users. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/UpdateClientCredentialsClientRequest' + AuthorizationCodeClient: '#/components/schemas/UpdateAuthorizationCodeClientRequest' + CimdAuthorizationCodeClient: '#/components/schemas/UpdateCimdAuthorizationCodeClientRequest' + UpdateClientCredentialsClientRequest: + allOf: + - $ref: '#/components/schemas/OAuthClientUpdateRequest' + - required: + - description + - name + - runAs + type: object + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the OAuth client. + example: My OAuth Client + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the OAuth client. + example: OAuth client for data ingestion + runAs: + $ref: '#/components/schemas/OAuthRunAs' + UpdateAuthorizationCodeClientRequest: + allOf: + - $ref: '#/components/schemas/OAuthClientUpdateRequest' + - required: + - description + - name + - redirectUris + type: object + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the OAuth client. + example: My OAuth Client + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the OAuth client. + example: OAuth client for data ingestion + redirectUris: + type: array + description: Redirect URIs for the OAuth client. Redirect URI's during + Authorization Code flow must be an exact match. + example: + - https://www.example.com/oauth/callback + items: + type: string + UpdateCimdAuthorizationCodeClientRequest: + description: "Update request for CIMD clients. Only scopes and disabled can\ + \ be modified. Name, description, and redirectUris are sourced from the CIMD\ + \ document." + allOf: + - $ref: '#/components/schemas/OAuthClientUpdateRequest' + - required: + - disabled + - scopes + type: object + properties: + scopes: + maxItems: 500 + type: array + description: Scopes assigned to the client. + example: + - viewCollectors + - manageCollectors + items: + type: string + disabled: + type: boolean + description: Whether the OAuth client is disabled. + example: false + OAuthClient: + required: + - clientId + - createdAt + - createdBy + - description + - disabled + - id + - modifiedAt + - modifiedBy + - name + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + id: + type: string + description: Unique identifier of the OAuth client. + example: 0000000006743FDE + clientId: + type: string + description: Identifier of the OAuth client. Unique within each organization. + Will be a URL for dynamically generated clients. + example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2018-10-16T09:10:00Z + createdBy: + type: string + description: Identifier of the user who created the OAuth client. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: 2018-10-16T09:10:00Z + modifiedBy: + type: string + description: Identifier of the user who modified the OAuth client. + example: 0000000006743FDD + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the OAuth client. + example: My OAuth Client + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the OAuth client. + example: OAuth client for data ingestion + disabled: + type: boolean + description: Whether the OAuth client is disabled. Disabled OAuth clients + cannot be used to authenticate users. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/ClientCredentialsClient' + AuthorizationCodeClient: '#/components/schemas/AuthorizationCodeClient' + CimdAuthorizationCodeClient: '#/components/schemas/CimdAuthorizationCodeClient' + ClientCredentialsClient: + allOf: + - $ref: '#/components/schemas/OAuthClient' + - required: + - effectiveScopes + - runAs + type: object + properties: + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's + RBAC capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + runAs: + $ref: '#/components/schemas/OAuthRunAs' + AuthorizationCodeClient: + allOf: + - $ref: '#/components/schemas/OAuthClient' + - required: + - dynamic + - redirectUris + type: object + properties: + dynamic: + type: boolean + description: Whether the client is dynamic or not. Dynamic clients are + created automatically based on their Client ID Metadata Documents (CIMD). + They are created when first used for authorization. + example: false + redirectUris: + type: array + description: Redirect URIs for the OAuth client. Redirect URI's during + Authorization Code flow must be an exact match. + example: + - https://www.example.com/oauth/callback + items: + type: string + OAuthClientCreationResponse: + required: + - clientId + - createdAt + - createdBy + - description + - disabled + - id + - modifiedAt + - modifiedBy + - name + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + id: + pattern: "^[0-9A-F]{16}$" + type: string + description: Unique identifier of the OAuth client. + example: 0000000006743FDE + clientId: + type: string + description: Identifier of the OAuth client. Unique within each organization. + Will be a URL for dynamically generated clients. + example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2018-10-16T09:10:00Z + createdBy: + type: string + description: Identifier of the user who created the OAuth client. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: 2018-10-16T09:10:00Z + modifiedBy: + type: string + description: Identifier of the user who modified the OAuth client. + example: 0000000006743FDD + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the OAuth client. + example: My OAuth Client + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the OAuth client. + example: OAuth client for data ingestion + disabled: + type: boolean + description: Whether the OAuth client is disabled. Disabled OAuth clients + cannot be used to authenticate users. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/ClientCredentialsClientWithSecret' + AuthorizationCodeClient: '#/components/schemas/AuthorizationCodeClientWithSecret' + CimdAuthorizationCodeClient: '#/components/schemas/CimdAuthorizationCodeClientCreationResponse' + ClientCredentialsClientWithSecret: + allOf: + - $ref: '#/components/schemas/OAuthClientCreationResponse' + - required: + - clientSecret + - effectiveScopes + - runAs + type: object + properties: + clientSecret: + type: string + description: The client secret for the created OAuth Client. + example: EqyuIvsnae0LnMC2mbJArysXcmp0LuBsRgmyeLtSkFPEzSxdvpYQMDajn_8buaDj + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's + RBAC capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + runAs: + $ref: '#/components/schemas/OAuthRunAs' + AuthorizationCodeClientWithSecret: + allOf: + - $ref: '#/components/schemas/OAuthClientCreationResponse' + - required: + - clientSecret + - dynamic + - redirectUris + type: object + properties: + clientSecret: + type: string + description: The client secret for the created OAuth Client. + example: EqyuIvsnae0LnMC2mbJArysXcmp0LuBsRgmyeLtSkFPEzSxdvpYQMDajn_8buaDj + dynamic: + type: boolean + description: Whether the client is dynamic or not. Dynamic clients are + created automatically based on their Client ID Metadata Documents (CIMD). + They are created when first used for authorization. + example: false + redirectUris: + type: array + description: Redirect URIs for the OAuth client. Redirect URI's during + Authorization Code flow must be an exact match. + example: + - https://www.example.com/oauth/callback + items: + type: string + CimdAuthorizationCodeClient: + allOf: + - $ref: '#/components/schemas/OAuthClient' + - required: + - dynamic + - redirectUris + type: object + properties: + dynamic: + type: boolean + description: Whether the client is dynamic or not. Always true for CIMD + clients. + example: true + clientUri: + maxLength: 1024 + type: string + description: URL of a web page providing information about the client. + format: uri + nullable: true + example: https://example.com/about + logoUri: + maxLength: 1024 + type: string + description: URL of a logo image for the client. + format: uri + nullable: true + example: https://example.com/logo.png + redirectUris: + maxItems: 50 + type: array + description: Redirect URIs from the CIMD document. + example: + - https://example.com/oauth/callback + items: + type: string + CimdAuthorizationCodeClientCreationResponse: + allOf: + - $ref: '#/components/schemas/OAuthClientCreationResponse' + - required: + - dynamic + - redirectUris + type: object + properties: + dynamic: + type: boolean + description: Whether the client is dynamic or not. Always true for CIMD + clients. + example: true + clientUri: + maxLength: 1024 + type: string + description: URL of a web page providing information about the client. + format: uri + nullable: true + example: https://example.com/about + logoUri: + maxLength: 1024 + type: string + description: URL of a logo image for the client. + format: uri + nullable: true + example: https://example.com/logo.png + redirectUris: + maxItems: 50 + type: array + description: Redirect URIs from the CIMD document. + example: + - https://example.com/oauth/callback + items: + type: string + PaginatedListOAuthClientsResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of OAuth clients. + items: + $ref: '#/components/schemas/OAuthClient' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + description: List of OAuth clients. + McpScopeDefinition: + required: + - id + type: object + properties: + id: + type: string + description: The identifier of the scope. + example: managePartitions + McpScopesList: + required: + - data + type: object + properties: + data: + type: array + description: List of scopes required for full MCP server tool access. + items: + $ref: '#/components/schemas/McpScopeDefinition' + MonitorTemplatesLibraryBase: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the monitortemplate or folder. + description: + type: string + description: Description of the monitortemplate or folder. + default: "" + type: + type: string + description: |- + Type of the object model. Valid values: + 1) MonitorTemplatesLibraryMonitortemplate + 2) MonitorTemplatesLibraryFolder + discriminator: + propertyName: type + MonitorTemplatesLibraryBaseUpdate: + required: + - name + - type + - version + type: object + properties: + name: + type: string + description: The name of the monitortemplate or folder. + description: + type: string + description: The description of the monitortemplate or folder. + default: "" + version: + type: integer + description: The version of the monitortemplate or folder. + format: int64 + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + MonitorTemplatesLibraryBaseResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the monitortemplate or folder. + name: + type: string + description: Identifier of the monitortemplate or folder. + description: + type: string + description: Description of the monitortemplate or folder. + version: + type: integer + description: Version of the monitortemplate or folder. + format: int64 + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Monitortemplate + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects + can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: "Aggregated permission summary for the calling user. If detailed\ + \ permission statements are required, please call list permissions endpoint." + example: + - Read + - Delete + items: + type: string + discriminator: + propertyName: type + MonitorTemplatesLibraryFolder: + allOf: + - $ref: '#/components/schemas/MonitorTemplatesLibraryBase' + MonitorTemplatesLibraryFolderUpdate: + allOf: + - $ref: '#/components/schemas/MonitorTemplatesLibraryBaseUpdate' + MonitorTemplatesLibraryFolderResponse: + allOf: + - $ref: '#/components/schemas/MonitorTemplatesLibraryBaseResponse' + - required: + - children + - permissions + type: object + properties: + permissions: + type: array + description: "Aggregated permission summary for the calling user. If detailed\ + \ permission statements are required, please call list permissions endpoint." + example: + - Read + - Delete + items: + type: string + children: + type: array + description: "Children of the folder. NOTE: Permissions field will not\ + \ be filled (empty list) for children." + items: + $ref: '#/components/schemas/MonitorTemplatesLibraryBaseResponse' + MonitorTemplatesLibraryBaseExport: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the monitortemplate or folder. + description: + type: string + description: Description of the monitortemplate or folder. + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + MonitorTemplatesLibraryFolderExport: + allOf: + - $ref: '#/components/schemas/MonitorTemplatesLibraryBaseExport' + - type: object + properties: + children: + type: array + description: The items in the folder. A multi-type list of types monitortemplate + or folder. + items: + $ref: '#/components/schemas/MonitorTemplatesLibraryBaseExport' + MonitorTemplatesLibraryMonitorTemplate: + allOf: + - $ref: '#/components/schemas/MonitorTemplatesLibraryBase' + - required: + - monitorType + - queries + - triggers + type: object + properties: + monitorType: + pattern: ^(Logs|Metrics|Slo)$ + type: string + description: |- + The type of monitor template. Valid values: + 1. `Logs`: A logs query monitor template. + 2. `Metrics`: A metrics query monitor template. + 3. `Slo`: A SLO based monitor template. + example: Logs + x-pattern-message: should be 'Logs' or 'Metrics' or 'Slo' + evaluationDelay: + type: string + description: The delay duration for evaluating the monitor (relative to + current time). The timerange of monitor will be shifted in the past + by this delay time. + example: 5m + default: 0m + alertName: + type: string + description: The name of the alert(s) triggered from the monitor created + based on the template. Monitor name will be used if not specified. + queries: + uniqueItems: true + type: array + description: All queries from the monitor. + items: + $ref: '#/components/schemas/MonitorQuery' + triggers: + type: array + description: Defines the conditions of when to send notifications. + example: + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + occurrenceType: ResultCount + triggerSource: AllResults + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + occurrenceType: ResultCount + triggerSource: AllResults + items: + $ref: '#/components/schemas/TriggerCondition' + isDisabled: + type: boolean + description: Whether or not the monitor template is disabled. + example: false + default: false + groupNotifications: + type: boolean + description: Whether or not to group notifications for individual items + that meet the trigger condition. + example: true + default: true + playbook: + maxLength: 4096 + type: string + description: "Notes such as links and instruction to help you resolve\ + \ alerts triggered by this monitor template. {{Markdown}} supported.\ + \ It will be enabled only if available for your organization. Please\ + \ contact your Sumo Logic account team to learn more." + example: This issue typically happens when database calls are timing out. + Look at ServiceA's dashboard to investigate further + default: "" + MonitorTemplatesLibraryMonitorTemplateResponse: + allOf: + - $ref: '#/components/schemas/MonitorTemplatesLibraryBaseResponse' + - required: + - monitorType + - queries + - triggers + type: object + properties: + monitorType: + pattern: ^(Logs|Metrics|Slo)$ + type: string + description: |- + The type of monitor template. Valid values: + 1. `Logs`: A logs query monitor template. + 2. `Metrics`: A metrics query monitor template. + 3. `Slo`: A SLO based monitor template. + example: Logs + x-pattern-message: should be 'Logs' or 'Metrics' or 'Slo' + evaluationDelay: + type: string + description: The delay duration for evaluating the monitor (relative to + current time). The timerange of monitor will be shifted in the past + by this delay time. + example: 5m + default: 0m + alertName: + type: string + description: The name of the alert(s) triggered from the monitor created + based on the template. Monitor name will be used if not specified. + queries: + uniqueItems: true + type: array + description: All queries from the monitor. + items: + $ref: '#/components/schemas/MonitorQuery' + triggers: + type: array + description: Defines the conditions of when to send notifications. + example: + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + occurrenceType: ResultCount + triggerSource: AllResults + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + occurrenceType: ResultCount + triggerSource: AllResults + items: + $ref: '#/components/schemas/TriggerCondition' + isDisabled: + type: boolean + description: Whether or not the monitor template is disabled. + example: false + default: false + groupNotifications: + type: boolean + description: Whether or not to group notifications for individual items + that meet the trigger condition. + example: true + default: true + playbook: + maxLength: 4096 + type: string + description: "Notes such as links and instruction to help you resolve\ + \ alerts triggered by this monitor template. {{Markdown}} supported.\ + \ It will be enabled only if available for your organization. Please\ + \ contact your Sumo Logic account team to learn more." + example: This issue typically happens when database calls are timing out. + Look at ServiceA's dashboard to investigate further + default: "" + MonitorTemplatesLibraryMonitorTemplateExport: + allOf: + - $ref: '#/components/schemas/MonitorTemplatesLibraryBaseExport' + - required: + - monitorType + - queries + - triggers + type: object + properties: + monitorType: + pattern: ^(Logs|Metrics|Slo)$ + type: string + description: |- + The type of monitor template. Valid values: + 1. `Logs`: A logs query monitor template. + 2. `Metrics`: A metrics query monitor template. + 3. `Slo`: A SLO based monitor template. + example: Logs + x-pattern-message: should be 'Logs' or 'Metrics' or 'Slo' + evaluationDelay: + type: string + description: The delay duration for evaluating the monitor (relative to + current time). The timerange of monitor will be shifted in the past + by this delay time. + example: 5m + default: 0m + alertName: + type: string + description: The name of the alert(s) triggered from the monitor created + based on the template. Monitor name will be used if not specified. + queries: + uniqueItems: true + type: array + description: All queries from the monitor. + items: + $ref: '#/components/schemas/MonitorQuery' + triggers: + type: array + description: Defines the conditions of when to send notifications. + example: + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + occurrenceType: ResultCount + triggerSource: AllResults + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + occurrenceType: ResultCount + triggerSource: AllResults + items: + $ref: '#/components/schemas/TriggerCondition' + isDisabled: + type: boolean + description: Whether or not the monitor template is disabled. + example: false + default: false + groupNotifications: + type: boolean + description: Whether or not to group notifications for individual items + that meet the trigger condition. + example: true + default: true + playbook: + maxLength: 4096 + type: string + description: "Notes such as links and instruction to help you resolve\ + \ alerts triggered by this monitor template. {{Markdown}} supported.\ + \ It will be enabled only if available for your organization. Please\ + \ contact your Sumo Logic account team to learn more." + example: This issue typically happens when database calls are timing out. + Look at ServiceA's dashboard to investigate further + default: "" + MonitorTemplatesLibraryMonitorTemplateUpdate: + allOf: + - $ref: '#/components/schemas/MonitorTemplatesLibraryBaseUpdate' + - required: + - monitorType + - queries + - triggers + type: object + properties: + monitorType: + pattern: ^(Logs|Metrics|Slo)$ + type: string + description: |- + The type of monitor template. Valid values: + 1. `Logs`: A logs query monitor template. + 2. `Metrics`: A metrics query monitor template. + 3. `Slo`: A SLO based monitor template. + example: Logs + x-pattern-message: should be 'Logs' or 'Metrics' or 'Slo' + evaluationDelay: + type: string + description: The delay duration for evaluating the monitor (relative to + current time). The timerange of monitor will be shifted in the past + by this delay time. + example: 5m + default: 0m + alertName: + type: string + description: The name of the alert(s) triggered from the monitor created + based on the template. Monitor name will be used if not specified. + queries: + uniqueItems: true + type: array + description: All queries from the monitor. + items: + $ref: '#/components/schemas/MonitorQuery' + triggers: + type: array + description: Defines the conditions of when to send notifications. + example: + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + occurrenceType: ResultCount + triggerSource: AllResults + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + occurrenceType: ResultCount + triggerSource: AllResults + items: + $ref: '#/components/schemas/TriggerCondition' + isDisabled: + type: boolean + description: Whether or not the monitor template is disabled. + example: false + default: false + groupNotifications: + type: boolean + description: Whether or not to group notifications for individual items + that meet the trigger condition. + example: true + default: true + playbook: + maxLength: 4096 + type: string + description: "Notes such as links and instruction to help you resolve\ + \ alerts triggered by this monitor template. {{Markdown}} supported.\ + \ It will be enabled only if available for your organization. Please\ + \ contact your Sumo Logic account team to learn more." + example: This issue typically happens when database calls are timing out. + Look at ServiceA's dashboard to investigate further + default: "" + MutingSchedulesLibraryBase: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + default: "" + type: + type: string + description: |- + Type of the object model. Valid values: + 1) MutingSchedulesLibraryMutingschedule + 2) MutingSchedulesLibraryFolder + discriminator: + propertyName: type + MutingSchedulesLibraryBaseUpdate: + required: + - name + - type + - version + type: object + properties: + name: + type: string + description: The name of the mutingschedule or folder. + description: + type: string + description: The description of the mutingschedule or folder. + default: "" + version: + type: integer + description: The version of the mutingschedule or folder. + format: int64 + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + MutingSchedulesLibraryBaseResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the mutingschedule or folder. + name: + type: string + description: Identifier of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + version: + type: integer + description: Version of the mutingschedule or folder. + format: int64 + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Mutingschedule + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects + can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: "Aggregated permission summary for the calling user. If detailed\ + \ permission statements are required, please call list permissions endpoint." + example: + - Read + - Delete + items: + type: string + discriminator: + propertyName: type + MutingSchedulesLibraryFolder: + allOf: + - $ref: '#/components/schemas/MutingSchedulesLibraryBase' + MutingSchedulesLibraryFolderUpdate: + allOf: + - $ref: '#/components/schemas/MutingSchedulesLibraryBaseUpdate' + MutingSchedulesLibraryFolderResponse: + allOf: + - $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + - required: + - children + - permissions + type: object + properties: + permissions: + type: array + description: "Aggregated permission summary for the calling user. If detailed\ + \ permission statements are required, please call list permissions endpoint." + example: + - Read + - Delete + items: + type: string + children: + type: array + description: "Children of the folder. NOTE: Permissions field will not\ + \ be filled (empty list) for children." + items: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + MutingSchedulesLibraryBaseExport: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + MutingSchedulesLibraryFolderExport: + allOf: + - $ref: '#/components/schemas/MutingSchedulesLibraryBaseExport' + - type: object + properties: + children: + type: array + description: The items in the folder. A multi-type list of types mutingschedule + or folder. + items: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseExport' + MutingSchedulesLibraryMutingSchedule: + allOf: + - $ref: '#/components/schemas/MutingSchedulesLibraryBase' + - required: + - schedule + type: object + properties: + schedule: + $ref: '#/components/schemas/ScheduleDefinition' + monitor: + $ref: '#/components/schemas/MonitorScope' + notificationGroups: + type: array + items: + $ref: '#/components/schemas/GroupDefinition' + default: [] + MutingSchedulesLibraryMutingScheduleResponse: + allOf: + - $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + - required: + - schedule + type: object + properties: + schedule: + $ref: '#/components/schemas/ScheduleDefinition' + monitor: + $ref: '#/components/schemas/MonitorScope' + notificationGroups: + type: array + items: + $ref: '#/components/schemas/GroupDefinition' + default: [] + MutingSchedulesLibraryMutingScheduleExport: + allOf: + - $ref: '#/components/schemas/MutingSchedulesLibraryBaseExport' + - required: + - schedule + type: object + properties: + schedule: + $ref: '#/components/schemas/ScheduleDefinition' + monitor: + $ref: '#/components/schemas/MonitorScope' + notificationGroups: + type: array + items: + $ref: '#/components/schemas/GroupDefinition' + default: [] + MutingSchedulesLibraryMutingScheduleUpdate: + allOf: + - $ref: '#/components/schemas/MutingSchedulesLibraryBaseUpdate' + - required: + - schedule + type: object + properties: + schedule: + $ref: '#/components/schemas/ScheduleDefinition' + monitor: + $ref: '#/components/schemas/MonitorScope' + notificationGroups: + type: array + items: + $ref: '#/components/schemas/GroupDefinition' + default: [] + ScheduleDefinition: + required: + - duration + - startDate + - startTime + - timezone + type: object + properties: + timezone: + type: string + description: "Time zone for the schedule per [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + startDate: + type: string + description: Schedule start date in the format of `yyyy-mm-dd` + startTime: + type: string + description: Schedule start time in the format of `hh:mm` + duration: + type: integer + description: Duration of the muting in minutes + format: int32 + rrule: + type: string + description: RRule (Recurrence Rule) + isForm: + type: boolean + description: A flag identifying if the RRule is created or modified through + Form UI + MonitorScope: + type: object + properties: + ids: + type: array + description: List of monitor Ids in hex. Must be empty if `all` is true. + items: + type: string + all: + type: boolean + description: true if the schedule applies to all monitors + default: false + description: Monitor scope that the schedule applies to + GroupDefinition: + required: + - groupKey + - groupValues + type: object + properties: + groupKey: + type: string + description: Field name of an alert group defined in monitors + groupValues: + type: array + description: Values of alert groups generated by monitors + items: + type: string + description: Alert group scope that the schedule applies to + example: + groupKey: region + groupValues: + - us-east-1 + - us-west-1 + SlosLibraryBase: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the slo or folder. + description: + type: string + description: Description of the slo or folder. + default: "" + type: + type: string + description: |- + Type of the object model. Valid values: + 1) SlosLibrarySlo + 2) SlosLibraryFolder + discriminator: + propertyName: type + SlosLibraryBaseUpdate: + required: + - name + - type + - version + type: object + properties: + name: + type: string + description: The name of the slo or folder. + description: + type: string + description: The description of the slo or folder. + default: "" + version: + type: integer + description: The version of the slo or folder. + format: int64 + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + SlosLibraryBaseResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the slo or folder. + name: + type: string + description: Identifier of the slo or folder. + description: + type: string + description: Description of the slo or folder. + version: + type: integer + description: Version of the slo or folder. + format: int64 + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Slo + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects + can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: "Aggregated permission summary for the calling user. If detailed\ + \ permission statements are required, please call list permissions endpoint." + example: + - Read + - Delete + items: + type: string + discriminator: + propertyName: type + SlosLibraryFolder: + allOf: + - $ref: '#/components/schemas/SlosLibraryBase' + SlosLibraryFolderUpdate: + allOf: + - $ref: '#/components/schemas/SlosLibraryBaseUpdate' + SlosLibraryFolderResponse: + allOf: + - $ref: '#/components/schemas/SlosLibraryBaseResponse' + - required: + - children + - permissions + type: object + properties: + permissions: + type: array + description: "Aggregated permission summary for the calling user. If detailed\ + \ permission statements are required, please call list permissions endpoint." + example: + - Read + - Delete + items: + type: string + children: + type: array + description: "Children of the folder. NOTE: Permissions field will not\ + \ be filled (empty list) for children." + items: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + SlosLibraryBaseExport: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the slo or folder. + description: + type: string + description: Description of the slo or folder. + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + SlosLibraryFolderExport: + allOf: + - $ref: '#/components/schemas/SlosLibraryBaseExport' + - type: object + properties: + children: + type: array + description: The items in the folder. A multi-type list of types slo or + folder. + items: + $ref: '#/components/schemas/SlosLibraryBaseExport' + SlosLibrarySlo: + allOf: + - $ref: '#/components/schemas/SlosLibraryBase' + - required: + - compliance + - indicator + - signalType + type: object + properties: + signalType: + pattern: ^(Latency|Error|Throughput|Availability|Other)$ + type: string + description: "Type of SLI Signal (latency, error, throughput, availability\ + \ or other)." + example: Latency + x-pattern-message: "Must be `Latency`, `Error`, `Throughput`, `Availability`\ + \ or `Other`" + compliance: + $ref: '#/components/schemas/Compliance' + indicator: + $ref: '#/components/schemas/Sli' + service: + type: string + description: Name of the service. + application: + type: string + description: Name of the application. + tags: + maxProperties: 50 + type: object + additionalProperties: + type: string + description: Tags to be associated with the SLO. + SlosLibrarySloResponse: + allOf: + - $ref: '#/components/schemas/SlosLibraryBaseResponse' + - required: + - compliance + - indicator + - signalType + type: object + properties: + signalType: + pattern: ^(Latency|Error|Throughput|Availability|Other)$ + type: string + description: "Type of SLI Signal (latency, error, throughput, availability\ + \ or other)." + example: Latency + x-pattern-message: "Must be `Latency`, `Error`, `Throughput`, `Availability`\ + \ or `Other`" + compliance: + $ref: '#/components/schemas/Compliance' + indicator: + $ref: '#/components/schemas/Sli' + service: + type: string + description: Name of the service. + application: + type: string + description: Name of the application. + tags: + maxProperties: 50 + type: object + additionalProperties: + type: string + description: Tags to be associated with the SLO. + sloVersion: + type: integer + description: "Current SLO Version. This is incremented on every change\ + \ of a critical field of the SLO (i.e, SLI or Compliance period timezone),\ + \ that requires a recompute of the SLI values over the compliance period." + format: int64 + SlosLibrarySloExport: + allOf: + - $ref: '#/components/schemas/SlosLibraryBaseExport' + - required: + - compliance + - indicator + - signalType + type: object + properties: + signalType: + pattern: ^(Latency|Error|Throughput|Availability|Other)$ + type: string + description: "Type of SLI Signal (latency, error, throughput, availability\ + \ or other)." + example: Latency + x-pattern-message: "Must be `Latency`, `Error`, `Throughput`, `Availability`\ + \ or `Other`" + compliance: + $ref: '#/components/schemas/Compliance' + indicator: + $ref: '#/components/schemas/Sli' + service: + type: string + description: Name of the service. + application: + type: string + description: Name of the application. + tags: + maxProperties: 50 + type: object + additionalProperties: + type: string + description: Tags to be associated with the SLO. + SlosLibrarySloUpdate: + allOf: + - $ref: '#/components/schemas/SlosLibraryBaseUpdate' + - required: + - compliance + - indicator + - signalType + type: object + properties: + signalType: + pattern: ^(Latency|Error|Throughput|Availability|Other)$ + type: string + description: "Type of SLI Signal (latency, error, throughput, availability\ + \ or other)." + example: Latency + x-pattern-message: "Must be `Latency`, `Error`, `Throughput`, `Availability`\ + \ or `Other`" + compliance: + $ref: '#/components/schemas/Compliance' + indicator: + $ref: '#/components/schemas/Sli' + service: + type: string + description: Name of the service. + application: + type: string + description: Name of the application. + tags: + maxProperties: 50 + type: object + additionalProperties: + type: string + description: Tags to be associated with the SLO. + Compliance: + required: + - complianceType + - target + - timezone + type: object + properties: + complianceType: + pattern: ^(Rolling|Calendar)$ + type: string + description: Compliance Type (rolling or calendar) + example: Rolling + x-pattern-message: Must be `Rolling` or `Calendar` + target: + type: number + description: Target percentage for the SLI over the compliance period. + example: 99.5 + timezone: + type: string + description: "Time zone for the SLO compliance. Follow the format in the\ + \ [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + discriminator: + propertyName: complianceType + mapping: + Rolling: '#/components/schemas/RollingCompliance' + Calendar: '#/components/schemas/CalendarCompliance' + CalendarCompliance: + type: object + description: Window for Calendar Compliance. + allOf: + - $ref: '#/components/schemas/Compliance' + - required: + - windowType + type: object + properties: + windowType: + pattern: ^(Week|Month|Quarter)$ + type: string + description: Type of Calendar Window (week/month/quarter). + example: Week + x-pattern-message: "Must be `Week`, `Month` or `Quarter`" + startFrom: + type: string + description: "Start of the calendar window. For week, it would be the\ + \ day of the week (for e.g Sunday, Monday etc). For month, it will always\ + \ be the first day of the month (therefore not required to specify for\ + \ monthly compliance). For quarter, it would be the first month of the\ + \ quarter (for e.g January, February etc.)" + example: Monday + RollingCompliance: + type: object + description: Window for Rolling Compliance. + allOf: + - $ref: '#/components/schemas/Compliance' + - required: + - size + type: object + properties: + size: + type: string + description: Size of Rolling Window. Must be a multiple of days. + example: 7d + Sli: + required: + - evaluationType + type: object + properties: + evaluationType: + pattern: ^(Window|Request|Monitor)$ + type: string + description: "Evaluate SLI using successful/total windows, or occurrence\ + \ of successful events over entire compliance period, or based on monitor\ + \ evaluation." + example: Window + x-pattern-message: Must be `Window` or `Request` or `Monitor` + discriminator: + propertyName: evaluationType + SliQueryGroup: + required: + - queryGroup + - queryGroupType + type: object + properties: + queryGroupType: + pattern: ^(Successful|Unsuccessful|Total|Threshold)$ + type: string + description: Type of Query (successful/unsuccessful/total/threshold). + example: Threshold + x-pattern-message: "Must be `Successful`, `Unsuccessful`, `Total` or `Threshold`" + queryGroup: + type: array + description: Group of queries to allow for query arithmetic. + items: + $ref: '#/components/schemas/SliQuery' + SliQuery: + required: + - query + - rowId + - useRowCount + type: object + properties: + rowId: + type: string + description: "Unique id of the row. Used for query arithmetic, only for\ + \ metric queries." + example: A + query: + type: string + description: Query String. + example: _sourceCategory=webserver "Request completed successfully" + useRowCount: + type: boolean + description: Determines whether to use count of rows (for logs) or data + points (for metrics) in query result or specific field. + example: false + field: + type: string + description: Field of log query output to compare against. To be used only + for logs based data type when `useRowCount` is false. + example: request_latency + description: Group of queries to allow for query arithmetic. + QueryBasedSli: + required: + - queries + - queryType + type: object + properties: + queryType: + pattern: ^(Logs|Metrics)$ + type: string + description: Type of Raw Data Queries for SLI (Logs/Metrics). + example: Logs + x-pattern-message: Must be `Logs` or `Metrics` + queries: + type: array + description: Queries for defining SLI. + items: + $ref: '#/components/schemas/SliQueryGroup' + description: Common properties for query based SLIs + Request: + type: object + description: Evaluate SLI using occurrences of successful events over compliance + period. + allOf: + - $ref: '#/components/schemas/QueryBasedSli' + - $ref: '#/components/schemas/Sli' + - type: object + properties: + threshold: + type: number + description: Compared against threshold query's raw data points to determine + success. + example: 200 + op: + pattern: ^(LessThan|GreaterThan|LessThanOrEqual|GreaterThanOrEqual)$ + type: string + description: Comparison function with threshold (LessThan/GreaterThan/LessThanOrEqual/GreaterThanOrEqual). + example: LessThan + x-pattern-message: "Must be `LessThan`, `GreaterThan`, `LessThanOrEqual`\ + \ or `GreaterThanOrEqual`" + Window: + type: object + description: Evaluate SLI using successful or unsuccessful windows over compliance + period. + allOf: + - $ref: '#/components/schemas/QueryBasedSli' + - $ref: '#/components/schemas/Sli' + - required: + - op + - size + - threshold + type: object + properties: + threshold: + type: number + description: Threshold for classifying window as successful or unsuccessful. + example: 200 + op: + pattern: ^(LessThan|GreaterThan|LessThanOrEqual|GreaterThanOrEqual)$ + type: string + description: Comparison function with window threshold (LessThan/GreaterThan/LessThanOrEqual/GreaterThanOrEqual). + example: LessThan + x-pattern-message: "Must be `LessThan`, `GreaterThan`, `LessThanOrEqual`\ + \ or `GreaterThanOrEqual`" + aggregation: + type: string + description: "Aggregation function applied over each window to arrive\ + \ at SLI. Must be `Avg`, `Min`, `Max`, `Sum`, or percentile of the form\ + \ `pX` where `X` is an integer between 0 and 100." + example: p99 + size: + type: string + description: Size of the aggregation window (minimum of 1m and maximum + of 1h). + example: 15m + Monitor: + type: object + description: SLI definition based on monitors. + allOf: + - $ref: '#/components/schemas/Sli' + - required: + - monitorTriggers + type: object + properties: + monitorTriggers: + type: array + description: Monitors over which the SLO is defined. + items: + $ref: '#/components/schemas/MonitorTrigger' + MonitorTrigger: + required: + - monitorId + - triggerTypes + type: object + properties: + monitorId: + type: string + description: Hex-id of the monitor on which the SLI is based. + example: 0000000000BCB3A4 + triggerTypes: + type: array + description: "The types of trigger conditions (such as Critical, Warning,\ + \ MissingData etc)." + items: + pattern: ^(Critical|Warning|MissingData)$ + type: string + description: |- + The type of trigger condition. Valid values: + 1. `Critical`: A critical condition to trigger on. + 2. `Warning`: A warning condition to trigger on. + 3. `MissingData`: A condition that indicates data is missing. + example: Critical + x-pattern-message: "should be one of the following: 'Critical', 'Warning'\ + \ or 'MissingData'" + description: Monitor related info required for defining SLO. + MonitorsLibraryBase: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the monitor or folder. + description: + type: string + description: Description of the monitor or folder. + default: "" + type: + type: string + description: |- + Type of the object model. Valid values: + 1) MonitorsLibraryMonitor + 2) MonitorsLibraryFolder + discriminator: + propertyName: type + MonitorsLibraryBaseUpdate: + required: + - name + - type + - version + type: object + properties: + name: + type: string + description: The name of the monitor or folder. + description: + type: string + description: The description of the monitor or folder. + default: "" + version: + type: integer + description: The version of the monitor or folder. + format: int64 + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + MonitorsLibraryBaseResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the monitor or folder. + name: + type: string + description: Identifier of the monitor or folder. + description: + type: string + description: Description of the monitor or folder. + version: + type: integer + description: Version of the monitor or folder. + format: int64 + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Monitor + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects + can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: "Aggregated permission summary for the calling user. If detailed\ + \ permission statements are required, please call list permissions endpoint." + example: + - Read + - Delete + items: + type: string + discriminator: + propertyName: type + MonitorsLibraryFolder: + allOf: + - $ref: '#/components/schemas/MonitorsLibraryBase' + MonitorsLibraryFolderUpdate: + allOf: + - $ref: '#/components/schemas/MonitorsLibraryBaseUpdate' + MonitorsLibraryFolderResponse: + allOf: + - $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + - required: + - children + - permissions + type: object + properties: + permissions: + type: array + description: "Aggregated permission summary for the calling user. If detailed\ + \ permission statements are required, please call list permissions endpoint." + example: + - Read + - Delete + items: + type: string + children: + type: array + description: "Children of the folder. NOTE: Permissions field will not\ + \ be filled (empty list) for children." + items: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + MonitorsLibraryBaseExport: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the monitor or folder. + description: + type: string + description: Description of the monitor or folder. + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + MonitorsLibraryFolderExport: + allOf: + - $ref: '#/components/schemas/MonitorsLibraryBaseExport' + - type: object + properties: + children: + type: array + description: The items in the folder. A multi-type list of types monitor + or folder. + items: + $ref: '#/components/schemas/MonitorsLibraryBaseExport' + MonitorsLibraryMonitor: + allOf: + - $ref: '#/components/schemas/MonitorsLibraryBase' + - required: + - monitorType + - queries + - triggers + type: object + properties: + monitorType: + pattern: ^(Logs|Metrics|Slo)$ + type: string + description: |- + The type of monitor. Valid values: + 1. `Logs`: A logs query monitor. + 2. `Metrics`: A metrics query monitor. + 3. `Slo`: A SLO based monitor. Currently SLO based monitor is available in closed beta (Notify your Sumo Logic representative in order to get the early access). + example: Logs + x-pattern-message: should be 'Logs' or 'Metrics' or 'Slo' + evaluationDelay: + type: string + description: The delay duration for evaluating the monitor (relative to + current time). The timerange of monitor will be shifted in the past + by this delay time. + example: 5m + default: 0m + alertName: + type: string + description: "The name of the alert(s) triggered from this monitor. Monitor\ + \ name will be used if not specified. All template variables can be\ + \ used here except {{AlertName}}, {{AlertResponseURL}}, {{ResultsJson}},\ + \ and {{Playbook}}." + runAs: + type: object + allOf: + - $ref: '#/components/schemas/RunAs' + notificationGroupFields: + type: array + description: "The set of fields to be used to group alert notifications\ + \ for a monitor. The value of this field will be considered only when\ + \ 'groupNotifications' is true. The fields with very high cardinality\ + \ such as `_blockid`, `_raw`, `_messagetime`, `_receipttime`, and `_messageid`\ + \ are not allowed for Alert Grouping." + example: + - service + - env + items: + type: string + queries: + uniqueItems: true + type: array + description: All queries from the monitor. + items: + $ref: '#/components/schemas/MonitorQuery' + triggers: + type: array + description: Defines the conditions of when to send notifications. + example: + - detectionMethod: LogsStaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + - detectionMethod: LogsStaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + items: + $ref: '#/components/schemas/TriggerCondition' + timeZone: + type: string + description: "Time zone identifier for monitor notifications. Follow the\ + \ format in [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + notifications: + type: array + description: The notifications the monitor will send when the respective + trigger condition is met. + example: + - notification: + connectionType: Slack + connectionId: "0000000000000005" + runForTriggerTypes: + - Critical + - notification: + connectionType: Email + messageBody: Alert Triggered! + recipients: + - john@doe.com + subject: "Monitor Alert: {{TriggerType}} on {{SearchName}}" + timeZone: America/Los_Angeles + runForTriggerTypes: + - Critical + items: + $ref: '#/components/schemas/MonitorNotification' + default: [] + isDisabled: + type: boolean + description: "Whether or not the monitor is disabled. Disabled monitors\ + \ will not run, and will not generate or send notifications." + example: false + default: false + groupNotifications: + type: boolean + description: Whether or not to group notifications for individual items + that meet the trigger condition. + example: true + default: true + playbook: + type: string + description: "Notes such as links and instruction to help you resolve\ + \ alerts triggered by this monitor. {{Markdown}} supported. It will\ + \ be enabled only if available for your organization. Please contact\ + \ your Sumo Logic account team to learn more." + example: This issue typically happens when database calls are timing out. + Look at ServiceA's dashboard to investigate further + default: "" + sloId: + type: string + description: Identifier of the SLO definition for the monitor. This is + only applicable for SLO type monitors. + automatedPlaybookIds: + uniqueItems: true + type: array + description: The set of automated playbook ids for a monitor. + example: + - 649dcb922b70c74b5d2110f8 + - 649dcb912b70c74b5d2110a0 + items: + type: string + default: [] + MonitorsLibraryMonitorResponse: + allOf: + - $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + - required: + - monitorType + - queries + - triggers + type: object + properties: + monitorType: + pattern: ^(Logs|Metrics|Slo)$ + type: string + description: |- + The type of monitor. Valid values: + 1. `Logs`: A logs query monitor. + 2. `Metrics`: A metrics query monitor. + 3. `Slo`: A SLO based monitor. Currently SLO based monitor is available in closed beta (Notify your Sumo Logic representative in order to get the early access). + example: Logs + x-pattern-message: should be 'Logs' or 'Metrics' or 'Slo' + evaluationDelay: + type: string + description: The delay duration for evaluating the monitor (relative to + current time). The timerange of monitor will be shifted in the past + by this delay time. + example: 5m + default: 0m + alertName: + type: string + description: "The name of the alert(s) triggered from this monitor. Monitor\ + \ name will be used if not specified. All template variables can be\ + \ used here except {{AlertName}}, {{AlertResponseURL}}, {{ResultsJson}},\ + \ and {{Playbook}}." + runAs: + type: object + allOf: + - $ref: '#/components/schemas/RunAs' + notificationGroupFields: + type: array + description: "The set of fields to be used to group alert notifications\ + \ for a monitor. The value of this field will be considered only when\ + \ 'groupNotifications' is true. The fields with very high cardinality\ + \ such as `_blockid`, `_raw`, `_messagetime`, `_receipttime`, and `_messageid`\ + \ are not allowed for Alert Grouping." + example: + - service + - env + items: + type: string + queries: + uniqueItems: true + type: array + description: All queries from the monitor. + items: + $ref: '#/components/schemas/MonitorQuery' + triggers: + type: array + description: Defines the conditions of when to send notifications. + example: + - detectionMethod: LogsStaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + - detectionMethod: LogsStaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + items: + $ref: '#/components/schemas/TriggerCondition' + timeZone: + type: string + description: "Time zone identifier for monitor notifications. Follow the\ + \ format in [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + notifications: + type: array + description: The notifications the monitor will send when the respective + trigger condition is met. + example: + - notification: + connectionType: Slack + connectionId: "0000000000000005" + runForTriggerTypes: + - Critical + - notification: + connectionType: Email + messageBody: Alert Triggered! + recipients: + - john@doe.com + subject: "Monitor Alert: {{TriggerType}} on {{SearchName}}" + timeZone: America/Los_Angeles + runForTriggerTypes: + - Critical + items: + $ref: '#/components/schemas/MonitorNotification' + default: [] + isDisabled: + type: boolean + description: "Whether or not the monitor is disabled. Disabled monitors\ + \ will not run, and will not generate or send notifications." + example: false + default: false + status: + uniqueItems: true + type: array + description: |- + The current status of the monitor. Each monitor can have one or more status values. Valid values: + 1. `Normal`: The monitor is running normally and does not have any currently triggered conditions. + 2. `Critical`: The Critical trigger condition has been met. + 3. `Warning`: The Warning trigger condition has been met. + 4. `MissingData`: The MissingData trigger condition has been met. + 5. `Disabled`: The monitor has been disabled and is not currently running. + example: "[Normal]" + items: + type: string + groupNotifications: + type: boolean + description: Whether or not to group notifications for individual items + that meet the trigger condition. + example: true + default: true + warnings: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Monitor manager warnings + playbook: + type: string + description: "Notes such as links and instruction to help you resolve\ + \ alerts triggered by this monitor. {{Markdown}} supported. It will\ + \ be enabled only if available for your organization. Please contact\ + \ your Sumo Logic account team to learn more." + example: This issue typically happens when database calls are timing out. + Look at ServiceA's dashboard to investigate further + default: "" + sloId: + type: string + description: Identifier of the SLO definition for the monitor. This is + only applicable for SLO type monitors. + automatedPlaybookIds: + uniqueItems: true + type: array + description: The set of automated playbook ids for a monitor. + example: + - 649dcb922b70c74b5d2110f8 + - 649dcb912b70c74b5d2110a0 + items: + type: string + default: [] + MonitorsLibraryMonitorExport: + allOf: + - $ref: '#/components/schemas/MonitorsLibraryBaseExport' + - required: + - monitorType + - queries + - triggers + type: object + properties: + monitorType: + pattern: ^(Logs|Metrics|Slo)$ + type: string + description: |- + The type of monitor. Valid values: + 1. `Logs`: A logs query monitor. + 2. `Metrics`: A metrics query monitor. + 3. `Slo`: A SLO based monitor. Currently SLO based monitor is available in closed beta (Notify your Sumo Logic representative in order to get the early access). + example: Logs + x-pattern-message: should be 'Logs' or 'Metrics' or 'Slo' + evaluationDelay: + type: string + description: The delay duration for evaluating the monitor (relative to + current time). The timerange of monitor will be shifted in the past + by this delay time. + example: 5m + default: 0m + alertName: + type: string + description: "The name of the alert(s) triggered from this monitor. Monitor\ + \ name will be used if not specified. All template variables can be\ + \ used here except {{AlertName}}, {{AlertResponseURL}}, {{ResultsJson}},\ + \ and {{Playbook}}." + runAs: + type: object + allOf: + - $ref: '#/components/schemas/RunAs' + notificationGroupFields: + type: array + description: "The set of fields to be used to group alert notifications\ + \ for a monitor. The value of this field will be considered only when\ + \ 'groupNotifications' is true. The fields with very high cardinality\ + \ such as `_blockid`, `_raw`, `_messagetime`, `_receipttime`, and `_messageid`\ + \ are not allowed for Alert Grouping." + example: + - service + - env + items: + type: string + queries: + uniqueItems: true + type: array + description: All queries from the monitor. + items: + $ref: '#/components/schemas/MonitorQuery' + triggers: + type: array + description: Defines the conditions of when to send notifications. + example: + - detectionMethod: LogsStaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + - detectionMethod: LogsStaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + items: + $ref: '#/components/schemas/TriggerCondition' + timeZone: + type: string + description: "Time zone identifier for monitor notifications. Follow the\ + \ format in [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + notifications: + type: array + description: The notifications the monitor will send when the respective + trigger condition is met. + example: + - notification: + connectionType: Slack + connectionId: "0000000000000005" + runForTriggerTypes: + - Critical + - notification: + connectionType: Email + messageBody: Alert Triggered! + recipients: + - john@doe.com + subject: "Monitor Alert: {{TriggerType}} on {{SearchName}}" + timeZone: America/Los_Angeles + runForTriggerTypes: + - Critical + items: + $ref: '#/components/schemas/MonitorNotification' + default: [] + isDisabled: + type: boolean + description: "Whether or not the monitor is disabled. Disabled monitors\ + \ will not run, and will not generate or send notifications." + example: false + default: false + groupNotifications: + type: boolean + description: Whether or not to group notifications for individual items + that meet the trigger condition. + example: true + default: true + playbook: + type: string + description: "Notes such as links and instruction to help you resolve\ + \ alerts triggered by this monitor. {{Markdown}} supported. It will\ + \ be enabled only if available for your organization. Please contact\ + \ your Sumo Logic account team to learn more." + example: This issue typically happens when database calls are timing out. + Look at ServiceA's dashboard to investigate further + default: "" + sloId: + type: string + description: Identifier of the SLO definition for the monitor. This is + only applicable for SLO type monitors. + automatedPlaybookIds: + uniqueItems: true + type: array + description: The set of automated playbook ids for a monitor. + example: + - 649dcb922b70c74b5d2110f8 + - 649dcb912b70c74b5d2110a0 + items: + type: string + default: [] + MonitorsLibraryMonitorUpdate: + allOf: + - $ref: '#/components/schemas/MonitorsLibraryBaseUpdate' + - required: + - monitorType + - queries + - triggers + type: object + properties: + monitorType: + pattern: ^(Logs|Metrics|Slo)$ + type: string + description: |- + The type of monitor. Valid values: + 1. `Logs`: A logs query monitor. + 2. `Metrics`: A metrics query monitor. + 3. `Slo`: A SLO based monitor. Currently SLO based monitor is available in closed beta (Notify your Sumo Logic representative in order to get the early access). + example: Logs + x-pattern-message: should be 'Logs' or 'Metrics' or 'Slo' + evaluationDelay: + type: string + description: The delay duration for evaluating the monitor (relative to + current time). The timerange of monitor will be shifted in the past + by this delay time. + example: 5m + default: 0m + alertName: + type: string + description: "The name of the alert(s) triggered from this monitor. Monitor\ + \ name will be used if not specified. All template variables can be\ + \ used here except {{AlertName}}, {{AlertResponseURL}}, {{ResultsJson}},\ + \ and {{Playbook}}." + runAs: + type: object + allOf: + - $ref: '#/components/schemas/RunAs' + notificationGroupFields: + type: array + description: "The set of fields to be used to group alert notifications\ + \ for a monitor. The value of this field will be considered only when\ + \ 'groupNotifications' is true. The fields with very high cardinality\ + \ such as `_blockid`, `_raw`, `_messagetime`, `_receipttime`, and `_messageid`\ + \ are not allowed for Alert Grouping." + example: + - service + - env + items: + type: string + queries: + uniqueItems: true + type: array + description: All queries from the monitor. + items: + $ref: '#/components/schemas/MonitorQuery' + triggers: + type: array + description: Defines the conditions of when to send notifications. + example: + - detectionMethod: LogsStaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + - detectionMethod: LogsStaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + items: + $ref: '#/components/schemas/TriggerCondition' + timeZone: + type: string + description: "Time zone identifier for monitor notifications. Follow the\ + \ format in [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + notifications: + type: array + description: The notifications the monitor will send when the respective + trigger condition is met. + example: + - notification: + connectionType: Slack + connectionId: "0000000000000005" + runForTriggerTypes: + - Critical + - notification: + connectionType: Email + messageBody: Alert Triggered! + recipients: + - john@doe.com + subject: "Monitor Alert: {{TriggerType}} on {{SearchName}}" + timeZone: America/Los_Angeles + runForTriggerTypes: + - Critical + items: + $ref: '#/components/schemas/MonitorNotification' + default: [] + isDisabled: + type: boolean + description: "Whether or not the monitor is disabled. Disabled monitors\ + \ will not run, and will not generate or send notifications." + example: false + default: false + groupNotifications: + type: boolean + description: Whether or not to group notifications for individual items + that meet the trigger condition. + example: true + default: true + playbook: + type: string + description: "Notes such as links and instruction to help you resolve\ + \ alerts triggered by this monitor. {{Markdown}} supported. It will\ + \ be enabled only if available for your organization. Please contact\ + \ your Sumo Logic account team to learn more." + example: This issue typically happens when database calls are timing out. + Look at ServiceA's dashboard to investigate further + default: "" + sloId: + type: string + description: Identifier of the SLO definition for the monitor. This is + only applicable for SLO type monitors. + automatedPlaybookIds: + uniqueItems: true + type: array + description: The set of automated playbook ids for a monitor. + example: + - 649dcb922b70c74b5d2110f8 + - 649dcb912b70c74b5d2110a0 + items: + type: string + default: [] + MonitorNotification: + required: + - notification + - runForTriggerTypes + type: object + properties: + notification: + $ref: '#/components/schemas/Action' + runForTriggerTypes: + uniqueItems: true + type: array + description: The trigger types assigned to send this notification. + items: + type: string + RunAs: + required: + - runAsId + type: object + properties: + runAsId: + type: string + description: "The runAsId indicates the context in which monitors will run.\ + \ If not provided, then it will run in the context of the monitor author." + example: 00000000000001DF + AlertsLibraryBase: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the alert or folder. + description: + type: string + description: Description of the alert or folder. + default: "" + type: + type: string + description: |- + Type of the object model. Valid values: + 1) AlertsLibraryAlert + 2) AlertsLibraryFolder + isLocked: + type: boolean + description: Locking/Unlocking requires the `LockAlerts` capability. Locked + objects can only be `Localized`. Updating or moving requires unlocking + the object. Locking/Unlocking recursively locks all of the objects children. + All children of a locked object must be locked. + default: false + discriminator: + propertyName: type + AlertsLibraryBaseUpdate: + required: + - name + - type + - version + type: object + properties: + name: + type: string + description: The name of the alert or folder. + description: + type: string + description: The description of the alert or folder. + default: "" + version: + type: integer + description: The version of the alert or folder. + format: int64 + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + AlertsLibraryBaseResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the alert or folder. + name: + type: string + description: Identifier of the alert or folder. + description: + type: string + description: Description of the alert or folder. + version: + type: integer + description: Version of the alert or folder. + format: int64 + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Alert + 2) Folder + type: + type: string + description: Type of the object model. + isLocked: + type: boolean + description: Whether the object is locked. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects + can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + discriminator: + propertyName: type + AlertsLibraryFolder: + allOf: + - $ref: '#/components/schemas/AlertsLibraryBase' + AlertsLibraryFolderUpdate: + allOf: + - $ref: '#/components/schemas/AlertsLibraryBaseUpdate' + AlertsLibraryFolderResponse: + allOf: + - $ref: '#/components/schemas/AlertsLibraryBaseResponse' + - required: + - children + type: object + properties: + children: + type: array + description: "Children of the folder. NOTE: Permissions field will not\ + \ be filled (empty list) for children." + items: + $ref: '#/components/schemas/AlertsLibraryBaseResponse' + AlertsLibraryBaseExport: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the alert or folder. + description: + type: string + description: Description of the alert or folder. + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + AlertsLibraryFolderExport: + allOf: + - $ref: '#/components/schemas/AlertsLibraryBaseExport' + - type: object + properties: + children: + type: array + description: The items in the folder. A multi-type list of types alert + or folder. + items: + $ref: '#/components/schemas/AlertsLibraryBaseExport' + AlertsLibraryAlert: + allOf: + - $ref: '#/components/schemas/AlertsLibraryBase' + - type: object + properties: + monitorId: + type: string + description: The Id of the associated monitor. + example: 000000000000003C + resolvedAt: + type: string + description: The time at which the alert was resolved. + format: date-time + nullable: true + example: 2018-10-16T10:10:00Z + abnormalityStartTime: + type: string + description: The time at which the incident started. + format: date-time + example: 2018-10-16T09:10:00Z + alertType: + pattern: ^(Critical|Warning|MissingData)$ + type: string + description: |- + The severity of the Alert. Valid values: + 1. `Critical` + 2. `Warning` + 3. `MissingData` + example: Warning + x-pattern-message: "should be either 'Critical', 'Warning' or 'MissingData'" + status: + pattern: ^(Triggered|Resolved)$ + type: string + description: |- + The status of the Alert. Valid values: + 1. `Triggered` + 2. `Resolved` + example: Triggered + x-pattern-message: should be either 'Triggered' or 'Resolved' + monitorQueries: + type: array + description: All queries from the monitor relevant to the alert. + items: + $ref: '#/components/schemas/AlertMonitorQuery' + triggerQueries: + type: array + description: All queries from the monitor relevant to the alert with triggered + time series filters. + items: + $ref: '#/components/schemas/AlertMonitorQuery' + monitorUrl: + type: string + description: URL for this monitor's view page + triggerQueryUrl: + type: string + description: A link to search with the triggering data and time range + triggerConditions: + type: array + description: Trigger conditions which were breached to create this Alert. + example: + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + occurrenceType: ResultCount + triggerSource: AllResults + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + occurrenceType: ResultCount + triggerSource: AllResults + items: + $ref: '#/components/schemas/TriggerCondition' + triggerValue: + type: number + description: The of the query result which breached the trigger condition. + format: double + example: 99.9 + monitorType: + pattern: ^(Logs|Metrics)$ + type: string + description: |- + The type of monitor. Valid values: + 1. `Logs`: A logs query monitor. + 2. `Metrics`: A metrics query monitor. + example: Logs + x-pattern-message: should be either 'Logs' or 'Metrics' + entityIds: + maxItems: 10000 + minItems: 0 + type: array + description: | + One or more primary entity identifiers involved in this Alert. Primary/secondary entities are explained in description for `entities`. DEPRECATED, USE `entities` INSTEAD. + deprecated: true + items: + maxLength: 32 + minLength: 1 + type: string + example: be138dbaaf15ff05da1df0a9d5e763e8 + entities: + maxItems: 10000 + minItems: 0 + type: array + description: | + One or more primary entities involved in this Alert. Primary entity is the most concrete entity that can be assigned per time series or log group (e.g. k8s container), secondary entities are the less specific ones that can be assigned per that notification (e.g. k8s cluster or EC2 host). + items: + $ref: '#/components/schemas/AlertEntityInfo' + secondaryEntities: + maxItems: 10000 + minItems: 0 + type: array + description: | + One or more secondary entity involved in this Alert. Primary/secondary entities are explained in description for `entities` + items: + $ref: '#/components/schemas/AlertEntityInfo' + default: [] + notes: + type: string + example: High CPU is often fixed by scaling up the cluster. + extraDetails: + $ref: '#/components/schemas/ExtraDetails' + alertCondition: + type: string + description: The condition which triggered this alert. + nullable: true + example: Metric value greater than or equal to 100.0 for all of the last + 5 minutes. + isMuted: + type: boolean + description: Flag of the alerts muting status. + example: false + AlertsLibraryAlertResponse: + allOf: + - $ref: '#/components/schemas/AlertsLibraryBaseResponse' + - type: object + properties: + monitorId: + type: string + description: The Id of the associated monitor. + example: 000000000000003C + resolvedAt: + type: string + description: The time at which the alert was resolved. + format: date-time + nullable: true + example: 2018-10-16T10:10:00Z + abnormalityStartTime: + type: string + description: The time at which the incident started. + format: date-time + example: 2018-10-16T09:10:00Z + alertType: + pattern: ^(Critical|Warning|MissingData)$ + type: string + description: |- + The severity of the Alert. Valid values: + 1. `Critical` + 2. `Warning` + 3. `MissingData` + example: Warning + x-pattern-message: "should be either 'Critical', 'Warning' or 'MissingData'" + status: + pattern: ^(Triggered|Resolved)$ + type: string + description: |- + The status of the Alert. Valid values: + 1. `Triggered` + 2. `Resolved` + example: Triggered + x-pattern-message: should be either 'Triggered' or 'Resolved' + monitorQueries: + type: array + description: All queries from the monitor relevant to the alert. + items: + $ref: '#/components/schemas/AlertMonitorQuery' + triggerQueries: + type: array + description: All queries from the monitor relevant to the alert with triggered + time series filters. + items: + $ref: '#/components/schemas/AlertMonitorQuery' + monitorUrl: + type: string + description: URL for this monitor's view page + triggerQueryUrl: + type: string + description: A link to search with the triggering data and time range + triggerConditions: + type: array + description: Trigger conditions which were breached to create this Alert. + example: + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + occurrenceType: ResultCount + triggerSource: AllResults + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + occurrenceType: ResultCount + triggerSource: AllResults + items: + $ref: '#/components/schemas/TriggerCondition' + triggerValue: + type: number + description: The of the query result which breached the trigger condition. + format: double + example: 99.9 + monitorType: + pattern: ^(Logs|Metrics)$ + type: string + description: |- + The type of monitor. Valid values: + 1. `Logs`: A logs query monitor. + 2. `Metrics`: A metrics query monitor. + example: Logs + x-pattern-message: should be either 'Logs' or 'Metrics' + entityIds: + maxItems: 10000 + minItems: 0 + type: array + description: | + One or more primary entity identifiers involved in this Alert. Primary/secondary entities are explained in description for `entities`. DEPRECATED, USE `entities` INSTEAD. + deprecated: true + items: + maxLength: 32 + minLength: 1 + type: string + example: be138dbaaf15ff05da1df0a9d5e763e8 + entities: + maxItems: 10000 + minItems: 0 + type: array + description: | + One or more primary entities involved in this Alert. Primary entity is the most concrete entity that can be assigned per time series or log group (e.g. k8s container), secondary entities are the less specific ones that can be assigned per that notification (e.g. k8s cluster or EC2 host). + items: + $ref: '#/components/schemas/AlertEntityInfo' + secondaryEntities: + maxItems: 10000 + minItems: 0 + type: array + description: | + One or more secondary entity involved in this Alert. Primary/secondary entities are explained in description for `entities` + items: + $ref: '#/components/schemas/AlertEntityInfo' + default: [] + notes: + type: string + example: High CPU is often fixed by scaling up the cluster. + extraDetails: + $ref: '#/components/schemas/ExtraDetails' + alertCondition: + type: string + description: The condition which triggered this alert. + nullable: true + example: Metric value greater than or equal to 100.0 for all of the last + 5 minutes. + isMuted: + type: boolean + description: Flag of the alerts muting status. + example: false + AlertsLibraryAlertExport: + allOf: + - $ref: '#/components/schemas/AlertsLibraryBaseExport' + - type: object + properties: + monitorId: + type: string + description: The Id of the associated monitor. + example: 000000000000003C + resolvedAt: + type: string + description: The time at which the alert was resolved. + format: date-time + nullable: true + example: 2018-10-16T10:10:00Z + abnormalityStartTime: + type: string + description: The time at which the incident started. + format: date-time + example: 2018-10-16T09:10:00Z + alertType: + pattern: ^(Critical|Warning|MissingData)$ + type: string + description: |- + The severity of the Alert. Valid values: + 1. `Critical` + 2. `Warning` + 3. `MissingData` + example: Warning + x-pattern-message: "should be either 'Critical', 'Warning' or 'MissingData'" + status: + pattern: ^(Triggered|Resolved)$ + type: string + description: |- + The status of the Alert. Valid values: + 1. `Triggered` + 2. `Resolved` + example: Triggered + x-pattern-message: should be either 'Triggered' or 'Resolved' + monitorQueries: + type: array + description: All queries from the monitor relevant to the alert. + items: + $ref: '#/components/schemas/AlertMonitorQuery' + triggerQueries: + type: array + description: All queries from the monitor relevant to the alert with triggered + time series filters. + items: + $ref: '#/components/schemas/AlertMonitorQuery' + monitorUrl: + type: string + description: URL for this monitor's view page + triggerQueryUrl: + type: string + description: A link to search with the triggering data and time range + triggerConditions: + type: array + description: Trigger conditions which were breached to create this Alert. + example: + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + occurrenceType: ResultCount + triggerSource: AllResults + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + occurrenceType: ResultCount + triggerSource: AllResults + items: + $ref: '#/components/schemas/TriggerCondition' + triggerValue: + type: number + description: The of the query result which breached the trigger condition. + format: double + example: 99.9 + monitorType: + pattern: ^(Logs|Metrics)$ + type: string + description: |- + The type of monitor. Valid values: + 1. `Logs`: A logs query monitor. + 2. `Metrics`: A metrics query monitor. + example: Logs + x-pattern-message: should be either 'Logs' or 'Metrics' + entityIds: + maxItems: 10000 + minItems: 0 + type: array + description: | + One or more primary entity identifiers involved in this Alert. Primary/secondary entities are explained in description for `entities`. DEPRECATED, USE `entities` INSTEAD. + deprecated: true + items: + maxLength: 32 + minLength: 1 + type: string + example: be138dbaaf15ff05da1df0a9d5e763e8 + entities: + maxItems: 10000 + minItems: 0 + type: array + description: | + One or more primary entities involved in this Alert. Primary entity is the most concrete entity that can be assigned per time series or log group (e.g. k8s container), secondary entities are the less specific ones that can be assigned per that notification (e.g. k8s cluster or EC2 host). + items: + $ref: '#/components/schemas/AlertEntityInfo' + secondaryEntities: + maxItems: 10000 + minItems: 0 + type: array + description: | + One or more secondary entity involved in this Alert. Primary/secondary entities are explained in description for `entities` + items: + $ref: '#/components/schemas/AlertEntityInfo' + default: [] + notes: + type: string + example: High CPU is often fixed by scaling up the cluster. + extraDetails: + $ref: '#/components/schemas/ExtraDetails' + alertCondition: + type: string + description: The condition which triggered this alert. + nullable: true + example: Metric value greater than or equal to 100.0 for all of the last + 5 minutes. + isMuted: + type: boolean + description: Flag of the alerts muting status. + example: false + AlertsLibraryAlertUpdate: + allOf: + - $ref: '#/components/schemas/AlertsLibraryBaseUpdate' + - type: object + properties: + monitorId: + type: string + description: The Id of the associated monitor. + example: 000000000000003C + resolvedAt: + type: string + description: The time at which the alert was resolved. + format: date-time + nullable: true + example: 2018-10-16T10:10:00Z + abnormalityStartTime: + type: string + description: The time at which the incident started. + format: date-time + example: 2018-10-16T09:10:00Z + alertType: + pattern: ^(Critical|Warning|MissingData)$ + type: string + description: |- + The severity of the Alert. Valid values: + 1. `Critical` + 2. `Warning` + 3. `MissingData` + example: Warning + x-pattern-message: "should be either 'Critical', 'Warning' or 'MissingData'" + status: + pattern: ^(Triggered|Resolved)$ + type: string + description: |- + The status of the Alert. Valid values: + 1. `Triggered` + 2. `Resolved` + example: Triggered + x-pattern-message: should be either 'Triggered' or 'Resolved' + monitorQueries: + type: array + description: All queries from the monitor relevant to the alert. + items: + $ref: '#/components/schemas/AlertMonitorQuery' + triggerQueries: + type: array + description: All queries from the monitor relevant to the alert with triggered + time series filters. + items: + $ref: '#/components/schemas/AlertMonitorQuery' + monitorUrl: + type: string + description: URL for this monitor's view page + triggerQueryUrl: + type: string + description: A link to search with the triggering data and time range + triggerConditions: + type: array + description: Trigger conditions which were breached to create this Alert. + example: + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + occurrenceType: ResultCount + triggerSource: AllResults + - detectionMethod: StaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + occurrenceType: ResultCount + triggerSource: AllResults + items: + $ref: '#/components/schemas/TriggerCondition' + triggerValue: + type: number + description: The of the query result which breached the trigger condition. + format: double + example: 99.9 + monitorType: + pattern: ^(Logs|Metrics)$ + type: string + description: |- + The type of monitor. Valid values: + 1. `Logs`: A logs query monitor. + 2. `Metrics`: A metrics query monitor. + example: Logs + x-pattern-message: should be either 'Logs' or 'Metrics' + entityIds: + maxItems: 10000 + minItems: 0 + type: array + description: | + One or more primary entity identifiers involved in this Alert. Primary/secondary entities are explained in description for `entities`. DEPRECATED, USE `entities` INSTEAD. + deprecated: true + items: + maxLength: 32 + minLength: 1 + type: string + example: be138dbaaf15ff05da1df0a9d5e763e8 + entities: + maxItems: 10000 + minItems: 0 + type: array + description: | + One or more primary entities involved in this Alert. Primary entity is the most concrete entity that can be assigned per time series or log group (e.g. k8s container), secondary entities are the less specific ones that can be assigned per that notification (e.g. k8s cluster or EC2 host). + items: + $ref: '#/components/schemas/AlertEntityInfo' + secondaryEntities: + maxItems: 10000 + minItems: 0 + type: array + description: | + One or more secondary entity involved in this Alert. Primary/secondary entities are explained in description for `entities` + items: + $ref: '#/components/schemas/AlertEntityInfo' + default: [] + notes: + type: string + example: High CPU is often fixed by scaling up the cluster. + extraDetails: + $ref: '#/components/schemas/ExtraDetails' + alertCondition: + type: string + description: The condition which triggered this alert. + nullable: true + example: Metric value greater than or equal to 100.0 for all of the last + 5 minutes. + isMuted: + type: boolean + description: Flag of the alerts muting status. + example: false + AlertMonitorQuery: + allOf: + - $ref: '#/components/schemas/MonitorQuery' + - required: + - isTriggerRow + type: object + properties: + isTriggerRow: + type: boolean + description: Indicates whether the current row is the trigger (final) + row. + example: false + description: Monitor Query for the Alert. + ExtraDetails: + type: object + properties: + details: + type: array + description: Additional data from Sumo Logic related to the Alert. + items: + $ref: '#/components/schemas/KeyValuePair' + KeyValuePair: + properties: + key: + type: string + description: Name of the key. + example: cluster + value: + type: string + description: Value of the key. + example: cluster1 + AlertEntityInfo: + type: object + properties: + entityId: + type: string + description: Identifier of the entity. + example: f11046564fc9fd093f92fdca24e2823f + entityName: + type: string + description: Name of the entity. + example: _sourceCategory=worker _sourceHost=node-1 + entityTypeId: + type: string + description: Entity type ID or empty if unknown. + example: f5ef50254e45958882a2c1e37f528308 + default: "" + isPrimaryWithinDomain: + type: boolean + description: Whether entity is the most specific entity within its domain + for that alert. + default: true + isPrimaryDomain: + type: boolean + description: Whether entity is from the most accurate domain found for this + alert. + default: true + description: An entity's name and Id. + ListAppsResult: + required: + - apps + type: object + properties: + apps: + type: array + description: An array of Apps + items: + $ref: '#/components/schemas/App' + description: List of all available apps from the App Catalog. + App: + required: + - appDefinition + - appManifest + type: object + properties: + appDefinition: + $ref: '#/components/schemas/AppDefinition' + appManifest: + $ref: '#/components/schemas/AppManifest' + AppDefinition: + required: + - appVersion + - contentId + - name + - uuid + type: object + properties: + contentId: + type: string + description: Content identifier of the app in hexadecimal format. + example: 00000000000011AE + uuid: + type: string + description: Unique identifier for the app. + format: uuid + example: 1c57fbc3-3141-4b12-aab3-5f40152bc3d9 + name: + type: string + description: Name of the app. + example: Sumo Config + appVersion: + type: string + description: Version of the app. + example: "1.0" + preview: + type: boolean + description: Indicates whether the app is in preview or not. + example: true + manifestVersion: + type: string + description: Manifest version of the app + example: "0.1" + AppManifest: + required: + - description + - hoverText + - iconURL + type: object + properties: + family: + type: string + description: The app family + example: IIS + description: + type: string + description: Description of the app. + example: A description for Sumo Logic Config App. + categories: + type: array + description: Categories that the app belongs to. + example: + - Sumo Logic + - Configuration + items: + type: string + hoverText: + type: string + description: Text to be displayed when hovered over in UI. + example: Sumo Config App + iconURL: + type: string + description: App icon URL. + example: https://sumologic-app-data.sumologic.com/icons/sumoconfig.png + screenshotURLs: + type: array + description: App screenshot URLs. + example: + - https://sumologic-app-data.sumologic.com/icons/sumoconfig/overview.png + - https://sumologic-app-data.sumologic.com/screenshots/sumoconfig/details.png + items: + type: string + helpURL: + type: string + description: App help page URL. + example: https://help.sumologic.com/ + helpDocIdMap: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: the IDs of the docs pages for this app + communityURL: + type: string + description: App community page URL. + example: https://support.sumologic.com/hc/en-us/community/topics/200263058-Applications-and-Integrations + requirements: + type: array + description: Requirements for the app. + example: [] + items: + type: string + accountTypes: + type: array + description: Account types that are allowed to install the app + example: + - free + items: + type: string + requiresInstallationInstructions: + type: boolean + description: Indicates whether installation instructions are required or + not. + example: false + installationInstructions: + type: string + description: Installation instructions for the app. + example: "" + parameters: + type: array + description: Content identifier of the app. + items: + $ref: '#/components/schemas/ServiceManifestDataSourceParameter' + author: + type: string + description: App author. + example: Sumo Logic + authorWebsite: + type: string + description: App author website URL. + example: https://www.sumologic.com + ServiceManifestDataSourceParameter: + required: + - parameterId + - parameterType + type: object + properties: + parameterType: + pattern: ^DATA_SOURCE$ + type: string + description: Parameter type. + example: DATA_SOURCE + x-pattern-message: "Supported parameter types include: DATA_SOURCE" + parameterId: + type: string + description: Parameter identifier. + example: paramId1 + dataSourceType: + pattern: ^(LOG|METRICS)$ + type: string + description: Data source type. + example: LOG + x-pattern-message: "Supported data source types include: LOG, METRICS" + label: + type: string + description: Label. + example: Log label + description: + type: string + description: Description. + example: Log data source + example: + type: string + description: Example. + example: "" + hidden: + type: boolean + description: Should the UI display? + default: false + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific + API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: "Your password was 5 characters long, the minimum length is 12\ + \ characters. See http://example.com/password for more information." + meta: + type: object + description: An optional list of metadata about the error. + example: + minLength: 12 + actualLength: 5 + BeginAsyncJobResponse: + required: + - id + type: object + properties: + id: + type: string + description: Identifier to get the status of an asynchronous job. + example: C03E086C137F38B4 + AsyncJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: "Whether or not the request is in progress (`InProgress`),\ + \ has completed successfully (`Success`), or has completed with an error\ + \ (`Failed`)." + statusMessage: + type: string + description: Additional status message generated if the status is not `Failed`. + error: + $ref: '#/components/schemas/ErrorDescription' + example: + status: Success + statusMessage: "" + AppItemsList: + required: + - items + type: object + properties: + items: + type: array + description: Items associated with the app. + items: + $ref: '#/components/schemas/AppListItem' + AppListItem: + required: + - itemType + - name + type: object + properties: + itemType: + type: string + description: "Type of the item. Can be `Dashboard`, `Report`, `Search`,\ + \ `ScheduledSearch`, `MetricsSearch` or `Folder`." + example: Dashboard + name: + type: string + description: Name of the item. + example: AWS CloudTrail - Overview + description: + type: string + description: Description of the item. + example: "See an overview of your AWS users, resources, network and security\ + \ events." + query: + type: string + description: "Search query for the item. Applicable only for `Search`, `ScheduledSearch`\ + \ and `MetricsSearch` itemType." + example: _sourceCategory=aws + screenshotUrl: + type: string + description: URL for the screenshot of the item. Applicable only for `Dashboard` + and `Report` itemType. + example: https://my-app-data.s3.amazonaws.com/dashboards/AWSCloudTrail/Overview.PNG + panels: + type: array + description: Panels associated with the item. Applicable only for `Dashboard` + and `Report` itemType. + items: + $ref: '#/components/schemas/PanelItem' + children: + type: array + description: Child content items. Applicable only for `Folder` itemType. + items: + $ref: '#/components/schemas/AppListItem' + PanelItem: + required: + - name + type: object + properties: + name: + type: string + description: Name of the panel. + example: Failed Logins + description: + type: string + description: Description of the panel. + example: Details about failed logins + AppInstallRequest: + required: + - description + - destinationFolderId + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Preferred name of the app to be installed. This will be the + name of the app in the selected installation folder. + example: Sumo Logic Configuration App + description: + maxLength: 255 + minLength: 1 + type: string + description: Preferred description of the app to be installed. This will + be displayed as the app description in the selected installation folder. + example: Sumo Logic Configuration App to configure collectors and data sources + destinationFolderId: + type: string + description: Identifier of the folder in which the app will be installed + in hexadecimal format. + example: 00000000000001C8 + dataSourceValues: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Dictionary of properties specifying log-source name and value. + example: + logsrc: _sourceCategory = api + description: "JSON object containing name, description, destinationFolderId,\ + \ and dataSourceType." + ListAppRecommendations: + type: array + description: List of app recommendations + items: + $ref: '#/components/schemas/AppRecommendation' + AppRecommendation: + required: + - confidence + - description + - iconURL + - name + - uuid + type: object + properties: + uuid: + type: string + description: Unique identifier for the app. + format: uuid + example: ebcbd463-b38b-47b0-819c-8d44ca859c3b + name: + type: string + description: Name of the app. + example: Data Volume + description: + type: string + description: Description of the app. + example: "The Sumo Logic App for Data Volume uses predefined searches and\ + \ Dashboards to provide real-time visibility and analysis of your account's\ + \ data usage volume for both logs and metrics. Use this app to identify\ + \ your top Collectors and monitor your ingest activity and trends. NOTE:\ + \ Please enable Data Volume Index before installing this app." + iconURL: + type: string + description: URL of the app icon. + example: https://app_icons.s3.amazonaws.com/volumeview.png + confidence: + type: number + description: Percentage relevance of recommendation. + format: double + example: 0.98 + description: App recommendation details + AsyncInstallAppRequest: + type: object + properties: + version: + type: string + description: | + Version of the app to install. You can either specify a specific version of the app or use `latest` to install the latest version of the app. _If version is not specified, the latest version of the app will be installed_. + example: 1.0.1 + default: latest + parameters: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map of additional parameters for the app installation. + example: + db_system: redis + description: Install app request. + BeginAsyncJobResponseV2: + required: + - jobId + type: object + properties: + jobId: + type: string + description: Identifier of the asynchronous job. Use it to get status of + the job. + example: C03E086C137F38B4 + AsyncInstallAppJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: "Whether or not the request is in progress (`InProgress`),\ + \ has completed successfully (`Success`), or has completed with an error\ + \ (`Failed`)." + example: Success + instanceId: + type: string + description: Instance identifier of the installed app. This field is not + set yet but is a placeholder for future use. + example: 0000000001578BE8 + path: + type: string + description: Path of the folder in which the app was installed. + example: /Library/Installed Apps/AWS CloudTrail + folderId: + type: string + description: Identifier of the folder in which the app was installed. + example: 0000000001578BE8 + error: + $ref: '#/components/schemas/ErrorDescription' + description: Status of the install app async job. + AsyncUninstallAppJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: "Whether or not the request is in progress (`InProgress`),\ + \ has completed successfully (`Success`), or has completed with an error\ + \ (`Failed`)." + example: Success + errors: + type: array + description: More information about the failure if the status is `Failed`. + items: + $ref: '#/components/schemas/ErrorDescription' + description: Status of an uninstall app job. + AsyncUpgradeAppRequest: + type: object + properties: + version: + type: string + description: | + Version of the app to upgrade. You can either specify a specific version of the app or use `latest` to install the latest version of the app. _If version is not specified, the latest version of the app will be installed_. + example: 1.0.1 + default: latest + parameters: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map of additional parameters for the app installation. + example: + db_system: redis + description: Upgrade app request. + AsyncUpgradeAppJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: "Whether or not the request is in progress (`InProgress`),\ + \ has completed successfully (`Success`), or has completed with an error\ + \ (`Failed`)." + example: Success + instanceId: + type: string + description: Instance identifier of the upgraded app. This field is not + set yet but is a placeholder for future use. + example: 0000000001578BE8 + path: + type: string + description: Path of the folder in which the app was upgraded. + example: /Library/Installed Apps/AWS CloudTrail + folderId: + type: string + description: Identifier of the folder in which the app was upgraded. + example: 0000000001578BE8 + error: + $ref: '#/components/schemas/ErrorDescription' + description: Status of the upgrade app async job. + ListAppsV2Response: + required: + - apps + type: object + properties: + apps: + type: array + description: An array of apps. + items: + $ref: '#/components/schemas/AppV2' + description: List of all apps from the apps + AppV2: + required: + - accountTypes + - attributes + - author + - beta + - description + - family + - icon + - installable + - latestVersion + - name + - showOnMarketplace + - uuid + type: object + properties: + uuid: + type: string + description: UUID of the app. + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + name: + type: string + description: Name of the app. + example: AWS CloudTrail + description: + type: string + description: Description of the app. + example: AWS CloudTrail app description + latestVersion: + type: string + description: Latest version of the app. + example: 1.1.0 + icon: + type: string + description: URL of the icon for the app. + example: https://some-bucket.s3.amazonaws.com/AWSCloudTrail.png + author: + type: string + description: Author of the app. + example: Sumo Logic + accountTypes: + type: array + description: Account types of which the app is available to. + example: + - All + items: + type: string + beta: + type: boolean + description: Whether the app is in beta. + example: false + installs: + type: integer + description: Number of times the app was installed. + format: int32 + example: 3452 + attributes: + maxProperties: 3 + type: object + additionalProperties: + type: array + items: + type: string + description: A map of attributes for this app. Attributes allow to group + apps based on different criteria. + example: + category: + - Web Server + - IT Infrastructure + - Amazon Web Services + useCase: + - security + - observability + collection: + - OpenTelemetry + installable: + type: boolean + description: Whether the app is installable or not as not all apps are installable. + example: true + showOnMarketplace: + type: boolean + description: Whether the app should show up on sumologic.com/applications + webpage. + example: true + modifiedAt: + type: string + description: The timestamp in UTC of the most recent modification of the + app. + format: date-time + example: 2018-10-16T09:10:00Z + description: An app object. + RegisterAppResponse: + required: + - uuid + type: object + properties: + uuid: + type: string + description: UUID of the app. + format: uuid + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + description: UUID of the registered app. + CreatePublicAppRequest: + required: + - name + type: object + properties: + name: + maxLength: 128 + minLength: 3 + pattern: "^([ -~]+)$" + type: string + description: Name of the app. + example: AWS CloudTrail + x-pattern-message: Should consist only of printable ASCII characters + description: Information about the new public app. + GetAppDetailsResponse: + required: + - baseUrl + - manifest + - uuid + - version + type: object + properties: + uuid: + type: string + description: UUID of the app. + format: uuid + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + version: + type: string + description: Version of the app. + example: 1.0.0 + baseUrl: + type: string + description: URL prefix for where the app is stored. + format: url + example: https://some_bucket.s3.amazonaws.com/path/to/app/version/ + manifest: + type: string + description: "Content of the manifest YAML file, as Base64-encoded string." + format: byte + config: + type: string + description: "Content of the config YAML file, as Base64-encoded string." + format: byte + readme: + type: string + description: "Content of the README markdown file, as Base64-encoded string." + format: byte + files: + maxProperties: 100 + type: object + additionalProperties: + type: string + format: byte + description: "Content of various files part of app package, as Base64-encoded\ + \ string." + example: + config: ICAtIGNvbXBvbmVudFR5cGU6IHNjb3BlCiAgICBsYWJlbDog4oCYQXBhY2hlIEVycm9yIExvZyBT + b3VyY2XigJkKICAgIHRmVmFyOiBlcnJMb2dTY29wZQogICAgCiAgLSBjb21wb25lbnRUeXBlOiBz + Y29wZQogICAgbGFiZWw6IOKAmEFwYWNoZSBBY2Nlc3MgTG9nIFNvdXJjZeKAmQogICAgdGZWYXI6 + IGFjY2Vzc0xvZ1Njb3BlCgogIC0gY29tcG9uZW50VHlwZTogY3VzdG9tCiAgICBkYXRhVHlwZTog + U3RyaW5nCiAgICBsYWJlbDog4oCYQXBhY2hlIEVuZ2luZSBUeXBl4oCYCiAgICBoZWxwVGV4dDog + 4oCYVGhlIGVuZ2luZSB0eXBlIG9mIHlvdXIgQXBhY2hlIEluc3RhbmNl4oCYCiAgICByZXF1aXJl + ZDogRmFsc2UKICAgIGRlZmF1bHQ6IOKAmHYxLjDigJkKICAgIHRmVmFyOiBlbmdpbmVUeXBlCg== + readme: IyBPdmVydmlldwoKVGhlIEFwYWNoZSBhcHAgaXMgYSB1bmlmaWVkIGxvZ3MgYW5kIG1ldHJpY3Mg + YXBwIHRoYXQgaGVscHMgeW91IG1vbml0b3IgdGhlIGF2YWlsYWJpbGl0eSwgcGVyZm9ybWFuY2Us + IGhlYWx0aCBhbmQgcmVzb3VyY2UgdXRpbGl6YXRpb24gb2YgQXBhY2hlIHdlYiBzZXJ2ZXIgZmFy + bXMuICBQcmVjb25maWd1cmVkIGRhc2hib2FyZHMgYW5kIHNlYXJjaGVzIHByb3ZpZGUgaW5zaWdo + dCBpbnRvIHZpc2l0b3IgbG9jYXRpb25zLCB2aXNpdG9yIGFjY2VzcyB0eXBlcywgdHJhZmZpYyBw + YXR0ZXJucywgZXJyb3JzLCB3ZWIgc2VydmVyIG9wZXJhdGlvbnMsIHJlc291cmNlIHV0aWxpemF0 + aW9uIGFuZCBhY2Nlc3MgZnJvbSBrbm93biBtYWxpY2lvdXMgc291cmNlcy4KCiMgU2V0dXAKVGhp + cyBpcyB0aGUgc2VjdGlvbiBmb3IgQXBhY2hlIC0gT3BlblRlbGVtZXRyeSBjb2xsZWN0aW9uIHNl + dHVwLgo= + manifest: CnNjaGVtYVZlcnNpb246ICIxLjAiCgpuYW1lOiBBcGFjaGUKCmRlc2NyaXB0aW9u + OiA+LQogIFRoZSBBcGFjaGUgYXBwIGlzIGEgdW5pZmllZCBsb2dzIGFuZCBtZXRy aWNzIGFwcCB0aGF0IGhlbHBzIHlvdSBtb25pdG9yIHRoZSBhdmFpbGFiaWxpdHks + IHBlcmZvcm1hbmNlLAogIGhlYWx0aCBhbmQgcmVzb3VyY2UgdXRpbGl6YXRpb24g b2YgQXBhY2hlIHdlYiBzZXJ2ZXIgZmFybXMuICBQcmVjb25maWd1cmVkIGRhc2hi + b2FyZHMgYW5kIHNlYXJjaGVzCiAgcHJvdmlkZSBpbnNpZ2h0IGludG8gdmlzaXRv ciBsb2NhdGlvbnMsIHZpc2l0b3IgYWNjZXNzIHR5cGVzLCB0cmFmZmljIHBhdHRl + cm5zLCBlcnJvcnMsIHdlYiBzZXJ2ZXIKICBvcGVyYXRpb25zLCByZXNvdXJjZSB1 dGlsaXphdGlvbiBhbmQgYWNjZXNzIGZyb20ga25vd24gbWFsaWNpb3VzIHNvdXJj + ZXMuCmF1dGhvcjogU3VtbyBMb2dpYwoKdmVyc2lvbjogMS4wLjAKCgo= + description: Information about an app. + SubscriptionStatusResponse: + required: + - status + type: object + properties: + status: + type: boolean + description: "Show if the user has subscribed to the app or not. value is\ + \ true, if the user has subscribed to the app" + example: true + description: Subscription Status + ListConnectionsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of connections. + items: + $ref: '#/components/schemas/Connection' + next: + type: string + description: Next continuation token. + Connection: + required: + - createdAt + - createdBy + - description + - id + - modifiedAt + - modifiedBy + - name + - type + type: object + properties: + type: + type: string + description: "Type of connection. Valid values are `WebhookConnection`,\ + \ `ServiceNowConnection`." + id: + type: string + description: Unique identifier for the connection. + name: + type: string + description: Name of the connection. + description: + type: string + description: Description of the connection. + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + discriminator: + propertyName: type + ConnectionDefinition: + required: + - name + - type + type: object + properties: + type: + pattern: ^(WebhookDefinition|ServiceNowDefinition)$ + type: string + description: "Type of connection. Valid values are `WebhookDefinition`,\ + \ `ServiceNowDefinition`." + x-pattern-message: must be either `WebhookDefinition` or `ServiceNowDefinition` + name: + maxLength: 127 + minLength: 1 + type: string + description: Name of the connection. + description: + maxLength: 1024 + type: string + description: Description of the connection. + default: "" + discriminator: + propertyName: type + mapping: + ServiceNowDefinition: '#/components/schemas/ServiceNowDefinition' + WebhookDefinition: '#/components/schemas/WebhookDefinition' + ConnectionType: + pattern: ^(AWSLambda|Azure|Datadog|HipChat|PagerDuty|Slack|Webhook|NewRelic|Jira|Opsgenie|MicrosoftTeams|ServiceNow|SumoCloudSOAR)$ + type: string + description: "Type of webhook connection. Valid values are `AWSLambda`, `Azure`,\ + \ `Datadog`, `HipChat`, `Jira`, `NewRelic`, `Opsgenie`, `PagerDuty`, `Slack`,\ + \ `MicrosoftTeams`, `ServiceNow`, `SumoCloudSOAR` and `Webhook`." + x-pattern-message: "must be `AWSLambda`, `Azure`, `Datadog`, `HipChat`, `PagerDuty`,\ + \ `Slack`, `Webhook`, `NewRelic`, `Jira`, `Opsgenie`, `MicrosoftTeams`, `ServiceNow`\ + \ or `SumoCloudSOAR`" + TestConnectionResponse: + required: + - responseContent + - statusCode + type: object + properties: + statusCode: + type: integer + description: Status code of the response of the connection test. + responseContent: + type: string + description: Content of the response of the connection test. + alertStatusCode: + type: integer + description: Status code of the response of alert payload test. + format: int32 + example: 200 + alertResponseContent: + type: string + description: Content of the response of alert payload test. + example: ok + resolutionStatusCode: + type: integer + description: Status code of the response of resolution payload test. + format: int32 + example: 200 + resolutionResponseContent: + type: string + description: Content of the response of resolution payload test. + example: ok + GetIncidentTemplatesResponse: + required: + - templates + type: object + properties: + templates: + type: array + description: List of incident templates. + items: + $ref: '#/components/schemas/IncidentTemplate' + IncidentTemplate: + required: + - id + - name + type: object + properties: + id: + type: integer + description: Unique identifier of the incident template. + name: + type: string + description: Name of the incident template. + GetIncidentTemplatesRequest: + type: object + properties: + url: + type: string + description: Optional CloudSOAR domain URL to use for the API call to get + incident templates. + example: https://staging.soar.sumologic.com/ + authHeader: + type: string + description: Optional CloudSOAR authorization header to use for the API + call to get incident templates. + example: SOMEAUTHHEADERSTRING + connectionId: + type: string + description: "Optional connectionId to get incident templates for an existing\ + \ CloudSOAR connection. If provided, the authHeader and url will be taken\ + \ from the existing connection object." + example: 0000000000123ABC + ListScheduledViewsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of scheduled views. + items: + $ref: '#/components/schemas/ScheduledView' + next: + type: string + description: Next continuation token. + ScheduledView: + type: object + allOf: + - $ref: '#/components/schemas/CreateScheduledViewDefinition' + - $ref: '#/components/schemas/ViewRetentionProperties' + - required: + - id + properties: + id: + type: string + description: Identifier for the scheduled view. + indexId: + type: string + description: The `id` of the Index where the output from Scheduled view + is stored. + example: "1" + createdAt: + type: string + description: Creation timestamp in UTC. + format: date-time + modifiedAt: + type: string + description: "Last modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + createdByOptimizeIt: + type: boolean + description: If the scheduled view is created by OptimizeIt. + error: + type: string + description: Errors related to the scheduled view. + status: + type: string + description: |- + Status of the scheduled view. Possible values are: + 1. `NOT_STARTED` + 2. `FILLING` + 3. `STOPPED` + 4. `COMPLETE` + 5. `FAILED` + 6. `PAUSED` + totalBytes: + type: integer + description: Total storage consumed by the scheduled view. + format: int64 + totalMessageCount: + type: integer + description: Total number of messages for the scheduled view. + format: int64 + createdBy: + type: string + description: Identifier of the user who created the scheduled view. + example: 0000000006743FE8 + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + filledRanges: + type: array + description: List of the different units of filled ranges since the autoview + has been created. + items: + $ref: '#/components/schemas/FilledRange' + lastAccessedAt: + type: string + description: Last accessed timestamp in UTC + format: date-time + x-tf-generated-properties: "id,query,indexName,startTime,retentionPeriod,parsingMode" + x-tf-resource-name: ScheduledView + CreateScheduledViewDefinition: + required: + - indexName + - query + - startTime + type: object + properties: + query: + maxLength: 16384 + minLength: 1 + type: string + description: The query that defines the data to be included in the scheduled + view. + example: _sourceCategory=*/Apache + indexName: + maxLength: 255 + minLength: 0 + type: string + description: Name of the index for the scheduled view. + example: TestScheduledView + startTime: + type: string + description: "Start timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + retentionPeriod: + type: integer + description: "The number of days to retain data in the scheduled view, or\ + \ -1 to use the default value for your account. Only relevant if your\ + \ account has multi-retention enabled." + format: int32 + example: 60 + default: -1 + dataForwardingId: + type: string + description: An optional ID of a data forwarding configuration to be used + by the scheduled view. + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + x-pattern-message: should be either AutoParse or Manual + timeZone: + type: string + description: "Time zone for ingesting data in scheduled view. Follow the\ + \ format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + default: UTC + description: + maxLength: 65535 + type: string + description: Description of the scheduled view. + default: "" + FilledRange: + required: + - endTime + - startTime + type: object + properties: + startTime: + type: string + description: "Start of the timestamp for each unit of filled ranges, expressed\ + \ in UTC." + format: date-time + endTime: + type: string + description: "End of the timestamp for each unit of filled ranges, expressed\ + \ in UTC." + format: date-time + description: Range of timestamps already filled since the autoview has been + created. + UpdateScheduledViewDefinition: + type: object + properties: + dataForwardingId: + type: string + description: An optional ID of a data forwarding configuration to be used + by the scheduled view. + retentionPeriod: + type: integer + description: "The number of days to retain data in the scheduled view, or\ + \ -1 to use the default value for your account. Only relevant if your\ + \ account has multi-retention. enabled." + format: int32 + example: 365 + default: -1 + reduceRetentionPeriodImmediately: + type: boolean + description: "This is required if the newly specified `retentionPeriod`\ + \ is less than the existing retention period. In such a situation, a\ + \ value of `true` says that data between the existing retention period\ + \ and the new retention period should be deleted immediately; if `false`,\ + \ such data will be deleted after seven days. This property is optional\ + \ and ignored if the specified `retentionPeriod` is greater than or equal\ + \ to the current retention period." + default: false + timeZone: + type: string + description: "Updates the time zone for ingesting data in scheduled view\ + \ to the specified timezone ( does nothing if not specified ). Follow\ + \ the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + description: + maxLength: 65535 + type: string + description: Description of the scheduled view. + ScheduledViewsQuotaUsage: + required: + - quota + - remaining + type: object + properties: + quota: + type: integer + description: Maximum number of Scheduled Views allowed. + format: int32 + example: 200 + remaining: + type: integer + description: Remaining number of Scheduled Views allowed. + format: int32 + example: 121 + LookupTable: + required: + - id + type: object + description: Lookup table definition and metadata. + allOf: + - $ref: '#/components/schemas/MetadataModel' + - $ref: '#/components/schemas/LookupTableDefinition' + - properties: + id: + type: string + description: Identifier of the lookup table as a content item. + example: 0000000001C41EE4 + contentPath: + type: string + description: "Address/path of the parent folder of this lookup table in\ + \ content library. For example, a lookup table existing in the personal/lookupTable\ + \ folder for user johndoe would be: /Library/Users/johndoe@acme.com/lookupTable" + example: /Library/Users/johndoe@acme.com/lookupTable + size: + type: integer + description: The current size of the lookup table in bytes + format: int64 + example: 100 + LookupTableDefinition: + required: + - name + - parentFolderId + type: object + description: Definition of the lookup table. + allOf: + - $ref: '#/components/schemas/ExportableLookupTableInfo' + - properties: + name: + maxLength: 255 + type: string + description: The name of the lookup table. + example: SampleLookupTable + parentFolderId: + type: string + description: The parent-folder-path identifier of the lookup table in + the Library. + example: 0000000001C41EE4 + ExportableLookupTableInfo: + required: + - description + - fields + - primaryKeys + type: object + properties: + description: + maxLength: 1000 + type: string + description: The description of the lookup table. + example: This is a sample lookup table description. + fields: + minItems: 1 + type: array + description: The list of fields in the lookup table. + items: + $ref: '#/components/schemas/LookupTableField' + primaryKeys: + minItems: 1 + uniqueItems: true + type: array + description: The names of the fields that make up the primary key for the + lookup table. These will be a subset of the fields that the table will + contain. + example: + - FieldName1 + items: + type: string + ttl: + maximum: 525600 + minimum: 0 + type: integer + description: A time to live for each entry in the lookup table (in minutes). + 365 days is the maximum time to live for each entry that you can specify. + Setting it to 0 means that the records will not expire automatically. + format: int32 + example: 100 + default: 0 + sizeLimitAction: + pattern: ^(StopIncomingMessages|DeleteOldData)$ + type: string + description: The action that needs to be taken when the size limit is reached + for the table. The possible values can be `StopIncomingMessages` or `DeleteOldData`. + DeleteOldData will start deleting old data once size limit is reached + whereas StopIncomingMessages will discard all the updates made to the + lookup table once size limit is reached. + example: DeleteOldData + default: StopIncomingMessages + x-pattern-message: must be either `StopIncomingMessages` or `DeleteOldData` + description: The lookup table definition independent of its location in the + Library and name. + LookupTableField: + required: + - fieldName + - fieldType + type: object + properties: + fieldName: + type: string + description: The name of the field. + example: FieldName1 + fieldType: + pattern: ^(boolean|int|long|double|string)$ + type: string + description: |- + The data type of the field. Supported types: + - `boolean` + - `int` + - `long` + - `double` + - `string` + example: boolean + x-pattern-message: "must be one of the following: `boolean`, `int`, `long`,\ + \ `double`, `string`" + description: The definition of the field. + LookupUpdateDefinition: + required: + - description + - ttl + type: object + properties: + ttl: + maximum: 525600 + minimum: 0 + type: integer + description: A time to live for each entry in the lookup table (in minutes). + 0 is a special value. A TTL of 0 implies entry will never be deleted from + the table. + format: int32 + example: 100 + default: 0 + description: + maxLength: 1000 + type: string + description: The description of the lookup table. The description cannot + be blank. + example: This is a sample lookup table description. + sizeLimitAction: + type: string + description: The action that needs to be taken when the size limit is reached + for the table. The possible values can be `StopIncomingMessages` or `DeleteOldData`. + DeleteOldData will starting deleting old data once size limit is reached + whereas StopIncomingMessages will discard all the updates made to the + lookup table once size limit is reached. + example: DeleteOldData + default: StopIncomingMessages + description: The updated lookup table parameters. + LookupRequestToken: + required: + - id + type: object + properties: + id: + type: string + description: The identifier used to track the request. + example: 0000000001C41EF2 + description: Allows you to track the status of an upload or export request. + LookupAsyncJobStatus: + required: + - createdAt + - eventType + - jobId + - lookupContentId + - lookupContentPath + - lookupName + - modifiedAt + - status + - userId + type: object + properties: + jobId: + type: string + description: An identifier returned in response to an asynchronous request. + example: 0000000001C41EF2 + status: + type: string + description: "Whether or not the request is pending (`Pending`), in progress\ + \ (`InProgress`), has completed successfully (`Success`), has completed\ + \ partially with warnings (`PartialSuccess`) or has completed with an\ + \ error (`Failed`)." + statusMessages: + type: array + description: Additional status messages generated if any if the status is + `Success`. + items: + type: string + errors: + type: array + description: "More information about the failures, if the status is `Failed`." + items: + $ref: '#/components/schemas/ErrorDescription' + warnings: + type: array + description: "More information about the warnings, if the status is `PartialSuccess`." + items: + $ref: '#/components/schemas/warningDescription' + lookupContentId: + type: string + description: Content id of lookup table on which this operation was performed. + example: 0000000001C41EE4 + lookupName: + type: string + description: Name of lookup table on which this operation was performed. + example: sampleLookup + lookupContentPath: + type: string + description: Content path of lookup table on which this operation was performed. + example: /Library/Users/xyz@demo.com/sampleLookup + requestType: + type: string + description: |- + Type of asynchronous request made: + - `BulkMerge` + - `BulkReplace` + - `Truncate` + example: BulkMerge + userId: + type: string + description: User id of user who initiated this operation. + example: 0000000006743FDD + createdAt: + type: string + description: Creation time of this job in UTC. + format: date-time + example: 2018-10-16T09:10:00Z + modifiedAt: + type: string + description: Timestamp in UTC when status was last updated. + format: date-time + example: 2018-10-16T09:10:00Z + description: Lookup table async job status. + warningDescription: + required: + - message + type: object + properties: + message: + type: string + description: Description of the warning. + example: 60 rows were dropped. + cause: + type: string + description: An optional cause of this warning. + example: Primary key values were duplicate. + description: Warning description + LookupPreviewData: + type: object + properties: + fieldProperties: + type: array + description: "The field properties of the lookup table. This includes the\ + \ field name, field description, and an identifier associated with each\ + \ field." + items: + $ref: '#/components/schemas/PreviewLookupTableField' + fieldValueMapList: + type: array + description: The data of the lookup table as a list of field identifiers + mapped to their values. + items: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: A map of all the field identifiers and their corresponding + values. + description: The preview data of the lookup table. + PreviewLookupTableField: + required: + - fieldId + - fieldName + - fieldType + type: object + properties: + fieldName: + type: string + description: The name of the field. + example: sampleFieldName + fieldType: + type: string + description: |- + The data type of the field. Supported types: + - `boolean` + - `int` + - `long` + - `double` + - `string` + example: boolean + fieldId: + type: string + description: Identifier associated with each field of the table. + example: "1" + description: The properties of the field. + RowUpdateDefinition: + required: + - row + type: object + properties: + row: + maxItems: 1000 + type: array + description: A list of all the field identifiers and their corresponding + values. + items: + $ref: '#/components/schemas/TableRow' + description: Lookup table data to be uploaded. + TableRow: + required: + - columnName + - columnValue + type: object + properties: + columnName: + type: string + description: Name of the column of the table. + example: user_id + columnValue: + type: string + description: Value of the specified column. + example: user1 + description: Lookup table row column and column value. + RowDeleteDefinition: + required: + - primaryKey + type: object + properties: + primaryKey: + maxItems: 1000 + type: array + description: A list of all the primary key field identifiers and their corresponding + values which defines the row to delete. + items: + $ref: '#/components/schemas/TableRow' + description: Lookup table primary key of the row to be deleted. + SecondaryKeysDefinition: + maxItems: 20 + minItems: 1 + type: array + description: The secondary keys of the lookup table + example: + - - ip + - - latitude + - longitude + items: + type: array + items: + type: string + LookupTablesLimits: + type: object + properties: + tablesCreated: + type: integer + description: Number of lookup tables currently created. + format: int32 + example: 8 + tableCapacityRemaining: + type: integer + description: Remaining count of lookup tables that can be created. + format: int32 + example: 2 + totalTableCapacity: + type: integer + description: Total capacity of lookup tables that can be created for the + given org id. + format: int32 + example: 10 + description: Properties related to lookup tables being allowed and created. + ListPartitionsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of partitions. + items: + $ref: '#/components/schemas/Partition' + next: + type: string + description: Next continuation token. + example: "1" + Partition: + type: object + allOf: + - $ref: '#/components/schemas/CreatePartitionDefinition' + - $ref: '#/components/schemas/ViewRetentionProperties' + - $ref: '#/components/schemas/MetadataModel' + - required: + - id + - totalBytes + properties: + id: + type: string + description: Unique identifier for the partition. + example: "1" + totalBytes: + type: integer + description: Size of data in partition in bytes. + format: int64 + example: 42 + isActive: + type: boolean + description: This has the value `true` if the partition is active and + `false` if it has been decommissioned. + indexType: + pattern: ^(DefaultIndex|AuditIndex|Partition)$ + type: string + description: "This has the value `DefaultIndex`, `AuditIndex`or `Partition`\ + \ depending upon the type of partition." + example: Partition + dataForwardingId: + type: string + description: Id of the data forwarding configuration to be used by the + partition. + CreatePartitionDefinition: + required: + - name + - routingExpression + type: object + properties: + name: + maxLength: 255 + type: string + description: The name of the partition. + example: apache + routingExpression: + maxLength: 16384 + minLength: 1 + type: string + description: The query that defines the data to be included in the partition. + example: _sourcecategory=*/Apache + analyticsTier: + type: string + description: |- + The Data Tier where the data in the partition will reside. Possible values are: + 1. `continuous` + 2. `frequent` + 3. `infrequent` + Note: The "infrequent" and "frequent" tiers are only available to Cloud Flex Credits Enterprise Suite accounts. + example: continuous + x-limited-description: The Data Tier where the data in the partition will + reside. You can leave it empty or send `flex`. It is the only value applicable + on your account. + x-limited-example: flex + retentionPeriod: + type: integer + description: "The number of days to retain data in the partition, or -1\ + \ to use the default value for your account. Only relevant if your account\ + \ has variable retention enabled." + example: 365 + default: -1 + isCompliant: + type: boolean + description: "Whether the partition is compliant or not. Mark a partition\ + \ as compliant if it contains data used for compliance or audit purpose.\ + \ Retention for a compliant partition can only be increased and cannot\ + \ be reduced after the partition is marked compliant. A partition once\ + \ marked compliant, cannot be marked non-compliant later." + example: false + default: false + isIncludedInDefaultSearch: + type: boolean + description: "Indicates whether the partition is included in the default\ + \ search scope. When executing a query such as \"error | count,\" certain\ + \ partitions are automatically part of the search scope. However, for\ + \ specific partitions, the user must explicitly mention the partition\ + \ using the _index term, as in \"_index=webApp error | count\". This\ + \ property governs the default inclusion of the partition in the search\ + \ scope. Configuring this property is exclusively permitted for flex partitions." + example: true + ViewRetentionProperties: + type: object + properties: + newRetentionPeriod: + type: integer + description: "If the retention period is scheduled to be updated in the\ + \ future (i.e., if retention period is previously reduced with value of\ + \ reduceRetentionPeriodImmediately as false), this property gives the\ + \ future value of retention period while retentionPeriod gives the current\ + \ value. retentionPeriod will take up the value of newRetentionPeriod\ + \ after the scheduled time." + format: int32 + example: 300 + retentionEffectiveAt: + type: string + description: When the newRetentionPeriod will become effective in UTC format. + format: date-time + ListPartitionsInfoResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of partitions information + items: + $ref: '#/components/schemas/PartitionInfo' + next: + type: string + description: Next continuation token. + example: "1" + PartitionInfo: + required: + - name + type: object + properties: + name: + maxLength: 255 + type: string + description: The name of the partition. + example: apache + analyticsTier: + type: string + description: |- + The Data Tier where the data in the partition will reside. Possible values are: + 1. `continuous` + 2. `frequent` + 3. `infrequent` + Note: The "infrequent" and "frequent" tiers are only available to Cloud Flex Credits Enterprise Suite accounts. + example: continuous + x-limited-description: The Data Tier where the data in the partition will + reside. `flex` is the default value. + x-limited-example: flex + dataFilterGroup: + type: string + description: |- + The Data Filter Group to which this parition belongs to. Possible values are : + 1. `LOGS` + 2. `SECURITY` + 3. `AUDIT` + example: LOGS + UpdatePartitionDefinition: + type: object + properties: + retentionPeriod: + type: integer + description: "The number of days to retain data in the partition, or -1\ + \ to use the default value for your account. Only relevant if your account\ + \ has variable retention enabled." + example: 365 + reduceRetentionPeriodImmediately: + type: boolean + description: "This is required if the newly specified `retentionPeriod`\ + \ is less than the existing retention period. In such a situation, a\ + \ value of `true` says that data between the existing retention period\ + \ and the new retention period should be deleted immediately; if `false`,\ + \ such data will be deleted after seven days. This property is optional\ + \ and ignored if the specified `retentionPeriod` is greater than or equal\ + \ to the current retention period." + default: false + isCompliant: + type: boolean + description: "Whether to mark a partition as compliant. Mark a partition\ + \ as compliant if it contains data used for compliance or audit purpose.\ + \ Retention for a compliant partition can only be increased and cannot\ + \ be reduced after the partition marked as compliant. A partition once\ + \ marked compliant, cannot be marked non-compliant later." + example: false + default: false + isIncludedInDefaultSearch: + type: boolean + description: "Indicates whether the partition is included in the default\ + \ search scope. When executing a query such as \"error | count,\" certain\ + \ partitions are automatically part of the search scope. However, for\ + \ specific partitions, the user must explicitly mention the partition\ + \ using the _index term, as in \"_index=webApp error | count\". This\ + \ property governs the default inclusion of the partition in the search\ + \ scope. Configuring this property is exclusively permitted for flex partitions." + routingExpression: + maxLength: 16384 + minLength: 1 + type: string + description: The query that defines the data to be included in the partition. + example: _sourcecategory=*/Apache + PartitionsResponse: + required: + - data + type: object + properties: + data: + type: array + description: Array of partitions. + items: + $ref: '#/components/schemas/Partition' + PartitionsQuotaUsage: + required: + - quota + - remaining + type: object + properties: + quota: + type: integer + description: Maximum number of Partitions allowed. + format: int32 + example: 200 + remaining: + type: integer + description: Remaining number of Partitions allowed. + format: int32 + example: 121 + GetDataForwardingDestinations: + type: object + properties: + nextToken: + type: string + description: Next continuation token. + example: VEZuRU4veXF2UWFCUURYSDNQUzJxWlpRRUsvTlBieXA + data: + type: array + description: List of data forwarding destinations. + items: + $ref: '#/components/schemas/BucketDefinition' + BucketDefinition: + type: object + allOf: + - $ref: '#/components/schemas/CreateBucketDefinition' + - $ref: '#/components/schemas/MetadataModel' + - required: + - bucketName + - destinationName + - id + properties: + id: + type: string + description: The unique identifier of the data forwarding destination. + example: "1" + invalidatedBySystem: + type: boolean + description: True if invalidated by the system. + CreateBucketDefinition: + type: object + allOf: + - $ref: '#/components/schemas/UpdateBucketDefinition' + - $ref: '#/components/schemas/CreateBucketDefinitionItems' + UpdateBucketDefinition: + required: + - authenticationMode + type: object + properties: + destinationName: + type: string + description: Name of the S3 data forwarding destination. + example: df-destination + description: + type: string + description: Description of the S3 data forwarding destination. + authenticationMode: + type: string + description: "AWS IAM authentication method used for access. Possible values\ + \ are: 1. `AccessKey` 2. `RoleBased`" + example: RoleBased + accessKeyId: + type: string + description: The AWS Access ID to access the S3 bucket. + example: accessKeyId + secretAccessKey: + type: string + description: The AWS Secret Key to access the S3 bucket. + example: secretAccessKey + roleArn: + type: string + description: The AWS Role ARN to access the S3 bucket. + example: roleArn + region: + type: string + description: The region where the S3 bucket is located. + example: us-east-1 + encrypted: + type: boolean + description: Enable S3 server-side encryption. + enabled: + type: boolean + description: True if the destination is Active. + example: true + CreateBucketDefinitionItems: + required: + - authenticationMode + - bucketName + - destinationName + type: object + properties: + bucketName: + pattern: "(?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-.]{1,61}[a-z0-9]$" + type: string + description: The name of the Amazon S3 bucket. + example: df-bucket + x-pattern-message: Must be a valid AWS S3 Bucket name. + GetRulesAndBucketsResult: + type: object + properties: + data: + type: array + description: List of S3 data forwarding rules. + items: + $ref: '#/components/schemas/RuleAndBucketDetail' + nextToken: + type: string + description: Next continuation token. + example: VEZuRU4veXF2UWFCUURYSDNQUzJxWlpRRUsvTlBieXA + RuleAndBucketDetail: + allOf: + - $ref: '#/components/schemas/DataForwardingRule' + - type: object + properties: + bucket: + $ref: '#/components/schemas/logs-data-forwarding-rule-management' + DataForwardingRule: + allOf: + - $ref: '#/components/schemas/CreateDataForwardingRule' + - $ref: '#/components/schemas/MetadataModel' + - type: object + properties: + id: + type: string + description: The unique identifier of the data forwarding rule. + example: "1" + CreateDataForwardingRule: + required: + - destinationId + - indexId + type: object + properties: + indexId: + type: string + description: The `id` of the Partition or Scheduled View the rule applies + to. + example: "1" + destinationId: + type: string + description: The data forwarding destination id. + example: "1" + enabled: + type: boolean + description: True when the data forwarding rule is enabled. + example: true + fileFormat: + type: string + description: Specify the path prefix to a directory in the S3 bucket and + how to format the file name. + example: "{index}_{day}_{hour}_{minute}_{second}" + payloadSchema: + pattern: ^(builtInFields|allFields|raw)$ + type: string + description: "Schema for the payload. Default value of the payload schema\ + \ is \"allFields\" for scheduled view, and \"builtInFields\" for partition.\ + \ \"raw\" payloadSchema should be used in conjunction with \"text\" format\ + \ and vice-versa." + example: builtInFields + x-pattern-message: "should be one of the following: 'builtInFields', 'allFields'\ + \ or 'raw'" + format: + pattern: ^(csv|json|text)$ + type: string + description: Format of the payload. Default format will be "csv". "text" + format should be used in conjunction with "raw" payloadSchema and vice-versa. + example: csv + x-pattern-message: "should be one of the following: 'csv', 'json' or 'text'" + UpdateDataForwardingRule: + type: object + properties: + destinationId: + type: string + description: Data forwarding destination id. + example: "1" + enabled: + type: boolean + description: True when the data forwarding rule is enabled. + example: true + fileFormat: + type: string + description: Specify the path prefix to a directory in the S3 bucket and + how to format the file name. + example: "{index}_{day}_{hour}_{minute}_{second}" + payloadSchema: + pattern: ^(builtInFields|allFields|raw)$ + type: string + description: "Schema for the payload. Default value of the payload schema\ + \ is \"allFields\" for scheduled view, and \"builtInFields\" for partition.\ + \ \"raw\" payloadSchema should be used in conjunction with \"text\" format\ + \ and vice-versa." + example: builtInFields + x-pattern-message: "should be one of the following: 'builtInFields', 'allFields'\ + \ or 'raw'" + format: + pattern: ^(csv|json|text)$ + type: string + description: Format of the payload. Default format will be "csv". "text" + format should be used in conjunction with "raw" payloadSchema and vice-versa. + example: csv + x-pattern-message: "should be one of the following: 'csv', 'json' or 'text'" + PaginatedLogSearches: + required: + - logSearches + type: object + properties: + logSearches: + type: array + description: List of log searches. + items: + $ref: '#/components/schemas/LogSearch' + warnings: + type: array + description: List of warning messages for invalid log search definitions. + items: + type: string + example: "Invalid saved search: . Please validate your\ + \ saved search." + token: + type: string + description: Next continuation token. `token` is set to null when no more + pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + LogSearch: + allOf: + - $ref: '#/components/schemas/LogSearchDefinition' + - $ref: '#/components/schemas/MetadataModel' + - required: + - id + type: object + properties: + id: + type: string + description: Identifier of the saved log search. + example: 000000000000001A + parentId: + type: string + description: "Identifier of the parent element in the content library,\ + \ such as folder." + example: 0000000000007D2B + x-tf-generated-properties: "id,parentId,name,description,schedule,queryString,timeRange,runByReceiptTime,queryParameters,parsingMode,intervalTimeType" + x-tf-resource-name: LogSearch + LogSearchDefinition: + type: object + allOf: + - $ref: '#/components/schemas/LogSearchQueryTimeRangeBase' + - required: + - name + properties: + name: + maxLength: 255 + minLength: 1 + pattern: "^[a-zA-Z0-9 +%-@.,_()\\\\]+$" + type: string + description: Name of the item in the content library. + example: Short title + description: + maxLength: 255 + type: string + description: Item description in the content library. + example: Long and detailed description + schedule: + $ref: '#/components/schemas/LogSearchScheduleSyncDefinition' + properties: + maxLength: 65536 + type: string + description: | + Aggregate Results Settings and View configurations, Legends settings, and different visualisation settings overrides. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: "{ \"key\": \"value\" }" + LogSearchQueryTimeRangeBase: + description: Definition of the saved log search with query and timerange. + allOf: + - $ref: '#/components/schemas/LogSearchQueryTimeRangeBaseExceptParsingMode' + - $ref: '#/components/schemas/LogSearchQueryParsingMode' + LogSearchQueryTimeRangeBaseExceptParsingMode: + required: + - queryString + - timeRange + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: "error {{sourceCategory}}| count by _sourceCategory" + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt + time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: "Values for search template used in the search query. Learn\ + \ more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/" + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: "This parameter defines whether you want to run the search\ + \ by messageTime, receiptTime, or searchableTime. By default, the search\ + \ will run by messageTime. If both runByReceiptTime and intervalTimeType\ + \ parameters are present then the preference will be given to the intervalTimeType." + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + description: Definition of the saved log search with query and timerange. + LogSearchQueryParameterSyncDefinitionBase: + required: + - dataType + - name + - value + type: object + properties: + autoComplete: + $ref: '#/components/schemas/AutoCompleteDefinition' + name: + maxLength: 50 + pattern: "^[a-zA-Z0-9_]+$" + type: string + description: The name of the parameter. + example: sourceCategory + x-pattern-message: Name must be between 1 and 50 Characters. Can only consist + alphanumeric and underscore characters. + description: + maxLength: 256 + pattern: "^[a-zA-Z0-9@ \\-_\\.]+$" + type: string + description: A description of the parameter. + example: source category for the string + x-pattern-message: "Description must be between 1 and 256 Characters. Can\ + \ only consist alphanumeric, @, underscore and dash characters." + dataType: + pattern: ^(NUMBER|STRING|ANY|KEYWORD)$ + type: string + description: |- + The data type of the parameter. Supported values are: + 1. `NUMBER` + 2. `STRING` + 3. `ANY` + 4. `KEYWORD` + example: STRING + value: + maxLength: 256 + type: string + description: A value for the parameter. Should be compatible with the type + set in dataType field. + example: apache + LogSearchQueryParsingMode: + type: object + properties: + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + description: Definition of log search parsing mode + SaveLogSearchRequest: + type: object + description: The definition of the log search to save in the content library. + allOf: + - $ref: '#/components/schemas/LogSearchDefinition' + - required: + - parentId + properties: + parentId: + type: string + description: Identifier of a folder where to save the log search. + example: 000000000000001A + ListDeletionRulesResponse: + required: + - deletionRulesList + type: object + properties: + deletionRulesList: + type: array + description: List of data deletion rules. + items: + $ref: '#/components/schemas/DeletionRuleDefinition' + next: + type: string + description: Next Continuation token + DeletionRuleDefinition: + allOf: + - $ref: '#/components/schemas/CreateDeletionRuleRequest' + - type: object + properties: + id: + type: string + description: Identifier for the deletion rule. + createdAt: + type: string + description: Creation timestamp in UTC. + format: date-time + modifiedAt: + type: string + description: "Last modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + error: + type: string + description: Errors related to the deletion rule. + status: + type: string + description: Status of the deletion rule. + createdBy: + type: string + description: Identifier of the user who created the deletion rule. + example: 0000000006743FE8 + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + deletedRanges: + type: array + description: List of the different units of deleted ranges since the deletion + rule has been created. + items: + $ref: '#/components/schemas/DeletedRange' + CreateDeletionRuleRequest: + required: + - endMillis + - query + - ruleName + - ruleReason + - startMillis + type: object + properties: + ruleName: + maxLength: 127 + minLength: 1 + type: string + description: Name of the deletion rule. + ruleReason: + maxLength: 255 + minLength: 1 + type: string + description: Reason mentioning what data is being deleted and why. + query: + maxLength: 15000 + minLength: 0 + type: string + description: query to filter out the logs that need to be deleted. + startMillis: + type: integer + description: Start time of the search as a number of milliseconds. + format: int64 + example: 1704976268773 + endMillis: + type: integer + description: End time of the search as a number of milliseconds. + format: int64 + example: 1704977168773 + byReceiptTime: + type: boolean + description: Flag to order the search results in the order collector received + it. This has the value `true` if the search is to be run by receipt time + and `false` if it is to be run by message time. + default: false + timezone: + type: string + description: "Timezone for the resolving timerange from startMillis,endMillis" + default: UTC + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + DeletedRange: + required: + - endTime + - startTime + type: object + properties: + startTime: + type: string + description: "Start of the timestamp for each unit of filled ranges, expressed\ + \ in timeZone specified in rule." + format: date-time + endTime: + type: string + description: "End of the timestamp for each unit of filled ranges, expressed\ + \ in timeZone specified in rule." + format: date-time + description: Range of timestamps from which logs obtained from the query have + been deleted. + ListDataMaskingRulesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of data masking rules. + items: + $ref: '#/components/schemas/DataMaskingRule' + next: + type: string + description: Next continuation token. Null if this is the last page. + DataMaskingRule: + type: object + allOf: + - $ref: '#/components/schemas/DataMaskingRuleDefinition' + - $ref: '#/components/schemas/MetadataModel' + - required: + - id + properties: + id: + type: string + description: Unique identifier for the data masking rule. + example: 00000000FF42A0C3 + x-tf-generated-properties: "id,name,description,regexPattern,maskString,enabled" + x-tf-resource-name: DataMaskingRule + DataMaskingRuleDefinition: + type: object + allOf: + - $ref: '#/components/schemas/BaseDataMaskingRuleDefinition' + - required: + - name + - regexPattern + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data masking rule. Use a name that makes it easy + to identify the rule. Must be unique within the organization. This field + is immutable and cannot be changed after creation. + example: Email Masking + BaseDataMaskingRuleDefinition: + required: + - enabled + type: object + properties: + description: + maxLength: 512 + type: string + description: Optional description of the data masking rule. Provide context + about what PII this rule masks and why it's needed. + example: Masks email addresses in application logs + regexPattern: + maxLength: 2048 + minLength: 1 + type: string + description: "Regular expression pattern to match PII data that should be\ + \ masked. The pattern must be valid according to Java regex syntax. All\ + \ matches in search results will be replaced with the mask string. Required\ + \ when creating a rule. When updating, if omitted the existing pattern\ + \ is retained." + example: "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}\\b" + maskString: + maxLength: 64 + minLength: 1 + type: string + description: The string to replace matched PII with. Defaults to '##redactedPII##' + if not specified. Use descriptive mask strings like 'EMAIL_REDACTED' or + 'PHONE_REDACTED' for clarity. + example: EMAIL_REDACTED + default: '##redactedPII##' + enabled: + type: boolean + description: Whether the data masking rule is active. Only enabled rules + are applied to search results. Set to false to temporarily disable a rule + without deleting it. + default: true + DataMaskingEvaluateResponse: + required: + - maskedText + - matchCount + - matchPositions + type: object + properties: + maskedText: + type: string + description: Message after applying masking. + example: "2026-04-21 INFO User ##redactedPII## logged in at ##redactedPII##" + matchCount: + minimum: 0 + type: integer + description: Number of replaced matches. + format: int32 + example: 2 + matchPositions: + type: array + description: Start/end offsets for each replaced segment in the output string. + items: + $ref: '#/components/schemas/DataMaskingMatchPosition' + DataMaskingMatchPosition: + required: + - end + - start + type: object + properties: + start: + minimum: 0 + type: integer + description: Start index of masked segment in output string (inclusive). + format: int32 + example: 21 + end: + minimum: 0 + type: integer + description: End index of masked segment in output string (exclusive). + format: int32 + example: 36 + DataMaskingEvaluateDefinition: + required: + - regexPattern + - text + type: object + properties: + regexPattern: + maxLength: 2048 + minLength: 1 + type: string + description: Regex pattern used to identify substrings to mask. + example: "\\\\b\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\ + \\b" + maskString: + maxLength: 64 + minLength: 0 + type: string + description: "Optional mask string. If null or empty, the service may apply\ + \ a default mask string." + nullable: true + example: EMAIL_REDACTED + default: '##redactedPII##' + text: + maxLength: 2048 + minLength: 1 + type: string + description: Sample message used for masking evaluation. + example: 2026-04-21 INFO User 192.168.1.1 logged in at 10.0.0.1 + ListExtractionRulesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of field extraction rules. + items: + $ref: '#/components/schemas/ExtractionRule' + next: + type: string + description: Next continuation token. + ExtractionRule: + type: object + allOf: + - $ref: '#/components/schemas/ExtractionRuleDefinition' + - $ref: '#/components/schemas/MetadataModel' + - required: + - id + properties: + id: + type: string + description: Unique identifier for the field extraction rule. + fieldNames: + type: array + description: List of extracted fields from "parseExpression". + items: + type: string + x-tf-generated-properties: "id,name,scope,parseExpression,enabled" + x-tf-resource-name: ExtractionRule + ExtractionRuleDefinition: + allOf: + - $ref: '#/components/schemas/BaseExtractionRuleDefinition' + - type: object + properties: + enabled: + type: boolean + description: Is the field extraction rule enabled. + default: true + BaseExtractionRuleDefinition: + required: + - name + - parseExpression + - scope + type: object + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of the field extraction rule. Use a name that makes it + easy to identify the rule. + example: ExtractionRule123 + scope: + maxLength: 2048 + minLength: 0 + type: string + description: "Scope of the field extraction rule. This could be a sourceCategory,\ + \ sourceHost, or any other metadata that describes the data you want to\ + \ extract from. Think of the Scope as the first portion of an ad hoc search,\ + \ before the first pipe ( | ). You'll use the Scope to run a search against\ + \ the rule." + example: _sourceHost=127.0.0.1 + parseExpression: + maxLength: 16384 + type: string + description: Describes the fields to be parsed. + example: csv _raw extract 1 as f1 + UpdateExtractionRuleDefinition: + allOf: + - $ref: '#/components/schemas/BaseExtractionRuleDefinition' + - required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Is the field extraction rule enabled. + ListDynamicRulesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of dynamic parsing rules. + items: + $ref: '#/components/schemas/DynamicRule' + next: + type: string + description: Next continuation token. + example: 0000000001C51FF7 + DynamicRule: + type: object + allOf: + - $ref: '#/components/schemas/DynamicRuleDefinition' + - $ref: '#/components/schemas/Metadata' + - required: + - id + - isSystemRule + properties: + id: + type: string + description: Unique identifier for the dynamic parsing rule. + example: 0000000001C41EE4 + isSystemRule: + type: boolean + description: "Whether the rule has been defined by the system, rather\ + \ than by a user." + example: false + DynamicRuleDefinition: + required: + - enabled + - name + - scope + type: object + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of the dynamic parsing rule. Use a name that makes it + easy to identify the rule. + example: DynamicParsingRule123 + scope: + maxLength: 2048 + minLength: 1 + type: string + description: "Scope of the dynamic parsing rule. This could be a sourceCategory,\ + \ sourceHost, or any other metadata that describes the data you want to\ + \ extract from. Think of the Scope as the first portion of an ad hoc search,\ + \ before the first pipe ( | ). You'll use the Scope to run a search against\ + \ the rule." + example: _sourceHost=127.0.0.1 + enabled: + type: boolean + description: Is the dynamic parsing rule enabled. + example: false + default: true + ListCustomFieldsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of custom fields. + items: + $ref: '#/components/schemas/CustomField' + CustomField: + allOf: + - $ref: '#/components/schemas/FieldName' + - required: + - dataType + - fieldId + - state + type: object + properties: + fieldId: + type: string + description: Identifier of the field. + example: 00000000031D02DA + dataType: + pattern: ^(String|Long|Int|Double|Boolean)$ + type: string + description: "Field type. Possible values are `String`, `Long`, `Int`,\ + \ `Double`, and `Boolean`." + example: String + x-pattern-message: "Must be `String`, `Long`, `Int`, `Double` or `Boolean`" + state: + pattern: ^(Enabled|Disabled)$ + type: string + description: Indicates whether the field is enabled and its values are + being accepted. Possible values are `Enabled` and `Disabled`. + example: Enabled + x-pattern-message: Must be `Enabled` or `Disabled` + FieldName: + required: + - fieldName + type: object + properties: + fieldName: + maxLength: 255 + minLength: 1 + type: string + description: Field name. + example: hostIP + ListDroppedFieldsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of dropped fields. + items: + $ref: '#/components/schemas/DroppedField' + DroppedField: + allOf: + - $ref: '#/components/schemas/FieldName' + ListBuiltinFieldsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of built-in fields. + items: + $ref: '#/components/schemas/BuiltinField' + BuiltinField: + allOf: + - $ref: '#/components/schemas/FieldName' + - required: + - dataType + - fieldId + - state + type: object + properties: + fieldId: + type: string + description: Identifier of the field. + example: 00000000031D02DA + dataType: + pattern: ^(String|Long|Int|Double|Boolean)$ + type: string + description: "Field type. Possible values are `String`, `Long`, `Int`,\ + \ `Double`, and `Boolean`." + example: String + x-pattern-message: "Must be `String`, `Long`, `Int`, `Double` or `Boolean`" + state: + pattern: ^(Enabled|Disabled)$ + type: string + description: Indicates whether the field is enabled and its values are + being accepted. Possible values are `Enabled` and `Disabled`. + example: Enabled + x-pattern-message: Must be `Enabled` or `Disabled` + FieldQuotaUsage: + required: + - quota + - remaining + type: object + properties: + quota: + type: integer + description: Maximum number of fields available. + format: int32 + example: 200 + remaining: + type: integer + description: Current number of fields available. + format: int32 + example: 121 + ListFieldNamesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of all built-in and custom field names. + items: + $ref: '#/components/schemas/FieldName' + ListCustomFieldsUsageResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of fields with their usages. + items: + $ref: '#/components/schemas/CustomFieldUsage' + CustomFieldUsage: + allOf: + - $ref: '#/components/schemas/FieldName' + - required: + - dataType + - fieldId + - state + type: object + properties: + fieldId: + type: string + description: Identifier of the field. + example: 00000000031D02DA + dataType: + pattern: ^(String|Long|Int|Double|Boolean)$ + type: string + description: "Field type. Possible values are `String`, `Long`, `Int`,\ + \ `Double`, `Boolean`." + example: String + x-pattern-message: "Must be `String`, `Long`, `Int`, `Double` or `Boolean`" + state: + pattern: ^(Enabled|Disabled)$ + type: string + description: Indicates whether the field is enabled and its values are + being accepted. Possible values are `Enabled` and `Disabled`. + example: Enabled + x-pattern-message: Must be `Enabled` or `Disabled` + fieldExtractionRules: + type: array + description: An array of hexadecimal identifiers of field extraction rules + which use this field. + items: + type: string + roles: + type: array + description: An array of hexadecimal identifiers of roles which use this + field in the search filter. + items: + type: string + partitions: + type: array + description: An array of hexadecimal identifiers of partitions which use + this field in the routing expression. + items: + type: string + collectorsCount: + type: integer + description: Total number of collectors using this field. + format: int32 + example: 228 + sourcesCount: + type: integer + description: Total number of sources using this field. + format: int32 + example: 228 + ListBuiltinFieldsUsageResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of fields with their usages. + items: + $ref: '#/components/schemas/BuiltinFieldUsage' + BuiltinFieldUsage: + allOf: + - $ref: '#/components/schemas/FieldName' + - required: + - dataType + - fieldId + - state + type: object + properties: + fieldId: + type: string + description: Identifier of the field. + example: 00000000031D02DA + dataType: + pattern: ^(String|Long|Int|Double|Boolean)$ + type: string + description: "Field type. Possible values are `String`, `Long`, `Int`,\ + \ `Double`, `Boolean`." + example: String + x-pattern-message: "Must be `String`, `Long`, `Int`, `Double` or `Boolean`" + state: + pattern: ^(Enabled|Disabled)$ + type: string + description: Indicates whether the field is enabled and its values are + being accepted. Possible values are `Enabled` and `Disabled`. + example: Enabled + x-pattern-message: Must be `Enabled` or `Disabled` + fieldExtractionRules: + type: array + description: An array of hexadecimal identifiers of field extraction rules + which use this field. + items: + type: string + roles: + type: array + description: An array of hexadecimal identifiers of roles which use this + field in the search filter. + items: + type: string + partitions: + type: array + description: An array of hexadecimal identifiers of partitions which use + this field in the routing expression. + items: + type: string + GetCollectorsUsageResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of collectors. + items: + $ref: '#/components/schemas/Collector' + next: + type: string + description: Next continuation token. + Collector: + required: + - collectorId + - collectorName + type: object + properties: + collectorId: + type: string + description: Identifier of a collector. + example: 000000000000000F + collectorName: + type: string + description: Name of a collector. + example: SyslogCollector + GetSourcesUsageResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of sources. + items: + $ref: '#/components/schemas/Source' + next: + type: string + description: Next continuation token. + Source: + required: + - sourceId + - sourceName + type: object + properties: + sourceId: + type: string + description: Identifier of a source. + example: 000000000000000F + sourceName: + type: string + description: Name of a source. + example: Collector + ListIngestBudgetsResponseV2: + required: + - data + type: object + properties: + data: + type: array + description: List of ingest budgets. + items: + $ref: '#/components/schemas/IngestBudgetV2' + next: + type: string + description: Next continuation token. + IngestBudgetV2: + type: object + allOf: + - $ref: '#/components/schemas/IngestBudgetDefinitionV2' + - required: + - createdAt + - createdBy + - id + - modifiedAt + - modifiedBy + - version + properties: + id: + type: string + description: Unique identifier for the ingest budget. + example: 0000000003343FDD + usageBytes: + type: integer + description: "Current usage since the last reset, in bytes." + format: int64 + example: 900 + usageStatus: + pattern: ^(Normal|Approaching|Exceeded|Unknown)$ + type: string + description: "Status of the current usage. Can be `Normal`, `Approaching`,\ + \ `Exceeded`, or `Unknown` (unable to retrieve usage)." + example: Approaching + x-pattern-message: "must be either `Normal`, `Approaching`, `Exceeded`,\ + \ or `Unknown`" + createdAt: + type: string + description: The creation timestamp in UTC of the Ingest Budget. + format: date-time + example: 2018-10-16T09:10:00Z + createdBy: + type: string + description: The identifier of the user who created the Ingest Budget. + example: 0000000006743FDD + modifiedAt: + type: string + description: The modified timestamp in UTC of the Ingest Budget. + format: date-time + example: 2018-10-16T09:10:00Z + modifiedBy: + type: string + description: The identifier of the user who modified the Ingest Budget. + example: 0000000001243FDD + budgetVersion: + type: integer + description: The version of the Ingest Budget + format: int32 + example: 2 + IngestBudgetDefinitionV2: + required: + - action + - capacityBytes + - name + - scope + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Display name of the ingest budget. + example: Developer Budget + scope: + maxLength: 1024 + minLength: 1 + type: string + description: "A scope is a constraint that will be used to identify the\ + \ messages on which budget needs to be applied. A scope is consists of\ + \ key and value separated by =. The field must be enabled in the fields\ + \ table. Value supports wildcard. e.g. _sourceCategory=*prod*payment*,\ + \ cluster=kafka. If the scope is defined _sourceCategory=*nginx* in this\ + \ budget will be applied on messages having fields _sourceCategory=prod/nginx,\ + \ _sourceCategory=dev/nginx, or _sourceCategory=dev/nginx/error" + example: _sourceCategory=*prod*nginx* + capacityBytes: + minimum: 1 + type: integer + description: "Capacity of the ingest budget, in bytes. It takes a few minutes\ + \ for Collectors to stop collecting when capacity is reached. We recommend\ + \ setting a soft limit that is lower than your needed hard limit. The\ + \ capacity bytes unit varies based on the budgetType field. For `dailyVolume`\ + \ budgetType the capacity specified is in bytes/day whereas for `minuteVolume`\ + \ budgetType its bytes/min." + format: int64 + example: 1000 + timezone: + type: string + description: "Time zone of the reset time for the ingest budget. Follow\ + \ the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + default: Etc/UTC + resetTime: + maxLength: 5 + minLength: 5 + type: string + description: Reset time of the ingest budget in HH:MM format. + example: 23:30 + default: 00:00 + description: + maxLength: 1024 + minLength: 0 + type: string + description: Description of the ingest budget. + action: + pattern: ^(keepCollecting|stopCollecting)$ + type: string + description: |- + Action to take when ingest budget's capacity is reached. All actions are audited. Supported values are: + * `stopCollecting` + * `keepCollecting` + example: stopCollecting + x-pattern-message: must be either `keepCollecting` or `stopCollecting` + auditThreshold: + maximum: 99 + minimum: 1 + type: integer + description: The threshold as a percentage of when an ingest budget's capacity + usage is logged in the Audit Index. + format: int32 + example: 85 + ListUserModelsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of users. + items: + $ref: '#/components/schemas/UserModel' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + UserModel: + type: object + allOf: + - $ref: '#/components/schemas/CreateUserDefinition' + - $ref: '#/components/schemas/MetadataModel' + - required: + - id + properties: + id: + type: string + description: Unique identifier for the user. + example: 000000000FE20FE2 + isActive: + type: boolean + description: True if the user is active. + example: true + isLocked: + type: boolean + description: "This has the value `true` if the user's account has been\ + \ locked. If a user tries to log into their account several times and\ + \ fails, his or her account will be locked for security reasons." + example: false + isMfaEnabled: + type: boolean + description: True if multi factor authentication is enabled for the user. + example: false + lastLoginTimestamp: + type: string + description: Timestamp of the last login for the user in UTC. Will be + null if the user has never logged in. + format: date-time + CreateUserDefinition: + required: + - email + - firstName + - lastName + - roleIds + type: object + properties: + firstName: + maxLength: 128 + minLength: 1 + type: string + description: First name of the user. + example: John + lastName: + maxLength: 128 + minLength: 0 + type: string + description: Last name of the user. + example: Doe + email: + maxLength: 255 + type: string + description: Email address of the user. + format: email + example: johndoe@acme.com + roleIds: + type: array + description: List of roleIds associated with the user. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + ListUserId: + required: + - data + type: object + properties: + data: + type: array + description: List of users. + items: + type: string + UpdateUserDefinition: + required: + - firstName + - lastName + type: object + properties: + firstName: + maxLength: 128 + minLength: 1 + type: string + description: "First name of the user. If the caller has `manageUsersAndRoles`\ + \ capability, this field can be updated for any user. If the caller does\ + \ NOT have `manageUsersAndRoles` capability, then only the calling user's\ + \ firstName can be updated." + example: John + lastName: + maxLength: 128 + minLength: 0 + type: string + description: "Last name of the user. If the caller has `manageUsersAndRoles`\ + \ capability, this field can be updated for any user. If the caller does\ + \ NOT have `manageUsersAndRoles` capability, then only the calling user's\ + \ lastName can be updated." + example: Doe + isActive: + type: boolean + description: This has the value `true` if the user is active and `false` + if they have been deactivated. To modify this field you must have the + `manageUserAndRoles` capability. + example: true + roleIds: + type: array + description: List of role identifiers associated with the user. To modify + this field you must have the `manageUserAndRoles` capability. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + ChangeEmailRequest: + required: + - email + type: object + properties: + email: + maxLength: 255 + type: string + description: New email address of the user. + format: email + example: johndoe@acme.com + DisableMfaRequest: + required: + - email + - password + type: object + properties: + email: + maxLength: 255 + type: string + description: Email of user whose mfa is being disabled. + format: email + example: johndoe@cme.com + password: + type: string + description: Password of user whose mfa is being disabled. + UserInterests: + required: + - interests + type: object + properties: + interests: + type: array + description: Labels of user interests. + example: + - Kubernetes + - AWS + items: + type: string + ListRoleModelsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of roles. + items: + $ref: '#/components/schemas/RoleModel' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + RoleModel: + type: object + allOf: + - $ref: '#/components/schemas/CreateRoleDefinition' + - $ref: '#/components/schemas/MetadataModel' + - required: + - id + properties: + id: + type: string + description: Unique identifier for the role. + example: 0000000000E20FE3 + systemDefined: + type: boolean + description: Role is system or user defined. + example: false + x-tf-generated-properties: "id,name,description,filterPredicate,capabilities" + x-tf-resource-name: Role + CreateRoleDefinition: + required: + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + filterPredicate: + type: string + description: "A search filter to restrict access to specific logs. The filter\ + \ is silently added to the beginning of each query a user runs. For example,\ + \ using '!_sourceCategory=billing' as a filter predicate will prevent\ + \ users assigned to the role from viewing logs from the source category\ + \ named 'billing'." + example: '!_sourceCategory=billing' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: "List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/)\ + \ associated with this role. Valid values are\n### Data Management\n \ + \ - viewCollectors\n - manageCollectors\n - manageBudgets\n - manageDataVolumeFeed\n\ + \ - viewFieldExtraction\n - manageFieldExtractionRules\n - manageS3DataForwarding\n\ + \ - manageContent\n - manageApps\n - dataVolumeIndex\n - manageConnections\n\ + \ - viewScheduledViews\n - manageScheduledViews\n - viewPartitions\n\ + \ - managePartitions\n - viewFields\n - manageFields\n - viewAccountOverview\n\ + \ - manageTokens\n - downloadSearchResults\n - manageIndexes\n - manageDataStreams\n\ + \ - viewParsers\n - viewDataStreams\n - viewPipelines\n - managePipelines\n\ + \n### Entity management\n - manageEntityTypeConfig\n\n### Metrics\n \ + \ - metricsTransformation\n - metricsExtraction\n - metricsRules\n\n\ + ### Security\n - managePasswordPolicy\n - ipAllowlisting\n - ipWhitelisting\n\ + \ - createAccessKeys\n - manageAccessKeys\n - manageSupportAccountAccess\n\ + \ - manageAuditDataFeed\n - manageSaml\n - shareDashboardOutsideOrg\n\ + \ - manageOrgSettings\n - changeDataAccessLevel\n\n### Dashboards\n\ + \ - shareDashboardWorld\n - shareDashboardAllowlist\n - shareDashboardWhitelist\n\ + \n### UserManagement\n - manageUsersAndRoles\n\n### Observability\n \ + \ - searchAuditIndex\n - auditEventIndex\n\n### Cloud SIEM Enterprise\n\ + \ - viewCse\n - cseViewAutomations\n - cseManageContextActions\n -\ + \ cseViewNetworkBlocks\n - cseManageInsightTags\n - cseViewRules\n \ + \ - cseViewThreatIntelligence\n - cseCommentOnInsights\n - cseViewEntityGroups\n\ + \ - cseManageEntityConfiguration\n - cseManageNetworkBlocks\n - cseManageMatchLists\n\ + \ - cseViewCustomInsights\n - cseManageActions\n - cseManageAutomations\n\ + \ - cseManageMappings\n - cseManageThreatIntelligence\n - cseViewActions\n\ + \ - cseCreateInsights\n - cseManageTagSchemas\n - cseInvokeInsights\n\ + \ - cseManageCustomEntityType\n - cseViewTagSchemas\n - cseDeleteInsights\n\ + \ - cseManageCustomInsights\n - cseViewFileAnalysis\n - cseManageFileAnalysis\n\ + \ - cseManageEntityCriticality\n - cseViewEntityCriticality\n - cseViewEntity\n\ + \ - cseManageCustomInsightStatuses\n - cseViewContextActions\n - cseViewMappings\n\ + \ - cseViewCustomEntityType\n - cseManageEntityGroups\n - cseViewCustomInsightStatuses\n\ + \ - cseViewEnrichments\n - cseManageInsightSignals\n - cseManageRules\n\ + \ - cseManageArtifacts\n - cseViewMatchLists\n - cseManageInsightPolicy\n\ + \ - cseManageEnrichments\n - cseViewEntityConfiguration\n - cseManageEntity\n\ + \ - cseExecuteAutomations\n - cseManageSuppressedEntities\n - cseManageInsightStatus\ + \ \n - cseManageInsightAssignee\n - cseManageFavoriteFields\n - cseViewSuppressedEntities\n\ + \n### Alerting\n - viewMonitorsV2\n - manageMonitorsV2\n - viewAlerts\n\ + \ - viewMutingSchedules\n - manageMutingSchedules\n - adminMonitorsV2\n\ + \n### SLO\n - viewSlos\n - manageSlos\n\n### CloudSoar\n - cloudSoarPlaybooksAccess\n\ + \ - cloudSoarNotificationConfigure\n - cloudSoarReportAll\n - cloudSoarIncidentTriageAccess\n\ + \ - cloudSoarIncidentTaskView\n - cloudSoarIncidentChangeOwnership\n\ + \ - cloudSoarIncidentNotesEdit\n - cloudSoarAPIEmailEdit\n - cloudSoarIncidentTemplatesAccess\n\ + \ - cloudSoarIncidentPlaybooksManage\n - cloudSoarGeneralConfigure\n\ + \ - cloudSoarEntitiesAccess\n - cloudSoarEntitiesBulkPhysicalDelete\n\ + \ - cloudSoarIncidentAttachmentsAccess\n - cloudSoarAppCentralAccess\n\ + \ - cloudSoarBridgeMonitoringAccess\n - viewCloudSoar\n - cloudSoarIncidentView\n\ + \ - cloudSoarObservabilityAccess\n - cloudSoarAPIEmailRead\n - cloudSoarAppCentralExport\n\ + \ - cloudSoarWidgetsAll\n - cloudSoarIncidentTaskReassign\n - cloudSoarIntegrationsAccess\n\ + \ - cloudSoarCustomizationIncidentLabels\n - cloudSoarAutomationRulesConfigure\n\ + \ - cloudSoarIncidentTaskAccessAll\n - cloudSoarAuditAndInformationConfigureAuditTrail\n\ + \ - cloudSoarIncidentTriageEdit\n - cloudSoarIncidentEdit\n - cloudSoarNotificationTriage\n\ + \ - cloudSoarIncidentTriageBulkPhysicalDelete\n - cloudSoarIncidentNotesAccess\n\ + \ - cloudSoarAPIUse\n - cloudSoarIncidentPlaybooksEdit\n - cloudSoarDashboardAll\n\ + \ - cloudSoarEntitiesManage\n - cloudSoarIncidentTemplatesConfigure\n\ + \ - cloudSoarIncidentTriageAccessAll\n - cloudSoarPlaybooksConfigure\n\ + \ - cloudSoarIncidentAccessAll\n - cloudSoarCustomizationLogo\n - cloudSoarIncidentTaskAccess\n\ + \ - cloudSoarIncidentTriageView\n - cloudSoarIntegrationsConfigure\n\ + \ - cloudSoarIncidentManageInvestigators\n - cloudSoarIncidentAccess\n\ + \ - cloudSoarAuditAndInformationLicenseInformation\n - cloudSoarIncidentBulkOperations\n\ + \ - cloudSoarCustomizationFields\n - cloudSoarIncidentTaskEdit\n -\ + \ cloudSoarDashboardAccess\n - cloudSoarIncidentAttachmentsEdit\n -\ + \ cloudSoarIncidentFoldersEdit\n - cloudSoarUserManagementGroups\n -\ + \ cloudSoarIncidentPlaybooksAccess\n - cloudSoarIncidentWarRoomUse\n\ + \ - cloudSoarReportAccess\n - cloudSoarAuditAndInformationAuditTrail\n\ + \ - cloudSoarAutomationRulesAccess\n - cloudSoarIncidentTriageChangeOwnership\n\ + \ - cloudSoarObservabilityManagement" + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing + capability requirements. If set to false an error will be thrown if any + capabilities are missing their dependencies. + default: true + UpdateRoleDefinition: + required: + - capabilities + - description + - filterPredicate + - name + - users + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + filterPredicate: + type: string + description: "A search filter to restrict access to specific logs. The filter\ + \ is silently added to the beginning of each query a user runs. For example,\ + \ using '!_sourceCategory=billing' as a filter predicate will prevent\ + \ users assigned to the role from viewing logs from the source category\ + \ named 'billing'." + example: '!_sourceCategory=billing' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - viewPipelines + - managePipelines + + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing + capability requirements. If set to false an error will be thrown if any + capabilities are missing their dependencies. + default: true + CapabilityMap: + required: + - capabilities + type: object + properties: + capabilities: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/CapabilityDefinition' + description: Map of capabilities to their attributes + CapabilityDefinition: + required: + - dependsOn + - group + - id + - label + type: object + properties: + id: + type: string + description: The name of the capability + example: manageParsers + label: + type: string + description: The UI label for the capability. + example: Manage Parsers + dependsOn: + type: array + description: Any capabilities that are required for this capability to be + enabled. + example: + - ViewParsers + - EditParsers + items: + type: string + group: + required: + - id + - label + type: object + properties: + id: + type: string + description: The backend name for the capability group + example: CloudSiem + label: + type: string + description: The label for the capability group + example: Insights + parentId: + type: string + description: The ID of the parent capability group + example: Cloud Siem + description: The group that the capability belongs to. + message: + type: string + description: Warning message that appears when this capability is enabled. + example: "By enabling this capability, you are allowing any user in this\ + \ role to share a dashboard, including its contents, with ANYONE who has\ + \ the URL. This URL can be shared with users outside of your organization,\ + \ allowing them to view the dashboard and its contents. Are you sure you\ + \ want to enable this permission?" + CapabilityList: + required: + - data + type: object + properties: + data: + type: array + description: List of capabilities + items: + $ref: '#/components/schemas/CapabilityDefinition' + ListRoleModelsResponseV2: + required: + - data + type: object + properties: + data: + type: array + description: List of roles. + items: + $ref: '#/components/schemas/GetRoleDefinitionV2' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + GetRoleDefinitionV2: + type: object + allOf: + - $ref: '#/components/schemas/RoleDefinition' + - $ref: '#/components/schemas/MetadataModel' + - required: + - id + properties: + id: + type: string + description: Unique identifier for the role. + example: 0000000000E20FE3 + systemDefined: + type: boolean + description: Role is system or user defined. + example: false + RoleDefinition: + required: + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which + belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: "A search filter which would be applied on partitions which\ + \ belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/)." + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which + belong to Security Data product area. + example: error + selectionType: + type: string + description: "Describes the Permission Construct for the list of views in\ + \ \"selectedViews\" parameter. \n### Valid Values are : \n - `All` selectionType\ + \ would allow access to all views in the org.\n - `Allow` selectionType\ + \ would allow access to specific views mentioned in \"selectedViews\"\ + \ parameter.\n - `Deny` selectionType would deny access to specific views\ + \ mentioned in \"selectedViews\" parameter." + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance + to the selectionType chosen. + items: + $ref: '#/components/schemas/GetViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing + capability requirements. If set to false an error will be thrown if any + capabilities are missing their dependencies. + default: true + GetViewFilterDefinition: + required: + - viewName + type: object + properties: + viewName: + type: string + description: Name of the view. Help Doc:- (https://help.sumologic.com/docs/manage/partitions-data-tiers/) + example: auditData + RoleModelV2: + type: object + allOf: + - $ref: '#/components/schemas/CreateRoleDefinitionV2' + - $ref: '#/components/schemas/MetadataModel' + - required: + - id + properties: + id: + type: string + description: Unique identifier for the role. + example: 0000000000E20FE3 + systemDefined: + type: boolean + description: Role is system or user defined. + example: false + x-tf-generated-properties: "id,name,description,logAnalyticsFilter,auditDataFilter,securityDataFilter,selectionType,selectedViews,capabilities" + x-tf-resource-name: RoleV2 + CreateRoleDefinitionV2: + required: + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which + belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: "A search filter which would be applied on partitions which\ + \ belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/)." + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which + belong to Security Data product area. + example: error + selectionType: + type: string + description: "Describes the Permission Construct for the list of views in\ + \ \"selectedViews\" parameter. \n### Valid Values are : \n - `All` selectionType\ + \ would allow access to all views in the org.\n - `Allow` selectionType\ + \ would allow access to specific views mentioned in \"selectedViews\"\ + \ parameter.\n - `Deny` selectionType would deny access to specific views\ + \ mentioned in \"selectedViews\" parameter." + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance + to the selectionType chosen. + items: + $ref: '#/components/schemas/ViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: "List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/)\ + \ associated with this role. Valid values are\n### Data Management\n \ + \ - viewCollectors\n - manageCollectors\n - manageBudgets\n - manageDataVolumeFeed\n\ + \ - viewFieldExtraction\n - manageFieldExtractionRules\n - manageS3DataForwarding\n\ + \ - manageContent\n - manageApps\n - dataVolumeIndex\n - manageConnections\n\ + \ - viewScheduledViews\n - manageScheduledViews\n - viewPartitions\n\ + \ - managePartitions\n - viewFields\n - manageFields\n - viewAccountOverview\n\ + \ - manageTokens\n - downloadSearchResults\n - manageIndexes\n - manageDataStreams\n\ + \ - viewParsers\n - viewDataStreams\n - viewPipelines\n - managePipelines\n\ + ### Entity management\n - manageEntityTypeConfig\n\n### Metrics\n -\ + \ metricsTransformation\n - metricsExtraction\n - metricsRules\n\n###\ + \ Security\n - managePasswordPolicy\n - ipAllowlisting\n - ipWhitelisting\n\ + \ - createAccessKeys\n - manageAccessKeys\n - manageSupportAccountAccess\n\ + \ - manageAuditDataFeed\n - manageSaml\n - shareDashboardOutsideOrg\n\ + \ - manageOrgSettings\n - changeDataAccessLevel\n\n### Dashboards\n\ + \ - shareDashboardWorld\n - shareDashboardAllowlist\n - shareDashboardWhitelist\n\ + \n### UserManagement\n - manageUsersAndRoles\n\n### Observability\n \ + \ - searchAuditIndex\n - auditEventIndex\n\n### Cloud SIEM Enterprise\n\ + \ - viewCse\n - cseViewAutomations\n - cseManageContextActions\n -\ + \ cseViewNetworkBlocks\n - cseManageInsightTags\n - cseViewRules\n \ + \ - cseViewThreatIntelligence\n - cseCommentOnInsights\n - cseViewEntityGroups\n\ + \ - cseManageEntityConfiguration\n - cseManageNetworkBlocks\n - cseManageMatchLists\n\ + \ - cseViewCustomInsights\n - cseManageActions\n - cseManageAutomations\n\ + \ - cseManageMappings\n - cseManageThreatIntelligence\n - cseViewActions\n\ + \ - cseCreateInsights\n - cseManageTagSchemas\n - cseInvokeInsights\n\ + \ - cseManageCustomEntityType\n - cseViewTagSchemas\n - cseDeleteInsights\n\ + \ - cseManageCustomInsights\n - cseViewFileAnalysis\n - cseManageFileAnalysis\n\ + \ - cseManageEntityCriticality\n - cseViewEntityCriticality\n - cseViewEntity\n\ + \ - cseManageCustomInsightStatuses\n - cseViewContextActions\n - cseViewMappings\n\ + \ - cseViewCustomEntityType\n - cseManageEntityGroups\n - cseViewCustomInsightStatuses\n\ + \ - cseViewEnrichments\n - cseManageInsightSignals\n - cseManageRules\n\ + \ - cseManageArtifacts\n - cseViewMatchLists\n - cseManageInsightPolicy\n\ + \ - cseManageEnrichments\n - cseViewEntityConfiguration\n - cseManageEntity\n\ + \ - cseExecuteAutomations\n - cseManageSuppressedEntities\n - cseManageInsightStatus\ + \ \n - cseManageInsightAssignee\n - cseManageFavoriteFields\n - cseViewSuppressedEntities\n\ + \n### Alerting\n - viewMonitorsV2\n - manageMonitorsV2\n - viewAlerts\n\ + \ - viewMutingSchedules\n - manageMutingSchedules\n - adminMonitorsV2\n\ + \n### SLO\n - viewSlos\n - manageSlos\n\n### CloudSoar\n - cloudSoarPlaybooksAccess\n\ + \ - cloudSoarNotificationConfigure\n - cloudSoarReportAll\n - cloudSoarIncidentTriageAccess\n\ + \ - cloudSoarIncidentTaskView\n - cloudSoarIncidentChangeOwnership\n\ + \ - cloudSoarIncidentNotesEdit\n - cloudSoarAPIEmailEdit\n - cloudSoarIncidentTemplatesAccess\n\ + \ - cloudSoarIncidentPlaybooksManage\n - cloudSoarGeneralConfigure\n\ + \ - cloudSoarEntitiesAccess\n - cloudSoarEntitiesBulkPhysicalDelete\n\ + \ - cloudSoarIncidentAttachmentsAccess\n - cloudSoarAppCentralAccess\n\ + \ - cloudSoarBridgeMonitoringAccess\n - viewCloudSoar\n - cloudSoarIncidentView\n\ + \ - cloudSoarObservabilityAccess\n - cloudSoarAPIEmailRead\n - cloudSoarAppCentralExport\n\ + \ - cloudSoarWidgetsAll\n - cloudSoarIncidentTaskReassign\n - cloudSoarIntegrationsAccess\n\ + \ - cloudSoarCustomizationIncidentLabels\n - cloudSoarAutomationRulesConfigure\n\ + \ - cloudSoarIncidentTaskAccessAll\n - cloudSoarAuditAndInformationConfigureAuditTrail\n\ + \ - cloudSoarIncidentTriageEdit\n - cloudSoarIncidentEdit\n - cloudSoarNotificationTriage\n\ + \ - cloudSoarIncidentTriageBulkPhysicalDelete\n - cloudSoarIncidentNotesAccess\n\ + \ - cloudSoarAPIUse\n - cloudSoarIncidentPlaybooksEdit\n - cloudSoarDashboardAll\n\ + \ - cloudSoarEntitiesManage\n - cloudSoarIncidentTemplatesConfigure\n\ + \ - cloudSoarIncidentTriageAccessAll\n - cloudSoarPlaybooksConfigure\n\ + \ - cloudSoarIncidentAccessAll\n - cloudSoarCustomizationLogo\n - cloudSoarIncidentTaskAccess\n\ + \ - cloudSoarIncidentTriageView\n - cloudSoarIntegrationsConfigure\n\ + \ - cloudSoarIncidentManageInvestigators\n - cloudSoarIncidentAccess\n\ + \ - cloudSoarAuditAndInformationLicenseInformation\n - cloudSoarIncidentBulkOperations\n\ + \ - cloudSoarCustomizationFields\n - cloudSoarIncidentTaskEdit\n -\ + \ cloudSoarDashboardAccess\n - cloudSoarIncidentAttachmentsEdit\n -\ + \ cloudSoarIncidentFoldersEdit\n - cloudSoarUserManagementGroups\n -\ + \ cloudSoarIncidentPlaybooksAccess\n - cloudSoarIncidentWarRoomUse\n\ + \ - cloudSoarReportAccess\n - cloudSoarAuditAndInformationAuditTrail\n\ + \ - cloudSoarAutomationRulesAccess\n - cloudSoarIncidentTriageChangeOwnership\n\ + \ - cloudSoarObservabilityManagement" + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing + capability requirements. If set to false an error will be thrown if any + capabilities are missing their dependencies. + default: true + ViewFilterDefinition: + required: + - viewName + type: object + properties: + viewName: + type: string + description: Name of the view. + example: auditData + UpdateRoleDefinitionV2: + required: + - auditDataFilter + - capabilities + - description + - logAnalyticsFilter + - name + - securityDataFilter + - selectedViews + - selectionType + - users + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which + belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: "A search filter which would be applied on partitions which\ + \ belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/)." + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which + belong to Security Data product area. + example: error + selectionType: + type: string + description: "Describes the Permission Construct for the list of views in\ + \ \"selectedViews\" parameter. \n### Valid Values are : \n - `All` selectionType\ + \ would allow access to all views in the org.\n - `Allow` selectionType\ + \ would allow access to specific views mentioned in \"selectedViews\"\ + \ parameter.\n - `Deny` selectionType would deny access to specific views\ + \ mentioned in \"selectedViews\" parameter." + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance + to the selectionType chosen. + items: + $ref: '#/components/schemas/ViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing + capability requirements. If set to false an error will be thrown if any + capabilities are missing their dependencies. + default: true + Folder: + allOf: + - $ref: '#/components/schemas/Content' + - type: object + properties: + description: + maxLength: 255 + minLength: 0 + type: string + description: The description of the folder. + example: This is a sample folder. + children: + type: array + description: A list of the content items. + items: + $ref: '#/components/schemas/Content' + FolderDefinition: + required: + - name + - parentId + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: The name of the folder. + example: SampleFolder + description: + maxLength: 255 + minLength: 0 + type: string + description: The description of the folder. + example: This is a sample folder. + parentId: + type: string + description: The identifier of the parent folder. + UpdateFolderRequest: + required: + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: The name of the folder. + example: SampleFolder + description: + maxLength: 255 + minLength: 0 + type: string + description: The description of the folder. + example: This is a sample folder. + ContentList: + required: + - data + type: object + properties: + data: + type: array + description: A list of the content items. + items: + $ref: '#/components/schemas/Content' + ContentPermissionResult: + required: + - explicitPermissions + type: object + properties: + explicitPermissions: + type: array + description: Explicitly assigned content permissions. + items: + $ref: '#/components/schemas/ContentPermissionAssignment' + implicitPermissions: + type: array + description: Implicitly inherited content permissions. + items: + $ref: '#/components/schemas/ContentPermissionAssignment' + ContentPermissionAssignment: + required: + - contentId + - permissionName + - sourceId + - sourceType + type: object + properties: + permissionName: + pattern: ^(View|GrantView|Edit|GrantEdit|Manage|GrantManage)$ + type: string + description: "Content permission name. Valid values are: `View`, `GrantView`,\ + \ `Edit`, `GrantEdit`, `Manage`, and `GrantManage`." + x-pattern-message: "must be one of the following: `View`, `GrantView`, `Edit`,\ + \ `GrantEdit`, `Manage`, `GrantManage`" + sourceType: + pattern: ^(user|role|org)$ + type: string + description: "Type of source for the permission. Valid values are: `user`,\ + \ `role`, and `org`." + example: role + x-pattern-message: "must be one of the following: `user`, `role`, `org`" + sourceId: + type: string + description: "An identifier that belongs to the source type chosen above.\ + \ For e.g. if the sourceType is set to \"user\", sourceId should be identifier\ + \ of a user (same goes for `role` and `org` sourceType)" + contentId: + type: string + description: Unique identifier for the content item. + ContentPermissionUpdateRequest: + required: + - contentPermissionAssignments + - notificationMessage + - notifyRecipients + type: object + properties: + contentPermissionAssignments: + type: array + description: Content permissions to be updated. + items: + $ref: '#/components/schemas/ContentPermissionAssignment' + notifyRecipients: + type: boolean + description: Set this to "true" to notify the users who had a permission + update. + notificationMessage: + type: string + description: The notification message sent to the users who had a permission + update. + Content: + type: object + allOf: + - $ref: '#/components/schemas/MetadataModel' + - required: + - id + - itemType + - name + - parentId + - permissions + properties: + id: + type: string + description: Identifier of the content item. + example: 000000000C1C17C6 + name: + type: string + description: The name of the content item. + example: Personal + itemType: + type: string + description: |- + Type of the content item. Supported values are: + 1. Folder + 2. Search + 3. Report (for old dashboards) + 4. Dashboard (for new dashboards) + 5. Lookups + example: Folder + parentId: + type: string + description: Identifier of the parent content item. + example: 0000000001C41EF2 + permissions: + type: array + description: List of permissions the user has on the content item. + example: + - View + - GrantView + - Edit + items: + type: string + description: + type: string + description: Description of the content item. + example: Personal folder for John Doe + isScheduled: + type: boolean + description: Indicates whether the content item refers to scheduled search. + This field is only relevant to `Search` content type. + example: false + default: false + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2018-10-16T09:10:00Z + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: 2018-10-16T09:10:00Z + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + ContentPath: + required: + - path + type: object + properties: + path: + type: string + description: Path of the content item. + example: /Library/Users/user@test.com/SampleFolder + pathItems: + type: array + description: The items in the path of the content. + items: + $ref: '#/components/schemas/PathSegment' + PathSegment: + required: + - id + - name + type: object + properties: + id: + type: string + description: The identifier of the path segment. + example: 0000000013D98A2A + name: + type: string + description: The name of the path segment. + example: Test Folder + description: + type: string + description: An optional description of the path segment. + example: This is a test folder + description: A segment of a path. + ContentSyncDefinition: + required: + - name + - type + type: object + properties: + type: + type: string + description: |- + The content item type. + **Note:** + - `MewboardSyncDefinition` _is depreciated, and will soon be removed. Please use_ `DashboardV2SyncDefinition` + _instead_. + - Dashboard links are not supported for dashboards. + name: + type: string + description: The name of the item. + discriminator: + propertyName: type + ImportResult: + type: object + properties: + status: + type: string + description: "Whether or not the request is in progress (`InProgress`),\ + \ has completed successfully (`Success`), or has completed with an error\ + \ (`Failed`)." + summary: + type: object + properties: + totalItems: + type: integer + description: Total content items attempted in the import. + example: 15 + successCount: + type: integer + description: Number of content items successfully imported. + example: 12 + failureCount: + type: integer + description: Number of content items that failed to import. + example: 3 + description: "Summary about the import job indicating total, success and\ + \ failure count." + failures: + type: array + description: Detailed listing of failed import items. + items: + $ref: '#/components/schemas/ImportErrorResultItem' + ImportErrorResultItem: + type: object + properties: + path: + type: string + description: Full folder path to the failed item. + example: /Marketing/Website Analytics/Daily Traffic Report + type: + type: string + description: "The type of the content item (e.g., Folder, Search, Dashboard)." + example: Dashboard + error: + type: string + description: Reason why the item failed to import. + example: Invalid JSON format in widget configuration. + IdArray: + type: array + items: + type: string + BulkBeginAsyncJobResponse: + required: + - errors + - jobIds + type: object + properties: + jobIds: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map of content identifiers to job identifiers. + errors: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/BulkErrorResponse' + description: Map of content identifiers to error messages for all failed + job requests + BulkErrorResponse: + required: + - errorResponse + - status + type: object + properties: + status: + type: integer + description: HTTP status code of individual request + errorResponse: + $ref: '#/components/schemas/ErrorResponse' + BulkAsyncStatusResponse: + required: + - errors + - jobStatuses + type: object + properties: + jobStatuses: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/AsyncJobStatus' + description: Map of job identifiers to job statuses. + errors: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/BulkErrorResponse' + description: Map of content identifiers to error messages for all failed + job requests + FolderNameDescription: + type: object + properties: + name: + type: string + description: Name of the folder. + example: User Activity + description: + type: string + description: Description of the folder. + example: Content related to User activity + description: Information about folder. + TransformationRulesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of transformation rules. + items: + $ref: '#/components/schemas/TransformationRuleResponse' + next: + type: string + description: Next continuation token. + example: aGNzTmZBN1ZZWFk9 + description: A generic response for transformation rule. + TransformationRuleResponse: + type: object + description: A generic response for transformation rule. + allOf: + - $ref: '#/components/schemas/TransformationRuleRequest' + - $ref: '#/components/schemas/MetadataModel' + - required: + - id + properties: + id: + type: string + description: Unique identifier for the transformation rule. + TransformationRuleRequest: + required: + - enabled + - ruleDefinition + type: object + properties: + ruleDefinition: + $ref: '#/components/schemas/TransformationRuleDefinition' + enabled: + type: boolean + description: True if the rule is enabled. + example: true + description: A request for creating or updating a transformation rule. + TransformationRuleDefinition: + required: + - name + - retention + - selector + type: object + properties: + name: + type: string + description: Name of the transformation rule. + example: Transformation Rule 1 + selector: + type: string + description: Selector of the transformation rule. + example: _sourceCategory=metricsstore + dimensionTransformations: + type: array + description: Dimension transformations of the transformation rule. + example: + - transformationType: AggregateOnTransformation + aggregateOn: + - metric + - transformationType: AddOrReplaceTransformation + dimensionToReplace: metric + value: "{{metric}}_aggregated" + items: + $ref: '#/components/schemas/DimensionTransformation' + default: [] + transformedMetricsRetention: + type: integer + description: "Retention period in days for the transformed metrics that\ + \ are generated by this rule. The supported retention periods for transformed\ + \ metrics are 8 days, and 400 days. If no dimension transformations are\ + \ defined, this value will be set to 0." + format: int64 + example: 8 + default: 0 + retention: + type: integer + description: "Retention period in days for the metrics that are selected\ + \ by the selector. The supported retention periods for selected metrics\ + \ are 8 days, 400 days, and 0 (Do not store) if this rule contains dimension\ + \ transformation." + format: int64 + example: 8 + default: 400 + description: The properties that define a transformation rule. + DimensionTransformation: + required: + - transformationType + type: object + properties: + transformationType: + type: string + description: This is the base type of all dimension transformations. + description: Base class of all transformation types. + discriminator: + propertyName: transformationType + ContractDetails: + required: + - contractPeriod + - currentBillingPeriod + - entitlements + - orgId + - planType + type: object + properties: + orgId: + type: string + description: Organization identifier of the account. + planType: + type: string + description: Plan name of the account. + example: Sumo Logic Logs and Metrics Analytics Service - Enterprise Edition + (Cloud Flex) + entitlements: + type: array + description: List of the entitlements of the account. Entitlements of the + account are the list of products subscribed by the user. + items: + $ref: '#/components/schemas/Entitlements' + sharedBuckets: + type: array + description: Contains list of buckets. Bucket means shared pool from which + multiple entitlements can use capacity. + items: + $ref: '#/components/schemas/SharedBucket' + contractPeriod: + $ref: '#/components/schemas/ContractPeriod' + currentBillingPeriod: + $ref: '#/components/schemas/CurrentBillingPeriod' + description: | + Contract details include Entitlements of the customer such as ContinuousLogs, FrequentLogs, Metrics, Storage, and Dashboards along with the entitlement value of each entitlement. + Entitlements: + required: + - capacity + - contractType + - entitlementType + - label + type: object + properties: + contractType: + type: string + description: Details of the contract type. `AnnualBucket` are contracts + that buy and consume ingest on yearly basis. `Credits` are contracts that + buy a single unit called credits for all our features. `DailyAverage` + are contracts that buy and consume ingest on a monthly basis. + example: "AnnualBucket, Credits, DailyAverage" + entitlementType: + type: string + description: "Text denoting the type of entitlement. - `continuous` for\ + \ Continuous Analytics, - `frequent` for Frequent Analytics, - `storage`\ + \ for Total Storage, - `metrics` for Metrics." + label: + type: string + description: The label of an entitlement is the plan name displayed on the + accounts page in our user interface. + example: Continuous log entitlement is represented by `Daily Log Ingest + (Continuous Analytics)`. + capacity: + $ref: '#/components/schemas/Capacity' + capacities: + type: array + description: Contains the capacities that were part of the contract. + items: + $ref: '#/components/schemas/Capacity' + Capacity: + required: + - unit + - value + type: object + properties: + value: + type: number + description: The value of the entitlement in units. + format: double + example: 61425.23 + unit: + type: string + description: The unit of the entitlement. Units are provided in `GB` or + `DPM`(data points per minute). + example: GB + capacityType: + pattern: ^(Paid|Free)$ + type: string + description: "Type of capacity. Valid values are: 1) `Paid` : This means\ + \ that the capacity is chargeable. 2) `Free` : This means that this capacity\ + \ is not chargeable." + description: Amount of entitlement provided by Sumo Logic for the entitlement + type of the account. + SharedBucket: + required: + - capacities + - label + - linkedEntitlementTypes + - name + type: object + properties: + name: + type: string + description: Name of the bucket. + example: totalReservedCredits + label: + type: string + description: The text to be displayed on UI for this bucket. + example: Sumo Credits + linkedEntitlementTypes: + type: array + description: List of entitlement types which can consume from this bucket. + example: + - continuous + - frequent + - metrics + - storage + items: + type: string + capacitites: + type: array + description: List of capacities alloted. + items: + $ref: '#/components/schemas/Capacity' + description: A shared bucket contains capacities which can be used my multiple + entitlements which are linked to the bucket. There will be a 1:many mapping + between SharedBucket:Entitlement. + ContractPeriod: + required: + - endDate + - startDate + type: object + properties: + startDate: + type: string + description: Start date of the contract. + format: date + endDate: + type: string + description: End date of the contract. + format: date + CurrentBillingPeriod: + required: + - endDate + - startDate + type: object + properties: + startDate: + type: string + description: Start date of the current billing period. + format: date + example: 2012-02-02 + endDate: + type: string + description: End date of the current billing period. + format: date + example: 2012-02-02 + ConsumptionDetails: + required: + - endDate + - entitlementConsumptions + - startDate + type: object + properties: + entitlementConsumptions: + type: array + description: An array of entitlements. + items: + $ref: '#/components/schemas/EntitlementConsumption' + startDate: + type: string + description: Start date of the data usage. + format: date + example: 2019-07-20 + endDate: + type: string + description: End date of the data usage. + format: date + example: 2019-10-20 + description: List of entitlements consumption. + EntitlementConsumption: + required: + - contractType + - dataPoints + - entitlementType + - operators + type: object + properties: + entitlementType: + type: string + description: "String value denoting the type of entitlement. - `continuous`\ + \ for Continuous Analytics, - `frequent` for Frequent Analytics, - `storage`\ + \ for Total Storage, - `metrics` for Metrics." + datapoints: + type: array + description: Array of data points of the entitlement with their respective + date range. + items: + $ref: '#/components/schemas/DataPoints' + operators: + type: array + description: "Operators used on the data. Available operators are `sum`,\ + \ `average`, `usagePercentage`, `forecastValue`, `forecastPercentage`,\ + \ and `forecastRemainingDays`. sum - Returns the sum of the usages. average\ + \ - Returns the average of the usages. usagePercentage - Returns percentage\ + \ of total capacity used for the startDate and endDate. forecastValue\ + \ - Returns expected usage value assuming current usage behavior continues.\ + \ forecastPercentage - Returns expected percentage usage by the endDate\ + \ assuming current usage behavior continues. forecastRemainingDays- Returns\ + \ the number of expected days, from today, that consumption will last\ + \ assuming current usage behavior continues." + items: + $ref: '#/components/schemas/Operator' + contractType: + type: string + description: "Consumption model of the entitlements, available values are\ + \ `DailyAverage`, `AnnualBucket`, and `Credits`." + example: DailyAverage + DataPoints: + required: + - timeRange + - value + type: object + properties: + timeRange: + $ref: '#/components/schemas/BeginBoundedTimeRange' + values: + type: array + description: An array of objects denoting the value and unit of the data + points. + items: + $ref: '#/components/schemas/DataValue' + description: Denotes the data points as a result of the groupBy function performed + on the usage data. + DataValue: + required: + - unit + - value + type: object + properties: + value: + type: number + description: The value of the data point in units. + format: double + example: 425 + unit: + type: string + description: "The unit of the entitlement, possible values are `GB`, `DPM`,\ + \ or `Credits`." + example: GB + Operator: + required: + - name + - values + type: object + properties: + values: + type: array + description: An array of objects denoting the value and unit of the results. + items: + $ref: '#/components/schemas/DataValue' + name: + type: string + description: The name of the operator applied to the data. + example: sum + description: "Result of the aggregations performed on the usages. Operator can\ + \ be `sum`, `average`, `usagePercentage`, `forecastValue`,`forecastPercentage`,\ + \ or `forecastRemainingDays`." + PlansCatalog: + required: + - plans + type: object + properties: + plans: + type: array + description: List of plans available. + items: + $ref: '#/components/schemas/SelfServicePlan' + description: Plans available for the account to update. + SelfServicePlan: + required: + - productGroups + - productId + - productName + - productSubscriptionOptions + type: object + properties: + productId: + $ref: '#/components/schemas/ProductId' + productName: + $ref: '#/components/schemas/ProductName' + productGroups: + type: array + description: A list of product group for preview. + items: + $ref: '#/components/schemas/ProductGroup' + productSubscriptionOptions: + type: array + description: A list of product subscription option. + items: + $ref: '#/components/schemas/ProductSubscriptionOption' + description: "Details about a Plan, along with its product groups and subscription\ + \ options" + ProductId: + pattern: ^(Essentials|Trial|Free|EnterpriseOps|EnterpriseSec|EnterpriseSuite)$ + type: string + description: | + Unique identifier of the product in current plan. Valid values are: 1. `Free` 2. `Trial` 3. `Essentials` 4. `EnterpriseOps` 5. `EnterpriseSec` 6. `EnterpriseSuite` + example: Essentials + x-pattern-message: "must be one of the following: `Essentials`, `Trial`, `Free`,\ + \ `EnterpriseOps`, `EnterpriseSec`, `EnterpriseSuite`" + ProductName: + type: string + description: Name for the product. + example: Sumo Logic Continuous Intelligence Service - Essentials Edition + ProductGroup: + required: + - productGroupName + - productVariables + type: object + properties: + productGroupName: + type: string + description: | + Name of the Product group: + example: Continuous Analytics + productGroupId: + type: string + description: Id of the Product group + example: CSE + productVariables: + type: array + description: Different product variables of the product group + items: + $ref: '#/components/schemas/ProductVariable' + provisioningSupported: + type: boolean + description: Is provisioning supported on this Product Group. This is applicable + for product variables which are not enabled by default. + example: true + description: + type: string + description: Description about the Product group + example: CSE activations can take upto 24 hours. + learnMoreLink: + type: string + description: Link to learn more about the Product group + example: https://help.sumologic.com/Manage/01Manage_Subscription/08Create_and_Manage_Orgs + description: Details of product group and its quantity. + ProductVariable: + required: + - possibleValues + - productVariableId + - productVariableName + - unit + type: object + properties: + productVariableName: + type: string + description: Name of a product variable. + example: Continuous Log Ingest + productVariableId: + pattern: ^(continuousIngest|continuousStorage|frequentIngest|frequentStorage|infrequentIngest|infrequentStorage|infrequentScannedData|cseIngest|cseStorage|metrics|socAgentInvestigation)$ + type: string + description: Unique Identifier of the product variable. + example: continuousIngest + x-pattern-message: "must be one of the following: `continuousIngest`, `continuousStorage`,\ + \ `frequentIngest`, `frequentStorage`, `infrequentIngest`, `infrequentStorage`,\ + \ `infrequentScannedData`, `cseIngest`, `cseStorage`, `metrics`, `socAgentInvestigation`" + unit: + type: string + description: Unit of measure for the productvariable. + example: GB + possibleValues: + type: array + description: Possible values allowed for the productvariable. + example: + - 3 + - 5 + - 10 + - 20 + items: + type: integer + format: int64 + description: Details of product variable and its quantity. + ProductSubscriptionOption: + required: + - billingFrequency + - discountPercentage + type: object + properties: + billingFrequency: + $ref: '#/components/schemas/BillingFrequency' + discountPercentage: + type: integer + description: Discount percentage for this plan's subscription. + example: 20 + description: Subscription option containing billing frequency and discount details. + BillingFrequency: + pattern: ^(Monthly|Annually)$ + type: string + description: | + Identifier for the plans billing term. Valid values are: + 1. Monthly + 2. Annually + example: Monthly + x-pattern-message: "must be one of the following: `Monthly`, `Annually`" + CurrentPlan: + required: + - billingFrequency + - planCost + - productId + type: object + properties: + productId: + pattern: ^(Essentials|Trial|Free|EnterpriseOps|EnterpriseSec|EnterpriseSuite)$ + type: string + description: | + Unique identifier of the product in current plan. Valid values are: 1. `Free` 2. `Trial` 3. `Essentials` 4. `EnterpriseOps` 5. `EnterpriseSec` 6. `EnterpriseSuite` + example: Essentials + x-pattern-message: "must be one of the following: `Essentials`, `Trial`,\ + \ `Free`, `EnterpriseOps`, `EnterpriseSec`, `EnterpriseSuite`" + planCost: + type: number + description: Cost incurred for the current plan. + format: double + example: 725.46 + billingFrequency: + pattern: ^(Monthly|Annually)$ + type: string + description: | + Billing frequency for the current plan. Valid values are: 1. `Monthly` 2. `Annually` + example: Monthly + x-pattern-message: "must be one of the following: `Monthly` or `Annually`" + consumables: + type: array + description: Consumables in the current plan. + items: + $ref: '#/components/schemas/Consumable' + planType: + pattern: ^(Free|Trial|Paid)$ + type: string + description: Whether the account is `Free`/`Trial`/`Paid` + example: Free + x-pattern-message: "must be one of the following: `Free`, `Trial` or `Paid`" + planName: + type: string + description: The plan name for the product being used. + discountAmount: + type: integer + description: The discount offered for the given contract period. + contractPeriod: + $ref: '#/components/schemas/ContractPeriod' + currentBillingPeriod: + $ref: '#/components/schemas/CurrentBillingPeriod' + credits: + type: integer + description: Numerical value of the amount of credits + format: int64 + example: 300 + baselines: + $ref: '#/components/schemas/Baselines' + pendingUpdateRequest: + type: boolean + description: True if there is a pending update request + prorationDetails: + $ref: '#/components/schemas/ProrationDetails' + description: Current plan of the account. + Consumable: + required: + - consumableId + - quantity + type: object + properties: + consumableId: + pattern: ^(Storage|Metrics|Continuous|Credits)$ + type: string + description: | + Unique identifier of the consumable. Valid values are: 1. `Storage` 2. `Metrics` 3. `Continuous` 4. `Credits` + example: Metrics + x-pattern-message: "must be one of the following: `Storage`, `Metrics`,\ + \ `Continuous`, `Credits`" + quantity: + $ref: '#/components/schemas/Quantity' + description: Details of consumable and its quantity. + Quantity: + required: + - unit + - value + type: object + properties: + value: + type: integer + description: The value of the consumable in units. + format: int64 + example: 61425 + unit: + pattern: ^(GB|DPM|Credits|Days)$ + type: string + description: | + The unit of the consumable. Units are provided in: 1. `GB` 2. `DPM`(Data Points Per Minute) 3. `Credits` 4. `Days` + example: GB + x-pattern-message: "must be one of the following: `GB`, `DPM`, `Credits`,\ + \ `Days`" + description: Details of unit of consumption and its value. + Baselines: + type: object + properties: + continuousIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: "The amount of continuous logs ingest to allocate to the organization,\ + \ in GBs." + format: int64 + example: 50000 + default: 0 + continuousStorage: + maximum: 30 + minimum: 30 + type: integer + description: "Number of days of continuous logs storage to allocate to the\ + \ organization, in Days." + format: int64 + example: 30 + default: 30 + frequentIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: "The amount of frequent logs ingest to allocate to the organization,\ + \ in GBs." + format: int64 + example: 50000 + default: 0 + frequentStorage: + maximum: 30 + minimum: 30 + type: integer + description: "Number of days of frequent logs storage to allocate to the\ + \ organization, in Days." + format: int64 + example: 30 + default: 30 + infrequentIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: "The amount of infrequent logs ingest to allocate to the organization,\ + \ in GBs." + format: int64 + example: 50000 + default: 0 + infrequentStorage: + maximum: 30 + minimum: 30 + type: integer + description: "The amount of infrequent logs storage to allocate to the organization,\ + \ in Days." + format: int64 + example: 30 + default: 30 + infrequentScan: + maximum: 1000000 + minimum: 0 + type: integer + description: "The amount of infrequent logs scan to allocate to the organization,\ + \ in GBs." + format: int64 + example: 50000 + default: 0 + metrics: + maximum: 5000000 + minimum: 0 + type: integer + description: "The amount of Metrics usage to allocate to the organization,\ + \ in DPMs (Data Points per Minute)." + format: int64 + example: 50000 + default: 0 + cseIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: "The amount of CSE ingest to allocate to the organization,\ + \ in GBs." + format: int64 + example: 50000 + default: 0 + cseStorage: + maximum: 1000000 + minimum: 0 + type: integer + description: "The amount of CSE storage to allocate to the organization,\ + \ in GBs." + format: int64 + example: 50000 + default: 0 + tracingIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: "The amount of tracing data ingest to allocate to the organization,\ + \ in GBs." + format: int64 + example: 50000 + default: 0 + flexIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: "The amount of flex logs ingest to allocate to the organization,\ + \ in GBs." + format: int64 + example: 5 + default: 0 + flexStorage: + maximum: 1000000 + minimum: 0 + type: integer + description: "Number of days of flex logs storage to allocate to the organization,\ + \ in Days." + format: int64 + example: 30 + default: 0 + flexScanRatio: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of flex logs ingest scan ratio. + format: int64 + example: 5 + default: 0 + aiInvestigation: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of AI Investigations needed to allocate to the organization. + format: int64 + example: 5 + default: 0 + socAiAgentDailyLimit: + maximum: 1000000 + minimum: 0 + type: integer + description: The daily investigation limit for SOC AI Agent. + format: int32 + example: 100 + default: 0 + description: Details of consumable and its quantity. + ProrationDetails: + required: + - proratedCost + - proratedCredits + - remainingDays + type: object + properties: + remainingDays: + type: integer + description: Remaining days in the billing cycle for which the new plan + is prorated. + format: int32 + proratedCredits: + type: integer + description: Total prorated credits that get added to the bucket based on + the remaining billing period. + format: int32 + proratedCost: + type: number + description: Cost of the total prorated credits. + format: double + description: Details about the prorated credits and prorated cost in case of + immediate monthly to monthly cycle upgrades. + UpdateRequest: + required: + - baselines + - billingFrequency + - productId + type: object + properties: + productId: + $ref: '#/components/schemas/ProductId' + billingFrequency: + $ref: '#/components/schemas/BillingFrequency' + baselines: + $ref: '#/components/schemas/SelfServiceCreditsBaselines' + immediate: + type: boolean + description: true in case the subscription baselines need to be updated + immediately(only for monthly customers who are staying on the monthly + plan) + default: false + description: Update request for the account. + SelfServiceCreditsBaselines: + type: object + properties: + continuousIngest: + minimum: 0 + type: integer + description: "The amount of continuous logs ingest to allocate to the organization,\ + \ in GBs." + format: int64 + example: 5 + default: 0 + continuousStorage: + minimum: 0 + type: integer + description: "Number of days of continuous logs storage to allocate to the\ + \ organization, in Days." + format: int64 + example: 30 + default: 0 + metrics: + minimum: 0 + type: integer + description: "The amount of Metrics usage to allocate to the organization,\ + \ in DPMs (Data Points per Minute)." + format: int64 + example: 20000 + default: 0 + tracingIngest: + minimum: 0 + type: integer + description: "The amount of tracing data ingest to allocate to the organization,\ + \ in GBs." + format: int64 + example: 1 + default: 0 + flexIngest: + minimum: 0 + type: integer + description: "The amount of flex logs ingest to allocate to the organization,\ + \ in GBs." + format: int64 + example: 5 + default: 0 + flexStorage: + minimum: 0 + type: integer + description: "Number of days of flex logs storage to allocate to the organization,\ + \ in Days." + format: int64 + example: 30 + default: 0 + flexScanRatio: + minimum: 0 + type: integer + description: The amount of flex logs ingest scan ratio. + format: int64 + example: 5 + default: 0 + description: Details of product variables and its quantity as required for credits. + UpgradePlans: + required: + - plans + type: object + properties: + plans: + type: array + description: List of plans available. + items: + $ref: '#/components/schemas/Plan' + description: Upgrade plans available for the account. + Plan: + required: + - productGroups + - productId + - productName + type: object + properties: + productId: + $ref: '#/components/schemas/ProductId' + productName: + $ref: '#/components/schemas/ProductName' + productGroups: + type: array + description: A list of product group for preview. + items: + $ref: '#/components/schemas/ProductGroup' + description: Upgrade preview request for the account. + AccountStatusResponse: + required: + - applicationUse + - canUpdatePlan + - planType + - pricingModel + type: object + properties: + pricingModel: + pattern: ^(credits|cloudflex)$ + type: string + description: Whether the account is `cloudflex` or `credits` + example: credits + canUpdatePlan: + type: boolean + description: If the plan can be updated by the given user + example: true + planType: + pattern: ^(Free|Trial|Paid)$ + type: string + description: Whether the account is `Free`/`Trial`/`Paid` + example: Free + planExpirationDays: + type: integer + description: The number of days in which the plan will expire + example: 20 + applicationUse: + pattern: ^(ALLOWED|ALLOWED_WITH_WARNING|THROTTLED|RESTRICTED)$ + type: string + description: The current usage of the application. + example: ALLOWED + accountActivated: + type: boolean + description: If the account is activated or not + example: true + totalCredits: + type: integer + description: Total amount of credits assigned to the account + example: 400 + logModel: + pattern: ^(Flex|Tiered|FlexPlusTiered)$ + type: string + description: The log model of the account + example: Flex + isSubscriptionV2: + type: boolean + description: Indicates whether the account has v2 subscription enabled. + example: false + description: Information about the account's plan and payment. + SubdomainDefinitionResponse: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - subdomain + - url + type: object + properties: + createdAt: + type: string + description: | + Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + subdomain: + type: string + description: The new subdomain. + example: my-company + url: + type: string + description: Login URL corresponding to the subdomain. + example: https://your-company.sumologic.com + ConfigureSubdomainRequest: + required: + - subdomain + type: object + properties: + subdomain: + maxLength: 63 + minLength: 4 + pattern: "^(?!xn--)[a-z0-9]([a-z0-9-]*[a-z0-9])?$" + type: string + description: The new subdomain. + example: my-company + SubdomainAvailabilityResponse: + required: + - isAvailable + type: object + properties: + isAvailable: + type: boolean + description: Subdomain is available for use or not. + example: false + SubdomainUrlResponse: + required: + - url + type: object + properties: + url: + type: string + description: Login URL corresponding to the subdomain. + example: https://your-company.sumologic.com + TotalCredits: + required: + - totalCredits + type: object + properties: + totalCredits: + type: number + description: Numerical value of the amount of credits + format: double + example: 300.0 + breakdown: + $ref: '#/components/schemas/CreditsBreakdown' + description: Total amount of credits to be deducted from the parent organization + corresponding to the baselines + CreditsBreakdown: + required: + - allocatedCredits + - deploymentChargeCredits + type: object + properties: + deploymentChargeCredits: + type: number + description: The total credits deducted from the parent organization in + the form of deployment charge. + format: double + example: 100.0 + allocatedCredits: + type: number + description: The total useable credits allocated to the child organization. + format: double + example: 200.0 + description: Breakdown of the credits. + CalculatorRequest: + type: object + properties: + parentDeploymentId: + type: string + description: Identifier of the deployment in which the parent org is present. + example: us2 + deploymentId: + type: string + description: Identifier of the deployment in which the child org is present. + example: us2 + trialPlanPeriod: + type: integer + description: length of the trial period. + example: 45 + baselines: + $ref: '#/components/schemas/Baselines' + description: Details of the request + PlanUpdateEmail: + required: + - baselines + - emailId + type: object + properties: + emailId: + maxLength: 255 + type: string + description: email id on which support team will contact on + format: email + example: johndoe@acme.com + phoneNumber: + maxLength: 30 + type: string + description: contact number on which support team can call user + example: +01-87789-65749 + billingFrequency: + pattern: ^(Monthly|Annually|)$ + type: string + description: The frequency with with the customer needs to be billed at. + The current supported values are Monthly and Annually + example: Monthly + x-pattern-message: "must be one of the following: `Monthly`, `Annually`" + baselines: + $ref: '#/components/schemas/SelfServiceCreditsBaselines' + details: + type: string + description: option details the user might want to inform + example: I need some help with my plan. + description: details of the plan for updating with contact information + UsageDetails: + required: + - endDate + - entitlementUsages + - startDate + type: object + properties: + entitlementUsages: + type: array + description: An array of usages. + items: + $ref: '#/components/schemas/EntitlementUsage' + startDate: + type: string + description: Start date of the data usage. + format: date + example: 2019-07-20 + endDate: + type: string + description: End date of the data usage. + format: date + example: 2019-10-20 + description: List of entitlements usages. + EntitlementUsage: + required: + - dataPoints + - entitlementType + - label + - operators + - tier + type: object + properties: + entitlementType: + type: string + description: "String value denoting the type of entitlement. - `continuous`\ + \ for Continuous Analytics, - `frequent` for Frequent Analytics, - `storage`\ + \ for Total Storage, - `metrics` for Metrics, - `inFrequentIngest` for\ + \ Infrequent Ingest, - `inFrequentsStorage` for Infrequent Storage, -\ + \ `inFrequentScannedBytes` for Infrequent Scan, - `cloudSIEMContinuous`\ + \ for CSE Ingest, - `tracing` for Tracing Ingest, - `soarCount` for Soar\ + \ Count, - `dataForwarding` for Data Forwarding" + datapoints: + type: array + description: Array of data points of the entitlement with their respective + date range. + items: + $ref: '#/components/schemas/DataPoints' + operators: + type: array + description: "Operators used on the data. Available operators are `sum`,\ + \ `average`, `usagePercentage`, `forecastValue`, `forecastPercentage`,\ + \ and `forecastRemainingDays`. sum - Returns the sum of the usages. average\ + \ - Returns the average of the usages. usagePercentage - Returns percentage\ + \ of total capacity used for the startDate and endDate. forecastValue\ + \ - Returns expected usage value assuming current usage behavior continues.\ + \ forecastPercentage - Returns expected percentage usage by the endDate\ + \ assuming current usage behavior continues. forecastRemainingDays- Returns\ + \ the number of expected days, from today, that consumption will last\ + \ assuming current usage behavior continues." + items: + $ref: '#/components/schemas/Operator' + tier: + type: string + description: Tier defines the priority in which the usage for an entitlement + is calculated. For example `promotional` for promotional tier. + label: + type: string + description: The label for the entitlement. + UsageReportResponse: + type: object + properties: + jobId: + type: string + description: Job Id for export + example: "12345678" + description: Export Usage response containing the jobId + UsageReportRequest: + type: object + properties: + startDate: + type: string + description: "Start date, without the time, of the usage data to fetch.\ + \ If no value is provided startDate is used as the start of the subscription.\ + \ The start date cannot be before the start of the subscription." + example: 2019-07-20 + endDate: + type: string + description: "End date, without the time, of usage data to fetch. If no\ + \ value is provided endDate is used as the end of the subscription. The\ + \ end date cannot be after the end of the subscription." + example: 2019-08-20 + groupBy: + pattern: ^(day|week|month)$ + type: string + description: "Perform a groupBy operation on the usage details. If no value\ + \ is provided data is grouped by `Day` - `day`: Aggregate the data by\ + \ day - `week`: Aggregate the data by week. Week starts at Monday and\ + \ ends at sunday night. - `month`: Aggregate the data by calendar month." + example: day + default: day + reportType: + pattern: ^(standard|detailed|childDetailed)$ + type: string + description: Specifies the type of report to be exported. Available types + are `standard` and `detailed`. An additional `childDetailed` type is available + for Sumo Orgs parents. Detailed report will have raw consumption along + with the credits breakdown. If no value is provided Standard reports will + be exported. + example: standard + default: standard + includeDeploymentCharge: + type: boolean + description: Deployment charges will be applied to the returned usages csv + if this is set to true and the organization is a part of Sumo Organizations + as a child organization. + example: false + default: false + description: Usage Export Report Request + UsageReportStatusResponse: + allOf: + - $ref: '#/components/schemas/ErrorDescription' + - type: object + properties: + status: + pattern: ^(Success|InProgress|Failed)$ + type: string + description: Status export + example: Success + statusMessage: + type: string + description: Status message export + example: Successful request + reportDownloadURL: + type: string + description: S3 presigned download URL for the report. It is valid for + 10 minutes. + example: www.example.com + description: Status response containing status and downloadURL if successful + UsageForecastResponse: + type: object + properties: + averageUsage: + type: number + description: Average credit usage per day till now. + format: double + example: 4.0 + usagePercentage: + type: number + description: Percentage of total credits used till date. + format: double + example: 7.0 + forecastedUsage: + type: number + description: Total expected usage by the end of contract period. + format: double + example: 10.0 + forecastedUsagePercentage: + type: number + description: Percentage of allocated credits that will be used in the contract + period. + format: double + example: 5.0 + remainingDays: + type: number + description: Days remaining till all the credits are consumed. + format: double + example: 10.0 + description: Usage forecast for the organization. + PendingUpdateRequest: + required: + - createdOn + - plan + type: object + properties: + createdOn: + type: string + description: The date on which the update request was created. + format: date + plan: + $ref: '#/components/schemas/CurrentPlan' + description: The pending plan update request for the account + SumoOrgsUsageBackfillRequest: + required: + - customerId + - from + - to + type: object + properties: + customerId: + type: integer + description: the customer ID of a mam org + format: int64 + example: 12345 + from: + type: integer + description: epoch millis of date from which usage is to be copied + format: int64 + example: 1661106600000 + to: + type: integer + description: epoch millis of date upto which usage is to be copied + format: int64 + example: 1661426182666 + UsageAlertConfig: + required: + - monitorTemplateId + type: object + properties: + monitorTemplateId: + type: string + description: ID of the monitor template + monitorId: + type: string + description: ID of the monitor instance + description: Usage alert configuration + UsageAlertRequest: + required: + - monitorId + - monitorTemplateId + type: object + properties: + monitorTemplateId: + type: string + description: ID of the monitor template + monitorId: + type: string + description: ID of the monitor instance + description: Usage alert configuration request + ChildUsageDetailsResponse: + required: + - data + type: object + properties: + data: + type: array + description: Usage details of the child orgs. + items: + $ref: '#/components/schemas/ChildUsageDetail' + ChildUsageDetail: + required: + - orgId + - status + - usages + type: object + properties: + status: + pattern: ^(Active|Delinked|Deactivated)$ + type: string + description: Status of the child org. + example: Active + x-pattern-message: "Valid values are `Active`, `Delinked`, and `Deactivated`" + orgName: + type: string + description: Name of the child org. + example: DSW Corp - Prod/Main + orgId: + maxLength: 23 + minLength: 19 + type: string + description: The unique identifier of an organization. It consists of the + deployment ID and the hexadecimal account ID separated by a dash `-` character. + example: us2-00000000FF42A0C3 + allocatedCredits: + type: number + description: Denotes the total number of credits provisioned for the child + organization to use. + format: double + example: 10000.0 + usages: + $ref: '#/components/schemas/ChildUsage' + ChildUsage: + required: + - totalCreditsUsed + type: object + properties: + totalCreditsUsed: + type: number + description: Total Credits used by the child org. + format: double + example: 10000.0 + usagePercentage: + type: number + description: Percentage of used credits from the allocated credits. + format: double + example: 10000.0 + forecastPercentage: + type: number + description: Forecasted percentage of credits will be used in the given + time period. + format: double + example: 10000.0 + usagePercentChangeWoW: + type: number + description: Week over week usage percentage for the subscription period. + format: double + example: 10000.0 + usagePercentChange: + type: number + description: Percentage of usage change over the given time period. + format: double + example: 10000.0 + ChildUsageDetailsRequest: + type: object + properties: + startDate: + type: string + description: "Start date, without the time, of the usage data to fetch." + example: 2019-07-20 + endDate: + type: string + description: "End date, without the time, of usage data to fetch." + example: 2019-10-20 + description: The child usage details request for the parent account + FlexPlanUpdateEmail: + required: + - emailId + type: object + properties: + emailId: + maxLength: 255 + type: string + description: email id on which support team will contact on + format: email + example: johndoe@acme.com + phoneNumber: + maxLength: 15 + type: string + description: contact number on which support team can call user + example: +01-87789-65749 + details: + type: string + description: option details the user might want to inform + example: I need some help with my plan. + description: details of the flex plan for updating with contact information + OrgContractInfo: + type: object + properties: + orgId: + type: string + description: Organization ID in hex format. + example: 0000000000C376FA + orgName: + type: string + description: Name of the organization. + example: Test Org Name + planType: + type: string + description: Name of the subscription plan. + example: Sumo Logic Continuous Intelligence Service - Enterprise Suite + promotionalCreditBlocks: + type: array + description: Populated only for STANDALONE and PARENT orgs + items: + $ref: '#/components/schemas/ContractPromotionalCreditBlock' + default: [] + paidCreditBlocks: + type: array + description: Populated only for STANDALONE and PARENT orgs + items: + $ref: '#/components/schemas/ContractPaidCreditBlock' + default: [] + overageCreditBlock: + description: Populated only for STANDALONE and PARENT orgs + nullable: true + allOf: + - $ref: '#/components/schemas/ContractOverageCreditBlock' + contractPeriod: + $ref: '#/components/schemas/ContractPeriod_1' + totalCredits: + type: number + description: Total allocated credits across all credit blocks. + format: double + example: 59683.0 + aiAgentInfo: + type: array + description: AI Agent configuration details. Populated only for STANDALONE + and PARENT orgs. + items: + $ref: '#/components/schemas/AiAgentInfo' + default: [] + ContractPromotionalCreditBlock: + type: object + properties: + priority: + type: integer + description: Priority of the promotional credit block. + example: 1 + startDate: + type: string + description: Start date of the promotional credit block as YYYY-MM-DD. + example: 2025-08-12 + endDate: + type: string + description: End date of the promotional credit block as YYYY-MM-DD. + example: 2025-11-12 + name: + type: string + description: Name of the promotional credit block. + example: Promotional Credit Block - 1 + credits: + maxProperties: 1000 + type: object + additionalProperties: + type: number + description: Allocated promotional credits for the product variable. + format: double + description: Map of product variable name to allocated promotional credits. + example: + flexScan: 340.0 + flexIngest: 334.124 + ContractPaidCreditBlock: + type: object + properties: + priority: + type: integer + description: Priority of the paid credit block. + example: 1 + totalCredits: + type: number + description: Total credits allocated in this paid credit block. + format: double + example: 100000.0 + name: + type: string + description: Name of the paid credit block. + example: Paid Credit Block - 1 + burndownRates: + maxProperties: 1000 + type: object + additionalProperties: + type: number + description: Burndown rate per product variable. + format: double + description: Map of product variable name to burndown rate for this paid + credit block. + example: + flexScan: 2.73 + flexIngest: 3.345 + ContractOverageCreditBlock: + type: object + properties: + name: + type: string + description: Name of the overage credit block. + example: Overage Credit Block + burndownRates: + maxProperties: 1000 + type: object + additionalProperties: + type: number + description: Burndown rate per product variable. + format: double + description: Map of product variable name to burndown rate for this overage + credit block. + example: + flexScan: 2.73 + flexIngest: 3.345 + ContractPeriod_1: + type: object + properties: + startDate: + type: string + description: Contract start date as YYYY-MM-DD + example: 2025-08-12 + endDate: + type: string + description: Contract end date as YYYY-MM-DD + example: 2025-11-12 + AiAgentInfo: + type: object + properties: + name: + type: string + description: Name of the AI agent. + example: SOC Analyst Agent + attributes: + type: array + description: List of attributes for the AI agent. + items: + $ref: '#/components/schemas/AiAgentAttribute' + default: [] + AiAgentAttribute: + type: object + properties: + name: + type: string + description: Name of the attribute. + example: Promotional investigations + value: + type: string + description: Value of the attribute. + example: "100" + uom: + type: string + description: Unit of measurement. + example: per day + creditBlockName: + type: string + description: Name of the credit block this attribute belongs to. + example: Promotional Credit Block - 1 + AccountUsagesResponse: + type: object + properties: + detailed_usages: + type: array + description: Populated when view is DETAILED + items: + $ref: '#/components/schemas/UsageEntry' + default: [] + aggregated_usages: + type: array + description: Populated when view is AGGREGATED + items: + $ref: '#/components/schemas/UsageEntry' + default: [] + UsageEntry: + type: object + properties: + usageType: + type: string + description: "Usage type for this entry (e.g., storage, ingest, etc.)." + example: storage + label: + type: string + description: "Consumable Usage Type Label (e.g. Continuous Ingest, CSE Scan,\ + \ etc.)." + example: Continuous Ingest + creditsUsed: + type: number + description: Credits used for this usage entry. + format: double + example: 45.6 + creditBlockName: + type: string + description: ID of the credit block this usage is attributed to. Null for + aggregated view. + example: Paid Credit Block - 1 + creditsUsedPercentage: + type: number + description: Percentage of total credits used + format: double + example: 23 + unitsUsed: + $ref: '#/components/schemas/UsageValue' + usagePercentageChangeWow: + type: number + description: Week-over-week usage percentage change in credits usage. + format: double + example: -4.64 + usagePercentageChange: + type: number + description: Percentage change in credits usage compared to the previous + period of the same length. + format: double + example: 15.3 + burndown: + $ref: '#/components/schemas/UsageValue' + datapoints: + type: array + description: List of usage datapoints for this entry. + items: + $ref: '#/components/schemas/UsageDatapoint' + UsageValue: + type: object + properties: + value: + type: number + description: Value of the usage or credits. + format: double + example: 4.3 + unit: + type: string + description: "Unit of the value (e.g., credits, GB)." + example: credits + UsageDatapoint: + type: object + properties: + timeRange: + $ref: '#/components/schemas/UsageTimeRange' + values: + $ref: '#/components/schemas/UsageDatapointValues' + UsageTimeRange: + type: object + properties: + from: + type: string + description: Start date of the time range as YYYY-MM-DD + example: 2019-07-20 + to: + type: string + description: End date of the time range as YYYY-MM-DD + example: 2019-10-20 + UsageDatapointValues: + type: object + properties: + credits: + $ref: '#/components/schemas/UsageValue' + usage: + $ref: '#/components/schemas/UsageValue' + CreditsOverviewResponse: + type: object + properties: + promotionalCreditBlocks: + type: array + description: Populated only for STANDALONE and PARENT orgs + items: + $ref: '#/components/schemas/PromotionalCreditBlockOverview' + default: [] + paidCreditBlocks: + type: array + description: Populated only for STANDALONE and PARENT orgs + items: + $ref: '#/components/schemas/PaidCreditBlockOverview' + default: [] + overageCreditBlock: + description: Populated only for STANDALONE and PARENT orgs + nullable: true + allOf: + - $ref: '#/components/schemas/OverageCreditBlockOverview' + totalCredits: + type: number + description: Total allocated credits across all credit blocks + format: double + example: 59683.0 + totalCreditsUsed: + type: number + description: Total credits used across all credit blocks + format: double + example: 453.0 + PromotionalCreditBlockOverview: + type: object + properties: + name: + type: string + description: Name of the promotional credit block. + example: Promotional Credit Block - 1 + credits: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/PromotionalCreditUsage' + description: Map of product variable name to its credits usage + example: + flexScan: + totalCredits: 340.0 + creditsUsed: 23.0 + flexIngest: + totalCredits: 30.0 + creditsUsed: 2.1 + PromotionalCreditUsage: + type: object + properties: + totalCredits: + type: number + description: Total allocated credits for this product variable + format: double + example: 340.0 + creditsUsed: + type: number + description: Credits consumed for this product variable + format: double + example: 23.0 + description: Credits usage breakdown per product variable for a promotional + credit block + PaidCreditBlockOverview: + type: object + properties: + name: + type: string + description: Name of the paid credit block. + example: Paid Credit Block - 1 + totalCredits: + type: number + description: Total credits allocated in this paid credit block. + format: double + example: 100000.0 + creditsUsed: + type: number + description: Credits used from this paid credit block. + format: double + example: 5662.41 + OverageCreditBlockOverview: + type: object + properties: + name: + type: string + description: Name of the overage credit block. + example: Overage Credit Block + creditsUsed: + type: number + description: Credits used from this overage credit block. + format: double + example: 56.0 + CreditsForecastResponse: + type: object + properties: + dailyAverageUsage: + type: number + description: Average daily credits usage over the given date range + format: double + example: 2696.1345082609178 + forecastedUsage: + type: number + description: Forecasted total credits usage by end of subscription period + format: double + example: 1001573.4527848464 + forecastedUsagePercentage: + type: number + description: Forecasted usage as a percentage of total allocated credits + format: double + example: 100.15734527848464 + remainingDays: + type: number + description: "Estimated number of days remaining before all allocated credits\ + \ will be exhausted, based on the average daily usage." + format: double + example: 237.0 + currentUsedPercentage: + type: number + description: Current credits usage as a percentage of total allocated credits. + format: double + example: 45.3 + IngestionLimitsResponse: + type: object + properties: + logs: + $ref: '#/components/schemas/UsageDetails_1' + metrics: + $ref: '#/components/schemas/UsageDetails_1' + traces: + $ref: '#/components/schemas/UsageDetails_1' + UsageDetails_1: + type: object + properties: + ingestionRate: + type: integer + description: "Current average ingestion rate. In bytes per minute for logs,\ + \ spans per minute for traces, DPM for metrics." + format: int64 + threshold: + type: integer + description: "Quota threshold. This is the per minute ingestion rate that\ + \ is allowed. In bytes per minute for logs, spans per minute for traces,\ + \ DPM for metrics." + format: int64 + remainingCapacity: + type: integer + description: "Remaining token bucket capacity. In bytes for logs, spans\ + \ for traces, DP for metrics." + format: int64 + SuccessResponse: + type: object + properties: + message: + type: string + description: some message about success + description: Response object for success + IngestionLogRequest: + type: object + properties: + viewName: + maxLength: 255 + type: string + description: view name + example: sumologic_system_events + messageTier: + maxLength: 255 + type: string + description: message tier + example: Flex + team: + type: string + description: team + example: business enablement + description: Describe ingestion usage log + MetricsSearchInstance: + allOf: + - $ref: '#/components/schemas/MetricsSearchV1' + - $ref: '#/components/schemas/MetadataModel' + - required: + - id + type: object + properties: + id: + type: string + description: Identifier of the metrics search. + example: 000000000000001A + parentId: + type: string + description: "Identifier of the parent element in the content library,\ + \ such as folder." + example: 0000000000007D2B + MetricsSearchV1: + required: + - description + - metricsQueries + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: "^[a-zA-Z0-9 +%-@.,_()]+$" + type: string + description: Item title in the content library. + example: Short title + description: + maxLength: 8192 + type: string + description: Item description in the content library. + example: Long and detailed description + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + logQuery: + maxLength: 10240 + type: string + description: Log query used to add an overlay to the chart. + example: my_metric | timeslice 1m | count by _timeslice + metricsQueries: + type: array + description: "Metrics queries, up to the maximum of six." + items: + $ref: '#/components/schemas/MetricsSearchQuery' + desiredQuantizationInSecs: + minimum: 0 + type: integer + description: Desired quantization in seconds. + format: int32 + example: 60 + default: 0 + properties: + type: string + description: | + Chart properties, like line width, color palette, and the fill missing data method. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: "{ \\\"key\\\": \\\"value\\\" }" + description: Definition of a metrics search. + MetricsSearchQuery: + required: + - query + - rowId + type: object + properties: + rowId: + type: string + description: Row identifier. All row IDs are represented by subsequent upper + case letters starting with `A`. + example: A + query: + type: string + description: Metrics query. + example: my_metric | avg + description: Definition of a metrics query. + SaveMetricsSearchRequest: + type: object + description: The definition of the metrics search to save in the content library. + allOf: + - $ref: '#/components/schemas/MetricsSearchV1' + - required: + - parentId + type: object + properties: + parentId: + type: string + description: Identifier of a folder to which the metrics search should + be added. + example: 000000000000001A + ListTokensBaseResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of tokens. + items: + $ref: '#/components/schemas/TokenBaseResponse' + TokenBaseResponse: + required: + - createdAt + - createdBy + - description + - id + - modifiedAt + - modifiedBy + - name + - status + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the token. + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the token. + example: token-name + description: + maxLength: 4096 + minLength: 0 + type: string + description: Description of the token. + example: "token description: for test." + status: + pattern: ^(Active|Inactive)$ + type: string + description: "Status of the token. Can be `Active`, or `Inactive`." + example: Active + x-pattern-message: must be either `Active` or `Inactive` + type: + pattern: ^(CollectorRegistrationTokenResponse)$ + type: string + description: "Type of the token. Valid values: 1) CollectorRegistrationTokenResponse" + example: CollectorRegistrationTokenResponse + x-pattern-message: must be `CollectorRegistrationTokenResponse` + version: + type: integer + description: Version of the token. + format: int64 + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + discriminator: + propertyName: type + TokenBaseDefinition: + required: + - name + - status + - type + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the token. + example: token-name + description: + maxLength: 4096 + minLength: 0 + type: string + description: Description of the token. + example: "token description: for test." + status: + pattern: ^(Active|Inactive)$ + type: string + description: "Status of the token. Can be `Active`, or `Inactive`." + example: Active + x-pattern-message: must be either `Active` or `Inactive` + type: + pattern: ^(CollectorRegistration)$ + type: string + description: "Type of the token. Valid values: 1) CollectorRegistration" + example: CollectorRegistration + x-pattern-message: must be `CollectorRegistration` + TokenBaseDefinitionUpdate: + required: + - name + - status + - type + - version + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the token. + example: token-name + description: + maxLength: 4096 + minLength: 0 + type: string + description: Description of the token. + example: "token description: for test." + status: + pattern: ^(Active|Inactive)$ + type: string + description: "Status of the token. Can be `Active`, or `Inactive`." + example: Active + x-pattern-message: must be either `Active` or `Inactive` + type: + pattern: ^(CollectorRegistration)$ + type: string + description: "Type of the token. Valid values: 1) CollectorRegistration" + example: CollectorRegistration + x-pattern-message: must be `CollectorRegistration` + version: + type: integer + description: Version of the token. + format: int64 + PaginatedListAccessKeysResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of access keys. + items: + $ref: '#/components/schemas/AccessKeyPublic' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + description: List of access keys. + AccessKeyPublic: + required: + - createdAt + - createdBy + - disabled + - id + - label + - modifiedAt + - modifiedBy + type: object + properties: + id: + type: string + description: Identifier of the access key. + example: su0w3Q37CBzHUM + label: + type: string + description: The name of the access key. + example: collector access key + corsHeaders: + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: false + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2018-10-16T09:10:00Z + createdBy: + type: string + description: Identifier of the user who created the access key. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: 2018-10-16T09:10:00Z + modifiedBy: + type: string + description: Identifier of the user who modified the access key. + example: 0000000006743FDD + serviceAccountId: + type: string + description: Identifier of the service account who owns the access key. + example: 0000000006743FDA + lastUsed: + type: string + description: "Last used timestamp in UTC.
**Note:** Property not in\ + \ use, it is part of an upcoming feature." + format: date-time + example: 2018-10-16T09:10:00Z + scopes: + type: array + description: "Scopes assigned to the key.\n### Alerting\n - adminMonitorsV2\n\ + \ - viewMonitorsV2\n - manageMonitorsV2\n\n### Data Management\n -\ + \ manageApps\n - viewCollectors\n - manageCollectors\n - viewConnections\n\ + \ - manageConnections\n - contentAdmin\n - viewFieldExtractionRules\n\ + \ - manageFieldExtractionRules \n - viewFields\n - manageFields\n\ + \ - manageBudgets\n - viewLibrary\n - manageLibrary\n - viewPartitions\n\ + \ - managePartitions \n - manageS3DataForwarding\n - viewScheduledViews\n\ + \ - manageScheduledViews\n - manageTokens\n\n### Logs\n - runLogSearch\n\ + \n### Metrics\n - runMetricsQuery \n\n### Reliability Management\n -\ + \ viewSlos\n - manageSlos\n\n### Security\n - manageAccessKeys\n -\ + \ viewPersonalAccessKeys\n - managePersonalAccessKeys\n\n### UserManagement\n\ + \ - viewUsersAndRoles\n - manageUsersAndRoles" + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's RBAC + capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + AccessKey: + allOf: + - $ref: '#/components/schemas/AccessKeyPublic' + - required: + - key + type: object + properties: + key: + type: string + description: The key for the created access key. This field will have + values only in the response for an access key create request. The value + will be an empty string while listing all keys. + example: F9GZvb4fISxUZHM7pqHCsGXGWf4OArgmt9Tz8ewZ + AccessKeyCreateRequest: + required: + - label + type: object + properties: + label: + maxLength: 128 + type: string + description: A name for the access key to be created. + example: automation access key + corsHeaders: + maxItems: 20 + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request + depends on whether it contains an ORIGIN header and the entries in the allowlist. + Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + scopes: + type: array + description: "Scopes assigned to the key.\n### Alerting\n - adminMonitorsV2\n\ + \ - viewMonitorsV2\n - manageMonitorsV2\n\n### Data Management\n -\ + \ manageApps\n - viewCollectors\n - manageCollectors\n - viewConnections\n\ + \ - manageConnections\n - contentAdmin\n - viewFieldExtractionRules\n\ + \ - manageFieldExtractionRules \n - viewFields\n - manageFields\n\ + \ - manageBudgets\n - viewLibrary\n - manageLibrary\n - viewPartitions\n\ + \ - managePartitions\n - manageS3DataForwarding\n - viewScheduledViews\n\ + \ - manageScheduledViews\n - manageTokens\n\n### Logs\n - runLogSearch\n\ + \n### Metrics\n - runMetricsQuery \n\n### Reliability Management\n -\ + \ viewSlos\n - manageSlos\n\n### Security\n - manageAccessKeys\n -\ + \ viewPersonalAccessKeys\n - managePersonalAccessKeys\n\n### UserManagement\n\ + \ - viewUsersAndRoles\n - manageUsersAndRoles" + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + ListAccessKeysResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of access keys. + items: + $ref: '#/components/schemas/AccessKeyPublic' + description: List of access keys. + ScopesList: + required: + - data + type: object + properties: + data: + type: array + description: List of scopes + items: + $ref: '#/components/schemas/ScopeDefinition' + ScopeDefinition: + required: + - dependsOn + - group + - id + - label + - type + type: object + properties: + id: + type: string + description: The name of the scope. + example: managePartitions + label: + type: string + description: The UI label for the scope. + example: Manage Partitions + type: + type: string + description: Type of scope. + example: Manage + dependsOn: + type: array + description: Any scopes that are required for this scope to be enabled. + example: + - viewPartitions + items: + type: string + group: + required: + - id + - label + type: object + properties: + id: + type: string + description: The name of the scope group + example: dataManagement + label: + type: string + description: The label for the scope group + example: Data Management + parentId: + type: string + description: The ID of the parent scope group + description: The group that the scope belongs to. + AccessKeyUpdateRequest: + required: + - disabled + type: object + properties: + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: true + corsHeaders: + maxItems: 20 + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + scopes: + type: array + description: "Scopes assigned to the key.

Note: Updates to scopes\ + \ will take up to 5m to reflect due to caching in the system.\n### Alerting\n\ + \ - adminMonitorsV2\n - viewMonitorsV2\n - manageMonitorsV2\n\n###\ + \ Data Management\n - manageApps\n - viewCollectors\n - manageCollectors\n\ + \ - viewConnections\n - manageConnections\n - contentAdmin\n - viewFieldExtractionRules\n\ + \ - manageFieldExtractionRules \n - viewFields\n - manageFields\n\ + \ - manageBudgets\n - viewLibrary\n - manageLibrary\n - viewPartitions\n\ + \ - managePartitions\n - manageS3DataForwarding\n - viewScheduledViews\n\ + \ - manageScheduledViews\n - manageTokens\n\n### Logs\n - runLogSearch\n\ + \n### Metrics\n - runMetricsQuery \n\n### Reliability Management\n -\ + \ viewSlos\n - manageSlos\n\n### Security\n - manageAccessKeys\n -\ + \ viewPersonalAccessKeys\n - managePersonalAccessKeys\n\n### UserManagement\n\ + \ - viewUsersAndRoles\n - manageUsersAndRoles" + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + SamlIdentityProvider: + type: object + allOf: + - $ref: '#/components/schemas/SamlIdentityProviderRequest' + - $ref: '#/components/schemas/AuthnCertificateResult' + - $ref: '#/components/schemas/MetadataModel' + - required: + - id + properties: + id: + type: string + description: Unique identifier of the SAML Identity Provider. + example: 00000000361130F7 + assertionConsumerUrl: + type: string + description: The URL on Sumo Logic where the IdP will redirect to with + its authentication response. + example: https://service.sumologic.com/sumo/saml/consume/9483922 + default: "" + entityId: + type: string + description: A unique identifier that is the intended audience of the + SAML assertion. + example: https://service.sumologic.com/sumo/saml/9483922 + default: "" + metadataUrl: + type: string + description: The URL to fetch SAML metadata XML. + example: https://api.sumologic.com/api/v1/saml/identityProviders/00000000361130F7/metadata + default: "" + SamlIdentityProviderRequest: + required: + - configurationName + - issuer + - x509cert1 + type: object + properties: + spInitiatedLoginPath: + type: string + description: This property has been deprecated and is no longer used. + example: http://www.okta.com/abxcseyuiwelflkdjh + deprecated: true + default: "" + configurationName: + type: string + description: Name of the SSO policy or another name used to describe the + policy internally. + example: SumoLogic + issuer: + type: string + description: The unique URL assigned to the organization by the SAML Identity + Provider. + example: http://www.okta.com/abxcseyuiwelflkdjh + spInitiatedLoginEnabled: + type: boolean + description: True if Sumo Logic redirects users to your identity provider + with a SAML AuthnRequest when signing in. + default: false + authnRequestUrl: + type: string + description: The URL that the identity provider has assigned for Sumo Logic + to submit SAML authentication requests to the identity provider. + example: https://www.okta.com/app/sumologic/abxcseyuiwelflkdjh/sso/saml + default: "" + x509cert1: + type: string + description: The certificate is used to verify the signature in SAML assertions. + x509cert2: + type: string + description: The backup certificate used to verify the signature in SAML + assertions when x509cert1 expires. + default: "" + x509cert3: + type: string + description: The backup certificate used to verify the signature in SAML + assertions when x509cert1 expires and x509cert2 is empty. + default: "" + onDemandProvisioningEnabled: + $ref: '#/components/schemas/OnDemandProvisioningInfo' + rolesAttribute: + type: string + description: The role that Sumo Logic will assign to users when they sign + in. + example: Sumo_Role + default: "" + logoutEnabled: + type: boolean + description: True if users are redirected to a URL after signing out of + Sumo Logic. + default: false + logoutUrl: + type: string + description: The URL that users will be redirected to after signing out + of Sumo Logic. + example: https://www.sumologic.com + default: "" + emailAttribute: + type: string + description: The email address of the new user account. + example: attribute/subject + default: "" + debugMode: + type: boolean + description: True if additional details are included when a user fails to + sign in. + default: false + signAuthnRequest: + type: boolean + description: True if Sumo Logic will send signed Authn requests to the identity + provider. + default: false + disableRequestedAuthnContext: + type: boolean + description: True if Sumo Logic will include the RequestedAuthnContext element + of the SAML AuthnRequests it sends to the identity provider. + default: false + isRedirectBinding: + type: boolean + description: True if the SAML binding is of HTTP Redirect type. + default: false + OnDemandProvisioningInfo: + required: + - onDemandProvisioningRoles + type: object + properties: + firstNameAttribute: + type: string + description: First name attribute of the new user account. + example: http://schemas.microsoft.com/ws/2008/06/identity/claims/givenname + default: "" + lastNameAttribute: + type: string + description: Last name attribute of the new user account. + example: http://schemas.microsoft.com/ws/2008/06/identity/claims/surname + default: "" + onDemandProvisioningRoles: + type: array + description: Sumo Logic RBAC roles to be assigned when user accounts are + provisioned. + example: "[\"Analyst\", \"Administrator\"]" + items: + type: string + default: [] + AuthnCertificateResult: + required: + - certificate + type: object + properties: + certificate: + type: string + description: Authentication Request Signing Certificate for the user. + AllowlistedUserResult: + required: + - canManageSaml + - email + - firstName + - isActive + - lastLogin + - lastName + - userId + type: object + properties: + userId: + type: string + description: Unique identifier of the user. + firstName: + type: string + description: First name of the user. + lastName: + type: string + description: Last name of the user. + email: + type: string + description: Email of the user. + example: john@sumologic.com + canManageSaml: + type: boolean + description: If the user can manage SAML Configurations. + isActive: + type: boolean + description: Checks if the user is active. + lastLogin: + type: string + description: Timestamp of the last login of the user. + format: date-time + CidrList: + required: + - data + type: object + properties: + data: + maxItems: 50 + type: array + description: An array of CIDR notations and/or IP addresses. + items: + $ref: '#/components/schemas/Cidr' + description: A list of CIDR notations and/or IP addresses. + Cidr: + required: + - cidr + type: object + properties: + cidr: + pattern: "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\\ + /([0-9]|[1-2][0-9]|3[0-2]))?$" + type: string + description: The string representation of the CIDR notation or IP address. + example: 192.35.24.1 + x-pattern-message: Invalid CIDR/IP + description: + type: string + description: Description of the CIDR notation or IP address. + example: Accountant + description: A CIDR notation or IP address along with its description. + AllowlistingStatus: + required: + - contentEnabled + - loginEnabled + type: object + properties: + contentEnabled: + type: boolean + description: Whether service allowlisting is enabled for Content. + loginEnabled: + type: boolean + description: Whether service allowlisting is enabled for Login. + description: The status of service allowlisting for Content and Login. + AuditPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the Audit policy is enabled. + example: true + description: Audit policy. + SearchAuditPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the Search Audit policy is enabled. + example: true + description: Search Audit policy. + ShareDashboardsOutsideOrganizationPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the Share Dashboards Outside Organization policy is + enabled. + example: true + description: Share Dashboards Outside Organization policy. + DataAccessLevelPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the Data Access Level policy is enabled. + example: true + description: Data Access Level policy. + UserConcurrentSessionsLimitPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the User Concurrent Sessions Limit policy is enabled. + example: true + maxConcurrentSessions: + maximum: 100 + minimum: 1 + type: integer + description: Maximum number of concurrent sessions a user may have. + format: int32 + example: 50 + default: 100 + description: User Concurrent Sessions Limit policy. + MaxUserSessionTimeoutPolicy: + required: + - maxUserSessionTimeout + type: object + properties: + maxUserSessionTimeout: + pattern: ^(5m|15m|30m|1h|2h|6h|12h|1d|2d|3d|5d|7d)$ + type: string + description: "Maximum web session timeout users are able to configure within\ + \ their user preferences. Valid values are: `5m`, `15m`, `30m`, `1h`,\ + \ `2h`, `6h`, `12h`, `1d`, `2d`, `3d`, `5d`, or `7d`" + example: 1d + x-pattern-message: "must be one of the following: `5m`, `15m`, `30m`, `1h`,\ + \ `2h`, `6h`, `12h`, `1d`, `2d`, `3d`, `5d`, or `7d`" + description: Max User Session Timeout policy. + DisableUnusedAccessKeysPolicy: + required: + - unusedAccessKeysDisableAfterInDays + type: object + properties: + unusedAccessKeysDisableAfterInDays: + maximum: 365 + minimum: 0 + type: integer + description: The number of days it will take for an unused access key to + automatically disable. Setting it to 0 (never) means that the accessKeys + will not be disabled automatically. + format: int32 + example: 60 + description: Disable Unused Access Keys policy. + AccessKeysLifetimePolicy: + required: + - accessKeysLifetimeInDays + type: object + properties: + accessKeysLifetimeInDays: + pattern: ^(0|30|45|60|90|180|365)$ + type: string + description: "The number of days it will take for an access key to expire\ + \ without being rotated/copied. Setting it to 0 (never) means that access\ + \ keys will never expire. Valid values are: `0`, `30`, `45`, `60`, `90`,\ + \ `180`, or `365`" + example: "60" + x-pattern-message: "must be one of the following: `0`, `30`, `45`, `60`,\ + \ `90`, `180`, or `365`" + description: Access Keys Lifetime policy. + DataDeletionPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the Data Deletion policy is enabled. + example: true + description: Whether the Data Deletion policy is enabled. + DashboardAutoRefreshPolicy: + required: + - minRefreshInterval + type: object + properties: + minRefreshInterval: + maximum: 86400 + minimum: 0 + type: integer + description: Minimum refresh interval in seconds. A value of 0 disables + automatic refresh. + format: int32 + example: 60 + description: Dashboard Auto-Refresh policy. + DashboardAutoRunPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: "Whether the Dashboard Auto-Run policy is enabled. When enabled,\ + \ dashboard queries will run automatically on load. When disabled, users\ + \ must manually trigger query execution." + example: true + description: Dashboard Auto-Run policy. + CheckDataIngestionPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the Check Data Ingestion policy is enabled for OT collectors. + example: true + noDataThreshold: + pattern: ^(1h|2h|4h|8h|16h|24h)$ + type: string + description: "Duration threshold after which an OT collector not sending\ + \ data will trigger an alert. Valid values are: `1h`, `2h`, `4h`, `8h`,\ + \ `16h`, or `24h`" + example: 24h + default: 24h + x-pattern-message: "must be one of the following: `1h`, `2h`, `4h`, `8h`,\ + \ `16h`, or `24h`" + description: Check Data Ingestion policy. + TimestampFormatPolicy: + required: + - timestampFormat + type: object + properties: + timestampFormat: + type: string + description: "The timestamp format used in alert notification payloads.\ + \ Valid values: `ISO`, `LEGACY`. ISO format: yyyy-MM-dd HH:mm:ss z. LEGACY\ + \ format: MM/dd/yyyy hh:mm:ss a z." + example: LEGACY + description: Alert Timestamp Format policy. + OAuthCimdPolicy: + required: + - oAuthCimdPolicy + type: object + properties: + oAuthCimdPolicy: + pattern: ^(disabled|enabled|enabled-pre-registered-only)$ + type: string + description: "OAuth CIMD policy. Valid values are: `disabled`, `enabled`,\ + \ 'enabled-pre-registered-only'" + example: disabled + x-pattern-message: "must be one of the following: `disabled`, `enabled`,\ + \ 'enabled-pre-registered-only'" + description: The OAuth policy for Client ID Metadata Documents (CIMD) authentication. + ListHealthEventResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of health events. + items: + $ref: '#/components/schemas/HealthEvent' + next: + type: string + description: Next continuation token. + HealthEvent: + required: + - details + - eventId + - eventName + - eventTime + - resourceIdentity + - severityLevel + - subsystem + type: object + properties: + eventId: + type: string + description: The unique identifier of the event. + example: e801dc7d-f483-46e9-bcc9-410f08f96497 + eventName: + type: string + description: The name of the event. + example: InstalledCollectorOffline + details: + $ref: '#/components/schemas/TrackerIdentity' + resourceIdentity: + $ref: '#/components/schemas/ResourceIdentity' + eventTime: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2018-10-16T09:10:00Z + subsystem: + type: string + description: The product area of the event. + severityLevel: + type: string + description: The criticality of the event. It is either `Error` or `Warning` + ResourceIdentities: + required: + - data + type: object + properties: + data: + type: array + description: A list of the resources. + items: + $ref: '#/components/schemas/ResourceIdentity' + ListArchiveJobsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of Archive Jobs. + items: + $ref: '#/components/schemas/ArchiveJob' + next: + type: string + description: Next continuation token. + ArchiveJob: + type: object + allOf: + - $ref: '#/components/schemas/CreateArchiveJobRequest' + - required: + - createdAt + - createdBy + - id + - status + - totalBytesIngested + - totalObjectsIngested + - totalObjectsScanned + properties: + id: + type: string + description: The unique identifier of the ingestion job. + example: 4e214571-cf27-4114-93e6-69a98c017f3 + totalObjectsScanned: + type: integer + description: The total number of objects scanned by the ingestion job. + format: int64 + example: 25 + totalObjectsIngested: + type: integer + description: The total number of objects ingested by the ingestion job. + format: int64 + example: 10 + totalBytesIngested: + type: integer + description: The total bytes ingested by the ingestion job. + format: int64 + example: 100 + status: + type: string + description: "The status of the ingestion job, either `Pending`,`Scanning`,`Ingesting`,`Failed`,\ + \ or `Succeeded`." + example: Scanning + createdAt: + type: string + description: The creation timestamp in UTC of the ingestion job. + format: date-time + example: 2018-10-16T09:10:00Z + createdBy: + type: string + description: The identifier of the user who created the ingestion job. + example: 0000000006743FDD + CreateArchiveJobRequest: + required: + - endTime + - name + - startTime + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: The name of the ingestion job. + startTime: + type: string + description: The starting timestamp of the ingestion job. + format: date-time + example: 2018-10-16T09:10:00Z + endTime: + type: string + description: The ending timestamp of the ingestion job. + format: date-time + example: 2018-10-16T10:10:00Z + ListArchiveJobsCount: + required: + - data + type: object + properties: + data: + type: array + description: List of archive sources with count of jobs having various statuses. + items: + $ref: '#/components/schemas/ArchiveJobsCount' + ArchiveJobsCount: + required: + - failed + - ingesting + - pending + - scanning + - sourceId + - succeeded + type: object + properties: + sourceId: + type: string + description: Identifier for the archive source. + example: 000000000606C009 + pending: + type: integer + description: The total number of archive jobs with pending status for the + archive source. + format: int64 + example: 4 + scanning: + type: integer + description: The total number of archive jobs with scanning status for the + archive source. + format: int64 + example: 1 + ingesting: + type: integer + description: The total number of archive jobs with ingesting status for + the archive source. + format: int64 + example: 2 + failed: + type: integer + description: The total number of archive jobs with failed status for the + archive source. + format: int64 + example: 5 + succeeded: + type: integer + description: The total number of archive jobs with succeeded status for + the archive source. + format: int64 + example: 20 + GetDataArchivingDestinationsResponse: + type: object + properties: + nextToken: + type: string + description: Next continuation token. + example: VEZuRU4veXF2UWFCUURYSDNQUzJxWlpRRUsvTlBieXA + data: + type: array + description: List of data archiving destinations. + items: + $ref: '#/components/schemas/DataArchivingDestination' + DataArchivingDestination: + allOf: + - $ref: '#/components/schemas/CreateDataArchivingDestinationRequest' + - $ref: '#/components/schemas/MetadataModel' + - required: + - id + properties: + id: + type: string + description: Unique identifier for the data archiving destination. + example: "1" + CreateDataArchivingDestinationRequest: + allOf: + - $ref: '#/components/schemas/BaseDataArchivingDestination' + - required: + - destinationConfig + properties: + destinationConfig: + $ref: '#/components/schemas/DataArchivingDestinationConfig' + BaseDataArchivingDestination: + required: + - destinationName + type: object + properties: + destinationName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data archiving destination. + example: my-archive-destination + DataArchivingDestinationConfig: + required: + - destinationType + type: object + properties: + destinationType: + pattern: ^(S3|Syslog|Hitachi|RestAPI)$ + type: string + description: Type of the data archiving destination. + example: S3 + x-pattern-message: "should be 'S3', 'Syslog', 'Hitachi' or 'RestAPI'" + discriminator: + propertyName: destinationType + mapping: + S3: '#/components/schemas/S3ArchivingDestinationConfig' + Syslog: '#/components/schemas/SyslogArchivingDestinationConfig' + Hitachi: '#/components/schemas/HitachiArchivingDestinationConfig' + RestAPI: '#/components/schemas/RestAPIArchivingDestinationConfig' + S3ArchivingDestinationConfig: + allOf: + - $ref: '#/components/schemas/DataArchivingDestinationConfig' + - required: + - authConfig + - bucketName + - enabled + - encrypted + - region + properties: + description: + type: string + description: Description of the data archiving destination. + example: Archive destination for production logs + bucketName: + pattern: "(?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-.]{1,61}[a-z0-9]$" + type: string + description: The name of the Amazon S3 bucket. + example: my-archive-bucket + x-pattern-message: Must be a valid AWS S3 Bucket name. + region: + type: string + description: The AWS region where the S3 bucket is located. + example: us-east-1 + encrypted: + type: boolean + description: Enable S3 server-side encryption. + example: true + enabled: + type: boolean + description: True if the destination is active. + example: true + invalidatedBySystem: + type: boolean + description: True if the destination has been invalidated by the system. + readOnly: true + authConfig: + $ref: '#/components/schemas/S3ArchivingAuthConfig' + description: Configuration of the AWS S3 data archiving destination. + S3ArchivingAuthConfig: + required: + - authenticationMode + type: object + properties: + authenticationMode: + pattern: ^(AccessKey|RoleBased)$ + type: string + description: Type of S3 authentication mode. + example: RoleBased + x-pattern-message: should be either 'AccessKey' or 'RoleBased' + discriminator: + propertyName: authenticationMode + mapping: + AccessKey: '#/components/schemas/S3ArchivingAccessKeyAuthConfig' + RoleBased: '#/components/schemas/S3ArchivingRoleBasedAuthConfig' + S3ArchivingAccessKeyAuthConfig: + allOf: + - $ref: '#/components/schemas/S3ArchivingAuthConfig' + - required: + - accessKeyId + - accessKeySecret + type: object + properties: + accessKeyId: + type: string + description: AWS access key ID. + example: AKIAIOSFODNN7EXAMPLE + accessKeySecret: + type: string + description: AWS secret access key. + writeOnly: true + example: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY + S3ArchivingRoleBasedAuthConfig: + allOf: + - $ref: '#/components/schemas/S3ArchivingAuthConfig' + - required: + - roleArn + type: object + properties: + roleArn: + type: string + description: AWS IAM role ARN for cross-account access. + example: arn:aws:iam::123456789012:role/SumoLogicArchiveRole + SyslogArchivingDestinationConfig: + allOf: + - $ref: '#/components/schemas/DataArchivingDestinationConfig' + - required: + - host + - port + - protocol + properties: + protocol: + pattern: ^(tcp|udp)$ + type: string + description: The protocol used for syslog forwarding. + example: udp + x-pattern-message: should be either 'tcp' or 'udp' + host: + type: string + description: The hostname or IP address of the syslog server. + example: 10.20.30.40 + port: + maximum: 65535 + minimum: 1 + type: integer + description: The port number of the syslog server. + example: 514 + token: + type: string + description: Optional token for syslog authentication. + writeOnly: true + description: Configuration of the Syslog data archiving destination. + HitachiArchivingDestinationConfig: + allOf: + - $ref: '#/components/schemas/DataArchivingDestinationConfig' + - required: + - objectId + - password + - url + - username + properties: + url: + type: string + description: The URL of the Hitachi Content Platform endpoint. + example: https://hcp.example.com + objectId: + type: string + description: The object path pattern for stored data. + example: "your_path/logname_{day}_{hour}_{minute}_{second}_{uuid}.log" + username: + type: string + description: Username for Hitachi Content Platform authentication. + example: hcp-user + password: + type: string + description: Password for Hitachi Content Platform authentication. + writeOnly: true + example: '********' + description: Configuration of the Hitachi Content Platform data archiving + destination. + RestAPIArchivingDestinationConfig: + allOf: + - $ref: '#/components/schemas/DataArchivingDestinationConfig' + - required: + - url + properties: + url: + type: string + description: The URL of the REST API endpoint to forward data to. + example: https://events.example.com/receiver/v1/http/token123 + objectId: + type: string + description: Optional object identifier for the REST endpoint. + example: test + username: + type: string + description: Username for REST API authentication (if required). + example: api-user + password: + type: string + description: Password for REST API authentication (if required). + writeOnly: true + example: '********' + description: Configuration of the REST API data archiving destination. + UpdateDataArchivingDestinationRequest: + required: + - destinationConfig + - destinationName + type: object + properties: + destinationName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data archiving destination. + example: my-archive-destination + destinationConfig: + $ref: '#/components/schemas/UpdateDataArchivingDestinationConfigRequest' + description: Request object to update a data archiving destination. + UpdateDataArchivingDestinationConfigRequest: + required: + - destinationType + type: object + properties: + destinationType: + pattern: ^(S3|Syslog|Hitachi|RestAPI)$ + type: string + description: Type of the data archiving destination. + example: S3 + x-pattern-message: "should be 'S3', 'Syslog', 'Hitachi' or 'RestAPI'" + discriminator: + propertyName: destinationType + mapping: + S3: '#/components/schemas/UpdateS3ArchivingDestinationConfigRequest' + Syslog: '#/components/schemas/UpdateSyslogArchivingDestinationConfigRequest' + Hitachi: '#/components/schemas/UpdateHitachiArchivingDestinationConfigRequest' + RestAPI: '#/components/schemas/UpdateRestAPIArchivingDestinationConfigRequest' + UpdateS3ArchivingDestinationConfigRequest: + allOf: + - $ref: '#/components/schemas/UpdateDataArchivingDestinationConfigRequest' + - type: object + properties: + description: + type: string + description: Description of the data archiving destination. + example: Archive destination for production logs + region: + type: string + description: The AWS region where the S3 bucket is located. + example: us-east-1 + encrypted: + type: boolean + description: Enable S3 server-side encryption. + example: true + enabled: + type: boolean + description: True if the destination is active. + example: true + authConfig: + $ref: '#/components/schemas/S3ArchivingAuthConfig' + description: Configuration of the AWS S3 data archiving destination. + UpdateSyslogArchivingDestinationConfigRequest: + allOf: + - $ref: '#/components/schemas/UpdateDataArchivingDestinationConfigRequest' + - required: + - host + - port + - protocol + type: object + properties: + protocol: + pattern: ^(tcp|udp)$ + type: string + description: The protocol used for syslog forwarding. + example: udp + x-pattern-message: should be either 'tcp' or 'udp' + host: + type: string + description: The hostname or IP address of the syslog server. + example: 10.20.30.40 + port: + maximum: 65535 + minimum: 1 + type: integer + description: The port number of the syslog server. + example: 514 + token: + type: string + description: Optional token for syslog authentication. + writeOnly: true + description: Configuration of the Syslog data archiving destination. + UpdateHitachiArchivingDestinationConfigRequest: + allOf: + - $ref: '#/components/schemas/UpdateDataArchivingDestinationConfigRequest' + - required: + - url + - username + type: object + properties: + url: + type: string + description: The URL of the Hitachi Content Platform endpoint. + example: https://hcp.example.com + objectId: + type: string + description: The object path pattern for stored data. + example: "your_path/logname_{day}_{hour}_{minute}_{second}_{uuid}.log" + username: + type: string + description: Username for Hitachi Content Platform authentication. + example: hcp-user + password: + type: string + description: Password for Hitachi Content Platform authentication. + writeOnly: true + example: '********' + description: Configuration of the Hitachi Content Platform data archiving + destination. + UpdateRestAPIArchivingDestinationConfigRequest: + allOf: + - $ref: '#/components/schemas/UpdateDataArchivingDestinationConfigRequest' + - required: + - url + - username + type: object + properties: + url: + type: string + description: The URL of the REST API endpoint to forward data to. + example: https://events.example.com/receiver/v1/http/token123 + objectId: + type: string + description: Optional object identifier for the REST endpoint. + example: test + username: + type: string + description: Username for REST API authentication (if required). + example: api-user + password: + type: string + description: Password for REST API authentication (if required). + writeOnly: true + example: '********' + description: Configuration of the REST API data archiving destination. + LogSearchEstimatedUsageDefinition: + allOf: + - $ref: '#/components/schemas/LogSearchEstimatedUsageRequest' + - required: + - estimatedUsageDetails + type: object + properties: + estimatedUsageDetails: + $ref: '#/components/schemas/EstimatedUsageDetails' + LogSearchEstimatedUsageRequest: + allOf: + - $ref: '#/components/schemas/LogSearchQueryTimeRangeBase' + - required: + - timezone + type: object + properties: + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + EstimatedUsageDetails: + type: object + properties: + dataScannedInBytes: + type: integer + description: "Amount of data scanned in bytes, to run the query." + format: int64 + example: 114086541 + LogSearchEstimatedUsageByTierDefinition: + allOf: + - $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV2' + - required: + - estimatedUsageDetails + type: object + properties: + estimatedUsageDetails: + type: array + items: + $ref: '#/components/schemas/EstimatedUsageDetailsWithTier' + LogSearchEstimatedUsageRequestV2: + allOf: + - $ref: '#/components/schemas/LogSearchQueryTimeRangeBaseExceptParsingMode' + - required: + - timezone + type: object + properties: + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + EstimatedUsageDetailsWithTier: + type: object + properties: + tier: + type: string + description: "Name of the data tier. Supported Values are Continuous, Frequent,\ + \ Infrequent" + example: Continuous + dataScannedInBytes: + type: integer + description: "Amount of data scanned in bytes, to run the query." + format: int64 + example: 114086541 + LogSearchEstimatedUsageByMeteringTypeDefinition: + allOf: + - $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV3' + - required: + - estimatedUsageDetails + type: object + properties: + estimatedUsageDetails: + type: array + items: + $ref: '#/components/schemas/EstimatedUsageDetailsWithMeteringType' + LogSearchEstimatedUsageRequestV3: + allOf: + - $ref: '#/components/schemas/LogSearchQueryEstimationQueryDefinition' + - required: + - timezone + type: object + properties: + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + emulateSearchContext: + $ref: '#/components/schemas/EmulateSearchContext' + LogSearchQueryEstimationQueryDefinition: + description: Definition of the log search with query and timerange. + allOf: + - $ref: '#/components/schemas/LogSearchQueryEstimationBaseDefinition' + - type: object + properties: + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt + time and `false` if it is to be run by message time. + example: false + default: false + LogSearchQueryEstimationBaseDefinition: + required: + - queryString + - timeRange + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: "error {{sourceCategory}}| count by _sourceCategory" + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: "Values for search template used in the search query. Learn\ + \ more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/" + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: "This parameter defines whether you want to run the search\ + \ by messageTime, receiptTime, or searchableTime. By default, the search\ + \ will run by messageTime. If both runByReceiptTime and intervalTimeType\ + \ parameters are present then the preference will be given to the intervalTimeType." + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + description: Base definition of the log search with query and timerange (without + runByReceiptTime). + EmulateSearchContext: + type: object + properties: + roleIds: + type: array + description: List of role IDs to emulate the search context for. + example: + - 000000000000000C + items: + type: string + userId: + type: string + description: User ID to emulate the search context for. + example: 000000000000019F + description: | + Contains keys like "roleIds" with a list of role IDs or "userId" as a string. + EstimatedUsageDetailsWithMeteringType: + type: object + properties: + meteringType: + type: string + description: | + Name of the metering type. Metering type indicates how the data scanned within a particular data tier is actually metered and billed. Supported Values are Continuous, Frequent, Infrequent, ContinuousSecurity and FlexSecurity. + example: Continuous + dataScannedInBytes: + type: integer + description: "Amount of data scanned in bytes, to run the query." + format: int64 + example: 114086541 + tier: + type: string + description: "Name of the data tier. Supported Values are Continuous, Frequent,\ + \ Infrequent and Flex." + example: Continuous + scanCreditAccounted: + type: boolean + description: | + Whether particular metering type is accounted against a customer's credit on a per scan basis. e.g Data belonging to "Flex" and "Infrequent" metering type is accounted for credits on per scan basis. For other metering types, eg. "Continuous" it's charged upfront during ingestion. + example: false + description: Estimated Usage details for the given log search query with the + above timerange. + LogSearchEstimatedUsageByViewDefinition: + allOf: + - $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV3' + - required: + - estimatedUsageDetails + type: object + properties: + estimatedUsageDetails: + type: array + items: + $ref: '#/components/schemas/EstimatedUsageDetailsPerView' + EstimatedUsageDetailsPerView: + required: + - usageDetails + - viewName + type: object + properties: + viewName: + type: string + description: Name of the view for which usage is estimated. + usageDetails: + type: array + description: The scanning and data retrieval usages to run the query per + view. + items: + $ref: '#/components/schemas/EstimatedUsageDetailsWithMeteringType' + BulkLogSearchEstimatedUsageResponse: + required: + - data + type: object + properties: + data: + type: array + description: Array of estimated usage results corresponding to each input + query. + items: + $ref: '#/components/schemas/BulkLogSearchEstimatedUsageResponseItem' + BulkLogSearchEstimatedUsageResponseItem: + required: + - id + type: object + properties: + id: + type: string + description: Unique identifier matching the request query ID. + example: query-1 + estimatedUsageDetails: + type: array + description: Estimated usage details per metering type. Null if query estimation + failed. + items: + $ref: '#/components/schemas/EstimatedUsageDetailsWithMeteringType' + error: + $ref: '#/components/schemas/ErrorDescription' + BulkLogSearchEstimatedUsageRequest: + required: + - data + - timezone + type: object + properties: + data: + maxItems: 100 + minItems: 1 + type: array + description: Array of log search queries for estimated usage computation. + items: + $ref: '#/components/schemas/BulkLogSearchEstimatedUsageRequestItem' + emulateSearchContext: + $ref: '#/components/schemas/EmulateSearchContext' + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + BulkLogSearchEstimatedUsageRequestItem: + allOf: + - $ref: '#/components/schemas/LogSearchQueryEstimationBaseDefinition' + - required: + - id + type: object + properties: + id: + maxLength: 64 + type: string + description: Unique identifier for the query to correlate request with + response. + example: query-1 + ScheduledSearchEstimatedUsageResponse: + type: object + properties: + scanEstimates: + type: array + description: Scan estimate detail for a particular tier. + items: + $ref: '#/components/schemas/ScanEstimateDetails' + ScanEstimateDetails: + type: object + properties: + tier: + type: string + description: Name of the tier for which usage is estimated. + example: Flex + perScanInBytes: + type: integer + description: "Amount of data scanned in bytes, to run the schedule search\ + \ once." + format: int64 + example: 114086541 + perDayInBytes: + type: integer + description: "Amount of data scanned in bytes, to run the schedule search\ + \ each day." + format: int64 + example: 3140865413 + perYearInBytes: + type: integer + description: "Amount of data scanned in bytes, to run the schedule search\ + \ each year." + format: int64 + example: 51408654155 + ScheduledSearchEstimatedUsageRequest: + required: + - queryString + - scheduleType + - timeRange + - timeZone + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: The text of a logs search query. + example: "error {{sourceCategory}}| count by _sourceCategory" + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + cronSchedule: + type: string + description: "Cron-like expression specifying the search's schedule. Field\ + \ scheduleType must be set to \"Custom\", otherwise, scheduleType takes\ + \ precedence over cronSchedule." + example: 0 0/15 * * * ? * + scheduleType: + pattern: ^(RealTime|15Minutes|1Hour|2Hours|4Hours|6Hours|8Hours|12Hours|1Day|1Week|Custom)$ + type: string + description: |- + Run schedule of the scheduled search. Set to "Custom" to specify the schedule with a CRON expression. Please note that with Custom, 1Day and 1Week schedule types you need to provide the corresponding cron expression to determine when to actually run the search. e.g. Sample Valid Cron for 1Day is "0 0 16 ? * 2-6 *". Possible schedule types are: + - `RealTime` + - `15Minutes` + - `1Hour` + - `2Hours` + - `4Hours` + - `6Hours` + - `8Hours` + - `12Hours` + - `1Day` + - `1Week` + - `Custom` + x-pattern-message: "must be one of the following: `RealTime`, `15Minutes`,\ + \ `1Hour`, `2Hours`, `4Hours`, `6Hours`, `8Hours`, `12Hours`, `1Day`,\ + \ `1Week`, `Custom`" + byReceiptTime: + type: boolean + description: "Set it to true to run the search using receipt time. By default,\ + \ searches do not run by receipt time." + default: false + queryParameters: + type: array + description: An array of search query parameter objects. + items: + $ref: '#/components/schemas/QueryParameterSyncDefinition' + timeZone: + type: string + description: "Time zone identifier for the estimates. Follow the format\ + \ in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + PaginatedDashboards: + required: + - dashboards + type: object + properties: + dashboards: + type: array + description: List of dashboards. + items: + $ref: '#/components/schemas/Dashboard' + next: + type: string + description: Next continuation token. `next` is set to null when no more + pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + Dashboard: + allOf: + - $ref: '#/components/schemas/DashboardRequest' + - type: object + properties: + id: + type: string + description: | + Unique identifier for the dashboard. This id is used to get detailed information about the dashboard, such as panels, variables and the layout. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + contentId: + type: string + description: | + Content identifier for the dashboard. This id is used to connect to the Sumo Content Library and get general metadata about the dashboard. Use this id if you want to search for dashboards in Sumo folders. + example: "1" + scheduleId: + type: string + description: | + Scheduled report identifier for the dashboard. Only most recently modified report schedule is rerun per dashboard. This id is used to manage the schedule details through the scheduled report API. + example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd + scheduleCount: + type: integer + description: Count of report schedules for the dashboard. + format: int32 + example: 10 + DashboardRequest: + required: + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + type: string + description: Title of the dashboard. + example: Kubernetes Dashboard + description: + type: string + description: Description of the dashboard. + example: "A view of pods, namespaces and nodes of your cluster." + folderId: + type: string + description: | + The identifier of the folder to save the dashboard in. By default it is saved in your personal folder. + example: 000000000C1C17C6 + topologyLabelMap: + $ref: '#/components/schemas/TopologyLabelMap' + domain: + type: string + description: "If set denotes that the dashboard concerns a given domain\ + \ (e.g. `aws`, `k8s`, `app`)." + example: aws + default: "" + hierarchies: + maxItems: 20 + type: array + description: If set to non-empty array denotes that the dashboard concerns + given hierarchies. + example: + - Kubernetes Node View + items: + type: string + default: [] + refreshInterval: + type: integer + description: | + Interval of time (in seconds) to automatically refresh the dashboard. A value of 0 means we never automatically refresh the dashboard. Allowed values are `0`, `30`, `60`, `120`, `300`, `900`, `1800`, `3600`, `7200`, `86400`. + format: int32 + example: 30 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + panels: + type: array + description: Panels in the dashboard. + items: + $ref: '#/components/schemas/Panel' + layout: + $ref: '#/components/schemas/Layout' + variables: + type: array + description: Variables to apply to the panels. + items: + $ref: '#/components/schemas/Variable' + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the dashboard. Either `Light` or `Dark`. + example: light + default: Light + x-pattern-message: "Must be `Light`, or `Dark`" + isPublic: + type: boolean + description: Is the dashboard public + default: false + highlightViolations: + type: boolean + description: Whether to highlight threshold violations. + default: false + organizations: + $ref: '#/components/schemas/Organizations' + Organizations: + type: object + properties: + defaultOrgIds: + type: array + description: The default list of organization IDs to run the dashboard by + items: + $ref: '#/components/schemas/OrgId' + description: The organization details to run the dashboard by + OrgId: + maxLength: 23 + minLength: 19 + type: string + description: The unique identifier of an organization. It consists of the deployment + ID and the hexadecimal account ID separated by a dash `-` character. + example: us2-00000000FF42A0C3 + PublicDashboard: + allOf: + - $ref: '#/components/schemas/Dashboard' + - type: object + properties: + dashboardPolicy: + $ref: '#/components/schemas/DashboardPolicy' + DashboardPolicy: + type: object + properties: + dashboardAutoRefresh: + type: object + properties: + minRefreshInterval: + type: integer + format: int32 + example: 30 + description: Dashboard Auto-Refresh policy settings. + dashboardAutoRun: + type: object + properties: + enabled: + type: boolean + example: true + description: Dashboard Auto-Run policy settings. + description: dashboard policy settings. + DashboardMigrationRequest: + required: + - contentIds + type: object + properties: + contentIds: + maxItems: 50 + type: array + description: Content identifiers of the Legacy dashboards. + items: + type: string + description: Content identifier of the Legacy dashboard. + example: 00000000000001C8 + MigrationPreviewResponse: + required: + - count + type: object + properties: + count: + type: integer + description: Count of dashboards to be migrated. + example: 5 + description: Preview of the dashboard migration. + DashboardMigrationResult: + required: + - data + - status + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: | + A mapping of Legacy Dashboard Content Ids to migrated Dashboard(New) Content Ids. Only successful migration are shown here, see errors field for failed migrations and the failure reason. + example: + "1": 64 + richData: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MigratedDashboardInfo' + description: | + A mapping of Legacy Dashboard Content Ids to migrated Dashboard(New) info. Only successful migration are shown here, see errors field for failed migrations and the failure reason. + status: + $ref: '#/components/schemas/DashboardMigrationStatus' + errors: + maxProperties: 1000 + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/ErrorDescription' + description: A mapping of Legacy Dashboards Content Identifiers that failed + validation to the failure reason(s). + warnings: + maxProperties: 1000 + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/ErrorDescription' + description: A mapping of Legacy Dashboards Content Identifiers to warnings. + MigratedDashboardInfo: + required: + - id + - name + type: object + properties: + id: + type: string + description: The id of the Dashboard(New) + example: jgiJLiFP9dX6YdNG0u9t0yqUVOF0iIlNcX0usw2Uy6g8BYTgBj0vYVeiRjRj + name: + type: string + description: The name of the Dashboard(New) + example: New Dashboard + DashboardMigrationStatus: + required: + - failedCount + - successCount + - totalCount + type: object + properties: + successCount: + type: integer + description: A successful migration to Dashboard(New). + example: 3 + failedCount: + type: integer + description: A failed migration to Dashboard(New). + example: 1 + totalCount: + type: integer + description: The total number of Legacy Dashboards to migrate. + example: 10 + PaginatedReportSchedules: + required: + - reportSchedules + type: object + properties: + reportSchedules: + type: array + description: List of dashboard report schedules. + items: + $ref: '#/components/schemas/ReportSchedule' + next: + type: string + description: Next continuation token. `token` is set to null when no more + pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + ReportSchedule: + allOf: + - $ref: '#/components/schemas/ReportScheduleRequest' + - type: object + properties: + scheduleId: + type: string + description: Identifier of the dashboard report schedule. + example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd + ReportScheduleRequest: + required: + - dashboardId + - emailNotification + - reportFormat + - scheduleType + - timeZone + type: object + properties: + dashboardId: + type: string + description: Identifier of dashboard the schedule will generate report for. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + variableValues: + $ref: '#/components/schemas/VariablesValuesData' + reportFormat: + pattern: ^(Pdf|Png)$ + type: string + description: File format of the report. Can be `Pdf` or `Png`. `Pdf` is + portable document format. `Png` is portable graphics image format. + example: Pdf + x-pattern-message: "should be one of the following: 'Pdf', 'Png'" + scheduleType: + type: string + description: |- + Run schedule of the scheduled report. Set to "Custom" to specify the schedule with a CRON expression. Possible schedule types are: + - `RealTime` + - `15Minutes` + - `1Hour` + - `2Hours` + - `4Hours` + - `6Hours` + - `8Hours` + - `12Hours` + - `1Day` + - `1Week` + - `Custom` + example: 1Day + cronExpression: + type: string + description: "Cron-like expression specifying the report's schedule. Field\ + \ scheduleType must be set to \"Custom\", otherwise, scheduleType takes\ + \ precedence over cronExpression." + example: 0 0/15 * * * ? * + timeZone: + maxLength: 1024 + minLength: 1 + type: string + description: "Time zone identifier for time specification. Either an abbreviation\ + \ such as \"PST\", a full name such as \"America/Los_Angeles\", or a custom\ + \ ID such as \"GMT-8:00\". Note that the support of abbreviations is for\ + \ JDK 1.1.x compatibility only and full names should be used." + example: America/Los_Angeles + emailNotification: + $ref: '#/components/schemas/Email' + isActive: + type: boolean + description: Is the dashboard report schedule active + default: true + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: "Theme for the report rendering. Must be `Light` or `Dark`.\ + \ If absent, the dashboard's own theme is used." + example: Light + x-pattern-message: "Must be `Light`, `light`, `dark` or `Dark`" + exportWidth: + maximum: 6000 + minimum: 1500 + type: integer + description: "Pixel width of the exported PDF or PNG. If absent, the default\ + \ width is used." + example: 1500 + PaginatedMetricsSearches: + required: + - metricsSearches + type: object + properties: + metricsSearches: + type: array + description: List of metrics search pages. + items: + $ref: '#/components/schemas/MetricsSearchResponse' + next: + type: string + description: Next continuation token. `token` is set to null when no more + pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + MetricsSearchResponse: + allOf: + - $ref: '#/components/schemas/MetricsSearchRequest' + - type: object + properties: + id: + type: string + description: Unique identifier for the metrics search page. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + MetricsSearchRequest: + allOf: + - $ref: '#/components/schemas/MetricsSearch' + - type: object + properties: + folderId: + type: string + description: | + The identifier of the folder to save the metrics search in. By default it is saved in your personal folder. + example: 000000000C1C17C6 + MetricsSearch: + required: + - queries + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^\s*\S.*$ + type: string + description: Title of the metrics search page. + x-pattern-message: must contain at least 1 non-whitespace character + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: + type: string + description: Description of the metrics search page. + queries: + type: array + description: Queries of the metrics search page. + items: + $ref: '#/components/schemas/Query' + visualSettings: + type: string + description: Visual settings of the metrics search page. + MonitorUsageInfo: + type: array + description: The usage info of logs and metrics monitors. + items: + $ref: '#/components/schemas/MonitorUsage' + MonitorUsage: + properties: + monitorType: + type: string + description: The type of monitor usage info (Logs or Metrics). + example: Logs + enum: + - Logs + - Metrics + usage: + type: integer + description: Current number of active Logs/Metrics monitors. + example: 100 + limit: + type: integer + description: The limit of active Logs/Metrics monitors. + example: 100 + total: + type: integer + description: The total number of monitors created. (Including both active + and disabled Logs/Metrics monitors) + example: 100 + description: The usage info of monitors. + QueriesParametersResult: + type: object + properties: + isValid: + type: boolean + description: Whether or not if queries are valid. + example: false + errors: + type: array + description: Error messages from validation. + example: + - "Field fieldName not found, please check the spelling and try again." + items: + type: string + default: [] + logsOutlier: + $ref: '#/components/schemas/LogsOutlier' + metricsOutlier: + $ref: '#/components/schemas/MetricsOutlier' + description: Queries validation and extracted parameters result. + LogsOutlier: + type: object + properties: + trimmedQuery: + type: string + description: The query string after trimming out the outlier clause. + example: _sourceCategory=search error | timeslice 1m | count by _timeslice + window: + type: integer + description: Sets the trailing number of data points to calculate mean and + sigma. + format: int64 + example: 15 + default: 10 + consecutive: + type: integer + description: Sets the required number of consecutive indicator data points + (outliers) to trigger a violation. + format: int64 + example: 3 + default: 1 + direction: + $ref: '#/components/schemas/OutlierDirection' + threshold: + type: number + description: Sets the number of standard deviations for calculating violations. + format: double + example: 10.0 + default: 3.0 + field: + type: string + description: The name of the field that the trigger condition will alert + on. + example: _count + description: The parameters extracted from the logs outlier query. + OutlierDirection: + type: string + description: |- + Specifies which direction should trigger violations. Valid values: + 1. `Both`: Both positive and negative deviations + 2. `Up`: Positive deviations only + 3. `Down`: Negative deviations only + example: "Up" pattern: "^(Both|Up|Down)$" default: "Both" x-pattern-message: "should be one of the following: 'Both', 'Up', 'Down'" + MetricsOutlier: + type: object + properties: + trimmedQuery: + type: string + description: The query string after trimming out the outlier clause. + example: _sourceHost=prod-search-1 metric=CPU_User + baselineWindow: + type: string + description: The time range used to compute the baseline. + example: 10m + default: 5m + baselineTimeRangeWindow: + $ref: '#/components/schemas/ResolvableTimeRange' + direction: + $ref: '#/components/schemas/OutlierDirection' + threshold: + type: number + description: How much should the indicator be different from the baseline + for each datapoint. + format: double + example: 10.0 + default: 3.0 + description: The parameters extracted from the metrics outlier query. + MonitorQueries: + required: + - monitorType + - queries + - timeRange + type: object + properties: + monitorType: + pattern: ^(Logs|Metrics)$ + type: string + description: |- + The type of monitor. Valid values: + 1. `Logs`: A logs query monitor. + 2. `Metrics`: A metrics query monitor. + example: Logs + x-pattern-message: should be either 'Logs' or 'Metrics' + timeRange: + type: string + description: "The relative time range of the monitor. Valid values of time\ + \ ranges are `5m`, `10m`, `15m`, `30m`, `1h`, `3h`, `6h`, `12h`, or `24h`." + example: 15m + queries: + type: array + description: Queries to be validated. + items: + $ref: '#/components/schemas/UnvalidatedMonitorQuery' + description: Queries to be validated. + UnvalidatedMonitorQuery: + required: + - query + - rowId + type: object + properties: + rowId: + type: string + description: "The unique identifier of the row. Defaults to sequential capital\ + \ letters, `A`, `B`, `C`, etc." + example: A + query: + type: string + description: The logs or metrics query that defines the stream of data the + monitor runs on. + example: "_sourceCategory=search error | timeslice 1m | count by _timeslice\ + \ | outlier _count window=5,threshold=3,consecutive=2,direction=+" + description: A search query. + SeriesData: + required: + - dataPoints + - name + - seriesAxisRange + type: object + properties: + name: + type: string + description: Name of the series. + example: monitor-manager-cpu-1 + dataPoints: + type: array + description: Data points of the series. + items: + $ref: '#/components/schemas/DataPoint' + seriesAxisRange: + $ref: '#/components/schemas/SeriesAxisRange' + aggregateInfo: + $ref: '#/components/schemas/VisualAggregateData' + seriesMetadata: + $ref: '#/components/schemas/SeriesMetadata' + description: The data for visualizing monitor chart. + DataPoint: + type: object + properties: + dataPointType: + pattern: ^(OutlierSeriesData|StaticSeriesData)$ + type: string + description: Type of the data point. + example: OutlierSeriesData + description: Data for visualizing monitor chart. + discriminator: + propertyName: dataPointType + mapping: + OutlierSeriesData: '#/components/schemas/OutlierSeriesDataPoint' + StaticSeriesData: '#/components/schemas/StaticSeriesDataPoint' + OutlierDataValue: + type: object + properties: + baseline: + $ref: '#/components/schemas/OutlierBound' + critical: + $ref: '#/components/schemas/OutlierBound' + warning: + $ref: '#/components/schemas/OutlierBound' + value: + type: number + description: The value of outlier data point. + format: double + example: 70.0 + violation: + pattern: ^(CriticalUpperViolation|CriticalLowerViolation|WarningUpperViolation|WarningLowerViolation|NoViolation)$ + type: string + description: The type of violation. + example: CriticalUpperViolation + x-pattern-message: "should be one of the following: 'CriticalUpperViolation',\ + \ 'CriticalLowerViolation', 'WarningUpperViolation', 'WarningLowerViolation',\ + \ 'NoViolation'" + description: Data value and bounds of outlier data point. + OutlierBound: + type: object + properties: + lower: + type: number + description: Lower bond value. + format: double + example: 50.0 + upper: + type: number + description: Upper bond value. + format: double + example: 100.0 + description: The upper and lower bound of outlier/baseline. + SeriesAxisRange: + type: object + properties: + x: + $ref: '#/components/schemas/AxisRange' + "y": + $ref: '#/components/schemas/AxisRange' + description: The axis limitation for chart data. + AxisRange: + type: object + properties: + min: + type: integer + description: minimum limit of x or y axis. + format: int64 + example: 50 + max: + type: integer + description: maximum limit of x or y axis. + format: int64 + example: 100 + description: "The min and max of the x,y axis of the monitor chart." + SeriesMetadata: + type: object + properties: + rowId: + type: string + description: Row ID of the query this time series belongs to. + example: A + dimensions: + type: array + description: Dimensions for the time series. + items: + $ref: '#/components/schemas/DimensionKeyValue' + description: The metadata of time series for chart. + DimensionKeyValue: + type: object + properties: + key: + type: string + description: The key of the metric dimension. + example: region + value: + type: string + description: The value of the metric dimension. + example: us-east-1 + description: The key and value pair for each metric dimension. + MonitorQuery: + required: + - query + - rowId + type: object + properties: + rowId: + type: string + description: "The unique identifier of the row. Defaults to sequential capital\ + \ letters, `A`, `B`, `C`, etc." + example: A + query: + type: string + description: The logs or metrics query that defines the stream of data the + monitor runs on. + example: _sourceCategory=search error + description: A search query. + LogSearchQuery: + required: + - queryString + type: object + properties: + queryString: + type: string + description: Query string for which to get log fields. + example: _sourceCategory=service + description: Query for which to get log fields. + GroupFieldsResponse: + required: + - groupFields + - isQueryAggregate + type: object + properties: + groupFields: + type: array + description: List of group fields + items: + type: string + isQueryAggregate: + type: boolean + description: Whether or not the queries are aggregate. + example: false + default: false + description: Group fields for the monitor + GroupFieldsRequest: + required: + - monitorType + - queries + type: object + properties: + queries: + uniqueItems: true + type: array + description: All queries from the monitor. + items: + $ref: '#/components/schemas/MonitorQuery' + monitorType: + pattern: ^(Logs|Metrics)$ + type: string + description: |- + The type of monitor. Valid values: + 1. `Logs`: A logs query monitor. + 2. `Metrics`: A metrics query monitor. + example: Logs + description: Monitor type and queries + DisableMonitorResponse: + type: object + properties: + monitors: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MonitorsLibraryMonitorResponse' + description: A map between an identifier and its monitor. + warnings: + type: array + description: Warnings from the operation. + items: + $ref: '#/components/schemas/DisableMonitorWarning' + description: Response for disabling monitors. + DisableMonitorWarning: + type: object + properties: + code: + type: string + description: A code for the warning message. + example: content:not_found + message: + type: string + description: A short message with details about the warning. + example: Monitor id=0000000000000001 not found. + description: Warning object from the operation providing details such as when + a given monitor to disable does not exist. + MonitorSubscriptionsListResponse: + required: + - exhaustive + - subscriptions + type: object + properties: + subscriptions: + type: array + description: List of existing subscriptions. + items: + $ref: '#/components/schemas/MonitorSubscription' + exhaustive: + type: boolean + description: "If true, the list contains all existing subscriptions." + example: true + description: List of existing subscriptions. + MonitorSubscription: + type: object + properties: + targetId: + type: string + description: The id of the subscription target. It can be either a monitor + or a folder id. + example: 000000000000676F + description: The monitor subscription. Alerts can be filtered by a monitor subscription + status. + MonitorSubscriptionsTargetsInput: + maxItems: 100 + minItems: 1 + type: array + description: Input array with ids of monitors or monitor folders. + items: + type: string + MonitorSubscriptionsStatus: + required: + - status + - targetId + type: object + properties: + targetId: + type: string + description: Id of the subscription target. + example: 000000000000676F + status: + pattern: ^(Subscribed|SubscribedByAncestor|NotSubscribed)$ + type: string + description: Status of the subscription. + example: Subscribed + x-pattern-message: "should be one of the following: 'Subscribed', 'SubscribedByAncestor',\ + \ 'NotSubscribed'" + description: Subscription status of the element. + MutingInformationResponse: + required: + - isMuted + type: object + properties: + id: + type: string + description: Identifier of the monitor. + example: "0000000000000001" + isMuted: + type: boolean + description: Flag to indicate the monitor muted or not. + example: true + default: false + mutingEndTime: + type: integer + description: Timestamp in Epoch that this monitor is currently muted until. + format: int64 + example: 1678084636 + mutingSchedules: + type: array + description: Array of muting schedules that this monitor is associated with. + items: + $ref: '#/components/schemas/MutingScheduleResponse' + adhocMuting: + $ref: '#/components/schemas/AdhocMutingResponse' + description: Muting information fields for the monitor. + MutingScheduleResponse: + required: + - id + type: object + properties: + id: + type: string + description: Id of the muting schedule in hex. + example: 000000000000676F + description: Muting information fields for the monitor. + AdhocMutingResponse: + required: + - startTime + type: object + properties: + startTime: + type: integer + description: Start time of adhoc muting period in Epoch. + format: int64 + example: 1678118000 + endTime: + type: integer + description: "End time of the adhoc muting period in Epoch.If muting indefinitely,\ + \ this will be empty." + format: int64 + example: 1678118025 + description: Muting information fields for the monitor. + IdToMutingInformationResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MutingInformationResponse' + DataPointCount: + required: + - count + type: object + properties: + count: + type: integer + description: The number of data points + format: int32 + example: 20 + description: The number of anomaly data points in the monitor window. + AnomalyDataPointsCountRequest: + required: + - queries + - relativeTimeRange + type: object + properties: + relativeTimeRange: + type: string + description: "The relative time range of the monitor. Valid values of time\ + \ ranges are `-5m`, `-10m`, `-15m`, `-30m`, `-1h`, `-3h`, `-6h`, `-12h`,\ + \ or `-24h`." + example: -15m + queries: + uniqueItems: true + type: array + description: All queries from the monitor. + items: + $ref: '#/components/schemas/MonitorQuery' + monitorType: + pattern: ^(Logs|Metrics)$ + type: string + description: The type of anomaly monitor (Logs or Metrics). + default: Logs + x-pattern-message: should be either 'Logs' or 'Metrics' + description: Monitor query and time range to calculate the number of data points. + MonitorGroupInfo: + type: object + properties: + keys: + type: array + description: The monitor group keys. + example: + - _host + - _sourceCategory + items: + type: string + description: The monitor group key info for all monitors. + MonitorScanEstimatesResponse: + type: object + properties: + scanEstimates: + type: array + description: array of scan estimates + items: + $ref: '#/components/schemas/TierEstimate' + description: Monitor scan estimates + TierEstimate: + type: object + properties: + tier: + type: string + description: Name of the data tier + example: Flex + perScanInBytes: + type: integer + description: estimate data scanned per monitor scan in bytes + format: int64 + perDayInBytes: + type: integer + description: estimate data scanned per day in bytes + format: int64 + perYearInBytes: + type: integer + description: estimate data scanned per year in bytes + format: int64 + trainingScanInBytes: + type: integer + description: one-time scan for log anomaly monitor + format: int64 + description: estimate for a tier + MonitorScanEstimatesRequest: + required: + - query + - timezone + - triggers + type: object + properties: + query: + maxLength: 15000 + type: string + description: The logs query that defines the stream of data the monitor + runs on. + example: _sourceCategory=remix + triggers: + type: array + description: Defines the conditions of when to send notifications. + items: + $ref: '#/components/schemas/TriggerCondition' + timezone: + type: string + description: "Time zone for the monitor [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + description: Request object to get monitor scan estimates + MonitorPlaybooksList: + type: array + description: The list of monitor playbooks. + items: + $ref: '#/components/schemas/MonitorPlaybook' + MonitorPlaybook: + required: + - description + - name + - playbookId + - type + - versionId + type: object + properties: + description: + type: string + description: The description of the monitor playbook. + example:

30 Seconds API Will Take To Respond

+ playbookId: + type: string + description: The id of the playbook. + example: "1" + name: + type: string + description: The name of the playbook. + example: Test + versionId: + type: string + description: The version id of the playbook. + example: "1" + type: + type: string + description: The type of the playbook. + example: Analytics + description: The single monitor playbook. + MonitorContentSyncDefinition: + required: + - name + - type + type: object + properties: + type: + type: string + description: "The type of the item. Valid values are `MonitorFolderDefinition`,\ + \ `MonitorWithDependenciesDefinition`." + name: + type: string + description: The name of the item. + discriminator: + propertyName: type + NextInstancesResponse: + type: object + properties: + nextInstances: + type: array + description: list of next instances in epoch + items: + type: integer + description: epoch in millisecond + format: int64 + example: 1689119100000 + NextInstancesRequest: + required: + - rrule + - startDate + - startTime + - timezone + type: object + properties: + timezone: + type: string + description: "Time zone for the schedule per [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + startDate: + type: string + description: Schedule start date in the format of `yyyy-mm-dd` + startTime: + type: string + description: Schedule start time in the format of `hh:mm` + rrule: + type: string + description: RRule (Recurrence Rule) + ListAlertsLibraryAlertResponse: + type: array + description: List of Alerts. + items: + $ref: '#/components/schemas/AlertsLibraryAlertResponse' + RelatedAlertsLibraryAlertResponse: + type: object + properties: + data: + type: array + description: All alerts related to the given alert and their relationship + tags. + items: + $ref: '#/components/schemas/RelatedAlert' + description: List of related Alerts. + RelatedAlert: + type: object + properties: + alert: + $ref: '#/components/schemas/AlertsLibraryAlertResponse' + relations: + type: array + description: Tags describing the relationship between the two alerts. + items: + $ref: '#/components/schemas/RelationTypeTag' + description: An alert and how it is related to the given alert + RelationTypeTag: + pattern: ^(Time|Entity)$ + type: string + description: |- + The nature of the relationship between alerts. Valid values: + 1. `Time`: Alerts are related by their time of creation. + 2. `Entity`: Alerts are related by the entities linked to their queries. + example: Time + x-pattern-message: should be either 'Time' or 'Entity' + AlertsListPageResponse: + type: object + properties: + data: + type: array + description: List of alerts summaries. + items: + $ref: '#/components/schemas/AlertsListPageObject' + description: List of Alert list page objects. + AlertsListPageObject: + type: object + properties: + id: + type: string + description: Identifier of the alert. + example: 000000000000000A + name: + type: string + description: Name of the alert. + example: CPU Total above 90 + severity: + pattern: ^(Critical|Warning|MissingData)$ + type: string + description: |- + The severity of the Alert. Valid values: + 1. `Critical` + 2. `Warning` + 3. `MissingData` + example: Warning + x-pattern-message: "should be either 'Critical', 'Warning' or 'MissingData'" + status: + pattern: ^(Active|Resolved)$ + type: string + description: |- + The status of the Alert. Valid values: + 1. `Active` + 2. `Resolved` + example: Active + x-pattern-message: should be either 'Active' or 'Resolved' + entitiesInfo: + type: array + description: | + List of AlertEntityInfo for primary entities. The primary entity is the most concrete entity (e.g. k8s container) that can be assigned per time series or log group, secondary entities are the less specific ones (e.g. k8s cluster or EC2 host). + items: + $ref: '#/components/schemas/AlertEntityInfo' + secondaryEntitiesInfo: + type: array + description: | + List of secondary AlertEntityInfo for primary entities. Primary/secondary entities are explained in description for `entitiesInfo`. + items: + $ref: '#/components/schemas/AlertEntityInfo' + violationCount: + type: string + description: The number of unique result groups that have met the alert + condition. + example: "2" + lastViolation: + type: string + description: The condition from the last alert violation. + example: greater than 90.0 for all of the last 5 minutes + duration: + type: string + description: The current duration of the alert. + example: 2 hours + createdAt: + type: string + description: The creation time of the alert. + example: "11:11 AM August 25, 2021" + lastUpdated: + type: string + description: The time when this alert was updated with the most recent violation. + example: "1:11 PM August 25, 2021" + isMuted: + type: boolean + description: True if the ARP was created while the monitor was muted + example: true + default: false + description: Alert list page object. + AlertChartDataResult: + required: + - metadata + - series + type: object + properties: + series: + type: array + description: List of time series of the alert chart data. + items: + $ref: '#/components/schemas/SeriesData' + metadata: + $ref: '#/components/schemas/AlertChartMetadata' + description: Response for alert response chart data visualization. + AlertChartMetadata: + type: object + properties: + abnormalityStartTime: + type: integer + description: The time stamp at which abnomarlity started. + format: int64 + example: 1630017549842 + abnormalityEndTime: + type: integer + description: The time stamp at which abnomarlity ended. + format: int64 + example: 1630017549842 + evaluationDelay: + type: integer + description: The delay duration for evaluating the monitor (relative to + current time). The timerange of monitor will be shifted in the past by + this delay time. + format: int64 + example: 1630017549842 + alertCreatedAt: + type: integer + description: The time stamp at which the alert response page is created. + format: int64 + example: 1630017549842 + alertResolvedAt: + type: integer + description: The time stamp at which the alert response page is resolved. + format: int64 + example: 1630017549842 + description: The metadata timestamps of alert chart data + InvestigationResponse: + required: + - alertId + - status + type: object + properties: + alertId: + type: string + description: Identifier of the alert. + example: 0000000000524D30 + status: + type: string + description: Lifecycle state of the investigation. + example: COMPLETED + confidence: + type: string + description: Confidence in the root cause. Non-null only when `status` is + `COMPLETED`. + nullable: true + example: MEDIUM + investigationDetails: + type: string + description: Investigation output produced by the agent. Null until `status` + is `COMPLETED`. + nullable: true + conversationId: + type: string + description: Identifier of the conversation the agent ran in. + nullable: true + example: "0000000000003039" + investigationStartedAt: + type: integer + description: Epoch milliseconds when the investigation conversation started. + Null if no conversation exists. + format: int64 + nullable: true + example: 1630017549842 + investigationFinishedAt: + type: integer + description: Epoch milliseconds when the investigation completed. Null if + the investigation is not yet completed. + format: int64 + nullable: true + example: 1630017649842 + description: Investigation state for an alert. + ActiveCount: + type: integer + description: The number of currently active alerts. + format: int32 + example: 205 + PlaybookExecutionResponse: + type: object + properties: + runningId: + type: string + description: The id of the playbook which is running. + playbookExecutedId: + type: string + description: The id of the playbook when it is executed. + description: The response for executing the playbook. + PlaybookExecutionParameters: + required: + - alertId + - playbookId + type: object + properties: + playbookId: + type: string + description: The id of the playbook which needs to run. + example: "1" + alertId: + type: string + description: The alert id which needs to run the playbook. + description: The parameters for executing the playbook. + PlaybookRunningResultList: + type: array + items: + $ref: '#/components/schemas/PlaybookRunningResult' + PlaybookRunningResult: + required: + - id + - isChild + - name + - playbookId + - status + - statusCode + type: object + properties: + startDate: + type: string + description: The running start date time of the playbook. + format: date-time + example: 2018-10-16T09:10:00Z + endDate: + type: string + description: The running end date time of the playbook. + format: date-time + example: 2018-10-16T09:10:00Z + id: + type: string + description: The id of the playbook running. + playbookId: + type: string + description: The id of the playbook. + isChild: + type: boolean + description: The isChild of other playbook. + default: false + name: + type: string + description: The name of the playbook running. + status: + type: string + description: The status of the playbook running. + statusCode: + type: integer + description: The status code of the playbook running. + format: int32 + example: 200 + PlaybookRunningListRequest: + required: + - alertId + type: object + properties: + alertId: + type: string + description: The alert id. + example: "0000000000000001" + description: The request parameters for getting all running playbooks' status. + CompliancePeriodRef: + required: + - complianceRefType + type: object + properties: + complianceRefType: + pattern: ^(Relative)$ + type: string + description: Type of reference to the compliance period. Must be `Relative`. + example: Relative + x-pattern-message: Must be `Relative` + relativeShift: + type: integer + description: Relative shift of compliance period from the latest/current + compliance period. + example: -1 + description: Reference to the compliance period of the SLO. + DashboardSearchResult: + required: + - axes + - series + - status + type: object + properties: + status: + $ref: '#/components/schemas/DashboardSearchStatus' + axes: + $ref: '#/components/schemas/VisualDataAxes' + series: + type: array + description: The series returned from a search. + items: + $ref: '#/components/schemas/VisualDataSeries' + errors: + type: array + description: Errors returned by backend. + items: + $ref: '#/components/schemas/ErrorDescription' + timeRange: + $ref: '#/components/schemas/BeginBoundedTimeRange' + requestToken: + type: string + description: A user-generated string to uniquely identify the search request. + This field can be safely ignored if you don't intend to identify a search + request. + fieldOrdering: + type: array + description: | + The expected ordering of the column fields in tabular format. If null or empty, the ordering is unknown or indeterminate. + example: + - _timeslice + - _sourceHost + items: + type: string + infrequentScannedBytes: + type: number + description: The total number of scanned bytes from infrequent tier data + for the query in bytes. + format: int64 + example: 350000 + scannedBytes: + $ref: '#/components/schemas/ScannedBytes' + backfillPercent: + type: number + description: The backfill percentage of a continuous query. + format: float + DashboardSearchStatus: + required: + - state + type: object + properties: + state: + type: string + description: Current state of the search. + percentCompleted: + maximum: 100 + minimum: 0 + type: integer + description: Percentage of search completed. + format: int32 + VisualDataAxes: + required: + - x + - "y" + type: object + properties: + x: + type: array + description: The data of the primary x axis. + items: + $ref: '#/components/schemas/VisualAxisData' + "y": + type: array + description: The data of the primary y axis. + items: + $ref: '#/components/schemas/VisualAxisData' + x2: + type: array + description: The data of the secondary x axis. + items: + $ref: '#/components/schemas/VisualAxisData' + y2: + type: array + description: The data of the secondary y axis. + items: + $ref: '#/components/schemas/VisualAxisData' + VisualAxisData: + type: object + properties: + index: + type: integer + description: The value of the axis labels. + format: int32 + example: 0 + VisualDataSeries: + required: + - dataPoints + - name + - queryId + type: object + properties: + queryId: + type: string + description: The id of the query. + example: A + name: + type: string + description: | + The meaning of 'name' depends on the series type. + - For results of type 'timeseries', it is the value of the 'metric' key. + - For results of type 'nontimeseries', it is the name of one of the fields that is not part of 'xAxisKeys'. + - For results of type 'table', it is the comma-separated string of names of all fields. + example: max(Disk_Used) + dataPoints: + type: array + description: A list of data points in the visual series. + items: + $ref: '#/components/schemas/VisualPointData' + aggregateInfo: + $ref: '#/components/schemas/VisualAggregateData' + metaData: + $ref: '#/components/schemas/VisualMetaData' + seriesType: + pattern: ^(timeseries|nontimeseries|table)$|^$ + type: string + description: Type of the visual series. + example: timeseries + xAxisKeys: + type: array + description: Keys that will be plotted as a point on the x axis. + example: + - _sourceCategory + - _sourceHost + items: + type: string + valueType: + type: string + description: Value that represents if the series values are String or Double + example: Double + source: + pattern: ^(Logs|Metrics)$|^$ + type: string + description: Source of the visual series. + example: Logs + xAxisKeyTypes: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Keys that will be plotted as a point on the x axis and their + data type + example: + _sourceCategory: String + default: {} + queryInfo: + $ref: '#/components/schemas/MetricsQueryResultInfo' + VisualPointData: + required: + - "y" + type: object + properties: + x: + type: number + description: Value that represents a point on the x axis. + format: double + example: 1.0 + "y": + type: string + description: Value that represents a point on the y axis. + example: "12.3" + isFilled: + type: boolean + description: Whether the field is interpolated or extrapolated - not derived + from underlying data. + example: false + default: false + xAxisValues: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Values that represents a point on the x axis. + example: + _sourceCategory: collector + _collector: stag-index-7 + default: {} + outlierData: + $ref: '#/components/schemas/VisualOutlierData' + VisualOutlierData: + required: + - baseline + - isOutlier + - lowerBound + - unit + - upperBound + type: object + properties: + baseline: + type: number + description: The estimated value of the data point. + format: double + example: 1.2 + unit: + type: number + description: The variation in the estimated value of the data point. + format: double + example: 5.6 + lowerBound: + type: number + description: The lower bound of the outlier band + format: double + example: 5.3 + upperBound: + type: number + description: The upper bound of the outlier band + format: double + example: 6.3 + isOutlier: + type: boolean + description: Indicates if the data point is outlier or not. + example: false + VisualAggregateData: + required: + - avg + - latest + - max + - min + - sum + type: object + properties: + max: + type: number + description: The maximum value in the series. + format: double + example: 10.0 + min: + type: number + description: The minimum value in the series. + format: double + example: 1.2 + avg: + type: number + description: The average value in the series. + format: double + example: 5.6 + sum: + type: number + description: The sum of all the values in the series. + format: double + example: 123.4 + latest: + type: number + description: The last value in the series. + format: double + example: 23.4 + count: + type: number + description: The number of values in the series. + format: double + example: 600 + VisualMetaData: + required: + - data + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: The value of the metadata. + example: + deployment: dev + cluster: frontend + instance: frontend-12 + default: {} + MetricsQueryResultInfo: + type: object + properties: + rowId: + type: string + description: Metrics Query row id. + resultContext: + $ref: '#/components/schemas/MetricsQueryResultContext' + ScannedBytes: + type: object + properties: + infrequent: + type: integer + description: The total number of scanned bytes from infrequent tier data + for the query in bytes. + format: int64 + example: 350000 + continuous: + type: integer + description: The total number of scanned bytes from continuous tier data + for the query in bytes. + format: int64 + example: 350000 + frequent: + type: integer + description: The total number of scanned bytes from frequent tier data for + the query in bytes. + format: int64 + example: 350000 + security: + type: integer + description: The total number of scanned bytes from security tier data for + the query in bytes. + format: int64 + example: 350000 + tracing: + type: integer + description: The total number of scanned bytes from tracing tier data for + the query in bytes. + format: int64 + example: 350000 + upfront: + type: integer + description: The total number of scanned bytes from upfront tier data for + the query in bytes. + format: int64 + example: 350000 + metered: + type: integer + description: The total number of scanned bytes from metered tier data for + the query in bytes. + format: int64 + example: 350000 + rce: + type: integer + description: The total number of scanned bytes from rce tier data for the + query in bytes. + format: int64 + example: 350000 + flex: + type: integer + description: The total number of scanned bytes from flex tier data for the + query in bytes. + format: int64 + example: 350000 + continuousSecurity: + type: integer + description: The total number of scanned bytes from continuous security + tier data for the query in bytes. + format: int64 + example: 350000 + flexSecurity: + type: integer + description: The total number of scanned bytes from flex security tier data + for the query in bytes. + format: int64 + example: 350000 + flexUpfront: + type: integer + description: The total number of scanned bytes from flex upfront tier data + for the query in bytes. + format: int64 + example: 350000 + flexMetered: + type: integer + description: The total number of scanned bytes from flex metered tier data + for the query in bytes. + format: int64 + example: 350000 + description: | + The total number of scanned bytes from tiered data sources (ex. infrequent, continuous, frequent). See https://help.sumologic.com/docs/manage/partitions-data-tiers/data-tiers/ for a more detailed explaination. + CompliancePeriods: + required: + - periods + - timezone + type: object + properties: + timezone: + type: string + description: "Time zone for the compliance periods as per the [IANA Time\ + \ Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + periods: + type: array + description: List of CompliancePeriodProgress. + items: + $ref: '#/components/schemas/CompliancePeriodProgress' + description: Compliance periods along with SLO data availability progress. + CompliancePeriodProgress: + required: + - endTime + - irrecoverableError + - progress + - relativeReference + - startTime + type: object + properties: + relativeReference: + type: integer + description: Relative shift of compliance period from the latest/current + compliance period. + example: -1 + startTime: + type: string + description: Start time of the compliance period. + format: date-time + example: 2018-10-16T09:10:00Z + endTime: + type: string + description: End time of the compliance period. + format: date-time + example: 2018-10-16T09:10:00Z + progress: + maximum: 100.0 + minimum: 0.0 + type: number + description: SLO data availability progress. + format: double + example: 50.0 + irrecoverableError: + type: boolean + description: Whether a permanent error is encountered and no further progress + is expected. + description: SLO data availability progress of a compliance period. + SliQueriesValidationResult: + type: object + properties: + isValid: + type: boolean + description: Whether or not if queries are valid. + example: false + message: + type: string + description: Message from validation. + example: "Field fieldName not found, please check the spelling and try again." + default: "" + description: Validation result for the SLI queries. + SliQueries: + required: + - queryGroup + - queryType + type: object + properties: + queryGroup: + $ref: '#/components/schemas/SliQueryGroup' + queryType: + pattern: ^(Logs|Metrics)$ + type: string + description: Type of queries for SLI (Logs/Metrics). + example: Logs + x-pattern-message: Must be `Logs` or `Metrics` + evaluationType: + pattern: ^(Window|Request|Monitor)$ + type: string + description: SLI evaluation type. + example: Window + x-pattern-message: Must be `Window` or `Request` or `Monitor` + windowSize: + type: string + description: Size of the SLI aggregation window (valid only for `Window` + evaluation type). + example: 15m + IdToSliStatusMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/SliStatus' + description: Map of SLO identifier to SliStatus object. + SliStatus: + required: + - status + type: object + properties: + status: + pattern: ^(Success|Error|InProgress)$ + type: string + description: Whether the SLI computation is complete / had an error / is + in progress. + example: Success + sliPercentage: + type: number + description: SLI percentage for the compliance period. Available if `status` + is `Success`. + format: double + example: 95.14 + errorBudgetRemainingPercentage: + type: number + description: Percentage of error budget remaining for the compliance period. + Available if `status` is `Success`. + format: double + absoluteErrorBudgetRemaining: + type: string + description: "Formatted string for the absolute error budget remaining (time\ + \ duration for window-based SLIs, request count for request-based SLIs).\ + \ Available if `status` is `Success`." + example: "1h56m, -3h45m, -241.3k req, 1.5k req" + progressPercentage: + type: number + description: SLI computation progress. + format: double + description: "Status of the SLI computation. If the status is successful, also\ + \ contains the SLI value and error budget remaining for the current compliance\ + \ period." + SloUsageInfo: + type: array + description: The usage info of logs and metrics SLOs. + items: + $ref: '#/components/schemas/SloUsage' + SloUsage: + properties: + sliType: + pattern: ^(Logs|Metrics|Monitors)$ + type: string + description: The type of SLO usage info (Logs/Metrics/Monitor based). + example: Logs + x-pattern-message: Either `Logs` or `Metrics` or `Monitors`. + usage: + type: integer + description: Current number of active Logs/Metrics/Monitors SLOs. + example: 100 + limit: + type: integer + description: The limit of active Logs/Metrics/Monitors SLOs. + example: 100 + description: The usage info of SLOs. + SloScanEstimatesResponse: + type: object + properties: + scanEstimates: + type: array + description: Scan estimates by data tier for the SLO configuration. + items: + $ref: '#/components/schemas/TierEstimate_1' + description: SLO scan estimates. + TierEstimate_1: + type: object + properties: + tier: + type: string + description: Name of the data tier + example: Flex + perDayInBytes: + type: integer + description: estimate data scanned per day in bytes + format: int64 + perYearInBytes: + type: integer + description: estimate data scanned per year in bytes + format: int64 + description: estimate for a tier + PasswordPolicy: + type: object + properties: + minLength: + maximum: 128 + minimum: 8 + type: integer + description: The minimum length of the password. + format: int32 + example: 8 + default: 8 + maxLength: + maximum: 128 + minimum: 128 + type: integer + description: The maximum length of the password. (Setting this to any value + other than 128 is no longer supported; this field may be deprecated in + the future.) + format: int32 + example: 128 + default: 128 + mustContainLowercase: + type: boolean + description: If the password must contain lower case characters. + example: true + default: true + mustContainUppercase: + type: boolean + description: If the password must contain upper case characters. + example: true + default: true + mustContainDigits: + type: boolean + description: If the password must contain digits. + example: true + default: true + mustContainSpecialChars: + type: boolean + description: If the password must contain special characters. + example: true + default: true + maxPasswordAgeInDays: + maximum: 365 + minimum: -1 + type: integer + description: Maximum number of days that a password can be used before user + is required to change it. Put -1 if the user should not have to change + their password. + format: int32 + example: 365 + default: 365 + minUniquePasswords: + maximum: 12 + minimum: 4 + type: integer + description: The minimum number of unique new passwords that a user must + use before an old password can be reused. + format: int32 + example: 10 + default: 10 + accountLockoutThreshold: + maximum: 10 + minimum: 3 + type: integer + description: Number of failed login attempts allowed before account is locked-out. + format: int32 + example: 6 + default: 6 + failedLoginResetDurationInMins: + maximum: 10 + minimum: 1 + type: integer + description: The duration of time in minutes that must elapse from the first + failed login attempt after which failed login count is reset to 0. + format: int32 + example: 10 + default: 10 + accountLockoutDurationInMins: + maximum: 120 + minimum: 30 + type: integer + description: The duration of time in minutes that a locked-out account remained + locked before getting unlocked automatically. + format: int32 + example: 30 + default: 30 + requireMfa: + type: boolean + description: "If MFA should be required to log in. By default, this field\ + \ is set to `false`." + example: false + default: false + rememberMfa: + type: boolean + description: If MFA should be remembered on the browser. + example: true + default: true + disallowWeakPasswords: + type: boolean + description: "If weak passwords should be disallowed. By default, this field\ + \ is set to `false`." + example: false + default: false + description: Password Policy + Path: + required: + - path + - pathItems + type: object + properties: + pathItems: + type: array + description: Elements of the path. + items: + $ref: '#/components/schemas/PathItem' + path: + type: string + description: String representation of the path. + PathItem: + required: + - id + - name + type: object + properties: + id: + type: string + description: Identifier of the path element. + name: + type: string + description: Name of the path element. + description: + type: string + description: Description of the path element. + ContentCopyParams: + required: + - parentId + type: object + properties: + parentId: + type: string + description: Identifier of the parent folder to copy to. + name: + type: string + description: Optionally provide a new name. + description: + type: string + description: Optionally provide a new description. + ConfidenceScoreResponse: + required: + - confidenceScore + type: object + properties: + confidenceScore: + type: string + description: List of confidence scores to the CSE Insights. + description: CSE insight confidence score. + CseInsightConfidenceRequest: + required: + - cseInsight + type: object + properties: + cseInsight: + type: string + description: List of CSE Insight Created logs for which the confidence score + should be calculated. + example: "\"[{\\\"timestamp\\\":\\\"1605562085024\\\",\\\"type\\\":\\\"\ + event\\\",\\\"name\\\":\\\"insight_closed\\\",\\\"tenant_hash\\\":\\\"\ + d130a603dea563686c911aa5d3f196881b1e6e7a\\\",\\\"created\\\":1605550459107,\\\ + \"id\\\":\\\"ef444d0e-b1f0-351e-aae6-b608d2a4769c\\\",\\\"insight_threshold\\\ + \":12,\\\"insight_lookback_days\\\":14,\\\"resolution\\\":\\\"Resolved\\\ + \",\\\"source\\\":\\\"RULE\\\",\\\"entity_id\\\":\\\"2254232b-d7b4-567b-b4ce-61466b79e491\\\ + \",\\\"entity_type\\\":\\\"username\\\",\\\"rule_ids\\\":[\\\"MATCH-U00018\\\ + \"],\\\"mitre_tactics\\\":[\\\"Initial Access\\\"],\\\"signals\\\":[{\\\ + \"rule_id\\\":\\\"MATCH-U00018\\\",\\\"mitre_tactic\\\":\\\"Initial Access\\\ + \",\\\"timestamp\\\":\\\"1605549391000\\\",\\\"name_hash\\\":\\\"091d66fc35b6ad361d7525238d37319b06ff0bd5\\\ + \",\\\"severity\\\":5,\\\"vendors\\\":[\\\"Proofpoint\\\"],\\\"products\\\ + \":[\\\"Targeted Attack Protection\\\"],\\\"vendor_products\\\":[\\\"\ + Proofpoint Targeted Attack Protection\\\"],\\\"object_types\\\":[\\\"\ + Email\\\"]}]}]\"" + description: CSE insight JSON object. + PaginatedListEndpoints: + required: + - data + type: object + properties: + data: + type: array + description: An array of endpoints. + items: + $ref: '#/components/schemas/EndpointResponse' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + description: List of open analytics endpoints. + EndpointResponse: + required: + - id + - inputSchema + - name + - outputSchema + - url + properties: + id: + type: string + description: Identifier of endpoint. + example: 00000000000001A5 + name: + type: string + description: Unique name of endpoint. + example: linear_regression + url: + type: string + description: Address of endpoint. + example: http://my-aws-lambda/linear-regression/predict + inputSchema: + type: string + description: Schema of the input table to endpoint. + example: "[]" + outputSchema: + type: string + description: Schema of the output table from endpoint. + example: "[]" + description: Endpoint response object. + EndpointDefinition: + required: + - headers + - inputSchema + - name + - outputSchema + - url + properties: + name: + type: string + description: Unique name of endpoint. + example: linear_regression + url: + type: string + description: Address of endpoint. + example: http://my-aws-lambda/linear-regression/predict + inputSchema: + type: string + description: Schema of the input table to endpoint. + example: "[\"field1\", \"field2\"]" + outputSchema: + type: string + description: Schema of the output table from endpoint. + example: "[\"field1\", \"field2\", \"score\"]" + headers: + type: string + description: HTTP headers for endpoint. + example: "[{\"awsRegion\": \"us-west-2\"}, {\"serviceName\": \"execute-api\"\ + }, {\"accessKey\": \"myAccessKey\"}, {\"secretKey\": \"mySecretKey\"}]" + description: Endpoint creation request object. + SignalsRequest: + required: + - signalContext + - signalTypes + type: object + properties: + signalTypes: + maxItems: 1 + minItems: 1 + type: array + description: | + A list of signal types to compute. Can be `LogFluctuation`, `DimensionalityExplanation`, `GisBenchmark` or `Anomalies` + items: + pattern: ^(LogFluctuation|DimensionalityExplanation|GisBenchmark|Anomalies)$|^$ + type: string + x-pattern-message: "Must be `LogFluctuation`, `DimensionalityExplanation`,\ + \ `GisBenchmark` or `Anomalies`" + signalContext: + $ref: '#/components/schemas/SignalContext' + description: Signal Request object. + SignalContext: + required: + - contextType + type: object + properties: + contextType: + pattern: ^(Alert)$|^$ + type: string + description: Type of context of the request object. + x-pattern-message: Must be `Alert` + discriminator: + propertyName: contextType + mapping: + Alert: '#/components/schemas/AlertSignalContext' + SignalsJobResult: + required: + - isComplete + - signals + - warnings + type: object + properties: + isComplete: + type: boolean + description: Whether the signal computing job finished. + example: true + signals: + type: array + description: Sequence of computed signals. + items: + $ref: '#/components/schemas/SignalsResponse' + warnings: + type: array + description: List of warnings while computing signals. + items: + $ref: '#/components/schemas/WarningDetails' + description: "The job result containing the job status, computed signals and\ + \ any warnings." + SignalsResponse: + required: + - endTime + - openInQueries + - payload + - signalId + - signalType + - startTime + - summary + type: object + properties: + signalType: + pattern: ^(LogFluctuation|DimensionalityExplanation|GisBenchmark|Anomalies)$|^$ + type: string + description: | + The type of the signal to compute. Can be `LogFluctuation`, `DimensionalityExplanation`, `GisBenchmark` or `Anomalies` + x-pattern-message: "Must be `LogFluctuation`, `DimensionalityExplanation`,\ + \ `GisBenchmark` or `Anomalies`" + signalId: + type: string + description: The id for the signal result in hex format. + example: 00000000F5000634 + startTime: + type: string + description: Start time of the signal. + format: date-time + example: 2018-10-16T09:10:00Z + endTime: + type: string + description: End time of the signal. + format: date-time + example: 2018-10-16T09:10:00Z + summary: + type: string + description: Description of the payload. + example: Variation in the logs + payload: + type: string + description: Json string for computed signal. + openInQueries: + type: array + description: Raw data queries for the computed signal. + items: + $ref: '#/components/schemas/OpenInQuery' + description: Signal response object. + OpenInQuery: + required: + - endTime + - query + - startTime + type: object + properties: + query: + $ref: '#/components/schemas/Query' + startTime: + type: string + description: Start time of the query. + format: date-time + example: 2018-10-16T09:10:00Z + endTime: + type: string + description: End time of the query. + format: date-time + example: 2018-10-16T09:10:00Z + description: Raw data query for the computed signal. + WarningDetails: + required: + - code + - detail + - message + type: object + properties: + code: + type: string + description: Warning code. + message: + type: string + description: Warning message. + detail: + type: string + description: Details related to warning. + description: Warning while computing signals. + ListServiceAccountModelsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of service accounts. + items: + $ref: '#/components/schemas/ServiceAccountModel' + ServiceAccountModel: + type: object + allOf: + - $ref: '#/components/schemas/CreateServiceAccountDefinition' + - $ref: '#/components/schemas/MetadataModel' + - required: + - id + properties: + id: + type: string + description: Unique identifier for the service account. + example: 000000000FE20FE2 + isActive: + type: boolean + description: True if the service account is active. + example: true + CreateServiceAccountDefinition: + required: + - email + - name + - roleIds + type: object + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the service account. + example: Service Account + email: + maxLength: 255 + type: string + description: Email address of the service account. + format: email + example: johndoe@acme.com + roleIds: + type: array + description: List of roleIds associated with the service account. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + UpdateServiceAccountDefinition: + type: object + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the service account. + example: Service Account + isActive: + type: boolean + description: This has the value `true` if the service account is active + and `false` if it has been deactivated. + example: true + roleIds: + type: array + description: List of role identifiers associated with the service account. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + email: + maxLength: 255 + type: string + description: New email address of the service account. + format: email + example: johndoe@acme.com + PaginatedListOAuthConsentsResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of OAuth consents. + items: + $ref: '#/components/schemas/OAuthConsent' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + description: List of OAuth consents. + OAuthConsent: + required: + - authorizedAt + - authorizedUser + - clientId + - clientName + - id + - scopes + type: object + properties: + id: + type: string + description: Unique identifier for the consent. + example: 0000000006743FDE + clientId: + type: string + description: The ID of the registered client that was used in granting consent. + example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ + clientName: + type: string + description: The name of the registered client that was used in granting + consent. + example: My OAuth App + authorizedAt: + type: string + description: Timestamp when the consent was authorized in UTC in RFC3339 + format. + format: date-time + example: 2018-10-16T09:10:00Z + authorizedUser: + type: string + description: Identifier of the user who authorized the consent. + example: 0000000006743FDD + lastUsedAt: + type: string + description: Timestamp when the consent was last used to grant an access + token in UTC in RFC3339 format. Null if never used. + format: date-time + example: 2018-10-16T09:10:00Z + scopes: + type: array + description: The scopes that were granted in the consent. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + description: An OAuth consent granted by a user. + ListSCIMUserModelsResponse: + type: object + properties: + totalResults: + type: integer + description: Total number of users that match the filter criteria + example: 100 + startIndex: + minimum: 0 + type: integer + description: The index of the first returned result + format: int32 + example: 0 + default: 0 + itemsPerPage: + type: integer + description: The number of results returned in this page + example: 10 + Resources: + type: array + description: List of SCIM user resources + items: + $ref: '#/components/schemas/SCIMUserModel' + SCIMUserModel: + type: object + allOf: + - $ref: '#/components/schemas/SCIMCreateUserDefinition' + - required: + - id + properties: + id: + type: string + description: Unique SCIM identifier for the user + example: 000000000FE20FE2 + active: + type: boolean + description: True if the user is active + example: true + meta: + $ref: '#/components/schemas/ResourceData' + SCIMCreateUserDefinition: + required: + - emails + - name + - roles + - schemas + - userName + type: object + properties: + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + userName: + maxLength: 64 + type: string + description: Unique identifier for the user (email) + example: jdoe@example.com + name: + $ref: '#/components/schemas/NameInfo' + emails: + type: array + description: Sumo logic accepts only one email address + items: + type: object + properties: + value: + type: string + format: email + example: jdoe@example.com + type: + type: string + example: work + primary: + type: boolean + example: true + default: true + roles: + type: array + description: roles should exactly match with role names within sumologic. + `roles` can be either `Array of strings` or `Array of objects` as shown + in the payload. `primary` always set to 'true' as sumologic doesn't have + a concept of primary/secondary roles + example: + - - role1 + - role2 + - - value: role1 + primary: true + - value: role2 + primary: true + items: {} + NameInfo: + required: + - familyName + - givenName + type: object + properties: + givenName: + type: string + description: Given name of the user (firstName) + example: John + familyName: + type: string + description: Family name of the user (lastName) + example: Doe + ResourceData: + type: object + properties: + resourceType: + type: string + description: The name of the resource type of the resource + example: User + created: + type: string + description: Creation timestamp in date-time format + format: date-time + example: 2024-01-01T12:00:00Z + lastModified: + type: string + description: Last modification timestamp in date-time format + format: date-time + example: 2024-01-01T12:00:00Z + description: Resource meta data of a user + ErrorResponseScim: + required: + - schemas + - status + type: object + properties: + status: + type: integer + description: The HTTP status code. + example: 409 + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + scimType: + type: string + description: A SCIM detail error keyword. + example: uniqueness + detail: + type: string + description: An optional fuller English-language description of the error. + example: "Your password was 5 characters long, the minimum length is 12\ + \ characters. See http://example.com/password for more information." + SCIMUpdateUserDefinition: + required: + - active + - emails + - name + - roles + - schemas + type: object + properties: + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + name: + $ref: '#/components/schemas/NameInfo' + active: + type: boolean + description: Indicates if the user is active + example: true + emails: + type: array + description: Sumo logic accepts only one email address + items: + type: object + properties: + value: + type: string + format: email + example: jdoe@example.com + type: + type: string + example: work + primary: + type: boolean + example: true + default: true + roles: + type: array + description: roles should exactly match with role names within sumologic. + `roles` can be either `Array of strings` or `Array of objects` as shown + in the payload. `primary` always set to 'true' as sumologic doesn't have + a concept of primary/secondary roles + example: + - - role1 + - role2 + - - value: role1 + primary: true + - value: role2 + primary: true + items: {} + SCIMPatchUserDefinition: + required: + - Operations + - schemas + type: object + properties: + schemas: + type: array + description: Defines the SCIM schemas for the patch operation + example: + - urn:ietf:params:scim:api:messages:2.0:PatchOp + items: + type: string + Operations: + type: array + description: Updates one or more attributes of a SCIM resource using a sequence + of operations + items: + type: object + properties: + op: + pattern: (?i)^(replace|add|remove)$ + type: string + description: "Supports 'add', 'replace' and 'remove' operations" + example: replace + x-pattern-message: "`replace`, `add`, `remove`" + path: + type: string + description: Attribute path to modify + example: name.familyName + value: + type: object + allOf: + - type: object + properties: + value: + type: string + - type: object + properties: + value: + type: array + items: + type: string + MetricsQueryResponse: + required: + - errors + - queryResults + type: object + properties: + queryResult: + type: array + description: A list of the time series returned by metric query. + items: + $ref: '#/components/schemas/TimeSeriesRow' + errors: + type: object + description: "Errors, warnings, and information logged for the query." + example: + id: AXDUI-DGH5I-TJ045 + errors: + - code: metrics:incomplete_results + message: Incomplete results + allOf: + - $ref: '#/components/schemas/ErrorResponse' + TimeSeriesRow: + required: + - rowId + - timeSeriesList + type: object + properties: + rowId: + type: string + description: Row id for the query row as specified in the request. + example: A + timeSeriesList: + $ref: '#/components/schemas/TimeSeriesList' + TimeSeriesList: + required: + - timeSeries + type: object + properties: + timeSeries: + type: array + description: A list of timeseries returned by corresponding query. + items: + $ref: '#/components/schemas/TimeSeries' + unit: + type: string + description: Unit of the query. + example: 1/second + timeShiftLabel: + type: string + description: Time shift value if specified in request in human readable + format. + example: -1h + resultContext: + $ref: '#/components/schemas/MetricsQueryResultContext' + TimeSeries: + required: + - metricDefinition + - points + type: object + properties: + metricDefinition: + $ref: '#/components/schemas/MetricDefinition' + points: + $ref: '#/components/schemas/Points' + MetricDefinition: + type: object + properties: + metric: + type: string + description: Name of the metric returning the timeseries. + example: CPU_Total + dimensions: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Metric dimensions / metadata related to each timeseries. + example: + _sourceHost: us2-alert-1 + _sourceCategory: alert + Points: + required: + - timestamps + - values + type: object + properties: + timestamps: + type: array + description: Array of timestamps of datapoints in milliseconds. + items: + type: integer + format: int64 + example: 1623258710000 + values: + type: array + description: Array of values of datapoints corresponding to timestamp array. + items: + type: number + format: double + example: 1.5 + description: "The `values` and `timestamps` are of the same length, and points\ + \ are sorted by time ascending." + MetricsQueryResultContext: + type: object + properties: + quantizationGranularity: + type: integer + description: Quantization granularity. Size of the quantization bucket/quant + in milliseconds. + format: int64 + example: 30000 + rollup: + pattern: ^(Avg|Sum|Min|Max|Count|Rate)$|^$ + type: string + description: "We use the term rollup to refer to the aggregation function\ + \ Sumo Logic uses when quantizing metrics. Can be `Avg`, `Sum`, `Min`,\ + \ `Max`, `Count` or `Rate`." + example: Avg + actualQueryTimeRange: + $ref: '#/components/schemas/Iso8601TimeRange' + MetricsQueryRequest: + required: + - queries + - timeRange + type: object + properties: + queries: + minItems: 1 + type: array + description: A list of metrics queries. + items: + $ref: '#/components/schemas/MetricsQueryRow' + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: A list of metrics queries to run along with the time range for + the query. + MetricsQueryRow: + required: + - query + - rowId + type: object + properties: + rowId: + pattern: "[A-Z]" + type: string + description: "Row id for the query row, A to Z letter." + example: A + x-pattern-message: Row id must be one character long and must be an upper + case letter between A and Z + query: + maxLength: 3000 + minLength: 3 + type: string + description: |- + A metric query consists of a metric, one or more filters and optionally, one or more [Metrics Operators](https://help.sumologic.com/?cid=10144). Strictly speaking, both filters and operators are optional. + + Most of the [Metrics Operators](https://help.sumologic.com/?cid=10144) are allowed in the query string except `fillmissing`, `outlier`, `quantize` and `timeshift`. + + * `fillmissing`: Not supported in API. + * `outlier`: Not supported in API. + * `quantize`: Only supported through `quantization` param. + * `timeshift`: Only supported through `timeshift` param. + + + In practice, your metric queries will almost always contain filters that narrow the scope of your query. For more information about the query language see [Metrics Queries](https://help.sumologic.com/?cid=1079). + example: metric=CPU_Idle + quantization: + minimum: 1 + type: integer + description: "Segregates time series data by time period. This allows you\ + \ to create aggregated results in buckets of fixed intervals (for example,\ + \ 5-minute intervals). The value is in milliseconds." + format: int64 + example: 60000 + rollup: + pattern: ^(Count|Min|Max|Sum|Avg|None)$|^$ + type: string + description: "We use the term rollup to refer to the aggregation function\ + \ Sumo Logic uses when quantizing metrics. Can be `Avg`, `Sum`, `Min`,\ + \ `Max`, `Count` or `None`." + example: Avg + x-pattern-message: "Must be `Avg`, `Sum`, `Min`, `Max`, `Count` or `None`" + timeshift: + type: integer + description: Shifts the time series from your metrics query by the specified + amount of time. This can help when comparing a time series across multiple + time periods. Specified as a signed duration in milliseconds. + format: int64 + example: -3600000 + CreateTraceQueryResponse: + required: + - queryId + type: object + properties: + queryId: + type: string + description: Id of the created query + example: cafaebf2f4f8320f + AsyncTraceQueryRequest: + required: + - queryRows + - timeRange + type: object + properties: + queryRows: + type: array + description: A list of trace queries. + items: + $ref: '#/components/schemas/AsyncTraceQueryRow' + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + AsyncTraceQueryRow: + required: + - query + - rowId + type: object + properties: + query: + $ref: '#/components/schemas/TraceQueryExpression' + rowId: + maxLength: 16 + type: string + description: "An identifier used to reference this particular row of the\ + \ query request while fetching a query result. Within a query, row ids\ + \ must have distinct values." + example: '#A' + orderBy: + $ref: '#/components/schemas/OrderBy' + OrderBy: + required: + - fieldName + - order + type: object + properties: + fieldName: + maxLength: 32 + minLength: 1 + type: string + description: "Field based on which results should be sorted. When not provided,\ + \ the default behavior is to sort by timestamp descending. Sortable fields\ + \ values: `trace_id`, `start_timestamp`, `duration`, `spans_number`, `errors`,\ + \ `status_code`." + example: start_timestamp + order: + pattern: ^(Asc|Desc)$ + type: string + description: Type of sorting values - descending or ascending. + example: Asc + default: Desc + x-pattern-message: should be either 'Asc' or 'Desc' + TraceQueryStatusResponse: + required: + - queryRows + - status + type: object + properties: + queryRows: + type: array + description: A list of trace queries. + items: + $ref: '#/components/schemas/TraceQueryRowStatus' + status: + pattern: ^(Processing|Finished|Error|Canceled)$ + type: string + description: "Status of the query. Possible values: `Processing`, `Finished`,\ + \ `Error`, `Canceled`." + example: Processing + x-pattern-message: "Should be either `Processing`, `Finished`, `Error`,\ + \ `Canceled`." + TraceQueryRowStatus: + required: + - count + - rowId + - status + type: object + properties: + rowId: + type: string + description: A unique identifier of the query. + example: A + status: + pattern: ^(Processing|Finished|Error|Canceled)$ + type: string + description: "Status of the query. Possible values: `Processing`, `Finished`,\ + \ `Error`, `Canceled`." + example: Processing + x-pattern-message: "Should be either `Processing`, `Finished`, `Error`,\ + \ `Canceled`." + statusMessage: + type: string + description: Descriptive message of the status + example: Finished successfully + count: + minimum: 0 + type: integer + description: Number of results matching the query + format: int64 + example: 3215 + TraceQueryResultResponse: + required: + - results + type: object + properties: + results: + type: array + description: List of traces matching the query. + items: + $ref: '#/components/schemas/TraceDetail' + next: + type: string + description: Next continuation token. + example: "10001" + TraceDetail: + required: + - id + type: object + properties: + id: + type: string + description: Trace identifier. + example: 00000000000120CB + rootService: + type: string + description: "Root service which started the trace. Examples: `user-service`,\ + \ `authentication-service`, `payment-service`, `/shopping-cart`" + example: user-service + rootResource: + type: string + description: "Root resource on which the trace was started. Examples: `db.query`,\ + \ `http.request`, `rpc.call`, `container`" + example: http.request + rootStatus: + $ref: '#/components/schemas/TraceSpanStatus' + rootOperationName: + type: string + description: The name of the operation given to the root span. + example: retrieveAccount + metrics: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/DoubleTracingValue' + description: Calculated trace metrics. + example: + _duration: 143984411 + startedAt: + type: string + description: "Date and time the trace was started in [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2019-11-22T09:00:00Z + criticalPathServiceBreakdownSummary: + $ref: '#/components/schemas/CriticalPathServiceBreakdownSummary' + TraceSpanStatus: + required: + - code + type: object + properties: + code: + type: string + description: "Status code of the span. Possible values: `OK`, `ERROR`, `UNKNOWN`." + example: OK + message: + type: string + description: "Optional descriptive message about the status, could be an\ + \ http status code or the kind of an error, e.g. OSError." + example: "404" + CriticalPathServiceBreakdownSummary: + required: + - elements + - idleTime + - otherServicesDuration + type: object + properties: + elements: + type: array + description: List of the elements representing the critical path service + duration breakdown - contains the first few services with the longest + overall duration of the spans contributing to the critical path. + items: + $ref: '#/components/schemas/CriticalPathServiceBreakdownElementBase' + otherServicesDuration: + type: integer + description: Overall processing time in nanoseconds consumed by the rest + of the spans in the critical path (a sum of the duration times of the + spans' critical path segments). + format: int64 + example: 12957153 + idleTime: + type: integer + description: Overall time in nanoseconds when no particular operation was + in progress. + format: int64 + example: 60000000 + CriticalPathServiceBreakdownElementBase: + required: + - duration + type: object + properties: + service: + type: string + description: The name of the service. + example: user-service + serviceColor: + type: string + description: Color hex code assigned to the service. + example: '#fa41c6' + duration: + type: integer + description: Overall processing time in nanoseconds consumed by the spans + belonging to this service in the critical path (a sum of the duration + times of the spans' critical path segments). + format: int64 + example: 12957153 + TraceMetricsResponse: + required: + - metrics + type: object + properties: + metrics: + type: array + description: List of trace metrics. + items: + $ref: '#/components/schemas/TraceMetricDetail' + TraceMetricDetail: + required: + - metric + - type + type: object + properties: + metric: + type: string + description: Trace metric name. In trace queries it can be used in `MetricTracingFilter.metric`. + example: _duration + description: + type: string + description: Short description of the metric. + example: The duration of a trace in nanoseconds. + type: + type: string + description: "The type the values of this field will have. Possible values:\ + \ `DoubleTracingValue`, `IntegerTracingValue`." + example: IntegerTracingValue + TraceFieldsResponse: + required: + - fields + type: object + properties: + fields: + type: array + description: List of filter fields. + items: + $ref: '#/components/schemas/TraceFieldDetail' + TraceFieldDetail: + required: + - field + - fieldType + - type + type: object + properties: + field: + type: string + description: Filter field name. + example: operation + fieldType: + pattern: ^(SpanAttribute|SpanEventAttribute)$ + type: string + description: "Indicates the kind of a field. Possible values: `SpanAttribute`,\ + \ `SpanEventAttribute`." + example: SpanEventAttribute + default: SpanAttribute + x-pattern-message: "Should be one of: `SpanAttribute`, `SpanEventAttribute`." + valueListing: + type: boolean + description: Indicates whether values for this field can be listed. + example: false + description: + type: string + description: Short description of the field. + example: A piece of the workflow represented by a span + type: + type: string + description: "The type the values of this field will have. Possible values:\ + \ `DoubleTracingValue`, `IntegerTracingValue`, `StringTracingValue`, `DateTimeTracingValue`." + example: StringTracingValue + noValuesReason: + $ref: '#/components/schemas/NoTraceFieldValuesReason' + NoTraceFieldValuesReason: + required: + - code + - message + type: object + properties: + code: + pattern: ^(HighCardinalityField|AutocompleteDisabled)$ + type: string + description: "A code uniquely identifying the reason for the lack of trace\ + \ field values. Possible values: `HighCardinalityField`, `AutocompleteDisabled`." + example: HighCardinalityField + x-pattern-message: "Should be either `HighCardinalityField`, `AutocompleteDisabled`." + message: + type: string + description: A short English-language description of the reason. + example: Autocomplete has been disabled for this field due to high cardinality. + TraceFieldValuesResponse: + required: + - fieldValues + - totalCount + type: object + properties: + fieldValues: + type: array + description: List of filter field values. + items: + type: string + totalCount: + type: integer + description: Total number of values for a field matching the query. Can + be approximated when it's above 3000. + format: int64 + example: 1234 + next: + type: string + description: Next continuation token. + example: Mi93V0ZqTTBzaW89 + CreateCpcQueryResponse: + required: + - queryId + type: object + properties: + queryId: + type: string + description: The id of the created query. + example: cafaebf2f4f8320f + CpcQueryRequest: + required: + - queryRows + - timeRange + type: object + properties: + queryRows: + type: array + description: A list of cpc queries. + items: + $ref: '#/components/schemas/CpcQueryRow' + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + CpcQueryRow: + required: + - query + - rowId + type: object + properties: + query: + $ref: '#/components/schemas/TraceQueryExpression' + rowId: + maxLength: 16 + type: string + description: "An identifier used to reference this particular row of the\ + \ query request while fetching a query result. Within a query, row ids\ + \ must have distinct values." + example: '#A' + CpcQueryStatusResponse: + required: + - queryRows + - status + type: object + properties: + queryRows: + type: array + description: A list of statuses on a per query row basis. + items: + $ref: '#/components/schemas/CpcQueryRowStatus' + status: + pattern: ^(Processing|Finished|Error|Canceled)$ + type: string + description: "Status of the query. Possible values: `Processing`, `Finished`,\ + \ `Error`, `Canceled`." + example: Processing + x-pattern-message: "Should be either `Processing`, `Finished`, `Error`,\ + \ `Canceled`." + CpcQueryRowStatus: + required: + - buckets + - rowId + - status + type: object + properties: + rowId: + type: string + description: A unique identifier of the query. + example: A + buckets: + type: array + description: A list of CPC query statuses on a per time bucket basis. Each + status corresponds to the status of calculating aggregated CPC data from + a sample of traces matching search criteria falling within a specific + time slice. + items: + $ref: '#/components/schemas/CpcQueryBucketStatus' + status: + pattern: ^(Processing|Finished|Error|Canceled)$ + type: string + description: "Status of the query. Possible values: `Processing`, `Finished`,\ + \ `Error`, `Canceled`." + example: Processing + x-pattern-message: "Should be either `Processing`, `Finished`, `Error`,\ + \ `Canceled`." + CpcQueryBucketStatus: + required: + - bucketId + - status + type: object + properties: + bucketId: + type: string + description: A unique identifier of the bucket. + example: A + status: + pattern: ^(Processing|Finished|Error|Canceled)$ + type: string + description: "Status of the query. Possible values: `Processing`, `Finished`,\ + \ `Error`, `Canceled`." + example: Processing + x-pattern-message: "Should be either `Processing`, `Finished`, `Error`,\ + \ `Canceled`." + statusMessage: + type: string + description: Descriptive message of the status. + example: Finished successfully + CpcQueryResultResponse: + required: + - buckets + type: object + properties: + buckets: + type: array + description: A list of CPC query results on a per time bucket basis. Each + bucket result corresponds to the aggregated CPC data from a sample of + traces matching search criteria falling within a specific time slice. + items: + $ref: '#/components/schemas/CpcQueryBucketResult' + CpcQueryBucketResult: + required: + - avgTraceDuration + - bucketId + - idleTimeCpcSummary + - length + - otherServicesCpcSummary + - perServiceCpcSummaries + - startTimestamp + - totalNumOfTraces + type: object + properties: + bucketId: + type: string + description: A unique identifier of a time bucket. + example: bucket1 + startTimestamp: + type: string + description: "A start of the time bucket in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2021-04-19T17:36:57.47623Z + length: + type: integer + description: The length of a time bucket expressed in milliseconds. + format: int64 + example: 60000 + totalNumOfTraces: + type: integer + description: The total number of traces matching the search criteria based + on which the CPC data is aggregated. + format: int64 + example: 500 + avgTraceDuration: + type: number + description: The average duration in nanoseconds of the traces matching + the search criteria based on which the CPC data is aggregated. + format: double + example: 5000 + perServiceCpcSummaries: + type: array + description: The summary of aggregated Critical Path Contribution data on + a per service basis. Each element of the array corresponds to a summary + for a specific service. + items: + $ref: '#/components/schemas/CpcServiceSummary' + otherServicesCpcSummary: + $ref: '#/components/schemas/CpcSummary' + idleTimeCpcSummary: + $ref: '#/components/schemas/CpcSummary' + CpcServiceSummary: + required: + - color + - cpcSummary + - service + type: object + properties: + service: + type: string + description: The name of the service. + example: user-service + color: + type: string + description: The color hex code assigned to the service. + example: '#fa41c6' + cpcSummary: + $ref: '#/components/schemas/CpcSummary' + CpcSummary: + required: + - avgPercentageInTrace + - avgTimeInTrace + - numOfTraces + - totalTimeTaken + type: object + properties: + numOfTraces: + type: integer + description: The total number of traces matching the search criteria for + a given service based on which the CPC data is aggregated. + format: int64 + example: 200 + avgPercentageInTrace: + type: number + description: The total fraction (value between 0.0 and 1.0) of the trace + duration time consumed by a given service (or a group of services) in + the critical path of analyzed traces. + format: double + example: 0.24 + avgTimeInTrace: + type: number + description: The average time in nanoseconds spent by a given service (or + a group of services) in the critical path of analyzed traces. + format: double + example: 520000 + totalTimeTaken: + type: integer + description: The total time in nanoseconds spent by a given service (or + a group of services) in the critical path of analyzed traces. + format: int64 + example: 600000 + CpcQueryResultRequest: + required: + - bucketIds + type: object + properties: + bucketIds: + type: array + description: A list of the identifiers of CPC query buckets for which aggregated + Critical Path Contribution data should be fetched. + example: + - bucket1 + - bucket2 + items: + type: string + CreateAggregationQueryResponse: + required: + - queryId + type: object + properties: + queryId: + type: string + description: The id of the created query. + example: cafaebf2f4f8320f + AggregationQueryRequest: + required: + - queryRows + - timeRange + - xAxisGroupByAttribute + type: object + properties: + queryRows: + type: array + description: A list of tracing queries. + items: + $ref: '#/components/schemas/AggregationQueryRow' + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + xAxisGroupByAttribute: + $ref: '#/components/schemas/AggregationGroupByAttribute' + AggregationQueryRow: + required: + - query + - rowId + type: object + properties: + query: + $ref: '#/components/schemas/TraceQueryExpression' + rowId: + maxLength: 16 + type: string + description: "An identifier used to reference this particular row of the\ + \ query request while fetching a query result. Within a query, row ids\ + \ must have distinct values." + example: '#A' + AggregationGroupByAttribute: + required: + - attributeType + type: object + properties: + attributeType: + type: string + description: Attribute type of the object model. + description: Base group by attribute object. + discriminator: + propertyName: attributeType + AggregationQueryStatusResponse: + required: + - queryRows + - status + type: object + properties: + queryRows: + type: array + description: A list of statuses on a per query row basis. + items: + $ref: '#/components/schemas/AggregationQueryRowStatus' + status: + pattern: ^(Processing|Finished|Error|Canceled)$ + type: string + description: "Status of the query. Possible values: `Processing`, `Finished`,\ + \ `Error`, `Canceled`." + example: Processing + x-pattern-message: "Should be either `Processing`, `Finished`, `Error`,\ + \ `Canceled`." + statusMessage: + type: string + description: Descriptive message of the status. + example: Finished successfully + AggregationQueryRowStatus: + required: + - rowId + - status + type: object + properties: + rowId: + type: string + description: A unique identifier of the query. + example: A + status: + pattern: ^(Processing|Finished|Error|Canceled)$ + type: string + description: "Status of the query. Possible values: `Processing`, `Finished`,\ + \ `Error`, `Canceled`." + example: Processing + x-pattern-message: "Should be either `Processing`, `Finished`, `Error`,\ + \ `Canceled`." + statusMessage: + type: string + description: Descriptive message of the status. + example: Finished successfully + AggregationQueryResultResponse: + required: + - buckets + type: object + properties: + buckets: + type: array + description: A list of an aggregation query results on a per bucket basis. Each + bucket result corresponds to the number of trace query results falling + into the bucket. + items: + $ref: '#/components/schemas/AggregationQueryBucketResult' + AggregationQueryBucketResult: + required: + - bucketKey + - bucketValue + type: object + properties: + bucketKey: + $ref: '#/components/schemas/BucketKey' + bucketValue: + $ref: '#/components/schemas/BucketValue' + BucketKey: + required: + - bucketKeyType + type: object + properties: + bucketKeyType: + type: string + description: Bucket value type of the object model. + description: Base bucket key object. + discriminator: + propertyName: bucketKeyType + BucketValue: + required: + - bucketValueType + - traceCount + type: object + properties: + bucketValueType: + type: string + description: Bucket value type of the object model. + traceCount: + type: integer + description: The number of traces per bucket. + format: int64 + example: 42 + description: Base bucket value object. + discriminator: + propertyName: bucketValueType + TraceExistsResponse: + required: + - exists + type: object + properties: + exists: + type: boolean + description: Indicates whether the trace with the given trace id exists. + example: true + url: + type: string + description: A path to the trace view page in Sumo Logic UI. + example: '#/trace/00000000000120CB' + TraceSpansResponse: + required: + - spans + - totalCount + type: object + properties: + spanPage: + type: array + description: List of trace spans. + items: + $ref: '#/components/schemas/TraceSpan' + totalCount: + type: integer + description: Total count of spans for this trace. + format: int64 + example: 1234 + next: + type: string + description: Next continuation token. + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + TraceSpan: + required: + - duration + - id + - operationName + - startedAt + - status + type: object + properties: + id: + type: string + description: Identifier of the span. + example: 00000000002317A9 + parentId: + type: string + description: "Identifier of the parent span, if any. If the span has no\ + \ parent it's considered a root span." + example: 000000000003C7BE + operationName: + type: string + description: The name of the operation given to the span. + example: retrieveAccount + resource: + type: string + description: The name of the resource attached to the span. + example: http.request + service: + type: string + description: The name of the service this span is part of. + example: user-service + serviceColor: + type: string + description: Color hex code assigned to the service. + example: '#fa41c6' + serviceType: + $ref: '#/components/schemas/ServiceType' + duration: + type: integer + description: Number of nanoseconds the span lasted. + format: int64 + example: 212957153 + startedAt: + type: string + description: "Date and time the span was started in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2019-11-22T09:00:00Z + status: + $ref: '#/components/schemas/TraceSpanStatus' + kind: + pattern: ^(CLIENT|SERVER|PRODUCER|CONSUMER|INTERNAL)$ + type: string + description: "Span kind describes the relationship between the Span, its\ + \ parents, and its children in a Trace. Possible values: `CLIENT`, `SERVER`,\ + \ `PRODUCER`, `CONSUMER`, `INTERNAL`." + example: SERVER + x-pattern-message: "Should be either `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER`\ + \ or `INTERNAL`." + remoteService: + type: string + description: Name of the possible remote span's service. + example: external-service + remoteServiceColor: + type: string + description: Color hex code assigned to the remote service. + example: '#fa41c6' + remoteServiceType: + $ref: '#/components/schemas/ServiceType' + info: + $ref: '#/components/schemas/TraceSpanInfo' + numberOfLinks: + type: integer + description: Number of span links in this span. + format: int32 + example: 2 + ServiceType: + pattern: ^(Db|HTTP|MQ|Web|Mixed|Unknown|Cpp|DotNET|Erlang|Go|Java|NodeJS|Php|Python|Ruby|WebJS|Swift|MSSQL|MySQL|Oracle|Db2|PostgreSQL|Redshift|Hive|Cloudscape|HSQLDB|Progress|MaxDB|HANADB|Ingres|FirstSQL|EnterpriseDB|Cache|Adabas|Firebird|ApacheDerby|FileMaker|Informix|InstantDB|InterBase|MariaDB|Netezza|PervasivePSQL|PointBase|SQLite|Sybase|Teradata|Vertica|H2|ColdFusion|Cassandra|HBase|MongoDB|Redis|Couchbase|CouchDB|CosmosDB|DynamoDB|Neo4j|Geode|Elasticsearch|Memcached|CockroachDB|RPC|gRPC|JavaRMI|DotNETWCF|ApacheDubbo)$ + type: string + description: Defines type of service. + example: HTTP + x-pattern-message: "Should be either `Db`, `HTTP`, `MQ`, `Web`, `Mixed`, `Unknown`,\ + \ `Cpp`, `DotNET`, `Erlang`, `Go`, `Java`, `NodeJS`, `Php`, `Python`, `Ruby`,\ + \ `WebJS`, `Swift`, `MSSQL`, `MySQL`, `Oracle`, `Db2`, `PostgreSQL`, `Redshift`,\ + \ `Hive`, `Cloudscape`, `HSQLDB`, `Progress`, `MaxDB`, `HANADB`, `Ingres`,\ + \ `FirstSQL`, `EnterpriseDB`, `Cache`, `Adabas`, `Firebird`, `ApacheDerby`,\ + \ `FileMaker`, `Informix`, `InstantDB`, `InterBase`, `MariaDB`, `Netezza`,\ + \ `PervasivePSQL`, `PointBase`, `SQLite`, `Sybase`, `Teradata`, `Vertica`,\ + \ `H2`, `ColdFusion`, `Cassandra`, `HBase`, `MongoDB`, `Redis`, `Couchbase`,\ + \ `CouchDB`, `CosmosDB`, `DynamoDB`, `Neo4j`, `Geode`, `Elasticsearch`, `Memcached`,\ + \ `CockroachDB`, `RPC`, `gRPC`, `JavaRMI`, `DotNETWCF` or `ApacheDubbo`" + TraceSpanInfo: + required: + - type + type: object + properties: + type: + type: string + description: "Type of this span. Possible values: `TraceHttpSpanInfo`, `TraceDbSpanInfo`,\ + \ `TraceMessageBusSpanInfo`." + example: TraceHttpSpanInfo + discriminator: + propertyName: type + TagsReversedIndexResponse: + type: object + properties: + tagsIndices: + maxItems: 1000 + minItems: 0 + type: array + description: List of spans tag values indices. + items: + $ref: '#/components/schemas/TagReversedIndex' + attributesIndices: + maxItems: 1000 + minItems: 0 + type: array + description: List of spans attribute values indices. + items: + $ref: '#/components/schemas/AttributeReversedIndex' + next: + type: string + description: Next continuation token. + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + TagReversedIndex: + required: + - tagName + - tagValueStatistics + type: object + properties: + tagName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the tag. + example: k8s.container.name + tagValueStatistics: + maxItems: 1000 + minItems: 1 + type: array + description: List of value statistics of the given tag. + items: + $ref: '#/components/schemas/TagValueReversedIndex' + TagValueReversedIndex: + required: + - spanIds + - tagValue + type: object + properties: + tagValue: + maxLength: 128 + minLength: 1 + type: string + description: Value of the tag. + example: web-proxy + spanIds: + maxItems: 1000 + minItems: 1 + type: array + description: List of span ids which have the given tag and value. + example: + - 52c3f60425aba353 + - 432630b74ac37c60 + items: + type: string + AttributeReversedIndex: + required: + - attributeName + - attributeValueStatistics + type: object + properties: + attributeName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the attribute. + example: service + attributeValueStatistics: + maxItems: 1000 + minItems: 1 + type: array + description: List of value statistics of the given attribute. + items: + $ref: '#/components/schemas/AttributeValueReversedIndex' + AttributeValueReversedIndex: + required: + - attributeValue + - spanIds + type: object + properties: + attributeValue: + maxLength: 128 + minLength: 1 + type: string + description: Value of the attribute. + example: rest-soa + spanIds: + maxItems: 1000 + minItems: 1 + type: array + description: List of span ids which have the given attribute and value. + example: + - 52c3f60425aba343 + - 432630b74ac37c50 + items: + type: string + TraceLightEventsResponse: + type: object + properties: + spanEvents: + maxProperties: 1000 + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/LightSpanEvent' + description: "Map of span ids to lists of their events, without their attributes." + next: + type: string + description: Next continuation token. + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + LightSpanEvent: + required: + - name + - timestamp + type: object + properties: + timestamp: + type: string + description: "Time when an event happened in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2021-04-19T17:36:57.47623Z + name: + type: string + description: Name of the event. + example: domContentLoadedEventStart + description: "Light version of Span Event, without the attributes." + CriticalPathResponse: + required: + - segments + type: object + properties: + segments: + type: array + description: List of span segments from the critical path. + items: + $ref: '#/components/schemas/SpanPathSegment' + next: + type: string + description: Next continuation token. + example: Mi93V0ZqTTBzaW89 + SpanPathSegment: + required: + - duration + - ratio + - spanId + - startOffset + type: object + properties: + spanId: + type: string + description: Span identifier. + example: 00000000000120CB + service: + type: string + description: The name of the service this span is part of. + example: user-service + serviceColor: + type: string + description: Color hex code assigned to the service. + example: '#fa41c6' + startOffset: + type: integer + description: Number of nanoseconds from the span startedAt the segment started. + format: int64 + example: 311285715 + duration: + type: integer + description: Number of nanoseconds the span segment lasted. + format: int64 + example: 12957153 + fraction: + type: number + description: The fraction (value between 0.0 and 1.0) from the trace duration + time this segment took. + format: double + example: 0.4 + CriticalPathServiceBreakdownResponse: + required: + - elements + - idleTime + type: object + properties: + elements: + type: array + description: List of elements representing the critical path service breakdown. + items: + $ref: '#/components/schemas/CriticalPathServiceBreakdownElementDetail' + idleTime: + type: integer + description: Overall time in nanoseconds when no particular operation was + in progress. + format: int64 + example: 60000000 + CriticalPathServiceBreakdownElementDetail: + allOf: + - $ref: '#/components/schemas/CriticalPathServiceBreakdownElementBase' + - required: + - longestSegmentDuration + - numSpans + type: object + properties: + numSpans: + type: integer + description: Number of spans that are part of this service. + format: int32 + example: 12957153 + longestSegmentDuration: + type: integer + description: Number of nanoseconds the longest span segment in the critical + path lasted. + format: int64 + example: 12957153 + TraceSpanDetail: + allOf: + - $ref: '#/components/schemas/TraceSpan' + - type: object + properties: + errorMessage: + type: string + description: "Produced error message (could be a stack trace, database\ + \ error code, ..)" + example: | + Exception in thread "local[9]" java.lang.OutOfMemoryError: Java heap space + at my.app.force.fields.SpaceShipForceField.main(SpaceShipForceField.java:17) + fields: + type: object + additionalProperties: + $ref: '#/components/schemas/TracingValue' + description: Fields attached to this span. + example: + component: + type: StringTracingValue + value: http + http.request.method: + type: StringTracingValue + value: GET + url.full: + type: StringTracingValue + value: https://example.com/v1/users/123 + http.response.status_code: + type: StringTracingValue + value: "200" + criticalPathContribution: + $ref: '#/components/schemas/TraceSpanCriticalPathContribution' + logs: + type: array + description: Logs attached to this span. + example: + - "[19/Dec/2019:10:58:21 +0000] 'GET /v1/users/123 HTTP/1.1' 200 8215\ + \ 'http://111.111.11.1/' 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_11_1)\ + \ AppleWebKit/111.11 (KHTML, like Gecko) Chrome/11.1.1111.11 Safari/111.11'" + - "[19/Dec/2019:10:58:24 +0000] 'GET /logo.png HTTP/1.1' 404 555 'http://111.111.11.1/'\ + \ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_11_1) AppleWebKit/111.11\ + \ (KHTML, like Gecko) Chrome/11.1.1111.11 Safari/111.11'" + items: + type: string + events: + type: array + description: Events attached to this span. + items: + $ref: '#/components/schemas/SpanEvent' + links: + type: array + description: List of casually related spans. + items: + $ref: '#/components/schemas/SpanLink' + TraceSpanCriticalPathContribution: + required: + - duration + - fraction + type: object + properties: + duration: + type: integer + description: Overall processing time in nanoseconds consumed by this span + in the critical path of its trace (a sum of the duration times of this + span's critical path segments). + format: int64 + example: 12957153 + fraction: + type: number + description: The total fraction (value between 0.0 and 1.0) of the trace + duration time consumed by this span in the critical path of its trace. + format: double + example: 0.4 + SpanEvent: + description: Span event containing all information (in particular attributes). + allOf: + - $ref: '#/components/schemas/LightSpanEvent' + - type: object + properties: + attributes: + type: array + description: Span event attributes. + items: + $ref: '#/components/schemas/SpanEventAttribute' + SpanEventAttribute: + type: object + properties: + attributeName: + type: string + description: Name of the attribute. + example: message_details + attributeValue: + $ref: '#/components/schemas/EventAttributeValue' + SpanLink: + required: + - spanId + - traceId + type: object + properties: + traceId: + type: string + description: Trace identifier of the linked span. + example: 00000000002317A9 + spanId: + type: string + description: Span identifier of the linked span. + example: 000000000003C7BE + description: Details of the linked span. + TraceSpanBillingInfo: + required: + - billedBytes + - billedFormat + type: object + properties: + billedBytes: + type: integer + description: Number of bytes that were charged for the span. + example: 529 + billedFormat: + type: string + description: Billing format of the span. Number of bytes of this representation + of the span is equal to `billedBytes`. + example: traceId=2ff9c457b1aa00f4;spanId=97872e33215c4275;parentSpanId=98bcdfc5da874c40;operation=spanId-97872e33215c4275;startTimestamp=1603283111874000000;endTimestamp=1603283112268000000;service=ServiceA;status.code=ERROR;status.message=ERROR;kind=SERVER;custom-tag-2=value2;_sourcehost=127.0.0.1;url.full=https://example.com/api/operation-x;message=Some + error message;_sourcecategory=Http Input;custom-tag-1=value1;error=true;_sourcename=Http + Input;error.kind=InvalidInput;_collector=trace-generator-collector;http.request.method=GET; + SpanQueryResponse: + required: + - queryId + - queryRows + type: object + properties: + queryId: + type: string + description: Id of the created query + queryRows: + type: array + description: A list of row responses with details about individual queries. + items: + $ref: '#/components/schemas/SpanQueryRowResponse' + hasErrors: + type: boolean + description: Indicates whether there was an error while executing the query. + example: true + default: false + timeRange: + $ref: '#/components/schemas/BeginBoundedTimeRange' + SpanQueryRowResponse: + required: + - isAggregation + - rowId + type: object + properties: + rowId: + type: string + description: A unique identifier of the query. + example: A + errors: + type: array + description: List of errors which occured when executing the query + items: + $ref: '#/components/schemas/SpanQueryRowError' + isAggregation: + type: boolean + description: Indicates whether this query is an aggregation + example: true + default: false + executedQuery: + type: string + description: The executed query after rewriting + example: _index=_trace_spans traceId=00000000002317A9 + SpanQueryRowError: + required: + - code + - message + type: object + properties: + code: + type: string + description: The error code. + example: spanquery:query_validation_error + message: + type: string + description: Short description of the occured error. + example: Query A was invalid + details: + type: string + description: Details about the occured error. + example: "[1.78] failure: '(' expected but ')' found." + SpanQueryRequest: + required: + - queryRows + - timeRange + type: object + properties: + queryRows: + type: array + description: A list of span analytics queries. + items: + $ref: '#/components/schemas/SpanQueryRow' + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + timeZone: + type: string + description: "Time zone for the query time ranges. Follow the format in\ + \ the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + default: UTC + SpanQueryRow: + required: + - queryString + - rowId + type: object + properties: + queryString: + type: string + description: Query string using the log search syntax. + rowId: + pattern: "^[a-zA-Z0-9_]*$" + type: string + description: "An identifier used to reference this particular row of the\ + \ query request. Within a query, row ids must have distinct values." + example: A + SpanQueryStatusResponse: + required: + - queryRows + - status + type: object + properties: + queryRows: + type: array + description: A list of span analytics queries. + items: + $ref: '#/components/schemas/SpanQueryRowStatus' + status: + pattern: ^(Processing|Finished|Error|Paused)$ + type: string + description: "Status of the query. Possible values: `Processing`, `Finished`,\ + \ `Error`, `Paused`" + example: Processing + x-pattern-message: "Should be either `Processing`, `Finished`, `Error`,\ + \ `Paused`." + SpanQueryRowStatus: + required: + - count + - rowId + - status + type: object + properties: + rowId: + type: string + description: A unique identifier of the query. + example: A + status: + pattern: ^(Processing|Finished|Error|Paused)$ + type: string + description: "Status of the query. Possible values: `Processing`, `Finished`,\ + \ `Error`, `Paused`." + example: Processing + x-pattern-message: "Should be either `Processing`, `Finished`, `Error`,\ + \ `Paused`." + statusMessage: + type: string + description: Descriptive message of the status. + example: Finished successfully + count: + minimum: 0 + type: integer + description: Number of results matching the query + format: int64 + example: 3215 + approximatedFieldCounts: + type: boolean + description: Indicates whether facet field cardinality counts are approximated + or not. + example: false + facetsCompleted: + type: boolean + description: Indicates whether facets calculation has completed. + example: false + SpanQueryResultSpansResponse: + required: + - spanPage + type: object + properties: + spanPage: + type: array + description: List of trace spans. + items: + $ref: '#/components/schemas/SpanQuerySpanData' + next: + type: string + description: Next continuation token. + example: Mi93V0ZqTTBzaW89 + SpanQuerySpanData: + required: + - duration + - startedAt + type: object + properties: + spanId: + type: string + description: Identifier of the span. + example: 00000000002317A9 + traceId: + type: string + description: Identifier of the trace. + example: 1BB004A0005213C2 + parentSpanId: + type: string + description: "Identifier of the parent span, if any. If the span has no\ + \ parent it's considered a root span." + example: 000000000003C7BE + operationName: + type: string + description: The name of the operation given to the span. + example: retrieveAccount + service: + type: string + description: The name of the service this span is part of. + example: user-service + remoteService: + type: string + description: Name of the possible remote span's service. + example: external-service + duration: + type: integer + description: Number of nanoseconds the span lasted. + format: int64 + example: 212957153 + startedAt: + type: string + description: "Date and time the span was started in [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2019-11-22T09:00:00Z + status: + $ref: '#/components/schemas/TraceSpanStatus' + kind: + pattern: ^(CLIENT|SERVER|PRODUCER|CONSUMER|INTERNAL)$ + type: string + description: "Span kind describes the relationship between the Span, its\ + \ parents, and its children in a Trace. Possible values: `CLIENT`, `SERVER`,\ + \ `PRODUCER`, `CONSUMER`, `INTERNAL`." + example: SERVER + x-pattern-message: "Should be either `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER`\ + \ or `INTERNAL`." + tagsJSON: + type: string + description: Tags attached to this span as JSON. + example: |- + { + "http.host":"http://example.com", + "http.request.method":"GET" + } + metadata: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Metadata attached to the span. + example: + _sourceCategory: account-backend + SpanQueryResultFacetsResponse: + required: + - facets + type: object + properties: + facets: + type: array + description: List of facets. + items: + $ref: '#/components/schemas/SpanQueryRowFacet' + SpanQueryRowFacet: + required: + - cardinality + - dataType + - name + type: object + properties: + name: + type: string + description: Name of the field facet. + example: _sourceHost + cardinality: + type: integer + description: The number of unique values this field occured. + format: int32 + example: 3 + dataType: + pattern: ^(String|Int|Long|Double|Boolean)$ + type: string + description: Data type of the field. + example: String + x-pattern-message: "Should be either `String`, `Int`, `Long`, `Double` or\ + \ `Boolean`." + inSchema: + type: boolean + description: Indicates whether the field is available in the span schema. + example: false + valueFrequency: + maxProperties: 1000 + type: object + additionalProperties: + type: integer + format: int64 + description: Map of field value frequencies. + example: + _sourceHost: 34099 + SpanQueryAggregateResponse: + required: + - result + type: object + properties: + result: + $ref: '#/components/schemas/SpanQueryAggregateResult' + SpanQueryAggregateResult: + required: + - series + - status + type: object + properties: + status: + pattern: ^(Processing|Finished|Error|Paused)$ + type: string + description: "Status of the query. Possible values: `Processing`, `Finished`,\ + \ `Error`, `Paused`." + example: Processing + x-pattern-message: "Should be either `Processing`, `Finished`, `Error`,\ + \ `Paused`." + statusMessage: + type: string + description: Descriptive message of the status + example: Finished successfully + series: + type: array + description: The series returned from a search. + items: + $ref: '#/components/schemas/SpanQueryAggregateDataSeries' + SpanQueryAggregateDataSeries: + required: + - dataPoints + - name + - queryId + type: object + properties: + queryId: + type: string + description: The id of the query. + example: A + name: + type: string + description: | + The meaning of 'name' depends on the series type. + - For results of type 'timeseries', it is the value of the x axis 'field' key. + - For results of type 'nontimeseries', it is the name of one of the fields that is not part of 'xAxisKeys'. + - For results of type 'table', it is the comma-separated string of names of all fields. + example: max(Disk_Used) + dataPoints: + type: array + description: A list of data points in the series. + items: + $ref: '#/components/schemas/SpanQueryAggregatePointData' + aggregateInfo: + $ref: '#/components/schemas/SpanQueryAggregateAggregateData' + metaData: + $ref: '#/components/schemas/SpanQueryAggregateMetaData' + seriesType: + pattern: ^(TIMESERIES|NONTIMESERIES|TABLE)$ + type: string + description: Type of the visual series. + example: TIMESERIES + x-pattern-message: "Should be either `TIMESERIES`, `NONTIMESERIES`, `TABLE`." + xAxisKeys: + type: array + description: Keys that will be plotted as a point on the x axis. + example: + - _sourceCategory + - _sourceHost + items: + type: string + valueType: + pattern: ^(STRING|DOUBLE)$ + type: string + description: Type of the values in the series. + example: DOUBLE + x-pattern-message: "Should be either `STRING`, `DOUBLE`." + SpanQueryAggregatePointData: + required: + - "y" + type: object + properties: + x: + type: number + description: Value that represents a point on the x axis. + format: double + example: 1.0 + "y": + type: string + description: Value that represents a point on the y axis. + example: "12.3" + xAxisValues: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Values that represents a point on the x axis. + example: + operation: /get/accounts + service: accountService + default: {} + SpanQueryAggregateAggregateData: + required: + - avg + - latest + - max + - min + - sum + type: object + properties: + max: + type: number + description: The maximum value in the series. + format: double + example: 10.0 + min: + type: number + description: The minimum value in the series. + format: double + example: 1.2 + avg: + type: number + description: The average value in the series. + format: double + example: 5.6 + sum: + type: number + description: The sum of all the values in the series. + format: double + example: 123.4 + latest: + type: number + description: The last value in the series. + format: double + example: 23.4 + count: + type: number + description: The number of values in the series. + format: double + example: 600 + SpanQueryAggregateMetaData: + required: + - data + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: The value of the metadata. + example: + deployment: dev + cluster: frontend + instance: frontend-12 + default: {} + SpanQueryFieldsResponse: + required: + - fields + type: object + properties: + fields: + type: array + description: List of span fields. + items: + $ref: '#/components/schemas/SpanQueryFieldDetail' + SpanQueryFieldDetail: + allOf: + - $ref: '#/components/schemas/TraceFieldDetail' + - required: + - inSchema + type: object + properties: + inSchema: + type: boolean + description: Indicates whether the field is available in the schema. + example: false + ServiceMapResponse: + required: + - edges + - nodes + type: object + properties: + nodes: + type: array + description: List of service map nodes. + items: + $ref: '#/components/schemas/ServiceMapNode' + edges: + type: array + description: List of service map edges. + items: + $ref: '#/components/schemas/ServiceMapEdge' + ServiceMapNode: + required: + - isRemote + - lastSeenAt + - serviceName + - serviceType + type: object + properties: + serviceName: + type: string + description: Name of a service in a service map. + example: service_name_1 + serviceColor: + type: string + description: Color hex code assigned to the service. + example: '#fa41c6' + lastSeenAt: + type: string + description: The last time in UTC a service has been seen. Formatted as + defined by date-time - RFC3339. + format: date-time + example: 2019-11-22T09:00:00Z + isRemote: + type: boolean + description: Indicates whether node comes from inferred remote service or + instrumented one. + example: true + serviceType: + $ref: '#/components/schemas/ServiceType' + ServiceMapEdge: + required: + - lastSeenAt + - source + - target + type: object + properties: + source: + type: string + description: Name of a source service. Edge is directed from source to target. + example: service_name_1 + target: + type: string + description: Name of a target service. Edge is directed from source to target. + example: service_name_2 + lastSeenAt: + type: string + description: The last time in UTC an edge has been seen. Formatted as defined + by date-time - RFC3339. + format: date-time + example: 2019-11-22T09:00:00Z + DatastoreStatusResponse: + required: + - diskSize + - indicatorCount + - indicatorLimit + - sourceStatus + type: object + properties: + diskSize: + type: integer + description: Total DB size in terms of disk bytes + format: int64 + example: 1024 + indicatorCount: + type: integer + description: Total number of indicators in the DB + format: int64 + example: 100 + indicatorLimit: + type: integer + description: Limit number of indicators supported in the DB + format: int64 + example: 10000000 + sourceStatus: + type: array + description: A list of sources and their individual DB sizes and indicator + counts + items: + $ref: '#/components/schemas/DatastoreSourceStatusResponse' + DatastoreSourceStatusResponse: + required: + - source + type: object + properties: + source: + type: string + description: The source name + example: unit42_source + description: + type: string + description: The source description + example: This is a stix1.2 indicators source + diskSize: + type: integer + description: Disk utilization in bytes estimate for the indicator source + format: int64 + example: 1024 + indicatorCount: + type: integer + description: Number of indicators for the indicator source + format: int64 + example: 1024 + sumoProvided: + type: boolean + description: True if sumo provided source + example: false + supportsCat: + type: boolean + description: True if can be used in cat operator + example: false + enabled: + type: boolean + description: True if enabled + example: true + description: DB sizes and indicator counts for an individual source + DatastoreRetentionPeriod: + required: + - retentionPeriod + type: object + properties: + retentionPeriod: + type: integer + description: Retention period in days. + format: int64 + example: 120 + UploadNormalizedIndicatorRequest: + required: + - indicators + type: object + properties: + indicators: + type: array + description: The list of normalized threat intel indicators to upload. + items: + $ref: '#/components/schemas/NormalizedIndicator' + NormalizedIndicator: + required: + - confidence + - id + - indicator + - source + - threatType + - type + - validFrom + type: object + properties: + id: + type: string + description: ID of the indicator + example: indicator--d81f86b9-975b-4c0b-875e-810c5ad45a4f + indicator: + type: string + description: Value of the indicator + example: 182.158.1.1 + type: + type: string + description: Type of indicator + example: ipv4-addr + source: + type: string + description: User-provided text to identify the source of the indicator + example: FreeTAXII + updated: + type: string + description: "When this indicator was most recently updated in Sumo. Timestamp\ + \ in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format." + format: date-time + example: 2023-03-21T12:00:00Z + validFrom: + type: string + description: "Beginning time this indicator is valid. Timestamp in UTC in\ + \ [RFC3339](https://tools.ietf.org/html/rfc3339) format." + format: date-time + example: 2023-03-21T12:00:00Z + validUntil: + type: string + description: "Time at which this indicator expires. If not set, a default\ + \ TTL is applied based on indicator type and confidence. File hash indicators\ + \ (type prefix `file:hashes`): 30/365/730 days for low/medium/high confidence.\ + \ All other indicator types: 30/90/180 days for low/medium/high confidence.\ + \ Confidence bands: low 0-49, medium 50-74, high 75-100. Timestamp in\ + \ UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format." + format: date-time + example: 2023-03-21T12:00:00Z + confidence: + maximum: 100 + minimum: 1 + type: integer + description: "Confidence that the creator has in the correctness of their\ + \ data, where 100 is highest" + threatType: + type: string + description: Type of indicator ( https://docs.oasis-open.org/cti/stix/v2.1/os/stix-v2.1-os.html#_cvhfwe3t9vuo + ) + example: benign + actors: + type: string + description: Actors as a comma separated list. + example: "actor1,actor2" + killChain: + type: string + description: Kill Chain as a comma separated list. + example: "KC1,KC2" + fields: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Flattened fields from the original indicator object (e.g. flattened + STIX fields) + UploadStixIndicatorsResponse: + required: + - invalidIndicators + type: object + properties: + invalidIndicators: + type: array + description: A list of invalid indicator IDs that were not ingested + example: + - indicator--foo + - indicator--bar + items: + type: string + UploadStixIndicatorsRequest: + required: + - indicators + - source + type: object + properties: + source: + type: string + description: User-provided text to identify the source of the indicator + example: FreeTAXII + indicators: + type: array + description: The list of stix threat intel indicators to upload. + items: + $ref: '#/components/schemas/StixIndicator' + StixIndicator: + required: + - created + - id + - modified + - pattern + - pattern_type + - spec_version + - type + - valid_from + type: object + properties: + type: + type: string + description: The type property identifies the type of STIX Object. + example: indicator + spec_version: + type: string + description: The STIX version + example: "2.1" + id: + type: string + description: The ID of the indicator + example: acme:indicator-bf8bc5d5-c7e6-46b0-8d22-7500fea77196 + created: + type: string + description: The time from which this Indicator is considered a valid indicator + of the behaviors it is related or represents. + format: date-time + example: 2023-03-21T12:00:00Z + modified: + type: string + description: The time from which this Indicator is considered a valid indicator + of the behaviors it is related or represents. + format: date-time + example: 2023-03-21T12:00:00Z + created_by_ref: + type: string + description: Identifier of type identity + example: identity--f431f809-377b-45e0-aa1c-6a4751cae5ff + revoked: + type: boolean + description: The revoked property is only used by STIX Objects that support + versioning and indicates whether the object has been revoked. + labels: + type: array + description: The labels property specifies a set of terms used to describe + this object. The terms are user-defined or trust-group defined and their + meaning is outside the scope of this specification and MAY be ignored. + example: + - heartbleed + - has-logo + items: + type: string + confidence: + maximum: 100 + minimum: 1 + type: integer + description: "Confidence that the creator has in the correctness of their\ + \ data, where 100 is highest" + lang: + type: string + description: "The lang property identifies the language of the text content\ + \ in this object. When present, it MUST be a language code conformant\ + \ to [RFC5646]. If the property is not present, then the language of the\ + \ content is en (English)" + example: en + external_references: + type: array + description: "A list of external references which refer to non-STIX information.\ + \ This property MAY be used to provide one or more Vulnerability identifiers,\ + \ such as a CVE ID" + items: + $ref: '#/components/schemas/ExternalReference' + object_marking_refs: + type: array + description: The object_marking_refs property specifies a list of id properties + of marking-definition objects that apply to this object. + example: + - marking-definition--089a6ecb-cc15-43cc-9494-767639779123 + items: + type: string + granular_markings: + type: array + description: The granular_markings property specifies a list of granular + markings applied to this object + items: + $ref: '#/components/schemas/GranularMarkingType' + extensions: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/Extension' + description: "Specifies any extensions of the object, as a dictionary" + name: + type: string + description: The name of the object + description: + type: string + description: A human readable description + indicator_types: + type: array + description: A set of categorizations for this indicator. + example: + - malicious-activity + items: + type: string + pattern: + type: string + description: The detection pattern for this Indicator expressed as a STIX + patter. + example: "[ipv4-addr:value = '1.2.3.4']" + pattern_type: + type: string + description: The type of pattern + example: stix + pattern_version: + type: string + description: The version of the pattern language that is used for the data + in the pattern property which MUST match the type of pattern data included + in the pattern property. + valid_from: + type: string + description: The time from which this Indicator is considered a valid indicator + of the behaviors it is related or represents. + format: date-time + example: 2023-03-21T12:00:00Z + valid_until: + type: string + description: "The time at which this Indicator should no longer be considered\ + \ a valid indicator of the behaviors it is related to or represents. If\ + \ not set, a default TTL is applied based on indicator type and confidence.\ + \ File hash indicators (type prefix `file:hashes`): 30/365/730 days for\ + \ low/medium/high confidence. All other indicator types: 30/90/180 days\ + \ for low/medium/high confidence. Confidence bands: low 0-49, medium 50-74,\ + \ high 75-100." + format: date-time + example: 2023-03-21T12:00:00Z + kill_chain_phases: + type: array + description: The list of Kill Chain Phases for which this Attack Pattern + is used + items: + $ref: '#/components/schemas/KillChainPhase' + ExternalReference: + required: + - source_name + type: object + properties: + source_name: + type: string + description: The name of the source that the external-reference is defined + within + example: system + description: + type: string + description: A human readable description + url: + type: string + description: A URL reference to an external resource + example: https://github.com/vz-risk/0001AA7F-C601-424A-B2B8-BE6C9F5164E7.json + hashes: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Specifies a dictionary of hashes for the contents of the url + example: + SHA-256: 6db12788c37247f2316052e142f42f4b259d6561751e5f401a1ae2a6df9c674b + external_id: + type: string + description: An identifier for the external reference content + example: 0001AA7F-C601-424A-B2B8-BE6C9F5164E7 + GranularMarkingType: + required: + - selectors + type: object + properties: + lang: + type: string + description: The lang property identifies the language of the text identified + by this marking + example: en + marking_ref: + type: string + description: The marking_ref property specifies the ID of the marking-definition + object that describes the marking + example: marking-definition--089a6ecb-cc15-43cc-9494-767639779123 + selectors: + type: array + description: The selectors property specifies a list of selectors for content + contained within the STIX Object in which this property appears + example: + - description + - labels + items: + type: string + Extension: + required: + - created + - created_by_ref + - extension_types + - id + - modified + - name + - schema + - spec_version + - type + - version + type: object + properties: + type: + type: string + description: The type property identifies the type of object + example: indicator + spec_version: + type: string + description: The STIX version + example: "2.1" + id: + type: string + description: The ID of the indicator + example: acme:indicator-bf8bc5d5-c7e6-46b0-8d22-7500fea77196 + created: + type: string + description: The time from which this Indicator is considered a valid indicator + of the behaviors it is related or represents. + format: date-time + example: 2023-03-21T12:00:00Z + modified: + type: string + description: The time from which this Indicator is considered a valid indicator + of the behaviors it is related or represents. + format: date-time + example: 2023-03-21T12:00:00Z + created_by_ref: + type: string + description: Identifier of type identity + example: identity--f431f809-377b-45e0-aa1c-6a4751cae5ff + revoked: + type: boolean + description: The revoked property is only used by STIX Objects that support + versioning and indicates whether the object has been revoked. + labels: + type: array + description: The labels property specifies a set of terms used to describe + this object. The terms are user-defined or trust-group defined and their + meaning is outside the scope of this specification and MAY be ignored. + example: + - heartbleed + - has-logo + items: + type: string + external_references: + type: array + description: "A list of external references which refer to non-STIX information.\ + \ This property MAY be used to provide one or more Vulnerability identifiers,\ + \ such as a CVE ID" + items: + $ref: '#/components/schemas/ExternalReference' + object_marking_refs: + type: array + description: The object_marking_refs property specifies a list of id properties + of marking-definition objects that apply to this object. + example: + - marking-definition--089a6ecb-cc15-43cc-9494-767639779123 + items: + type: string + granular_markings: + type: array + description: The granular_markings property specifies a list of granular + markings applied to this object + items: + $ref: '#/components/schemas/GranularMarkingType' + name: + type: string + description: The name of the object + description: + type: string + description: A human readable description + schema: + type: string + description: "The normative definition of the extension, either as a URL\ + \ or as plain text explaining the definition" + example: https://www.example.com/schema-my-favorite-sdo-1/v1 + version: + type: string + description: The version of this extension + extension_types: + type: array + description: This property specifies one or more extension types contained + within this extension + items: + type: string + enum: + - new-sdo + - new-sco + - new-sro + - property-extension + - toplevel-property-extension + extension_properties: + type: array + description: This property contains the list of new property names that + are added to an object by an extension + items: + type: string + KillChainPhase: + required: + - kill_chain_name + type: object + properties: + kill_chain_name: + type: string + description: The name of the kill chain. The value of this property SHOULD + be all lowercase and SHOULD use hyphens instead of spaces or underscores + as word separators + example: lockheed-martin-cyber-kill-chain + phase_name: + type: string + description: The name of the phase in the kill chain. The value of this + property SHOULD be all lowercase and SHOULD use hyphens instead of spaces + or underscores as word separators + example: reconnaissance + RemoveIndicatorsRequest: + required: + - indicatorIds + - source + type: object + properties: + source: + type: string + description: The source of the indicator ID to match against + example: Crowdstrike + indicatorIds: + type: array + description: The list of indicator IDs to match against + example: + - indicator--abcd + - indicator--ef012 + items: + type: string + DataSourceProperties: + type: object + properties: + enabled: + type: boolean + description: True if enabled. + example: true + description: + type: string + description: The data source description. + example: This is a stix1.2 data source. + ListTagResult: + required: + - result + type: object + properties: + result: + type: array + description: List of Tag Dictionary Values (e.g. Tag Keys or Tag Values). + example: + - aTagKeyOrValue01 + - aTagKeyOrValue02 + items: + type: string + OTCollector: + required: + - createdAt + - createdBy + - id + - modifiedAt + - modifiedBy + - name + - systemInfo + - version + type: object + properties: + id: + type: string + description: Unique identifier of the OT Collector. + example: 0000000005F5E105 + name: + type: string + description: Name of the OT Collector. + example: test OT Collector + version: + required: + - currentVersion + type: object + properties: + currentVersion: + type: string + description: Current version of the OT Collector. + latestAvailableVersion: + type: string + description: Latest available version of the OT Collector. + description: Version information of the OT Collector. + category: + type: string + description: Category of the OT Collector. + example: apache + description: + type: string + description: Description of the OT Collector. + tags: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Tags associated with the OT Collector. + example: + team: app-dev + showIcon: true + fleetId: + type: string + description: Fleet Id of the OT Collector + example: 0000000005F5E105 + healthIncidentsTracker: + type: object + properties: + errorsCount: + type: integer + description: Number of errors associated with the OT Collector. + format: int32 + example: 0 + warningsCount: + type: integer + description: Number of warnings associated with the OT Collector. + format: int32 + example: 1 + description: Health incident information. + ephemeral: + type: boolean + description: Ephemeral Status of the OT Collector. + example: false + alive: + type: boolean + description: Alive Status of the OT Collector based on heartbeat. + example: true + isRemotelyManaged: + type: boolean + description: Management Status of the OT Collector based on if it is remotely + or locally managed. + example: true + effectiveConfig: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Config map that includes Base 64 Encoded Effective Configuration + Yaml of the Remotely managed OT Collector. + example: + "00000000000000A3": ZGVtbyBjb25maWc= + "00000000000000D5": XFVtbfe34tgcvefv= + systemInfo: + type: object + properties: + hostName: + type: string + description: Host name of the OT Collector. + example: app.test.com + hostOsName: + type: string + description: Host OS name of the OT Collector. + example: Linux + hostOsVersion: + type: string + description: Host OS version of the OT Collector. + example: 5.4.144-69.257.amzn2.x86_64 + hostIpAddress: + type: string + description: Host IP address of the OT Collector. + example: 19.123.24.66 + hostEnv: + type: string + description: Host environment of the OT Collector. + example: EKS-1.20.2 + description: System information of the OT Collector. + timeZone: + type: string + description: timezone of the collector + example: UTC + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2018-10-16T09:10:00Z + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006A5C7A2 + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: 2018-10-16T09:10:00Z + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006A5C7A2 + sourceTemplateLinkedCount: + type: integer + description: Count of the source templates linked to a collector + example: 1 + description: An OT Collector definition. + OtTag: + required: + - key + - values + type: object + properties: + key: + type: string + description: key of the given tag. + example: key1 + values: + type: array + description: values of the given tag. + items: + type: string + example: value1 + VersionRange: + type: object + properties: + minVersion: + pattern: "^v(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(-sumo.+)?$" + type: string + description: Minimum version of otCollector. + maxVersion: + pattern: "^v(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(-sumo.+)?$" + type: string + description: Maximum version of the collector. + rangeType: + type: string + description: "Specifies how filtering should be applied when `minVersion`\ + \ and `maxVersion` are defined. - `Within`: Filtering includes the specified\ + \ range. - `Outside`: Filtering excludes the specified range. By default,\ + \ filtering includes the specified range." + description: Version range for otCollector. + SourceTemplateListResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of source templates. + items: + $ref: '#/components/schemas/SourceTemplateDefinition' + SourceTemplateDefinition: + type: object + properties: + schemaRef: + $ref: '#/components/schemas/SchemaRef' + id: + type: string + description: id of source template. + example: 0000000003343FDD + inputJson: + maxProperties: 1000 + type: object + additionalProperties: true + description: inputJson of source template + example: {} + config: + type: string + description: configuration of source template + example: apache.yaml.example + selector: + $ref: '#/components/schemas/Selector' + totalCollectorLinked: + type: integer + description: count of total collector linked with this source template. + format: int32 + default: 0 + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2018-10-16T09:10:00Z + modifiedAt: + type: string + description: "Modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2018-10-16T09:10:00Z + createdBy: + type: string + description: Id of the user who created source template + example: 0000000006743FDD + modifiedBy: + type: string + description: Id of the user who last modified the source template + example: 0000000006243FDD + status: + type: string + description: Status of Source template + enum: + - enable + - disable + isEnabled: + type: boolean + description: A boolean parameter to get if the source template is enabled. + example: true + default: true + description: response definition of source template. + SchemaRef: + required: + - type + type: object + properties: + type: + type: string + description: type of source template. + example: Apache + description: schema reference for source template. + Selector: + type: object + properties: + tags: + type: array + description: tags filter for agents + items: + type: array + items: + $ref: '#/components/schemas/OtTag' + names: + type: array + description: names to select custom agents + items: + type: string + example: demo_macOS + fleetIds: + type: array + description: IDs of the fleets the source template is associated with + items: + maxLength: 16 + minLength: 16 + type: string + example: 0000000006243FDD + description: Agent selector conditions + CollectorCompatibility: + type: object + properties: + os: + type: string + description: Name of the Operating System. + example: linux + collectorVersionRange: + $ref: '#/components/schemas/CollectorVersionRange' + CollectorVersionRange: + type: object + properties: + minVersion: + type: string + description: Minimum compatible version of otCollector. + maxVersion: + type: string + description: "Maximum compatible version of the otcollector. if this is\ + \ null, then latest otcollector is also compatible." + nullable: true + example: + minVersion: v0.89.0 + maxVersion: v0.90.0 + SourceTemplateRequest: + required: + - inputJson + - schemaRef + type: object + properties: + schemaRef: + $ref: '#/components/schemas/SchemaRef' + inputJson: + maxProperties: 1000 + required: + - name + - receivers + type: object + properties: + name: + type: string + description: name of source template. + example: apache_test_source_template + receivers: + type: object + description: receiver information of source template + example: {} + description: + type: string + description: description of source template + example: Demo Description for Source Template + processors: + type: object + description: processors for source template + example: {} + additionalProperties: true + description: inputJson of source template + selector: + $ref: '#/components/schemas/Selector' + isEnabled: + type: boolean + description: "Indicates whether the source template is enabled - **Create\ + \ operation:** Defaults to `true` (the template is enabled when created).\ + \ - **Update operation:** If omitted, the existing status is preserved." + example: true + description: request body for creating source template. + SourceTemplateUpdateRequest: + required: + - inputJson + - schemaRef + type: object + properties: + schemaRef: + $ref: '#/components/schemas/SchemaRef' + inputJson: + maxProperties: 1000 + required: + - name + - receivers + type: object + properties: + name: + type: string + description: Name of source template. + example: apache_test_source_template + receivers: + type: object + description: Receiver information of source template + example: {} + description: + type: string + description: Description of source template + example: Demo Description for source template + processors: + type: object + description: Processors for source template + example: {} + additionalProperties: true + description: InputJson of source template + selector: + $ref: '#/components/schemas/Selector' + isEnabled: + type: boolean + description: "Indicates whether the source template is enabled. If omitted,\ + \ the existing status is preserved." + example: true + description: Request body for updating source template. + SourceTemplateStatusUpdateRequest: + required: + - status + type: object + properties: + status: + type: string + description: status to set for the source template (enable or disable). + enum: + - enable + - disable + example: + status: enable + SourceTemplateUpgradeRequest: + required: + - inputJson + - schemaRef + type: object + properties: + schemaRef: + $ref: '#/components/schemas/UpgradeSchemaRef' + inputJson: + maxProperties: 1000 + required: + - name + - receivers + type: object + properties: + name: + type: string + description: name of source template. + example: apache_test_source_template + receivers: + type: object + description: receiver information of source template + example: + hostmetrics: + receiverType: hostmetrics + collection_interval: 5m + description: + type: string + description: description of source template + example: Demo Description for source template + processors: + type: object + description: processors for source template + example: + resource: + processorType: resource + additionalProperties: true + description: inputJson of source template + description: request body for creating source template. + UpgradeSchemaRef: + required: + - type + - version + type: object + properties: + type: + type: string + description: type of source template. + example: Apache + version: + type: string + description: version of source template. + example: 1.0.0 + description: schema reference for upgrade source template request. + LinkedSourceTemplatesUpdateResponse: + required: + - collectorId + type: object + properties: + collectorId: + type: string + description: otCollector id for which tags are edited. + example: 00005AF3107BF0D6 + addedSourceTemplates: + type: array + description: list of sourceTemplates which are linked to otCollector. + items: + $ref: '#/components/schemas/LinkingUpdatedSourceTemplateDetails' + removedSourceTemplates: + type: array + description: list of sourceTemplates which are removed from otCollector + linking. + items: + $ref: '#/components/schemas/LinkingUpdatedSourceTemplateDetails' + description: linked source template details based on the ot-collector tags user + wants to update. + LinkingUpdatedSourceTemplateDetails: + required: + - reasonTags + - sourceTemplateDefinition + type: object + properties: + sourceTemplateDefinition: + $ref: '#/components/schemas/SourceTemplateDefinition' + reasonTags: + type: array + description: tags which are responsible for source template and collector + linking impact. + items: + type: array + items: + $ref: '#/components/schemas/CollectorTag' + description: source template details with tags responsible for otCollector Linking + update. + CollectorTag: + required: + - key + - values + type: object + properties: + key: + type: string + description: Key of the given tag. + example: key1 + value: + type: string + description: Values of the given tag. + example: value1 + LinkedSourceTemplatesUpdateRequest: + required: + - collectorId + type: object + properties: + collectorId: + type: string + description: otCollector id for which tags are edited. + example: 00005AF3107BF0D6 + tags: + maxProperties: 50 + type: object + additionalProperties: + type: string + description: JSON map of key-value metadata to apply to the otCollector. + example: + environment: production + location: us-west-2 + default: {} + updatedName: + type: string + description: Updated Name of the otCollector. + example: demo_macOS + ListSchemaBaseTypeToVersionsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of maps containing the mappings schema type -> versions. + items: + $ref: '#/components/schemas/SchemaBaseTypeToVersionsResponse' + SchemaBaseTypeToVersionsResponse: + required: + - type + - versions + type: object + properties: + type: + type: string + description: The type of the schema. + example: Okta + versions: + type: array + description: List of schema base identities sorted by latest version for + a specific schema type. + items: + $ref: '#/components/schemas/SchemaBaseComplete' + description: Map of the schema base type to its list of schema base identities. + SchemaBaseComplete: + type: object + allOf: + - $ref: '#/components/schemas/SchemaBaseIdentityWithMetadata' + - $ref: '#/components/schemas/SchemaBaseTemplateYaml' + SchemaBaseIdentityWithMetadata: + type: object + allOf: + - $ref: '#/components/schemas/SchemaBaseIdentity' + - required: + - id + - type + - version + properties: + id: + type: string + description: Unique identifier of the schema. + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2018-10-16T09:10:00Z + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: 2018-10-16T09:10:00Z + SchemaBaseIdentity: + required: + - family + - schema + - type + - version + type: object + properties: + type: + maxLength: 128 + minLength: 1 + type: string + description: The type of the integration. + example: Okta + version: + maxLength: 128 + minLength: 5 + pattern: "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" + type: string + description: The version (or image tag) of the integration. Follows the + Major.Minor.Patch semantic versioning format. + example: 1.0.0 + x-pattern-message: "must follow semantic versioning: https://semver.org/" + description: + maxLength: 1024 + minLength: 0 + type: string + description: The description of the integration. + example: An Okta integration that collects Okta event logs into Sumo Logic. + manifest: + maxProperties: 1000 + type: object + additionalProperties: true + description: The manifest of the integration. + schema: + maxProperties: 1000 + type: object + additionalProperties: true + description: The schema in JSON Schema specification. + family: + type: string + description: The family to which schema belong. + enum: + - OTC_Source_Template + - OTEL_Component + SchemaBaseTemplateYaml: + type: object + properties: + templateYaml: + maxLength: 10960 + minLength: 1 + type: string + description: The template yaml of schema. + example: example templateYaml + EventContext: + required: + - eventContextType + type: object + properties: + eventContextType: + pattern: ^(SearchQueryContext)$ + type: string + description: Context for which correlated events are to be fetched. + example: SearchQueryContext + discriminator: + propertyName: eventContextType + mapping: + SearchQueryContext: '#/components/schemas/SearchQueryContext' + CorrelatedEvents: + required: + - correlationFinished + - events + type: object + properties: + correlationFinished: + type: boolean + description: Flag indicating correlation completion. + example: true + events: + type: array + description: List of events. + items: + $ref: '#/components/schemas/CorrelatedEvent' + CorrelatedEvent: + required: + - eventPriority + - eventSource + - eventType + - name + - startTimeMs + type: object + properties: + name: + type: string + description: The name of the event. + example: monitor-manager deployed. + description: + type: string + description: Description of the events. + example: 2 containers in monitor-manager were upgraded. + eventType: + type: string + description: The type of event. + example: Deploy + eventPriority: + type: string + description: The priority of event. + example: High + eventSource: + type: string + description: The source of the event. + example: Jenkins + startTimeMs: + type: integer + description: The start time of the event. + format: int64 + example: 16794589390 + metadataJson: + type: string + description: JSON string containing metadata of the event. + description: Object specifying an event. + ListEventExtractionRulesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of event extraction rules. + items: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + EventExtractionRuleWithDetails: + type: object + description: Event extraction rule object. + allOf: + - $ref: '#/components/schemas/EventExtractionRule' + - required: + - id + type: object + properties: + id: + type: string + description: Id of the event extraction rule. + example: "0000000001213227" + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + enabled: + type: boolean + description: Flag indicating whether the event extraction rule is enabled + or disabled. + example: true + disableReason: + type: string + description: "Reason for disabling the event extraction rule, if applicable." + example: Event Extraction Rule output exceeded maximum allowed rate of + 1000 events per hour in last 24 hours. + EventExtractionRule: + required: + - configuration + - name + - query + type: object + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of event extraction rule. + example: foo + description: + maxLength: 1024 + type: string + description: Description of event extraction rule. + example: foo + query: + type: string + description: | + Query string for the Event Extraction Rule. Logs matching this query are periodically ingested into the `sumologic_userdata_events` index (**Events**). + + Guidelines for creating the query: + - Optimize the query to limit the number of returned log messages (intended for special logs only). + - The query runs in `Manual` mode, explicitly parse and extract only the necessary fields for event correlation and visualization. + - Use the `fields` operator to restrict the output to required fields. + example: _sourceCategory=eventSource + correlationExpression: + required: + - eventFieldName + - queryFieldName + - stringMatchingAlgorithm + type: object + properties: + queryFieldName: + type: string + description: Name of the query field returned by a log search query. + example: _sourcecategory + eventFieldName: + type: string + description: Name of the field from event query output. + example: foo + stringMatchingAlgorithm: + pattern: ^(ExactMatch)$ + type: string + description: Type of string matching algorithm which tells how to match + eventFieldName and queryFieldName. + example: ExactMatch + description: "Correlation Expression specifies how to determine related\ + \ events for a log search query. \nThe value of `eventFieldName` from\ + \ Events is compared with the values of `queryFieldName` from the log\ + \ search query output using the defined stringMatchingAlgorithm. Events\ + \ that match according to this algorithm are considered correlated.\n" + configuration: + maxProperties: 1000 + required: + - eventName + - eventPriority + - eventSource + - eventType + type: object + additionalProperties: + $ref: '#/components/schemas/FieldMapping' + description: | + Configuration for the Event Extraction Rule. + + This object defines how event fields are mapped to their corresponding values. + Each field specifies a `valueSource`, which provides the actual value, and an optional `mappingType`, + indicating the value is hardcoded. + + The following fields are **required**: + - `eventType`: Type of the event. Accepted values are `Deployment`, `Feature Flag Change`, `Configuration Change` or `Infrastructure Change`. + - `eventPriority`: Indicates the priority of the event. Accepted values are `High`, `Medium`, or `Low`. + - `eventSource`: Source system or component where the event originated (e.g., "Jenkins"). + - `eventName`: Descriptive name of the event (e.g., "monitor-manager deployed."). + + The following fields are **optional**: + - `eventDescription`: Additional context or details about the event. + + Custom fields can also be added as needed to capture domain-specific event data. + example: + eventType: + valueSource: Deploy + mappingType: HardCoded + eventPriority: + valueSource: High + mappingType: HardCoded + eventSource: + valueSource: Jenkins + mappingType: HardCoded + eventName: + valueSource: monitor-manager deployed. + mappingType: HardCoded + eventDescription: + valueSource: 2 containers in monitor-manager were upgraded. + mappingType: HardCoded + FieldMapping: + required: + - valueSource + type: object + properties: + valueSource: + maxLength: 256 + type: string + description: The actual value or field reference for the mapping. + example: Knobs Changes + mappingType: + pattern: ^(HardCoded)$ + type: string + description: Specifies valueSource is hardcoded. + example: HardCoded + x-pattern-message: Must be `HardCoded` + EventExtractionRulesQuotaUsage: + required: + - quota + - remaining + type: object + properties: + quota: + type: integer + description: Maximum number of EventExtractionRules allowed. + format: int32 + example: 200 + remaining: + type: integer + description: Remaining number of EventExtractionRules allowed. + format: int32 + example: 121 + ScanBudgetList: + required: + - data + type: object + properties: + data: + type: array + description: List of scan budgets. + items: + $ref: '#/components/schemas/ScanBudget' + next: + type: string + description: Next continuation token. + ScanBudget: + allOf: + - $ref: '#/components/schemas/ScanBudgetDefinition' + - required: + - createdAt + - createdBy + - id + - modifiedAt + - modifiedBy + - orgId + - resetDateOfMonth + - resetDayOfWeek + - resetTime + - resetTimeZone + type: object + properties: + id: + type: string + description: Id of the budget. + orgId: + type: string + description: Org Id of the org for the budget. + resetTime: + maxLength: 5 + minLength: 5 + type: string + description: Reset time of the time based scan budget in HH:MM format + example: 23:30 + default: 00:00 + resetTimeZone: + type: string + description: "Time zone of the reset time for the time based scan budget.\ + \ Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)." + example: America/Los_Angeles + default: Etc/UTC + resetDayOfWeek: + pattern: ^(MONDAY|TUESDAY|WEDNESDAY|THURSDAY|FRIDAY|SATURDAY|SUNDAY)$ + type: string + description: "The day of the week when the budget resets, applicable for\ + \ time based budgets with a Weekly window. Must be a valid day of the\ + \ week." + default: MONDAY + resetDateOfMonth: + maximum: 28 + minimum: 1 + type: integer + description: "The date of the month when the budget resets, applicable\ + \ for time based budgets with a Monthly window. Must be a valid day\ + \ of the month (1-28)." + format: int32 + default: 1 + createdAt: + type: string + description: Date & time when budget was created. + format: date-time + createdBy: + type: string + description: Id of the user who created the budget. + modifiedAt: + type: string + description: Date & time when budget was last modified. + format: date-time + modifiedBy: + type: string + description: Id of the user who last modified the budget. + ScanBudgetDefinition: + required: + - action + - applicableOn + - budgetType + - capacity + - groupBy + - name + - scope + - unit + - window + type: object + properties: + name: + type: string + description: Name of the budget. + capacity: + type: integer + description: Capacity of the budget. + format: int64 + unit: + pattern: ^(GB|MB|TB|KB)$ + type: string + description: Unit of the budget. + example: GB + budgetType: + $ref: '#/components/schemas/BudgetType' + scope: + $ref: '#/components/schemas/ScanBudgetScope' + window: + pattern: ^(Query|Daily|Weekly|Monthly)$ + type: string + description: Window of the budget. Use Daily/Weekly/Monthly for creating + a time based budget (beta) + example: Query + applicableOn: + pattern: ^(PerEntity|Sum)$ + type: string + description: Grouping of the budget. + example: PerEntity + groupBy: + pattern: ^(User)$ + type: string + description: Grouping Entity of the budget. + example: User + action: + pattern: ^(StopScan|StopForeGroundScan|Warn)$ + type: string + description: Action to be taken if the budget is breached + example: Warn + callerModules: + type: array + description: Caller modules this budget applies to. Empty list means budget + applies to all callers. + example: + - api + - mcp + items: + type: string + status: + pattern: ^(active|inactive)$ + type: string + description: Signifies the state of the budget. (Active/Inactive) + example: active + BudgetType: + pattern: ^(ScanBudget)$ + type: string + description: Type of the budget. + example: ScanBudget + ScanBudgetScope: + required: + - excludedRoles + - excludedUsers + - includedRoles + - includedUsers + type: object + properties: + includedUsers: + type: array + description: List of userIds included in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + excludedUsers: + type: array + description: List of userIds excluded in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + includedRoles: + type: array + description: List of roleIds included in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + excludedRoles: + type: array + description: List of roleIds excluded in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + ScanBudgetUsageList: + required: + - data + type: object + properties: + data: + type: array + description: List of budget usages + items: + $ref: '#/components/schemas/ScanBudgetUsage' + next: + type: string + description: Next continuation token. + ScanBudgetUsage: + required: + - budgetId + - usage + - usagePercentage + type: object + properties: + budgetId: + type: string + description: Budget id. + usage: + type: integer + description: Budget usage (in bytes). + format: int64 + usagePercentage: + type: integer + description: Budget usage percentage. + format: int64 + ContentSyncResponse: + required: + - jobId + type: object + properties: + jobId: + type: string + description: Content Sync Job Id. + example: 68B6D772B616DC06 + ContentSyncRequest: + required: + - contentList + - destinationChildOrgInfo + - sourceChildOrgInfo + type: object + properties: + sourceChildOrgInfo: + $ref: '#/components/schemas/ChildOrgInfo' + destinationChildOrgInfo: + $ref: '#/components/schemas/DestinationChildOrgInfo' + contentList: + type: array + description: List of Content and Configuration Information. + items: + $ref: '#/components/schemas/Content_1' + ChildOrgInfo: + required: + - orgId + type: object + properties: + orgId: + type: string + description: Organization Identifier. + example: us2-0000000000000006 + orgName: + type: string + description: Organization Name. + example: Test Org Name + DestinationChildOrgInfo: + required: + - excluded + - included + type: object + properties: + included: + type: array + description: Organization Info which needs to be included in Destination + Organisation List. + items: + $ref: '#/components/schemas/ChildOrgInfo' + excluded: + type: array + description: Organization Info which needs to be excluded from Destination + Organisation List. + items: + $ref: '#/components/schemas/ChildOrgInfo' + Content_1: + required: + - id + - options + - type + type: object + properties: + id: + type: string + description: Identifier of Content or Configuration + example: MATCH-S00574 + type: + type: string + description: Type Of Content. + example: CSE_RULE + enum: + - CSE_RULE + - CSE_TUNING_EXPRESSION + - LIBRARY_FOLDER + - DASHBOARD + - SEARCH + - SCHEDULED_SEARCH + - MONITOR + - MONITOR_FOLDER + - SOURCE_TEMPLATE + - LOOKUP_TABLE + name: + type: string + description: Name of Content or Configuration + example: Test CSE Rule + options: + maxProperties: 100 + type: object + additionalProperties: + type: string + description: Advance Settings required for syncing content or configuration. + example: + includeCSERule: true + default: {} + ContentSyncStatusResponse: + required: + - progress + - status + type: object + properties: + status: + type: string + description: Content Sync Job status. + example: Success + progress: + type: integer + description: Content Sync Job progress percentage. + example: 100 + RetryOptions: + type: string + description: "Determines retry scope -> \"ALL_CONTENTS\" (default) retries all,\ + \ \"NON_SUCCESS_CONTENTS\" retries only failed ones." + enum: + - ALL_CONTENTS + - NON_SUCCESS_CONTENTS + default: ALL_CONTENTS + ContentSyncResult: + required: + - contentList + type: object + properties: + contentList: + type: array + description: List of content sync items with details. + items: + $ref: '#/components/schemas/ContentSyncItemResult' + ContentSyncItemResult: + required: + - childOrganization + - contentId + - message + type: object + properties: + contentId: + type: string + description: Identifier of Content or Configuration + example: MATCH-S00574 + message: + type: string + description: Message Passed while processing content or configuration sync. + example: "Sync Failed due to an Internal Error, Please check with support\ + \ team for more details." + childOrganization: + $ref: '#/components/schemas/ChildOrgInfo' + ContentSyncJobInfo: + required: + - contentList + - destinationChildOrgInfo + - sourceChildOrgInfo + type: object + properties: + sourceChildOrgInfo: + $ref: '#/components/schemas/ChildOrgInfo' + destinationChildOrgInfo: + $ref: '#/components/schemas/DestinationChildOrgInfo' + contentList: + type: array + description: List of Content and Configuration Information. + items: + $ref: '#/components/schemas/Content_1' + CreateJobResponse: + type: object + properties: + warning: + type: string + description: Warnings value contains the detailed information about the + warning while creating the search job. + id: + type: string + description: The search job identifier. + link: + $ref: '#/components/schemas/Link' + isAggregation: + type: boolean + description: Whether the query has aggregation operators. + isSummary: + type: boolean + description: Whether the query is a summary query. + isSortable: + type: boolean + description: Whether the results are sortable. + runnableQuery: + type: string + description: | + The final query string after parameterized variables are substituted, macros are expanded. + userReferencedFieldsSortable: + type: boolean + description: | + Whether the user's explicitly referenced fields can be re-sorted by clicking column headers. + operators: + type: array + description: | + List of special operators present in the query. + items: + type: string + tiersInQuery: + type: array + description: Analytics tiers referenced in the query. + items: + type: string + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + Link: + type: object + properties: + rel: + type: string + description: Relation. + href: + type: string + description: URL of the search job. + CreateJobRequest: + required: + - from + - query + - timezone + - to + type: object + properties: + query: + maxLength: 15000 + type: string + description: | + The actual search expression. Ensure your query follows [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259) and is valid JSON format, you may need to escape certain characters to follow the [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259). + example: _sourceCategory=service + from: + maxLength: 24 + type: string + description: | + The start date and time of the search. This follows the [ISO 8601](https://www.w3.org/TR/NOTE-datetime) date and time format. + example: 2017-07-26T00:00:00 + to: + maxLength: 24 + type: string + description: | + The end date and time of the search. This follows the [ISO 8601](https://www.w3.org/TR/NOTE-datetime) date and time format. + example: 2017-07-26T00:00:00 + timezone: + type: string + description: "The time zone if from/to is not in milliseconds. See this\ + \ [Wikipedia article](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)\ + \ for a list of time zone codes." + default: UTC + autoParsingMode: + pattern: ^(Manual|AutoParse)$ + type: string + description: | + Define the parsing mode to scan the JSON format log messages. Possible values are: + + AutoParse - System automatically figures out the fields to parse based on the search query. + + Manual - No fields are parsed out automatically. For more information, refer to the [Dynamic Parsing](https://help.sumologic.com/docs/manage/field-extractions/create-field-extraction-rule/). + example: Manual + default: Manual + x-pattern-message: should be either 'Manual' or 'AutoParse' + requiresRawMessages: + pattern: ^(true|false)$ + type: string + description: | + On enabling this field, the log messages applicable to the search are returned. Maximum value is 100,000. This is only applicable for aggregate queries. + default: "false" + x-pattern-message: should be either 'true' or 'false' + maxRawRecords: + type: string + description: Maximum number of raw records to finish the search. + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: "This parameter defines whether you want to run the search\ + \ by messageTime, receiptTime or searchableTime." + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + childOrgIds: + type: array + description: | + List of child organization ids to run the search on. + example: + - "0000000000000001" + - "0000000000000002" + items: + type: string + includeAllChildOrgs: + type: boolean + description: | + When true, automatically resolves all child orgs of the authenticated parent and fans the search out across all of them. If this is set, it takes precedence over childOrgIds field. Default value is false. + default: false + SearchQueryParam: + type: object + properties: + name: + type: string + description: Name of the parameter. + label: + type: string + description: Display label for the parameter. + desc: + type: string + description: Description of the parameter. + dataType: + type: string + description: "Data type of the parameter (NUMBER, STRING, QUERY_FRAGMENT,\ + \ SEARCH_KEYWORD)." + default: STRING + value: + $ref: '#/components/schemas/ParameterLabelValue' + autoComplete: + $ref: '#/components/schemas/ParameterAutoComplete' + ParameterLabelValue: + type: object + properties: + label: + type: string + description: Display label for the value. + value: + type: string + description: The actual value. + ParameterAutoComplete: + type: object + properties: + type: + type: string + description: | + Type of auto-complete. Possible values are SKIP_AUTOCOMPLETE, CSV_AUTOCOMPLETE, AUTOCOMPLETE_KEY, VALUE_ONLY_AUTOCOMPLETE, VALUE_ONLY_LOOKUP_AUTOCOMPLETE, LABEL_VALUE_LOOKUP_AUTOCOMPLETE. + autoCompleteValues: + type: array + description: List of auto-complete values. Used when type is CSV_AUTOCOMPLETE. + items: + $ref: '#/components/schemas/AutoCompleteValue' + autoCompleteKey: + type: string + description: Key for auto-complete lookup. + lookupMetaData: + $ref: '#/components/schemas/AutoCompleteLookupMetaData' + AutoCompleteValue: + type: object + properties: + label: + type: string + description: Display label. + value: + type: string + description: The value. + EmulateSearch: + type: object + properties: + userId: + type: string + description: The user ID to emulate the search as. + roleIds: + type: array + description: List of role IDs to apply for the emulated search. + items: + type: string + SearchJobStatusResponse: + type: object + properties: + warning: + type: string + description: Warnings value contains the detailed information about the + warning while obtaining the current status of a search job. + state: + type: string + description: "Search job state. In case you are checking status for a multi\ + \ child org query, you might see another status as 'Done Gathering Partial\ + \ Results' which means that the query failed for some of the child orgs.\ + \ You can check their reasons in audit logs with the query Id." + example: DONE GATHERING RESULTS + histogramBuckets: + type: array + description: Histogram buckets for the query. + items: + $ref: '#/components/schemas/HistogramBucket' + messageCount: + type: integer + description: Number of messages found or produced so far. + format: int64 + recordCount: + type: integer + description: Number of records found or produced so far. + format: int64 + pendingWarnings: + type: array + description: Pending warnings that have accumulated since the last time + the status was requested. + items: + type: string + pendingErrors: + type: array + description: Pending errors that have accumulated since the last time the + status was requested. + items: + type: string + usageDetails: + type: object + properties: + dataScannedInBytes: + type: integer + description: Data Scanned in Bytes. + format: int64 + description: Usage details about the search job api. It includes data scanned + in bytes during the search. + usageDetailsByMeteringType: + type: array + description: "Usage details broken down by metering type. Each element contains\ + \ dataScannedInBytes, meteringType, tier, and isChargeable." + items: + $ref: '#/components/schemas/UsageDetailsByMeteringType' + usageDetailsByTier: + type: array + description: Usage details broken down by analytics tier. Each element contains + dataScannedInBytes and tier. + items: + $ref: '#/components/schemas/UsageDetailsByTier' + timeElapsed: + type: integer + description: Time elapsed in milliseconds since the search job started. + format: int64 + searchedTimeRange: + $ref: '#/components/schemas/SearchedTimeRange' + showLogLevels: + type: boolean + description: Whether log level distribution data is available for this search + job. + pendingMessageLocatorsAndOffsets: + type: array + description: Pending message locators and offsets accumulated since the + last status request. + items: + $ref: '#/components/schemas/PendingMessageLocatorsAndOffset' + jobId: + type: string + description: The job identifier for this search job. + userMessages: + type: array + description: "Informational user messages generated during the search. Each\ + \ element contains type, key, and data." + items: + $ref: '#/components/schemas/UserMessage' + performance: + $ref: '#/components/schemas/Performance' + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + HistogramBucket: + required: + - count + - length + - startTimestamp + type: object + properties: + startTimestamp: + type: integer + description: Start time of the bucket. + format: int64 + length: + type: integer + description: "Length is in milliseconds, tells the width of the bucket." + format: int64 + count: + type: integer + description: Count of messages in this bucket. + logLevel: + type: string + description: Log level of messages in this bucket. + UsageDetailsByMeteringType: + required: + - dataScannedInBytes + - isChargeable + - meteringType + - tier + type: object + properties: + dataScannedInBytes: + type: integer + description: Data scanned in bytes for this metering type. + format: int64 + meteringType: + type: string + description: The metering type. + tier: + type: string + description: The analytics tier. + isChargeable: + type: boolean + description: Whether this metering type is chargeable. + UsageDetailsByTier: + required: + - dataScannedInBytes + - tier + type: object + properties: + dataScannedInBytes: + type: integer + description: Data scanned in bytes for this tier. + format: int64 + tier: + type: string + description: The analytics tier. + SearchedTimeRange: + type: object + properties: + startMillis: + type: integer + description: Start of the searched time range in epoch milliseconds. + format: int64 + endMillis: + type: integer + description: End of the searched time range in epoch milliseconds. + format: int64 + description: The time range that has been searched so far. + PendingMessageLocatorsAndOffset: + required: + - messageLocator + - offset + type: object + properties: + messageLocator: + $ref: '#/components/schemas/MessageLocator' + offset: + type: integer + description: The offset of the message. + format: int64 + MessageLocator: + type: object + properties: + blockId: + type: string + description: The block identifier. + messageId: + type: string + description: The message identifier. + UserMessage: + required: + - key + - type + type: object + properties: + type: + type: string + description: The message type. + key: + type: string + description: The message key. + data: + type: string + description: The message data as a JSON string. + Performance: + type: object + properties: + difficulty: + type: string + description: The difficulty level of the search query. + enum: + - CALCULATION_DISABLED + - Unknown + - Easy + - Medium + - Hard + reasons: + type: array + description: Reasons explaining the difficulty classification. + items: + type: string + description: Performance characteristics of this search job. + SearchJobDeleteResponse: + type: object + properties: + warning: + type: string + description: Warnings value contains the detailed information about the + warning while deleting a search job. + x-field-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + jobId: + type: string + description: The Id of the search job which is deleted. + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + SearchQueryPaginatedMessages: + required: + - fields + - messages + type: object + properties: + warning: + type: string + description: Detailed information about the warning while paging through + the messages found by a search job. + fields: + type: array + description: List of all the fields defined for each of the messages returned. + items: + $ref: '#/components/schemas/Field' + messages: + type: array + description: Map of the field names to the field values. + items: + $ref: '#/components/schemas/Message' + autoPauseLimitReached: + type: boolean + description: Whether the auto-pause limit has been reached for this query. + Field: + required: + - fieldType + - keyField + - name + type: object + properties: + name: + type: string + description: Name of the field. + fieldType: + type: string + description: Type of the field. + example: long + keyField: + type: boolean + description: Flag if the field is a key field. + userReferenced: + type: boolean + description: Flag if the field is referenced by the user in the query. + autoParseUnreferenced: + type: boolean + description: Flag if the field was auto-parsed but not referenced in the + query. + Message: + type: object + properties: + map: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map message values. + SearchQueryPaginatedRecords: + required: + - fields + - records + type: object + properties: + warning: + type: string + description: Detailed information about the warning while paging through + the records found by a search job. + fields: + type: array + description: List of all the fields defined for each of the records returned. + items: + $ref: '#/components/schemas/Field' + records: + type: array + description: Map of the field names to the field values. + items: + $ref: '#/components/schemas/Record' + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + Record: + type: object + properties: + map: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map Records values. + PaginatedMacros: + required: + - macros + type: object + properties: + data: + type: array + description: List of macros. + items: + $ref: '#/components/schemas/Macro' + next: + type: string + description: Next continuation token. `token` is set to null when no more + pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + Macro: + allOf: + - $ref: '#/components/schemas/MacroRequest' + - required: + - createdAt + - createdBy + - id + type: object + properties: + id: + type: string + description: | + Unique identifier for the macro. This id is used to get detailed information about the macro, such as name, definition, arguments and argument validations. + example: C03E086C137F38B4 + createdAt: + type: string + description: "Creation timestamp of the macro in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2024-10-01T09:10:00Z + createdBy: + type: string + description: The identifier of the user who created the macro. + example: 0000000006743FDD + MacroRequest: + allOf: + - $ref: '#/components/schemas/BaseMacroRequest' + - required: + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the macro. + example: MacroGeoLookup + macroCreationSuggestionId: + type: string + description: "Identifier if the suggestion comes from an macro creation\ + \ suggestion. This id is used to track macro creation suggestions, and\ + \ to delete the suggestion once the macro is created." + example: ABC12 + BaseMacroRequest: + required: + - definition + type: object + properties: + description: + maxLength: 4000 + type: string + description: Description of the macro. + example: Macro for geo lookup. + definition: + minLength: 1 + type: string + description: The definition of the macro. Use a valid Sumo Log Search expression. + example: | + lookup latitude, longitude from geo://location on ip = {{ip_field}} | count by latitude, longitude | sort _count" + enabled: + type: boolean + description: If the macro is enabled or not (default True) + default: true + arguments: + type: array + description: Arguments used in the macro. + items: + $ref: '#/components/schemas/Argument' + argumentValidations: + type: array + description: Validation expressions for the arguments. + items: + $ref: '#/components/schemas/ArgumentValidation' + Argument: + required: + - name + type: object + properties: + name: + type: string + description: Argument name for the macro. + example: ip_field + type: + pattern: ^(String|Any|Number|Keyword)$ + type: string + description: The type of the macro. + example: String + default: String + x-pattern-message: "Must be `String`, `Any`, `Number or `Keyword`." + ArgumentValidation: + required: + - errorMessage + - evalExpression + type: object + properties: + evalExpression: + type: string + description: The expression to validate a macro argument. + example: isValidIp(ip_field) + errorMessage: + type: string + description: Error message to be shown if the macro argument validation + fails. + example: You need to enter a field name which is a valid ip. + FeatureSettingsResponse: + type: object + properties: + featureSettings: + type: array + description: List of opt-in/out features. + items: + $ref: '#/components/schemas/FeatureSettingsModel' + FeatureSettingsModel: + allOf: + - $ref: '#/components/schemas/FeatureSettingsBase' + - required: + - description + - lastModifiedAt + - lastModifiedBy + - name + - type + type: object + properties: + name: + maxLength: 64 + type: string + description: Name of the feature (user-friendly). + example: Mobot + description: + maxLength: 255 + type: string + description: Details of the feature. + type: + pattern: ^(GA|PublicPreview|PrivatePreview)$ + type: string + description: Type of the feature + example: GA + lastModifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + nullable: true + example: 2025-10-16T09:10:00Z + lastModifiedBy: + type: string + description: Identifier of the user who last modified the resource. + nullable: true + example: 0000000006743FE8 + FeatureSettingsBase: + required: + - id + - settings + type: object + properties: + id: + maxLength: 32 + type: string + description: Id of the feature. + example: Mobot + settings: + minItems: 1 + type: array + description: List of settings. + items: + $ref: '#/components/schemas/Setting' + Setting: + required: + - key + - value + type: object + properties: + key: + type: string + description: The key for the setting. + example: enabled + value: + type: string + description: The value for the setting. + example: "false" + UpdateFeatureSettingsRequest: + required: + - featureSettings + type: object + properties: + featureSettings: + minItems: 1 + type: array + description: List of feature Id and its settings. + items: + $ref: '#/components/schemas/FeatureSettingsBase' + ListNotificationsResponse: + required: + - data + - totalUnreadCount + type: object + properties: + data: + type: array + description: List of notifications. + items: + $ref: '#/components/schemas/Notification' + totalUnreadCount: + type: integer + description: Total number of unread notifications for the current user. + format: int32 + example: 5 + next: + type: string + description: Continuation token to get the next page of results. + example: bmV4dHBhZ2U= + Notification: + type: object + allOf: + - $ref: '#/components/schemas/BaseNotificationDefinition' + - required: + - createdAt + - id + - notificationType + - status + type: object + properties: + id: + type: string + description: Unique identifier for the notification. + example: "0000000000000001" + status: + pattern: ^(Unread|Read)$ + type: string + description: | + The read status of the notification. Supported values are `Unread` and `Read`. + example: Unread + x-pattern-message: must be either `Unread` or `Read` + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2024-01-26T16:00:00Z + expiresAt: + type: string + description: "Expiration timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2024-02-25T15:00:00Z + BaseNotificationDefinition: + required: + - category + - metadata + - title + type: object + properties: + notificationType: + pattern: ^(UserNotification|Announcement)$ + type: string + description: | + The type of notification. Supported values are `UserNotification` and `Announcement`. + example: UserNotification + x-pattern-message: must be either `UserNotification` or `Announcement` + category: + maxLength: 256 + minLength: 1 + type: string + description: The category of the notification. + example: DashboardShared + title: + maxLength: 512 + minLength: 1 + type: string + description: The title of the notification. + example: John shared a dashboard + metadata: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: | + Additional metadata associated with the notification such as destination URLs or detailed messages. + example: + detailedMessage: User a shared dashboard ABC with you + destinationUrl: /dashboards/v2/ABC + CreateAnnouncementResponse: + required: + - createdAt + - id + type: object + properties: + id: + type: string + description: Unique identifier for the created announcement. + example: "0000000000000001" + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: date-time + example: 2024-01-26T10:00:00Z + CreateAnnouncementRequest: + type: object + allOf: + - $ref: '#/components/schemas/BaseNotificationDefinition' + - required: + - category + - message + - targetType + - title + type: object + properties: + notificationType: + pattern: ^(Announcement)$ + type: string + example: Announcement + default: Announcement + x-pattern-message: must be `Announcement` + message: + maxLength: 4096 + minLength: 1 + type: string + description: The message body of the announcement. + example: We've added dark mode support! + targetType: + pattern: ^(AllUsers|SpecificUsers|SpecificOrgs)$ + type: string + description: | + Determines who receives the announcement. Supported values are `AllUsers`, `SpecificUsers`, and `SpecificOrgs`. + example: AllUsers + x-pattern-message: "must be one of `AllUsers`, `SpecificUsers`, or `SpecificOrgs`" + targetIds: + maxItems: 10000 + type: array + description: | + List of user identifiers to target when targetType is `SpecificUsers`, or org identifiers when targetType is `SpecificOrgs`. Should be empty when targetType is `AllUsers`. + example: [] + items: + type: string + IdToMonitorTemplatesLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MonitorTemplatesLibraryBaseResponse' + ListMonitorTemplatesLibraryItemWithPath: + type: array + description: Multi-type list of types monitortemplate or folder. + items: + $ref: '#/components/schemas/MonitorTemplatesLibraryItemWithPath' + MonitorTemplatesLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/MonitorTemplatesLibraryBaseResponse' + path: + type: string + description: Path of the monitortemplate or folder. + example: /MonitorTemplates/SampleFolder/TestMonitortemplate + IdToMutingSchedulesLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + ListMutingSchedulesLibraryItemWithPath: + type: array + description: Multi-type list of types mutingschedule or folder. + items: + $ref: '#/components/schemas/MutingSchedulesLibraryItemWithPath' + MutingSchedulesLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + path: + type: string + description: Path of the mutingschedule or folder. + example: /MutingSchedules/SampleFolder/TestMutingschedule + IdToSlosLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + ListSlosLibraryItemWithPath: + type: array + description: Multi-type list of types slo or folder. + items: + $ref: '#/components/schemas/SlosLibraryItemWithPath' + SlosLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + path: + type: string + description: Path of the slo or folder. + example: /Slos/SampleFolder/TestSlo + IdToMonitorsLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + ListMonitorsLibraryItemWithPath: + type: array + description: Multi-type list of types monitor or folder. + items: + $ref: '#/components/schemas/MonitorsLibraryItemWithPath' + MonitorsLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + path: + type: string + description: Path of the monitor or folder. + example: /Monitors/SampleFolder/TestMonitor + IdToAlertsLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/AlertsLibraryBaseResponse' + ListAlertsLibraryItemWithPath: + type: array + description: Multi-type list of types alert or folder. + items: + $ref: '#/components/schemas/AlertsLibraryItemWithPath' + AlertsLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/AlertsLibraryBaseResponse' + path: + type: string + description: Path of the alert or folder. + example: /Alerts/SampleFolder/TestAlert + OperatorData: + required: + - operatorName + - parameters + type: object + properties: + operatorName: + type: string + description: The name of the metrics operator. + example: avg + parameters: + type: array + description: A list of operator parameters for the operator data. + items: + $ref: '#/components/schemas/OperatorParameter' + description: The operator data for metrics query. + example: + operatorName: avg + parameters: + - key: aggregator + value: max + - key: operation + value: "" + - key: value + value: 50 + OperatorParameter: + required: + - key + - value + type: object + properties: + key: + type: string + description: The key of the operator parameter. + example: operation + value: + type: string + description: The value of the operator parameter. + example: '>' + description: The operator parameter for operator data. + example: + key: aggregator + value: max + TracesQueryData: + required: + - filters + type: object + properties: + filters: + type: array + description: A list of filters for the traces query. + items: + $ref: '#/components/schemas/TracesFilter' + description: The data format describing a basic traces query. + TracesFilter: + required: + - type + type: object + properties: + type: + pattern: ^(FieldDescriptor|DurationMetricDescriptor|NumericMetricDescriptor|CPCOfFilterDescriptor|MaxCPCOfFilterDescriptor|MaxCPCFilterDescriptor)$|^$ + type: string + description: The type of the filter. + example: FieldDescriptor + x-pattern-message: "Must be `FieldDescriptor`, `DurationMetricDescriptor`,\ + \ `NumericMetricDescriptor`, `CPCOfFilterDescriptor`, `MaxCPCOfFilterDescriptor`\ + \ or `MaxCPCFilterDescriptor`" + description: The filter for traces query. + discriminator: + propertyName: type + SpansFilter: + required: + - fieldName + - type + type: object + properties: + type: + pattern: ^(StandaloneKey|KeyValuePair)$ + type: string + description: The spans filter type. + example: StandaloneKey + x-pattern-message: Must be `StandaloneKey` or `KeyValuePair`. + fieldName: + type: string + description: The name of the filtering field. + example: service + discriminator: + propertyName: type + mapping: + StandaloneKey: '#/components/schemas/SpansFilterStandaloneKey' + KeyValuePair: '#/components/schemas/SpansFilterKeyValuePair' + SpansVisualization: + required: + - name + - type + type: object + properties: + type: + pattern: ^(count|calculation)$ + type: string + description: The visualization type. + example: count + x-pattern-message: Must be `count` or `calculation` + name: + type: string + description: A unique name of the visualization. + example: duration_pct_95 + discriminator: + propertyName: type + mapping: + count: '#/components/schemas/SpansCountVisualization' + calculation: '#/components/schemas/SpansCalculationVisualization' + SpansGroupBy: + required: + - type + type: object + properties: + type: + pattern: ^(time|field)$ + type: string + description: The type of the group-by clause. + example: time + x-pattern-message: Must be `time` or `field` + discriminator: + propertyName: type + mapping: + time: '#/components/schemas/SpansTimeGroupBy' + field: '#/components/schemas/SpansFieldGroupBy' + SpansLimitItem: + required: + - direction + - limitValue + type: object + properties: + direction: + pattern: ^(asc|desc)$ + type: string + description: Describes whether the results should be sorted in an ascending + or a descending order. + example: asc + x-pattern-message: Must be `asc` or `desc` + limitValue: + type: integer + description: | + The number of aggregated results returned, e.g. if 10 is requested, then only the first 10 aggregated results are returned. + format: int32 + example: 10 + description: | + A representation of the limit operator which reduces the number of aggregate results returned: either the top k results or bottom k results. + LinkedDashboard: + required: + - id + type: object + properties: + id: + type: string + description: Identifier of the linked dashboard. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + relativePath: + type: string + description: Relative path of the linked dashboard to the dashboard of the + linking panel. + example: ./subdirectory/LinkedDashboard + includeTimeRange: + type: boolean + description: Include time range from the current dashboard to the linked + dashboard. + example: true + default: true + includeVariables: + type: boolean + description: Include variables from the current dashboard to the linked + dashboard. + example: true + default: true + VariableValuesData: + required: + - variableValues + type: object + properties: + variableValues: + type: array + description: Values for the variable. + example: + - myCluster + items: + type: string + status: + $ref: '#/components/schemas/DashboardSearchStatus' + variableType: + pattern: ^(LogQueryVariableSourceDefinition|MetadataVariableSourceDefinition|CsvVariableSourceDefinition|FilterSourceDefinition)$ + type: string + description: The type of the variable. + example: LogQueryVariableSourceDefinition + x-pattern-message: "Must be `LogQueryVariableSourceDefinition`, `MetadataVariableSourceDefinition`\ + \ `CsvVariableSourceDefinition` or `FilterSourceDefinition`." + valueType: + type: string + description: | + The type of value of the variable. Allowed values are `String`, Any`, `Numeric`, `Integer`, `Long`, `Double`, `Boolean`. - `String` considers as a single phrase and will wrap in double-quotes. - `Any` is all characters. - `Numeric` consists of a numeric value for variables, it will be displayed differently in the UI. - `Integer` is a variable with an `Int` value. - `Long` is a variable with a `Long` value. - `Double` is a variable with a `Double` value. - `Boolean` is a variable with a `Boolean` value. + example: Any + default: Any + allowMultiSelect: + type: boolean + description: Allow multiple selections in the values dropdown. + example: false + default: false + variableKey: + type: string + description: The key of the variable. + example: _source + errors: + type: array + description: Generic errors returned by backend from downstream assemblies. + More specific errors will be thrown in the future. + items: + $ref: '#/components/schemas/ErrorDescription' + description: "Variable values, status, type and errors for the variable values\ + \ search." + ParameterAutoCompleteSyncDefinition: + required: + - autoCompleteType + type: object + properties: + autoCompleteType: + type: string + description: |- + The autocomplete parameter type. Supported values are: + 1. `SKIP_AUTOCOMPLETE` + 2. `CSV_AUTOCOMPLETE` + 3. `AUTOCOMPLETE_KEY` + 4. `VALUE_ONLY_AUTOCOMPLETE` + 5. `VALUE_ONLY_LOOKUP_AUTOCOMPLETE` + 6. `LABEL_VALUE_LOOKUP_AUTOCOMPLETE` + autoCompleteKey: + type: string + description: The autocomplete key to be used to fetch autocomplete values. + example: Ephemeral-3644138589235809747-1583470806220-parameter + autoCompleteValues: + type: array + description: The array of values of the corresponding autocomplete parameter. + items: + $ref: '#/components/schemas/AutoCompleteValueSyncDefinition' + lookupFileName: + type: string + description: The lookup file to use as a source for autocomplete values. + lookupLabelColumn: + type: string + description: The column from the lookup file to use for autocomplete labels. + lookupValueColumn: + type: string + description: The column from the lookup file to fill the actual value when + a particular label is selected. + AutoCompleteValueSyncDefinition: + required: + - label + - value + type: object + properties: + label: + type: string + description: The label of the autocomplete value. + value: + type: string + description: The value of the autocomplete value. + MetricsQuerySyncDefinition: + required: + - query + - rowId + type: object + properties: + query: + type: string + description: The text of a metrics query. + rowId: + type: string + description: A label referring to the query; used if other metrics queries + reference this one. + ReportAutoParsingInfo: + type: object + properties: + mode: + pattern: ^(intelligent|performance)$|^$ + type: string + description: Can be `intelligent` or `performance` + example: performance + default: performance + description: Auto-parsing information for the panel. This information tells + us whether automatic field extraction from JSON log messages is enabled or + not + ReportScheduleSyncDefinition: + required: + - emailNotification + - reportFormat + - scheduleType + - timeZone + type: object + properties: + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + variableValues: + $ref: '#/components/schemas/VariablesValuesData' + reportFormat: + pattern: ^(Pdf|Png)$ + type: string + description: File format of the report. Can be `Pdf` or `Png`. `Pdf` is + portable document format. `Png` is portable graphics image format. + example: Pdf + x-pattern-message: "should be one of the following: 'Pdf', 'Png'" + scheduleType: + type: string + description: |- + Run schedule of the scheduled report. Set to "Custom" to specify the schedule with a CRON expression. Possible schedule types are: + - `RealTime` + - `15Minutes` + - `1Hour` + - `2Hours` + - `4Hours` + - `6Hours` + - `8Hours` + - `12Hours` + - `1Day` + - `1Week` + - `Custom` + example: 1Day + cronExpression: + type: string + description: "Cron-like expression specifying the report's schedule. Field\ + \ scheduleType must be set to \"Custom\", otherwise, scheduleType takes\ + \ precedence over cronExpression." + example: 0 0/15 * * * ? * + timeZone: + maxLength: 1024 + minLength: 1 + type: string + description: "Time zone identifier for time specification. Either an abbreviation\ + \ such as \"PST\", a full name such as \"America/Los_Angeles\", or a custom\ + \ ID such as \"GMT-8:00\". Note that the support of abbreviations is for\ + \ JDK 1.1.x compatibility only and full names should be used." + example: America/Los_Angeles + emailNotification: + $ref: '#/components/schemas/Email' + isActive: + type: boolean + description: Is the dashboard report schedule active + default: true + SavedSearchSyncDefinitionBase: + required: + - byReceiptTime + - queryParameters + - queryText + type: object + properties: + queryText: + type: string + description: The text of a Sumo Logic query. + byReceiptTime: + type: boolean + description: "Set it to true to run the search using receipt time. By default,\ + \ searches do not run by receipt time." + default: false + viewName: + type: string + description: The name of the Scheduled View that has indexed the data you + want to search. + viewStartTime: + type: string + description: Start timestamp of the Scheduled View in UTC format. + format: date-time + queryParameters: + type: array + description: An array of search query parameter objects. + items: + $ref: '#/components/schemas/QueryParameterSyncDefinition' + parsingMode: + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: "This parameter defines whether you want to run the search\ + \ by messageTime, receiptTime, or searchableTime. By default, the search\ + \ will run by messageTime. If both runByReceiptTime and intervalTimeType\ + \ parameters are present then the preference will be given to the intervalTimeType.\ + \ This is available in beta only(Contact your sumologic representative\ + \ to enable this feature)." + example: messageTime + default: messageTime + x-pattern-message: "must be one of the following: `messageTime`, `receiptTime`,\ + \ `searchableTime`" + SearchScheduleWithDependencySyncDefinition: + type: object + properties: + searchSchedule: + $ref: '#/components/schemas/SearchScheduleSyncDefinition' + dependencyDetail: + $ref: '#/components/schemas/ScheduleDependencyDetail' + lookupTableDependencies: + type: array + description: Lookup tables that this search schedule depends on + items: + $ref: '#/components/schemas/LookupTableSyncDefinition' + ScheduleDependencyDetail: + required: + - endpointDetail + type: object + properties: + endpointDetail: + $ref: '#/components/schemas/ConnectionDefinition' + MetricsSavedSearchQuerySyncDefinition: + required: + - query + - rowId + type: object + properties: + rowId: + type: string + description: Row id. All rows ids are represented by subsequent upper case + letters starting with `A`. + example: A + query: + type: string + description: Metrics query. + example: my_metric | avg + description: Definition of a metrics query. + ResourceIdentity: + required: + - id + - type + type: object + properties: + id: + type: string + description: The unique identifier of the resource. + example: C03E086C137F38B4 + name: + type: string + description: The name of the resource. + example: "S3 Source, Scheduled View name." + default: Unknown + type: + type: string + description: "-> Resource type. Supported types are - `Collector`, `Source`,\ + \ `IngestBudget` and `Organisation`." + example: Collector + discriminator: + propertyName: type + mapping: + Collector: '#/components/schemas/CollectorResourceIdentity' + Source: '#/components/schemas/SourceResourceIdentity' + IngestBudget: '#/components/schemas/IngestBudgetResourceIdentity' + Organisation: '#/components/schemas/OrgIdentity' + LogsToMetricsRule: '#/components/schemas/LogsToMetricsRuleIdentity' + ScheduledView: '#/components/schemas/ScheduledViewResourceIdentity' + TrackerIdentity: + required: + - description + - error + - trackerId + type: object + properties: + trackerId: + type: string + description: Name that uniquely identifies the health event. It focuses + on what happened rather than why. + error: + type: string + description: Description of the underlying reason for the event change. + example: Access denied to Amazon S3 bucket + description: + type: string + description: A more elaborate description of why the event occurred. + example: S3 collection is not working as expected because of access issues. + discriminator: + propertyName: description + DataIngestAffectedTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + S3CollectionErrorTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + FileCollectionErrorTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + AwsCloudWatchCollectionErrorTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + AwsInventoryCollectionErrorTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + CSEWindowsErrorTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + CSEWindowsAccessErrorTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + CSEWindowsSensorOutOfStorageTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + CSEWindowsParsingErrorTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + CSEWindowsExcessiveBacklogTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + MetricsMetadataKeyLengthLimitExceededTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/MetricsMetadataLimitsExceededTracker' + MetricsMetadataLimitsExceededTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + MetricsMetadataValueLengthLimitExceededTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/MetricsMetadataLimitsExceededTracker' + MetricsMetadataKeyValuePairsLimitExceededTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/MetricsMetadataLimitsExceededTracker' + MetricsMetadataTotalMetadataSizeLimitExceededTracker: + allOf: + - $ref: '#/components/schemas/TrackerIdentity' + - $ref: '#/components/schemas/MetricsMetadataLimitsExceededTracker' + MetricNameErrorTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + OTCReceiverErrorTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + OTCExporterErrorTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + OTCProcessErrorTracker: + type: object + properties: + eventType: + type: string + description: Event type. + discriminator: + propertyName: eventType + Action: + required: + - connectionType + type: object + properties: + connectionType: + pattern: ^(Email|AWSLambda|AzureFunctions|Datadog|HipChat|Jira|NewRelic|Opsgenie|PagerDuty|Slack|MicrosoftTeams|ServiceNow|SumoCloudSOAR|Webhook)$ + type: string + description: |- + Connection type of the connection. Valid values: + 1. `Email` + 2. `AWSLambda` + 3. `AzureFunctions` + 4. `Datadog` + 5. `HipChat` + 6. `Jira` + 7. `NewRelic` + 8. `Opsgenie` + 9. `PagerDuty` + 10. `Slack` + 11. `MicrosoftTeams` + 12. `ServiceNow` + 13. `SumoCloudSOAR` + 14. `Webhook` + x-pattern-message: "should be one of the following: 'Email', 'AWSLambda',\ + \ 'AzureFunctions', 'Datadog', 'HipChat', 'Jira', 'NewRelic', 'Opsgenie',\ + \ 'PagerDuty', 'Slack', 'MicrosoftTeams', 'ServiceNow', 'SumoCloudSOAR'\ + \ and 'Webhook'" + description: The base class of all connection types. + discriminator: + propertyName: connectionType + StaticThreshold: + type: number + description: The data value for the condition. This defines the threshold for + when to trigger. Threshold value is not applicable for `MissingData` and `ResolvedMissingData` + triggerTypes and will be ignored if specified. + format: double + example: 50.0 + default: 0.0 + StaticThresholdType: + pattern: ^(LessThan|GreaterThan|LessThanOrEqual|GreaterThanOrEqual)$ + type: string + description: |- + The comparison type for the `threshold` evaluation. This defines how you want the data value compared. Valid values: + 1. `LessThan`: Less than than the configured threshold. + 2. `GreaterThan`: Greater than the configured threshold. + 3. `LessThanOrEqual`: Less than or equal to the configured threshold. + 4. `GreaterThanOrEqual`: Greater than or equal to the configured threshold. + ThresholdType value is not applicable for `MissingData` and `ResolvedMissingData` triggerTypes and will be ignored if specified. + example: GreaterThanOrEqual + default: GreaterThanOrEqual + x-pattern-message: "should be one of the following: 'LessThan', 'GreaterThan',\ + \ 'LessThanOrEqual', or 'GreaterThanOrEqual'" + OccurrenceType: + pattern: ^(AtLeastOnce|Always|ResultCount|MissingData)$ + type: string + description: |- + The criteria to evaluate the threshold and thresholdType in the given time range. Valid values: + 1. `AtLeastOnce`: Trigger if the threshold is met at least once. (NOTE: This is the only valid value if monitorType is `Metrics`.) + 2. `Always`: Trigger if the threshold is met continuously. (NOTE: This is the only valid value if monitorType is `Metrics`.) + 3. `ResultCount`: Trigger if the threshold is met against the count of results. (NOTE: This is the only valid value if monitorType is `Logs`.) + 4. `MissingData`: Trigger if the data is missing. (NOTE: This is valid for both `Logs` and `Metrics` monitorTypes) + example: ResultCount + x-pattern-message: "should be one of the following: 'AtLeastOnce', 'Always',\ + \ 'ResultCount' or 'MissingData'" + TriggerSource: + pattern: ^(AllTimeSeries|AnyTimeSeries|AllResults)$ + type: string + description: |- + Determines which time series from queries to use for Metrics MissingData and ResolvedMissingData triggers Valid values: + 1. `AllTimeSeries`: Evaluate the condition against all time series. (NOTE: This option is only valid if monitorType is `Metrics`) + 2. `AnyTimeSeries`: Evaluate the condition against any time series. (NOTE: This option is only valid if monitorType is `Metrics`) + 3. `AllResults`: Evaluate the condition against results from all queries. (NOTE: This option is only valid if monitorType is `Logs`) + example: AllResults + x-pattern-message: "should be one of the following: 'AllTimeSeries', 'AnyTimeSeries',\ + \ or 'AllResults'" + OutlierDirection_1: + pattern: ^(Both|Up|Down)$ + type: string + description: Specifies which direction should trigger violations. + example: Up + default: Both + x-pattern-message: "should be one of the following: 'Both', 'Up', 'Down'" + BurnRate: + required: + - burnRateThreshold + - timeRange + type: object + properties: + burnRateThreshold: + type: number + description: The error budget depletion percentage. + format: double + example: 90 + timeRange: + type: string + description: The relative time range for measuring error budget depletion. + example: -2h + description: Object containing error budget depletion and alert time range. + MonitorDependency: + required: + - endpointDetail + type: object + properties: + endpointDetail: + $ref: '#/components/schemas/ConnectionDefinition' + logs-data-forwarding-rule-management: + type: object + LogSearchScheduleSyncDefinition: + required: + - parseableTimeRange + - scheduleType + - timeZone + type: object + properties: + cronExpression: + type: string + description: "Cron-like expression specifying the search's schedule. Field\ + \ scheduleType must be set to \"Custom\", otherwise, scheduleType takes\ + \ precedence over cronExpression." + example: 0 0/15 * * * ? * + displayableTimeRange: + type: string + description: "A human-friendly text describing the query time range. For\ + \ e.g. \"-2h\", \"last three days\", \"team default time\". This value\ + \ can not be set via API." + example: -2h + parseableTimeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + timeZone: + type: string + description: "Time zone identifier for time specification. Either an abbreviation\ + \ such as \"PST\", a full name such as \"America/Los_Angeles\", or a custom\ + \ ID such as \"GMT-8:00\". Note that the support of abbreviations is for\ + \ JDK 1.1.x compatibility only and full names should be used. The GMT\ + \ time zone is chosen if the given time zone cannot be identified." + threshold: + $ref: '#/components/schemas/LogSearchNotificationThresholdSyncDefinition' + notification: + $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + scheduleType: + pattern: ^(RealTime|15Minutes|1Hour|2Hours|4Hours|6Hours|8Hours|12Hours|1Day|1Week|Custom)$ + type: string + description: |- + Run schedule of the scheduled search. Set to "Custom" to specify the schedule with a CRON expression.Please note that with Custom, 1Day and 1Week schedule types you need to provide the corresponding cron expression to determine when to actually run the search. e.g. Sample Valid Cron for 1Day is "0 0 16 ? * 2-6 *". Possible schedule types are: + - `RealTime` + - `15Minutes` + - `1Hour` + - `2Hours` + - `4Hours` + - `6Hours` + - `8Hours` + - `12Hours` + - `1Day` + - `1Week` + - `Custom` + muteErrorEmails: + type: boolean + description: "If enabled, emails are not sent out in case of errors with\ + \ the search." + parameters: + maxLength: 50 + type: array + description: "A list of scheduled search template parameters to be used\ + \ while executing the query. This is different from the queryParameters\ + \ field in parent object as this field will be used for execution as\ + \ per the schedule. The parent object field is for search itself, not\ + \ part of execution. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/" + items: + $ref: '#/components/schemas/ScheduleSearchParameterSyncDefinition' + notifications: + type: array + description: "List of notification actions for this schedule. Mutually exclusive\ + \ with 'notification' — exactly one of these fields must be provided.\ + \ Sending both or neither returns a 400 error. Supports multiple notification\ + \ channels (e.g., email and webhook) for a single scheduled search execution." + items: + $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + description: Schedule definition for a log search. Exactly one of 'notification' + (single notification) or 'notifications' (multiple notification actions) must + be provided. Sending both or neither will result in a 400 error. + LogSearchNotificationThresholdSyncDefinition: + required: + - count + - operator + type: object + properties: + thresholdType: + pattern: ^(message|group)$ + type: string + description: |- + This property is deprecated. The system will automatically infer the value of this field from the query going forward, so the user-specified value will no longer be honored. + Threshold type. Possible values are: + 1. `message` + 2. `group` + + Use `group` as threshold type if the search query is of aggregate type. For non-aggregate queries, set it to `message`. + operator: + pattern: ^(eq|gt|ge|lt|le)$ + type: string + description: |- + Criterion to be applied when comparing actual result count with expected count. Possible values are: + 1. `eq` + 2. `gt` + 3. `ge` + 4. `lt` + 5. `le` + count: + type: integer + description: Expected result count. + Metadata: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: "Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format." + format: dateTime + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: dateTime + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + TopologyLabelMap: + required: + - data + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/TopologyLabelValuesList' + description: Map from topology labels to `TopologyLabelValuesList`. + description: | + Map of the topology labels. Each label has a key and a list of values. If a value is `*`, it means the label will match content for all values of its key. + example: + data: + service: + - kube-scheduler + - kube-dns + TopologyLabelValuesList: + type: array + description: List of values corresponding to a key of a label. + example: + - kube-scheduler + items: + type: string + description: Value of the label. + Iso8601TimeRange: + required: + - end + - start + type: object + properties: + start: + type: string + description: "Start time in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format" + format: date-time + example: 2018-10-16T09:10:00Z + end: + type: string + description: "End time in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339)\ + \ format" + format: date-time + example: 2018-10-16T09:20:00Z + description: | + A simple time range class, where the start and end points are specified in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format + securitySchemes: + basicAuth: + type: http + scheme: basic +x-tagGroups: +- name: Archive Management + tags: + - archiveManagement +- name: Data Archiving + tags: + - dataArchivingManagement +- name: Health Events + tags: + - healthEvents +- name: Infrequent Data Tier + tags: + - logSearchesEstimatedUsage +- name: Ingest Budgets Management V2 + tags: + - ingestBudgetManagementV2 +- name: Library Management + tags: + - appManagement + - appManagementV2 + - contentManagement + - dashboardManagement + - folderManagement + - lookupManagement + - contentPermissions + - logSearchesManagement + - parsersLibraryManagement +- name: Metrics + tags: + - metricsSearchesManagement + - transformationRuleManagement + - metricsQuery + - metricsSearchesManagementV2 +- name: Security Management + tags: + - accessKeyManagement + - oauthManagement + - accountManagement + - passwordPolicy + - policiesManagement + - samlConfigurationManagement + - serviceAllowlistManagement + - serviceAccountManagement + - scimUserManagement +- name: Organizations Management + tags: + - orgsManagement +- name: Settings Management + tags: + - connectionManagement + - dynamicParsingRuleManagement + - extractionRuleManagement + - fieldManagementV1 + - partitionManagement + - scheduledViewManagement + - logsDataForwardingManagement + - dataDeletionRules +- name: Tokens Management + tags: + - tokensLibraryManagement +- name: Tracing + tags: + - traces + - spanAnalytics + - serviceMap +- name: Users and Roles Management + tags: + - roleManagement + - roleManagementV2 + - userManagement +- name: Threat Intel Ingest Management + tags: + - threatIntelIngest + - threatIntelIngestProducer +- name: OpenTelemetry Collector Management + tags: + - otCollectorManagementExternal +- name: Source Template Management + tags: + - sourceTemplateManagementExternal +- name: Schema Base Management + tags: + - schemaBaseManagement +- name: Event Analytics Management + tags: + - eventAnalytics +- name: Budget Management + tags: + - budgetManagement +- name: Content and Configuration Management + tags: + - contentConfigManagement +- name: Search Job APIs + tags: + - searchJobManagement +- name: Data Masking Management + tags: + - dataMaskingManagement +- name: Macro Management + tags: + - macroManagement +- name: Org Feature Settings + tags: + - orgFeatureSettings +- name: Muting Schedules Management + tags: + - mutingSchedulesLibraryManagement +- name: SLO Management + tags: + - slosLibraryManagement +- name: Monitor Management + tags: + - monitorsLibraryManagement diff --git a/provider-dev/downloaded/sumologic-collector-management-api.yaml b/provider-dev/downloaded/sumologic-collector-management-api.yaml new file mode 100644 index 0000000..2d10359 --- /dev/null +++ b/provider-dev/downloaded/sumologic-collector-management-api.yaml @@ -0,0 +1,730 @@ +# Hand-authored OpenAPI 3.0 description of the Sumo Logic Collector +# Management API (Collectors, Sources and Collector Upgrades). This surface +# is documented at https://help.sumologic.com/docs/api/collector-management/ +# but is not part of the vendor's published OpenAPI document +# (sumologic-api.yaml), so it is maintained here and merged into +# provider-dev/source/collectors.yaml by bin/split.mjs. +# +# Wire shapes (from the vendor documentation): +# GET /v1/collectors -> {"collectors": [...]} limit/offset paging (default limit 1000) +# GET /v1/collectors/offline -> {"collectors": [...]} +# GET /v1/collectors/overview -> summary counts +# GET /v1/collectors/{id} -> {"collector": {...}} (ETag header on the response) +# GET /v1/collectors/name/{name} -> {"collector": {...}} +# POST /v1/collectors <- {"collector": {...}} hosted collectors only +# PUT /v1/collectors/{id} <- {"collector": {...}} If-Match: required +# DELETE /v1/collectors/{id} +# DELETE /v1/collectors/offline?aliveBeforeDays= +# GET /v1/collectors/{collectorId}/sources -> {"sources": [...]} +# GET /v1/collectors/{collectorId}/sources/{sourceId} -> {"source": {...}} +# POST /v1/collectors/{collectorId}/sources <- {"source": {...}} +# PUT /v1/collectors/{collectorId}/sources/{sourceId} <- {"source": {...}} If-Match: required +# DELETE /v1/collectors/{collectorId}/sources/{sourceId} +# GET /v1/collectors/upgrades/targets -> {"targets": [...]} +# GET /v1/collectors/upgrades/collectors -> {"collectors": [...]} +# POST /v1/collectors/upgrades <- {"collectorId", "toVersion"} -> {"id", "link"} +# GET /v1/collectors/upgrades/{upgradeTaskId} -> {"upgrade": {...}} +openapi: 3.0.0 +info: + title: Sumo Logic Collector Management API + description: Collectors, Sources and Collector upgrades (the Collector Management API, documented separately from the main Sumo Logic API reference). + version: 1.0.0 +tags: + - name: collectorManagement + description: Collector Management API - Collectors, Sources and Collector upgrades. +paths: + /v1/collectors: + get: + tags: [collectorManagement] + operationId: listCollectors + summary: List Collectors + description: Get a list of Collectors with an optional limit and offset. + parameters: + - name: filter + in: query + description: 'Filter the Collectors returned using one of the available filter types: installed, hosted, dead, or alive.' + schema: + type: string + enum: [installed, hosted, dead, alive] + - name: limit + in: query + description: Maximum number of Collectors to return (default 1000). + schema: + type: integer + - name: offset + in: query + description: Offset into the list of Collectors (default 0). + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsList' + post: + tags: [collectorManagement] + operationId: createCollector + summary: Create Hosted Collector + description: Create a Hosted Collector. This method can only be used to create Hosted Collectors; an Installed Collector is created by installing the collector software on a host. + requestBody: + description: Definition of the new Hosted Collector, wrapped in a collector object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorDefinition' + responses: + '200': + description: The Collector has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + /v1/collectors/offline: + get: + tags: [collectorManagement] + operationId: listOfflineCollectors + summary: List offline Collectors + description: Get a list of Installed Collectors last seen alive before a specified number of days with an optional limit and offset. + parameters: + - name: aliveBeforeDays + in: query + description: Minimum number of days the Collectors have been offline (default 100, minimum 1). + schema: + type: integer + - name: limit + in: query + description: Maximum number of Collectors to return (default 1000). + schema: + type: integer + - name: offset + in: query + description: Offset into the list of Collectors (default 0). + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsList' + delete: + tags: [collectorManagement] + operationId: deleteOfflineCollectors + summary: Delete offline Collectors + description: Delete Installed Collectors last seen alive before a specified number of days. The delete task is initiated asynchronously. + parameters: + - name: aliveBeforeDays + in: query + description: Minimum number of days the Collectors have been offline (default 100, minimum 1). + schema: + type: integer + responses: + '200': + description: The delete task has been initiated. + /v1/collectors/overview: + get: + tags: [collectorManagement] + operationId: getCollectorsOverview + summary: Collectors overview + description: Summary counts of Installed and Hosted Collectors and Sources, offline Collectors, errors and warnings. + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsOverview' + /v1/collectors/{id}: + get: + tags: [collectorManagement] + operationId: getCollector + summary: Get Collector by ID + description: Get the Collector with the specified identifier. The response carries an ETag header, which must be supplied as If-Match on an update. + parameters: + - $ref: '#/components/parameters/collectorId' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + put: + tags: [collectorManagement] + operationId: updateCollector + summary: Update Collector + description: Update a Collector. The Collector Management API requires the If-Match header to carry the ETag returned by a previous GET of the same Collector; the request body is the full Collector object wrapped in collector. + parameters: + - $ref: '#/components/parameters/collectorId' + - $ref: '#/components/parameters/ifMatch' + requestBody: + description: The updated Collector, wrapped in a collector object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorDefinition' + responses: + '200': + description: The Collector was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + delete: + tags: [collectorManagement] + operationId: deleteCollector + summary: Delete Collector + description: Delete the Collector with the specified identifier. + parameters: + - $ref: '#/components/parameters/collectorId' + responses: + '200': + description: The Collector was deleted successfully. + /v1/collectors/name/{name}: + get: + tags: [collectorManagement] + operationId: getCollectorByName + summary: Get Collector by name + description: Get the Collector with the specified name. + parameters: + - name: name + in: path + description: Name of the Collector. + required: true + schema: + type: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + /v1/collectors/{collectorId}/sources: + get: + tags: [collectorManagement] + operationId: listSources + summary: List Sources + description: Get information about all Sources of a specified Collector. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/download' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SourcesList' + post: + tags: [collectorManagement] + operationId: createSource + summary: Create Source + description: Create a new Source on a Collector. The request body is the Source definition wrapped in a source object; see the vendor documentation (Use JSON to Configure Sources) for the fields required by each sourceType. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + requestBody: + description: Definition of the new Source, wrapped in a source object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SourceDefinition' + responses: + '200': + description: The Source has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/GetSource' + /v1/collectors/{collectorId}/sources/{sourceId}: + get: + tags: [collectorManagement] + operationId: getSource + summary: Get Source + description: Get information about a specified Source of a Collector. The response carries an ETag header, which must be supplied as If-Match on an update. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/sourceId' + - $ref: '#/components/parameters/download' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetSource' + put: + tags: [collectorManagement] + operationId: updateSource + summary: Update Source + description: Update a Source. The Collector Management API requires the If-Match header to carry the ETag returned by a previous GET of the same Source; the request body is the full Source object wrapped in source. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/sourceId' + - $ref: '#/components/parameters/ifMatch' + requestBody: + description: The updated Source, wrapped in a source object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SourceDefinition' + responses: + '200': + description: The Source was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/GetSource' + delete: + tags: [collectorManagement] + operationId: deleteSource + summary: Delete Source + description: Delete the specified Source of a Collector. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/sourceId' + responses: + '200': + description: The Source was deleted successfully. + /v1/collectors/upgrades/targets: + get: + tags: [collectorManagement] + operationId: listUpgradeTargets + summary: List Collector upgrade targets + description: Get the Installed Collector versions available as upgrade (or downgrade) targets. + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/UpgradeTargetsList' + /v1/collectors/upgrades/collectors: + get: + tags: [collectorManagement] + operationId: listUpgradableCollectors + summary: List upgradable Collectors + description: Get the Installed Collectors that can be upgraded (or downgraded) to the specified version. + parameters: + - name: toVersion + in: query + description: Target Collector version. Defaults to the latest version. + schema: + type: string + - name: offset + in: query + description: Offset into the list of Collectors (default 0). + schema: + type: integer + - name: limit + in: query + description: Maximum number of Collectors to return (default 50). + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsList' + /v1/collectors/upgrades: + post: + tags: [collectorManagement] + operationId: createUpgrade + summary: Upgrade a Collector + description: Start an upgrade (or downgrade) task for an Installed Collector. Poll the returned task with the upgrade status method. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpgradeRequest' + responses: + '202': + description: The upgrade task has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/UpgradeTask' + /v1/collectors/upgrades/{upgradeTaskId}: + get: + tags: [collectorManagement] + operationId: getUpgradeStatus + summary: Get Collector upgrade status + description: Get the status of a Collector upgrade task. + parameters: + - name: upgradeTaskId + in: path + description: Identifier of the upgrade task. + required: true + schema: + type: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetUpgrade' +components: + parameters: + collectorId: + name: id + in: path + description: Unique identifier of the Collector. + required: true + schema: + type: string + parentCollectorId: + name: collectorId + in: path + description: Unique identifier of the Collector. + required: true + schema: + type: string + sourceId: + name: sourceId + in: path + description: Unique identifier of the Source. + required: true + schema: + type: string + ifMatch: + name: If-Match + in: header + description: The ETag value returned in the response headers of a previous GET of this object. The Collector Management API requires it on updates. + required: false + schema: + type: string + download: + name: download + in: query + description: When true, the response is the JSON configuration of the Source(s), suitable for registering a new Collector or creating a new Source. + required: false + schema: + type: boolean + schemas: + Collector: + type: object + description: Collector object. + properties: + id: + type: integer + description: Unique identifier of the Collector. + name: + type: string + description: Name of the Collector. It must be unique on your account. + description: + type: string + description: Description of the Collector. + category: + type: string + description: The category of the Collector, used as metadata when searching data. + collectorType: + type: string + description: 'The Collector type: Installable or Hosted.' + collectorVersion: + type: string + description: Version of the Collector software installed. + alive: + type: boolean + description: When a Collector is running it sends a heartbeat every 15 seconds. If no heartbeat is received for 30 minutes this becomes false. + lastSeenAlive: + type: integer + format: int64 + description: The last time the Sumo Logic service received an active heartbeat from the Collector, in milliseconds since epoch. + ephemeral: + type: boolean + description: When true, the Collector is deleted after 12 hours of inactivity. + hostName: + type: string + description: Host name of the Collector. + timeZone: + type: string + description: Time zone of the Collector (TZ database name). + sourceSyncMode: + type: string + description: For Installed Collectors, whether Sources are managed locally from a JSON file (Json) or from the cloud (UI). + cutoffTimestamp: + type: integer + format: int64 + description: Only collect data from files with a modified date more recent than this timestamp, in milliseconds since epoch (0 collects all data). + cutoffRelativeTime: + type: string + description: Can be specified instead of cutoffTimestamp to provide a relative offset with respect to the current time, for example -1h, -1d or -1w. + targetCpu: + type: integer + description: When CPU utilization exceeds this threshold the Collector slows its rate of ingestion. + osName: + type: string + description: Name of the OS the Collector is installed on (Installed Collectors only). + osVersion: + type: string + description: Version of the OS the Collector is installed on (Installed Collectors only). + osArch: + type: string + description: Architecture of the OS the Collector is installed on (Installed Collectors only). + osTime: + type: integer + format: int64 + description: Time that the Collector has been running, in milliseconds (Installed Collectors only). + fields: + type: object + description: JSON map of key-value fields (metadata) applied to the Collector. + links: + type: array + description: Related links. + items: + type: object + properties: + rel: + type: string + href: + type: string + CollectorsList: + type: object + description: List of Collector objects. + properties: + collectors: + type: array + items: + $ref: '#/components/schemas/Collector' + GetCollector: + type: object + description: A single Collector, wrapped in a collector object. + properties: + collector: + $ref: '#/components/schemas/Collector' + CollectorDefinition: + type: object + description: Collector definition for create and update requests, wrapped in a collector object. + required: + - collector + properties: + collector: + $ref: '#/components/schemas/Collector' + CollectorsOverview: + type: object + description: Summary counts of Collectors and Sources. + properties: + installedCollectorsCount: + type: integer + installedSourcesCount: + type: integer + hostedCollectorsCount: + type: integer + hostedSourcesCount: + type: integer + offlineCollectorsCount: + type: integer + errors: + type: integer + warnings: + type: integer + Source: + type: object + description: Source object. The set of properties depends on the sourceType; the properties listed here are the common ones. + properties: + id: + type: integer + description: Unique identifier of the Source. + name: + type: string + description: Name of the Source. + description: + type: string + description: Description of the Source. + category: + type: string + description: Source category (the _sourceCategory metadata field). + hostName: + type: string + description: Host name assigned to data from this Source (the _sourceHost metadata field). + sourceType: + type: string + description: Type of the Source, for example HTTP, LocalFile, RemoteFileV2, Syslog, SystemStats, Polling, Script, and the cloud-to-cloud types. + contentType: + type: string + description: Content type of the data collected (used by some cloud Source types). + alive: + type: boolean + description: Whether the Source is alive. + url: + type: string + description: Unique URL of an HTTP Source endpoint. + encoding: + type: string + description: Character encoding of the data (default UTF-8). + timeZone: + type: string + description: Time zone applied to messages when forceTimeZone is true or the message has no time zone. + forceTimeZone: + type: boolean + description: When true, the timeZone is applied to all messages. + automaticDateParsing: + type: boolean + description: Whether timestamps are parsed automatically. + multilineProcessingEnabled: + type: boolean + description: Whether multiline message processing is enabled. + useAutolineMatching: + type: boolean + description: Whether message boundaries are inferred automatically. + manualPrefixRegexp: + type: string + description: Regular expression that marks the start of a message when useAutolineMatching is false. + messagePerRequest: + type: boolean + description: For HTTP Sources, whether each request is a single message. + defaultDateFormats: + type: array + description: Default date formats used to parse timestamps. + items: + type: object + pathExpression: + type: string + description: Path expression of the files to collect (file Sources). + denylist: + type: array + description: Path expressions to exclude from collection (file Sources). + items: + type: string + filters: + type: array + description: Processing rules (Exclude, Include, Hash, Mask, Forward) applied to the Source. + items: + type: object + properties: + filterType: + type: string + name: + type: string + regexp: + type: string + mask: + type: string + fields: + type: object + description: JSON map of key-value fields (metadata) applied to the Source. + cutoffTimestamp: + type: integer + format: int64 + description: Only collect data more recent than this timestamp, in milliseconds since epoch. + cutoffRelativeTime: + type: string + description: Relative offset instead of cutoffTimestamp, for example -1h, -1d or -1w. + hashAlgorithm: + type: string + description: Hash algorithm used by Hash processing rules. + interval: + type: integer + description: Collection interval in milliseconds (metrics and script Sources). + metrics: + type: array + description: Metrics to collect (SystemStats Sources). + items: + type: string + thirdPartyRef: + type: object + description: Cloud-to-cloud Source configuration. + status: + type: object + description: Source status (cloud Sources). + SourcesList: + type: object + description: List of Sources for a Collector. + properties: + sources: + type: array + items: + $ref: '#/components/schemas/Source' + GetSource: + type: object + description: A single Source, wrapped in a source object. + properties: + source: + $ref: '#/components/schemas/Source' + SourceDefinition: + type: object + description: Source definition for create and update requests, wrapped in a source object. + required: + - source + properties: + source: + $ref: '#/components/schemas/Source' + UpgradeTarget: + type: object + properties: + version: + type: string + description: Collector version. + latest: + type: boolean + description: Whether this is the latest version. + UpgradeTargetsList: + type: object + properties: + targets: + type: array + items: + $ref: '#/components/schemas/UpgradeTarget' + UpgradeRequest: + type: object + required: + - collectorId + properties: + collectorId: + type: integer + description: Identifier of the Installed Collector to upgrade. + toVersion: + type: string + description: Target version. Defaults to the latest version. + UpgradeTask: + type: object + properties: + id: + type: string + description: Identifier of the upgrade task. + link: + type: object + description: Link to the upgrade task status. + properties: + rel: + type: string + href: + type: string + Upgrade: + type: object + properties: + id: + type: string + description: Identifier of the upgrade task. + collectorId: + type: integer + description: Identifier of the Collector being upgraded. + toVersion: + type: string + description: Target version. + requestTime: + type: integer + format: int64 + description: Time the upgrade was requested, in milliseconds since epoch. + status: + type: integer + description: 'Upgrade status: 0 not started, 1 running, 2 succeeded, 3 failed, 6 progressing.' + message: + type: string + description: Status message. + GetUpgrade: + type: object + properties: + upgrade: + $ref: '#/components/schemas/Upgrade' diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/provider.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/provider.yaml index 2fd8cfd..563990b 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/provider.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/provider.yaml @@ -3,295 +3,494 @@ name: sumologic version: v00.00.00000 providerServices: access_keys: - description: AccessKeys id: access_keys:v00.00.00000 name: access_keys preferred: true service: $ref: sumologic/v00.00.00000/services/access_keys.yaml - title: Sumo Logic API - access_keys + title: Sumo Logic Access Keys API version: v00.00.00000 + description: >- + Access keys of the calling user and of the organization, their scopes, + CORS headers and secret rotation. account: - description: account id: account:v00.00.00000 name: account preferred: true service: $ref: sumologic/v00.00.00000/services/account.yaml - title: Sumo Logic API - account + title: Sumo Logic Account API version: v00.00.00000 + description: >- + Account status, owner, subdomain, plan update requests, usage reports and + usage forecasts. apps: - description: apps id: apps:v00.00.00000 name: apps preferred: true service: $ref: sumologic/v00.00.00000/services/apps.yaml - title: Sumo Logic API - apps + title: Sumo Logic Apps API version: v00.00.00000 + description: >- + The Sumo Logic app catalog (v1 and v2) - browse, install, upgrade, + uninstall apps and follow the asynchronous install jobs. archive: - description: archive id: archive:v00.00.00000 name: archive preferred: true service: $ref: sumologic/v00.00.00000/services/archive.yaml - title: Sumo Logic API - archive + title: Sumo Logic Archive API version: v00.00.00000 + description: >- + Archive ingestion jobs that replay archived logs from an AWS S3 archive + source. + budgets: + id: budgets:v00.00.00000 + name: budgets + preferred: true + service: + $ref: sumologic/v00.00.00000/services/budgets.yaml + title: Sumo Logic Budgets API + version: v00.00.00000 + description: Data volume and search cost budgets and their usage. collectors: - description: collectors id: collectors:v00.00.00000 name: collectors preferred: true service: $ref: sumologic/v00.00.00000/services/collectors.yaml - title: Sumo Logic API - Collector Management API + title: Sumo Logic Collectors API version: v00.00.00000 + description: Collectors, Sources and Collector upgrades (the Collector Management API). connections: - description: connections id: connections:v00.00.00000 name: connections preferred: true service: $ref: sumologic/v00.00.00000/services/connections.yaml - title: Sumo Logic API - connections + title: Sumo Logic Connections API version: v00.00.00000 + description: >- + Webhook, ServiceNow, PagerDuty and other outbound connections used by + monitors and scheduled searches. content: - description: content id: content:v00.00.00000 name: content preferred: true service: $ref: sumologic/v00.00.00000/services/content.yaml - title: Sumo Logic API - content + title: Sumo Logic Content API + version: v00.00.00000 + description: >- + The content library - folders (personal, global, admin recommended, + installed apps), content permissions, paths, and the asynchronous export, + import, copy, move and delete jobs. + content_sync: + id: content_sync:v00.00.00000 + name: content_sync + preferred: true + service: + $ref: sumologic/v00.00.00000/services/content_sync.yaml + title: Sumo Logic Content Sync API version: v00.00.00000 + description: Multi-account content synchronisation jobs between child organizations. dashboards: - description: dashboards id: dashboards:v00.00.00000 name: dashboards preferred: true service: $ref: sumologic/v00.00.00000/services/dashboards.yaml - title: Sumo Logic API - dashboards + title: Sumo Logic Dashboards API version: v00.00.00000 + description: >- + Dashboards (New), dashboard report schedules, report generation jobs and + legacy report migration. + data_archiving: + id: data_archiving:v00.00.00000 + name: data_archiving + preferred: true + service: + $ref: sumologic/v00.00.00000/services/data_archiving.yaml + title: Sumo Logic Data Archiving API + version: v00.00.00000 + description: Data archiving destinations (AWS S3 buckets for archived logs). + data_deletion_rules: + id: data_deletion_rules:v00.00.00000 + name: data_deletion_rules + preferred: true + service: + $ref: sumologic/v00.00.00000/services/data_deletion_rules.yaml + title: Sumo Logic Data Deletion Rules API + version: v00.00.00000 + description: Data deletion rules that remove already-ingested log data. + data_masking_rules: + id: data_masking_rules:v00.00.00000 + name: data_masking_rules + preferred: true + service: + $ref: sumologic/v00.00.00000/services/data_masking_rules.yaml + title: Sumo Logic Data Masking Rules API + version: v00.00.00000 + description: Data masking rules applied at ingest. dynamic_parsing_rules: - description: dynamicParsingRules id: dynamic_parsing_rules:v00.00.00000 name: dynamic_parsing_rules preferred: true service: $ref: sumologic/v00.00.00000/services/dynamic_parsing_rules.yaml - title: Sumo Logic API - dynamic_parsing_rules + title: Sumo Logic Dynamic Parsing Rules API version: v00.00.00000 + description: Dynamic parsing rules that extract fields automatically from JSON logs. + event_extraction_rules: + id: event_extraction_rules:v00.00.00000 + name: event_extraction_rules + preferred: true + service: + $ref: sumologic/v00.00.00000/services/event_extraction_rules.yaml + title: Sumo Logic Event Extraction Rules API + version: v00.00.00000 + description: Event extraction rules (Event Analytics) and their quota. extraction_rules: - description: extractionRules id: extraction_rules:v00.00.00000 name: extraction_rules preferred: true service: $ref: sumologic/v00.00.00000/services/extraction_rules.yaml - title: Sumo Logic API - extraction_rules + title: Sumo Logic Extraction Rules API version: v00.00.00000 + description: Field extraction rules and their quota. + feature_settings: + id: feature_settings:v00.00.00000 + name: feature_settings + preferred: true + service: + $ref: sumologic/v00.00.00000/services/feature_settings.yaml + title: Sumo Logic Feature Settings API + version: v00.00.00000 + description: Organization feature settings. fields: - description: fields id: fields:v00.00.00000 name: fields preferred: true service: $ref: sumologic/v00.00.00000/services/fields.yaml - title: Sumo Logic API - fields + title: Sumo Logic Fields API version: v00.00.00000 + description: Custom fields, built-in fields, dropped fields and the field quota. health_events: - description: healthEvents id: health_events:v00.00.00000 name: health_events preferred: true service: $ref: sumologic/v00.00.00000/services/health_events.yaml - title: Sumo Logic API - health_events + title: Sumo Logic Health Events API version: v00.00.00000 + description: Health events for collectors, sources, ingest budgets and other resources. ingest_budgets: - description: ingestBudgets id: ingest_budgets:v00.00.00000 name: ingest_budgets preferred: true service: $ref: sumologic/v00.00.00000/services/ingest_budgets.yaml - title: Sumo Logic API - ingest_budgets - version: v00.00.00000 - log_searches: - description: logSearches - id: log_searches:v00.00.00000 - name: log_searches - preferred: true - service: - $ref: sumologic/v00.00.00000/services/log_searches.yaml - title: Sumo Logic API - log_searches + title: Sumo Logic Ingest Budgets API version: v00.00.00000 + description: Ingest budgets (v2) and their usage reset. logs_data_forwarding: - description: logsDataForwarding id: logs_data_forwarding:v00.00.00000 name: logs_data_forwarding preferred: true service: $ref: sumologic/v00.00.00000/services/logs_data_forwarding.yaml - title: Sumo Logic API - logs_data_forwarding + title: Sumo Logic Logs Data Forwarding API version: v00.00.00000 + description: >- + Log data forwarding destinations (AWS S3) and forwarding rules per + partition. + log_searches: + id: log_searches:v00.00.00000 + name: log_searches + preferred: true + service: + $ref: sumologic/v00.00.00000/services/log_searches.yaml + title: Sumo Logic Log Searches API + version: v00.00.00000 + description: >- + Saved and scheduled log searches, and estimated usage of a log search + across data tiers. lookup_tables: - description: lookupTables id: lookup_tables:v00.00.00000 name: lookup_tables preferred: true service: $ref: sumologic/v00.00.00000/services/lookup_tables.yaml - title: Sumo Logic API - lookup_tables + title: Sumo Logic Lookup Tables API + version: v00.00.00000 + description: Lookup tables, their rows, file uploads and the asynchronous lookup jobs. + macros: + id: macros:v00.00.00000 + name: macros + preferred: true + service: + $ref: sumologic/v00.00.00000/services/macros.yaml + title: Sumo Logic Macros API version: v00.00.00000 + description: Search macros. metrics_queries: - description: metricsQueries id: metrics_queries:v00.00.00000 name: metrics_queries preferred: true service: $ref: sumologic/v00.00.00000/services/metrics_queries.yaml - title: Sumo Logic API - metrics_queries + title: Sumo Logic Metrics Queries API version: v00.00.00000 + description: Ad hoc metrics queries. metrics_searches: - description: metricsSearches id: metrics_searches:v00.00.00000 name: metrics_searches preferred: true service: $ref: sumologic/v00.00.00000/services/metrics_searches.yaml - title: Sumo Logic API - metrics_searches + title: Sumo Logic Metrics Searches API version: v00.00.00000 + description: Saved metrics searches (v1 and v2). monitors: - description: monitors id: monitors:v00.00.00000 name: monitors preferred: true service: $ref: sumologic/v00.00.00000/services/monitors.yaml - title: Sumo Logic API - monitors + title: Sumo Logic Monitors API + version: v00.00.00000 + description: >- + Monitors and monitor folders in the monitors library - search, path, copy, + move, import, export, permissions, playbooks and usage. + muting_schedules: + id: muting_schedules:v00.00.00000 + name: muting_schedules + preferred: true + service: + $ref: sumologic/v00.00.00000/services/muting_schedules.yaml + title: Sumo Logic Muting Schedules API + version: v00.00.00000 + description: Muting schedules in the muting schedules library. + oauth: + id: oauth:v00.00.00000 + name: oauth + preferred: true + service: + $ref: sumologic/v00.00.00000/services/oauth.yaml + title: Sumo Logic Oauth API + version: v00.00.00000 + description: OAuth clients, consents and scopes. + organizations: + id: organizations:v00.00.00000 + name: organizations + preferred: true + service: + $ref: sumologic/v00.00.00000/services/organizations.yaml + title: Sumo Logic Organizations API version: v00.00.00000 + description: Usage of child organizations (multi-account management). + ot_collectors: + id: ot_collectors:v00.00.00000 + name: ot_collectors + preferred: true + service: + $ref: sumologic/v00.00.00000/services/ot_collectors.yaml + title: Sumo Logic Ot Collectors API + version: v00.00.00000 + description: OpenTelemetry collectors. + parsers: + id: parsers:v00.00.00000 + name: parsers + preferred: true + service: + $ref: sumologic/v00.00.00000/services/parsers.yaml + title: Sumo Logic Parsers API + version: v00.00.00000 + description: Custom and system parsers in the parsers library. partitions: - description: partitions id: partitions:v00.00.00000 name: partitions preferred: true service: $ref: sumologic/v00.00.00000/services/partitions.yaml - title: Sumo Logic API - partitions + title: Sumo Logic Partitions API version: v00.00.00000 + description: >- + Partitions (indexes), their retention and decommissioning, and the + partition quota. password_policy: - description: passwordPolicy id: password_policy:v00.00.00000 name: password_policy preferred: true service: $ref: sumologic/v00.00.00000/services/password_policy.yaml - title: Sumo Logic API - password_policy - version: v00.00.00000 - plan: - description: plan - id: plan:v00.00.00000 - name: plan - preferred: true - service: - $ref: sumologic/v00.00.00000/services/plan.yaml - title: Sumo Logic API - plan + title: Sumo Logic Password Policy API version: v00.00.00000 + description: The organization password policy. policies: - description: policies id: policies:v00.00.00000 name: policies preferred: true service: $ref: sumologic/v00.00.00000/services/policies.yaml - title: Sumo Logic API - policies + title: Sumo Logic Policies API version: v00.00.00000 + description: >- + Organization security and behaviour policies - audit, search audit, data + access level, data deletion, session limits, dashboard sharing, timestamp + format, OAuth CIMD and access key lifetime. roles: - description: roles id: roles:v00.00.00000 name: roles preferred: true service: $ref: sumologic/v00.00.00000/services/roles.yaml - title: Sumo Logic API - roles + title: Sumo Logic Roles API version: v00.00.00000 + description: Roles (v1 and v2) and role assignment to users. saml: - description: saml id: saml:v00.00.00000 name: saml preferred: true service: $ref: sumologic/v00.00.00000/services/saml.yaml - title: Sumo Logic API - saml + title: Sumo Logic Saml API version: v00.00.00000 + description: SAML identity providers, allowlisted users and SAML lockdown. scheduled_views: - description: scheduledViews id: scheduled_views:v00.00.00000 name: scheduled_views preferred: true service: $ref: sumologic/v00.00.00000/services/scheduled_views.yaml - title: Sumo Logic API - scheduled_views + title: Sumo Logic Scheduled Views API version: v00.00.00000 + description: Scheduled views and their quota. + schemas: + id: schemas:v00.00.00000 + name: schemas + preferred: true + service: + $ref: sumologic/v00.00.00000/services/schemas.yaml + title: Sumo Logic Schemas API + version: v00.00.00000 + description: Schema identities grouped by product (Schema Base Management). + scim: + id: scim:v00.00.00000 + name: scim + preferred: true + service: + $ref: sumologic/v00.00.00000/services/scim.yaml + title: Sumo Logic Scim API + version: v00.00.00000 + description: SCIM 2.0 user provisioning. + search_jobs: + id: search_jobs:v00.00.00000 + name: search_jobs + preferred: true + service: + $ref: sumologic/v00.00.00000/services/search_jobs.yaml + title: Sumo Logic Search Jobs API + version: v00.00.00000 + description: >- + Search jobs (v2) - create a log search job, poll its status and page + through its messages and records. + service_accounts: + id: service_accounts:v00.00.00000 + name: service_accounts + preferred: true + service: + $ref: sumologic/v00.00.00000/services/service_accounts.yaml + title: Sumo Logic Service Accounts API + version: v00.00.00000 + description: Service accounts and their access keys. service_allowlist: - description: serviceAllowlist id: service_allowlist:v00.00.00000 name: service_allowlist preferred: true service: $ref: sumologic/v00.00.00000/services/service_allowlist.yaml - title: Sumo Logic API - service_allowlist + title: Sumo Logic Service Allowlist API version: v00.00.00000 + description: The service allowlist of CIDR addresses for login and content access. slos: - description: slos id: slos:v00.00.00000 name: slos preferred: true service: $ref: sumologic/v00.00.00000/services/slos.yaml - title: Sumo Logic API - slos + title: Sumo Logic Slos API + version: v00.00.00000 + description: >- + SLOs and SLO folders in the SLO library, service level indicators and + usage. + source_templates: + id: source_templates:v00.00.00000 + name: source_templates + preferred: true + service: + $ref: sumologic/v00.00.00000/services/source_templates.yaml + title: Sumo Logic Source Templates API + version: v00.00.00000 + description: Source templates for OpenTelemetry collectors (v1 deprecated and v2). + threat_intel: + id: threat_intel:v00.00.00000 + name: threat_intel + preferred: true + service: + $ref: sumologic/v00.00.00000/services/threat_intel.yaml + title: Sumo Logic Threat Intel API version: v00.00.00000 + description: >- + Threat intelligence datastore, data sources, retention and indicator + ingestion. tokens: - description: tokens id: tokens:v00.00.00000 name: tokens preferred: true service: $ref: sumologic/v00.00.00000/services/tokens.yaml - title: Sumo Logic API - tokens + title: Sumo Logic Tokens API version: v00.00.00000 + description: Installation tokens (tokens library). tracing: - description: tracing id: tracing:v00.00.00000 name: tracing preferred: true service: $ref: sumologic/v00.00.00000/services/tracing.yaml - title: Sumo Logic API - tracing + title: Sumo Logic Tracing API version: v00.00.00000 + description: >- + Traces, spans, trace and span queries, tracing metrics and the service + map. transformation_rules: - description: transformationRules id: transformation_rules:v00.00.00000 name: transformation_rules preferred: true service: $ref: sumologic/v00.00.00000/services/transformation_rules.yaml - title: Sumo Logic API - transformation_rules + title: Sumo Logic Transformation Rules API version: v00.00.00000 + description: Metrics transformation rules. users: - description: users id: users:v00.00.00000 name: users preferred: true service: $ref: sumologic/v00.00.00000/services/users.yaml - title: Sumo Logic API - users + title: Sumo Logic Users API version: v00.00.00000 + description: >- + Users and their lifecycle actions - unlock, password reset, email change, + welcome email, MFA. config: auth: type: basic username_var: SUMOLOGIC_ACCESSID - password_var: SUMOLOGIC_ACCESSKEY \ No newline at end of file + password_var: SUMOLOGIC_ACCESSKEY + snake_case_aliases: true diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/access_keys.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/access_keys.yaml index 1c9e26a..df49924 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/access_keys.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/access_keys.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Access Keys API + description: Access keys of the calling user and of the organization, their scopes, CORS headers and secret rotation. + version: 1.0.0 paths: /v1/accessKeys: get: @@ -85,6 +90,26 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/accessKeys/scopes: + get: + tags: + - accessKeyManagement + summary: Get all scopes. + description: Get a list of all of the scopes that can be added to an access key. + operationId: listScopes + responses: + '200': + description: A list of scopes that can be added to an access key. + content: + application/json: + schema: + $ref: '#/components/schemas/ScopesList' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' /v1/accessKeys/{id}: put: tags: @@ -140,6 +165,33 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/accessKeys/{id}/rotate: + put: + tags: + - accessKeyManagement + summary: Rotate the access key secret + description: Generates a new secret for the access key that is passed in the call, keeping the same access ID. + operationId: rotateAccessKeySecret + parameters: + - name: id + in: path + description: The accessId of the access key to rotate the secret for. + required: true + schema: + type: string + responses: + '200': + description: Access key secret rotated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKey' + default: + description: Access key secret rotation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: PaginatedListAccessKeysResult: @@ -177,7 +229,84 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - AccessKeyPublic: + AccessKeyCreateRequest: + required: + - label + type: object + properties: + label: + maxLength: 128 + type: string + description: A name for the access key to be created. + example: automation access key + corsHeaders: + maxItems: 20 + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request + depends on whether it contains an ORIGIN header and the entries in the allowlist. + Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + AccessKey: required: - createdAt - createdBy @@ -185,6 +314,8 @@ components: - id - label - modifiedAt + - modifiedBy + - key type: object properties: id: @@ -214,7 +345,7 @@ components: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the access key. @@ -223,71 +354,85 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the access key. + example: 0000000006743FDD + serviceAccountId: + type: string + description: Identifier of the service account who owns the access key. + example: 0000000006743FDA lastUsed: type: string description: Last used timestamp in UTC.
**Note:** Property not in use, it is part of an upcoming feature. format: date-time - example: '2018-10-16T09:10:00Z' - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - AccessKeyCreateRequest: - required: - - label - type: object - properties: - label: - maxLength: 128 - type: string - description: A name for the access key to be created. - example: automation access key - corsHeaders: - maxItems: 20 + example: '2018-10-16T09:10:00.000Z' + scopes: type: array description: |- - An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request - depends on whether it contains an ORIGIN header and the entries in the allowlist. - Sumo Logic will reject: - 1. Requests with an ORIGIN header but the allowlist is empty. - 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles example: - - https://my-app.com - - https://mail.my-app.com + - manageUsersAndRoles + - viewCollectors items: type: string - AccessKey: - allOf: - - $ref: '#/components/schemas/AccessKeyPublic' - - required: - - key - type: object - properties: - key: - type: string - description: The key for the created access key. This field will have values only in the response for an access key create request. The value will be an empty string while listing all keys. - example: F9GZvb4fISxUZHM7pqHCsGXGWf4OArgmt9Tz8ewZ + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + key: + type: string + description: The key for the created access key. This field will have values only in the response for an access key create request. The value will be an empty string while listing all keys. + example: F9GZvb4fISxUZHM7pqHCsGXGWf4OArgmt9Tz8ewZ ListAccessKeysResult: required: - data @@ -299,6 +444,16 @@ components: items: $ref: '#/components/schemas/AccessKeyPublic' description: List of access keys. + ScopesList: + required: + - data + type: object + properties: + data: + type: array + description: List of scopes + items: + $ref: '#/components/schemas/ScopeDefinition' AccessKeyUpdateRequest: required: - disabled @@ -320,403 +475,381 @@ components: - https://mail.my-app.com items: type: string - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + scopes: + type: array + description: |- + Scopes assigned to the key.

Note: Updates to scopes will take up to 5m to reflect due to caching in the system. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + AccessKeyPublic: + required: + - createdAt + - createdBy + - disabled + - id + - label + - modifiedAt + - modifiedBy + type: object + properties: + id: + type: string + description: Identifier of the access key. + example: su0w3Q37CBzHUM + label: + type: string + description: The name of the access key. + example: collector access key + corsHeaders: + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: false + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the access key. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the access key. + example: 0000000006743FDD + serviceAccountId: + type: string + description: Identifier of the service account who owns the access key. + example: 0000000006743FDA + lastUsed: + type: string + description: Last used timestamp in UTC.
**Note:** Property not in use, it is part of an upcoming feature. + format: date-time + example: '2018-10-16T09:10:00.000Z' + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ScopeDefinition: + required: + - dependsOn + - group + - id + - label + - type + type: object + properties: + id: + type: string + description: The name of the scope. + example: managePartitions + label: + type: string + description: The UI label for the scope. + example: Manage Partitions + type: + type: string + description: Type of scope. + example: Manage + dependsOn: + type: array + description: Any scopes that are required for this scope to be enabled. + example: + - viewPartitions + items: + type: string + group: + required: + - id + - label + type: object + properties: + id: + type: string + description: The name of the scope group + example: dataManagement + label: + type: string + description: The label for the scope group + example: Data Management + parentId: + type: string + description: The ID of the parent scope group + description: The group that the scope belongs to. x-stackQL-resources: access_keys: id: sumologic.access_keys.access_keys name: access_keys - title: Access_keys + title: Access Keys methods: - listAccessKeys: + list: operation: $ref: '#/paths/~1v1~1accessKeys/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data - createAccessKey: + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1accessKeys/post' response: mediaType: application/json openAPIDocKey: '200' - updateAccessKey: + request: + mediaType: application/json + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1accessKeys~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteAccessKey: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1accessKeys~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + rotate_secret: + operation: + $ref: '#/paths/~1v1~1accessKeys~1{id}~1rotate/put' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/access_keys/methods/listAccessKeys' + - $ref: '#/components/x-stackQL-resources/access_keys/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/access_keys/methods/createAccessKey' - update: [] + - $ref: '#/components/x-stackQL-resources/access_keys/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/access_keys/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/access_keys/methods/deleteAccessKey' - personal: - id: sumologic.access_keys.personal - name: personal - title: Personal + - $ref: '#/components/x-stackQL-resources/access_keys/methods/delete' + replace: [] + personal_access_keys: + id: sumologic.access_keys.personal_access_keys + name: personal_access_keys + title: Personal Access Keys methods: - listPersonalAccessKeys: + list: operation: $ref: '#/paths/~1v1~1accessKeys~1personal/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/personal/methods/listPersonalAccessKeys' + - $ref: '#/components/x-stackQL-resources/personal_access_keys/methods/list' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] + scopes: + id: sumologic.access_keys.scopes + name: scopes + title: Scopes + methods: + list: + operation: + $ref: '#/paths/~1v1~1accessKeys~1scopes/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/scopes/methods/list' + insert: [] + update: [] + delete: [] + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - access_keys - description: accessKeys - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/account.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/account.yaml index 588f02a..db127a7 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/account.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/account.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Account API + description: Account status, owner, subdomain, plan update requests, usage reports and usage forecasts. + version: 1.0.0 paths: /v1/account/accountOwner: get: @@ -13,6 +18,7 @@ paths: application/json: schema: type: string + example: 10000000 default: description: Operation failed with an error. content: @@ -149,6 +155,122 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/account/usage/report: + post: + tags: + - accountManagement + summary: Export credits usage details as CSV. + description: Export the credit usage details as csv for the specific period of time given as input in the form of a start and end date with a specific grouping according to `day`, `week`, `month`, Note that this API will work only for credits plan customers. + operationId: exportUsageReport + requestBody: + description: Export Usage Report Request. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageReportRequest' + required: true + responses: + '200': + description: Export Response with Job Id. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageReportResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/usage/report/{jobId}/status: + get: + tags: + - accountManagement + summary: Get report generation status. + description: Get the report download URL and status using Job Id. + operationId: getStatusForReport + parameters: + - name: jobId + in: path + description: Job Id for the report to be exported. + required: true + schema: + type: string + responses: + '200': + description: Status response containing status and downloadURL if successful. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageReportStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/usageForecast: + get: + tags: + - accountManagement + summary: Get usage forecast with respect to last number of days specified. + description: Get usage forecast with respect to last number of days specified. If nothing is provided for last number of days, the average of term period will be taken to do the forecast. + operationId: getUsageForecast + parameters: + - name: numberOfDays + in: query + description: Number of days to use for calculating average usage and forecast. + required: false + schema: + type: number + responses: + '200': + description: Usage Forecast. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageForecastResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/plan/pendingUpdateRequest: + get: + tags: + - accountManagement + summary: Get the pending plan update request, if any. + description: Get the pending plan update request which will be applicable from next billing cycle. + operationId: getPendingUpdateRequest + responses: + '200': + description: Pending plan update request. + content: + application/json: + schema: + $ref: '#/components/schemas/PendingUpdateRequest' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - accountManagement + summary: Delete the pending plan update request, if any. + description: Delete the pending plan update request which would be applicable from next billing cycle. + operationId: deletePendingUpdateRequest + responses: + '204': + description: Deleted the pending update request. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: ErrorResponse: @@ -171,30 +293,6 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 AccountStatusResponse: required: - applicationUse @@ -230,6 +328,19 @@ components: type: boolean description: If the account is activated or not example: true + totalCredits: + type: integer + description: Total amount of credits assigned to the account + example: 400 + logModel: + pattern: ^(Flex|Tiered|FlexPlusTiered)$ + type: string + description: The log model of the account + example: Flex + isSubscriptionV2: + type: boolean + description: Indicates whether the account has v2 subscription enabled. + example: false description: Information about the account's plan and payment. SubdomainDefinitionResponse: required: @@ -276,433 +387,647 @@ components: type: string description: The new subdomain. example: my-company - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + UsageReportRequest: + type: object + properties: + startDate: + type: string + description: Start date, without the time, of the usage data to fetch. If no value is provided startDate is used as the start of the subscription. The start date cannot be before the start of the subscription. + example: '2019-07-20T00:00:00.000Z' + endDate: + type: string + description: End date, without the time, of usage data to fetch. If no value is provided endDate is used as the end of the subscription. The end date cannot be after the end of the subscription. + example: '2019-08-20T00:00:00.000Z' + groupBy: + pattern: ^(day|week|month)$ + type: string + description: 'Perform a groupBy operation on the usage details. If no value is provided data is grouped by `Day` - `day`: Aggregate the data by day - `week`: Aggregate the data by week. Week starts at Monday and ends at sunday night. - `month`: Aggregate the data by calendar month.' + example: day + default: day + reportType: + pattern: ^(standard|detailed|childDetailed)$ + type: string + description: Specifies the type of report to be exported. Available types are `standard` and `detailed`. An additional `childDetailed` type is available for Sumo Orgs parents. Detailed report will have raw consumption along with the credits breakdown. If no value is provided Standard reports will be exported. + example: standard + default: standard + includeDeploymentCharge: + type: boolean + description: Deployment charges will be applied to the returned usages csv if this is set to true and the organization is a part of Sumo Organizations as a child organization. + example: false + default: false + description: Usage Export Report Request + UsageReportResponse: + type: object + properties: + jobId: + type: string + description: Job Id for export + example: '12345678' + description: Export Usage response containing the jobId + UsageReportStatusResponse: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + status: + pattern: ^(Success|InProgress|Failed)$ + type: string + description: Status export + example: Success + statusMessage: + type: string + description: Status message export + example: Successful request + reportDownloadURL: + type: string + description: S3 presigned download URL for the report. It is valid for 10 minutes. + example: www.example.com + description: Status response containing status and downloadURL if successful + UsageForecastResponse: + type: object + properties: + averageUsage: + type: number + description: Average credit usage per day till now. + format: double + example: 4 + usagePercentage: + type: number + description: Percentage of total credits used till date. + format: double + example: 7 + forecastedUsage: + type: number + description: Total expected usage by the end of contract period. + format: double + example: 10 + forecastedUsagePercentage: + type: number + description: Percentage of allocated credits that will be used in the contract period. + format: double + example: 5 + remainingDays: + type: number + description: Days remaining till all the credits are consumed. + format: double + example: 10 + description: Usage forecast for the organization. + PendingUpdateRequest: + required: + - createdOn + - plan + type: object + properties: + createdOn: + type: string + description: The date on which the update request was created. + format: date + plan: + $ref: '#/components/schemas/CurrentPlan' + description: The pending plan update request for the account + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + CurrentPlan: + required: + - billingFrequency + - planCost + - productId + type: object + properties: + productId: + pattern: ^(Essentials|Trial|Free|EnterpriseOps|EnterpriseSec|EnterpriseSuite)$ + type: string + description: | + Unique identifier of the product in current plan. Valid values are: 1. `Free` 2. `Trial` 3. `Essentials` 4. `EnterpriseOps` 5. `EnterpriseSec` 6. `EnterpriseSuite` + example: Essentials + x-pattern-message: 'must be one of the following: `Essentials`, `Trial`, `Free`, `EnterpriseOps`, `EnterpriseSec`, `EnterpriseSuite`' + planCost: + type: number + description: Cost incurred for the current plan. + format: double + example: 725.46 + billingFrequency: + pattern: ^(Monthly|Annually)$ + type: string + description: | + Billing frequency for the current plan. Valid values are: 1. `Monthly` 2. `Annually` + example: Monthly + x-pattern-message: 'must be one of the following: `Monthly` or `Annually`' + consumables: + type: array + description: Consumables in the current plan. + items: + $ref: '#/components/schemas/Consumable' + planType: + pattern: ^(Free|Trial|Paid)$ + type: string + description: Whether the account is `Free`/`Trial`/`Paid` + example: Free + x-pattern-message: 'must be one of the following: `Free`, `Trial` or `Paid`' + planName: + type: string + description: The plan name for the product being used. + discountAmount: + type: integer + description: The discount offered for the given contract period. + contractPeriod: + $ref: '#/components/schemas/ContractPeriod' + currentBillingPeriod: + $ref: '#/components/schemas/CurrentBillingPeriod' + credits: + type: integer + description: Numerical value of the amount of credits + format: int64 + example: 300 + baselines: + $ref: '#/components/schemas/Baselines' + pendingUpdateRequest: + type: boolean + description: True if there is a pending update request + prorationDetails: + $ref: '#/components/schemas/ProrationDetails' + description: Current plan of the account. + Consumable: + required: + - consumableId + - quantity + type: object + properties: + consumableId: + pattern: ^(Storage|Metrics|Continuous|Credits)$ + type: string + description: | + Unique identifier of the consumable. Valid values are: 1. `Storage` 2. `Metrics` 3. `Continuous` 4. `Credits` + example: Metrics + x-pattern-message: 'must be one of the following: `Storage`, `Metrics`, `Continuous`, `Credits`' + quantity: + $ref: '#/components/schemas/Quantity' + description: Details of consumable and its quantity. + ContractPeriod: + required: + - endDate + - startDate + type: object + properties: + startDate: + type: string + description: Start date of the contract. + format: date + endDate: + type: string + description: End date of the contract. + format: date + CurrentBillingPeriod: + required: + - endDate + - startDate + type: object + properties: + startDate: + type: string + description: Start date of the current billing period. + format: date + example: '2012-02-02T00:00:00.000Z' + endDate: + type: string + description: End date of the current billing period. + format: date + example: '2012-02-02T00:00:00.000Z' + Baselines: + type: object + properties: + continuousIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of continuous logs ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + continuousStorage: + maximum: 30 + minimum: 30 + type: integer + description: Number of days of continuous logs storage to allocate to the organization, in Days. + format: int64 + example: 30 + default: 30 + frequentIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of frequent logs ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + frequentStorage: + maximum: 30 + minimum: 30 + type: integer + description: Number of days of frequent logs storage to allocate to the organization, in Days. + format: int64 + example: 30 + default: 30 + infrequentIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of infrequent logs ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + infrequentStorage: + maximum: 30 + minimum: 30 + type: integer + description: The amount of infrequent logs storage to allocate to the organization, in Days. + format: int64 + example: 30 + default: 30 + infrequentScan: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of infrequent logs scan to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + metrics: + maximum: 5000000 + minimum: 0 + type: integer + description: The amount of Metrics usage to allocate to the organization, in DPMs (Data Points per Minute). + format: int64 + example: 50000 + default: 0 + cseIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of CSE ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + cseStorage: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of CSE storage to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + tracingIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of tracing data ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + flexIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of flex logs ingest to allocate to the organization, in GBs. + format: int64 + example: 5 + default: 0 + flexStorage: + maximum: 1000000 + minimum: 0 + type: integer + description: Number of days of flex logs storage to allocate to the organization, in Days. + format: int64 + example: 30 + default: 0 + flexScanRatio: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of flex logs ingest scan ratio. + format: int64 + example: 5 + default: 0 + aiInvestigation: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of AI Investigations needed to allocate to the organization. + format: int64 + example: 5 + default: 0 + socAiAgentDailyLimit: + maximum: 1000000 + minimum: 0 + type: integer + description: The daily investigation limit for SOC AI Agent. + format: int32 + example: 100 + default: 0 + description: Details of consumable and its quantity. + ProrationDetails: + required: + - proratedCost + - proratedCredits + - remainingDays + type: object + properties: + remainingDays: + type: integer + description: Remaining days in the billing cycle for which the new plan is prorated. + format: int32 + proratedCredits: + type: integer + description: Total prorated credits that get added to the bucket based on the remaining billing period. + format: int32 + proratedCost: + type: number + description: Cost of the total prorated credits. + format: double + description: Details about the prorated credits and prorated cost in case of immediate monthly to monthly cycle upgrades. + Quantity: + required: + - unit + - value + type: object + properties: + value: + type: integer + description: The value of the consumable in units. + format: int64 + example: 61425 + unit: + pattern: ^(GB|DPM|Credits|Days)$ + type: string + description: | + The unit of the consumable. Units are provided in: 1. `GB` 2. `DPM`(Data Points Per Minute) 3. `Credits` 4. `Days` + example: GB + x-pattern-message: 'must be one of the following: `GB`, `DPM`, `Credits`, `Days`' + description: Details of unit of consumption and its value. + AccountOwnerResponse: + type: object + properties: + accountOwner: + type: string + description: Email address of the account owner (the bare JSON string returned by the API, wrapped so it projects as a row). x-stackQL-resources: account_owner: id: sumologic.account.account_owner name: account_owner - title: Account_owner + title: Account Owner methods: - getAccountOwner: + get: operation: $ref: '#/paths/~1v1~1account~1accountOwner/get' response: mediaType: application/json openAPIDocKey: '200' + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/AccountOwnerResponse' + transform: + body: |- + {{- $wrapped := printf "{\"accountOwner\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/account_owner/methods/get' insert: [] update: [] delete: [] + replace: [] status: id: sumologic.account.status name: status title: Status methods: - getStatus: + get: operation: $ref: '#/paths/~1v1~1account~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/status/methods/getStatus' + - $ref: '#/components/x-stackQL-resources/status/methods/get' insert: [] update: [] delete: [] + replace: [] subdomain: id: sumologic.account.subdomain name: subdomain title: Subdomain methods: - getSubdomain: + get: operation: $ref: '#/paths/~1v1~1account~1subdomain/get' response: mediaType: application/json openAPIDocKey: '200' - updateSubdomain: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1account~1subdomain/put' response: mediaType: application/json openAPIDocKey: '200' - createSubdomain: + request: + mediaType: application/json + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1account~1subdomain/post' response: mediaType: application/json openAPIDocKey: '200' - deleteSubdomain: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1account~1subdomain/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + recover: + operation: + $ref: '#/paths/~1v1~1account~1subdomain~1recover/post' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/subdomain/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/subdomain/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/subdomain/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/subdomain/methods/delete' + replace: [] + usage_reports: + id: sumologic.account.usage_reports + name: usage_reports + title: Usage Reports + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1account~1usage~1report/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1account~1usage~1report~1{jobId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/subdomain/methods/getSubdomain' + - $ref: '#/components/x-stackQL-resources/usage_reports/methods/get' insert: - - $ref: '#/components/x-stackQL-resources/subdomain/methods/createSubdomain' + - $ref: '#/components/x-stackQL-resources/usage_reports/methods/create' update: [] - delete: - - $ref: '#/components/x-stackQL-resources/subdomain/methods/deleteSubdomain' - subdomain_recover: - id: sumologic.account.subdomain_recover - name: subdomain_recover - title: Subdomain_recover + delete: [] + replace: [] + usage_forecast: + id: sumologic.account.usage_forecast + name: usage_forecast + title: Usage Forecast methods: - recoverSubdomains: + get: operation: - $ref: '#/paths/~1v1~1account~1subdomain~1recover/post' + $ref: '#/paths/~1v1~1account~1usageForecast/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/usage_forecast/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] + pending_update_request: + id: sumologic.account.pending_update_request + name: pending_update_request + title: Pending Update Request + methods: + get: + operation: + $ref: '#/paths/~1v1~1plan~1pendingUpdateRequest/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1plan~1pendingUpdateRequest/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/pending_update_request/methods/get' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/pending_update_request/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - account - description: account - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/apps.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/apps.yaml index 7c716f3..f34bf69 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/apps.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/apps.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Apps API + description: The Sumo Logic app catalog (v1 and v2) - browse, install, upgrade, uninstall apps and follow the asynchronous install jobs. + version: 1.0.0 paths: /v1/apps: get: @@ -108,6 +113,345 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/install: + post: + tags: + - appManagementV2 + summary: Start app install job + description: |- + Schedule an asynchronous job to install the app with the given UUID and version from the App Catalog. The app will be installed in 'Installed Apps' folder in the Content Library. + + _You get back an identifier of asynchronous job in response to this endpoint. You can then use the app install status API to get the status of the installation request. See Asynchronous-Request section for more details on how to work with asynchronous request._ + operationId: asyncInstallApp + parameters: + - name: uuid + in: path + description: UUID of the app to install. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + requestBody: + description: Information about the app to install. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncInstallAppRequest' + required: true + responses: + '200': + description: App installation job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/install/{jobId}/status: + get: + tags: + - appManagementV2 + summary: App install job status + description: Get the status of an asynchronous app install request for the given job identifier. + operationId: getAsyncInstallAppStatus + parameters: + - name: jobId + in: path + description: Identifier of the asynchronous job for installing the app. + required: true + schema: + type: string + example: C03E086C137F38B4 + responses: + '200': + description: Status of the app installation job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncInstallAppJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/uninstall: + post: + tags: + - appManagementV2 + summary: Start app uninstall job + description: |- + Schedule an asynchronous job to uninstall app with the given UUID. + + _You get back an identifier of asynchronous job in response to this endpoint. You can then use the app uninstall status API to get the status of the uninstallation request. See Asynchronous-Request section for more details on how to work with asynchronous request._ + operationId: asyncUninstallApp + parameters: + - name: uuid + in: path + description: UUID of the app to uninstall. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + '200': + description: App uninstall job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/uninstall/{jobId}/status: + get: + tags: + - appManagementV2 + summary: App uninstall job status + description: Get the status of an asynchronous app uninstall request for the given job identifier. + operationId: getAsyncUninstallAppStatus + parameters: + - name: jobId + in: path + description: Identifier of the asynchronous job for uninstalling the app. + required: true + schema: + type: string + example: C03E086C137F38B4 + responses: + '200': + description: Status of the app uninstall job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncUninstallAppJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/upgrade: + post: + tags: + - appManagementV2 + summary: Start app upgrade job + description: |- + Schedule an asynchronous job to upgrade the app with the given UUID and version from the App Catalog. The app will be installed in 'Installed Apps' folder in the Content Library. + + _You get back an identifier of asynchronous job in response to this endpoint. You can then use the app upgrade status API to get the status of the upgrade request. See Asynchronous-Request section for more details on how to work with asynchronous request._ + operationId: asyncUpgradeApp + parameters: + - name: uuid + in: path + description: UUID of the app to upgrade. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + requestBody: + description: Information about the app to upgrade. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncUpgradeAppRequest' + required: true + responses: + '200': + description: App upgrade job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/upgrade/{jobId}/status: + get: + tags: + - appManagementV2 + summary: App upgrade job status + description: Get the status of an asynchronous app upgrade request for the given job identifier. + operationId: getAsyncUpgradeAppStatus + parameters: + - name: jobId + in: path + description: Identifier of the asynchronous job for upgrading the app. + required: true + schema: + type: string + example: C03E086C137F38B4 + responses: + '200': + description: Status of the app upgrade job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncUpgradeAppJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps: + get: + tags: + - appManagementV2 + summary: List apps + description: List all apps from the App Catalog. + operationId: listAppsV2 + parameters: + - name: name + in: query + description: Name of the app. + required: false + schema: + type: string + example: AWS%20CloudTrail + - name: author + in: query + description: Author of the app. + required: false + schema: + type: string + example: Sumo%20Logic + responses: + '200': + description: List of apps. + content: + application/json: + schema: + $ref: '#/components/schemas/ListAppsV2Response' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/details: + get: + tags: + - appManagementV2 + summary: Get details of an app version. + description: |- + Get details about an app with the given UUID and version. The details include: + + 1. The base URL for all the resource for the app. + 2. The app manifest + operationId: getAppDetails + parameters: + - name: uuid + in: path + description: UUID of the app. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + - name: version + in: query + description: Version of the app. The latest version is used if this is omitted or specified as "latest". + required: false + schema: + type: string + example: 1.0.0 + responses: + '200': + description: Information about the requested app. + content: + application/json: + schema: + $ref: '#/components/schemas/GetAppDetailsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/subscription: + get: + tags: + - appManagementV2 + summary: Get subscription status for the user + description: Get Subscription status for the user for a specific app. This will indicate whether the user has subscribed to the app or not. + operationId: getAppNotificationSubscriptionStatus + parameters: + - name: uuid + in: path + description: UUID of the app. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + '200': + description: Information about user's subscription status for the app. + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - appManagementV2 + summary: Subscribe to an app upgrade notification + description: Subscribe to an app upgrade notification. This will allow the user to receive notifications for the app updates. + operationId: subscribeToAppNotification + parameters: + - name: uuid + in: path + description: UUID of the app to subscribe to. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + '204': + description: Successfully subscribed to the app notification. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - appManagementV2 + summary: Unsubscribe from an app upgrade notification + description: Unsubscribe from an app. This will remove the user's subscription to notifications for the app. + operationId: unsubscribeFromAppNotification + parameters: + - name: uuid + in: path + description: UUID of the app to unsubscribe from. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + '204': + description: App Notification unsubscription was successful. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: ListAppsResult: @@ -117,40 +461,272 @@ components: properties: apps: type: array - description: An array of Apps + description: An array of Apps + items: + $ref: '#/components/schemas/App' + description: List of all available apps from the App Catalog. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + App: + required: + - appDefinition + - appManifest + type: object + properties: + appDefinition: + $ref: '#/components/schemas/AppDefinition' + appManifest: + $ref: '#/components/schemas/AppManifest' + AppInstallRequest: + required: + - description + - destinationFolderId + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Preferred name of the app to be installed. This will be the name of the app in the selected installation folder. + example: Sumo Logic Configuration App + description: + maxLength: 255 + minLength: 1 + type: string + description: Preferred description of the app to be installed. This will be displayed as the app description in the selected installation folder. + example: Sumo Logic Configuration App to configure collectors and data sources + destinationFolderId: + type: string + description: Identifier of the folder in which the app will be installed in hexadecimal format. + example: 00000000000001C8 + dataSourceValues: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Dictionary of properties specifying log-source name and value. + example: + logsrc: _sourceCategory = api + description: JSON object containing name, description, destinationFolderId, and dataSourceType. + BeginAsyncJobResponse: + required: + - id + type: object + properties: + id: + type: string + description: Identifier to get the status of an asynchronous job. + example: C03E086C137F38B4 + AsyncJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + statusMessage: + type: string + description: Additional status message generated if the status is not `Failed`. + error: + $ref: '#/components/schemas/ErrorDescription' + example: + status: Success + statusMessage: '' + AsyncInstallAppRequest: + type: object + properties: + version: + type: string + description: | + Version of the app to install. You can either specify a specific version of the app or use `latest` to install the latest version of the app. _If version is not specified, the latest version of the app will be installed_. + example: 1.0.1 + default: latest + parameters: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map of additional parameters for the app installation. + example: + db_system: redis + description: Install app request. + BeginAsyncJobResponseV2: + required: + - jobId + type: object + properties: + jobId: + type: string + description: Identifier of the asynchronous job. Use it to get status of the job. + example: C03E086C137F38B4 + AsyncInstallAppJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + example: Success + instanceId: + type: string + description: Instance identifier of the installed app. This field is not set yet but is a placeholder for future use. + example: 0000000001578BE8 + path: + type: string + description: Path of the folder in which the app was installed. + example: /Library/Installed Apps/AWS CloudTrail + folderId: + type: string + description: Identifier of the folder in which the app was installed. + example: 0000000001578BE8 + error: + $ref: '#/components/schemas/ErrorDescription' + description: Status of the install app async job. + AsyncUninstallAppJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + example: Success + errors: + type: array + description: More information about the failure if the status is `Failed`. + items: + $ref: '#/components/schemas/ErrorDescription' + description: Status of an uninstall app job. + AsyncUpgradeAppRequest: + type: object + properties: + version: + type: string + description: | + Version of the app to upgrade. You can either specify a specific version of the app or use `latest` to install the latest version of the app. _If version is not specified, the latest version of the app will be installed_. + example: 1.0.1 + default: latest + parameters: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map of additional parameters for the app installation. + example: + db_system: redis + description: Upgrade app request. + AsyncUpgradeAppJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + example: Success + instanceId: + type: string + description: Instance identifier of the upgraded app. This field is not set yet but is a placeholder for future use. + example: 0000000001578BE8 + path: + type: string + description: Path of the folder in which the app was upgraded. + example: /Library/Installed Apps/AWS CloudTrail + folderId: + type: string + description: Identifier of the folder in which the app was upgraded. + example: 0000000001578BE8 + error: + $ref: '#/components/schemas/ErrorDescription' + description: Status of the upgrade app async job. + ListAppsV2Response: + required: + - apps + type: object + properties: + apps: + type: array + description: An array of apps. items: - $ref: '#/components/schemas/App' - description: List of all available apps from the App Catalog. - ErrorResponse: + $ref: '#/components/schemas/AppV2' + description: List of all apps from the apps + GetAppDetailsResponse: required: - - errors - - id + - baseUrl + - manifest + - uuid + - version type: object properties: - id: + uuid: type: string - description: An identifier for the error; this is unique to the specific API request. - example: IUUQI-DGH5I-TJ045 - errors: - type: array - description: A list of one or more causes of the error. + description: UUID of the app. + format: uuid + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + version: + type: string + description: Version of the app. + example: 1.0.0 + baseUrl: + type: string + description: URL prefix for where the app is stored. + format: url + example: https://some_bucket.s3.amazonaws.com/path/to/app/version/ + manifest: + type: string + description: Content of the manifest YAML file, as Base64-encoded string. + format: byte + config: + type: string + description: Content of the config YAML file, as Base64-encoded string. + format: byte + readme: + type: string + description: Content of the README markdown file, as Base64-encoded string. + format: byte + files: + maxProperties: 100 + type: object + additionalProperties: + type: string + format: byte + description: Content of various files part of app package, as Base64-encoded string. example: - - code: auth:password_too_short - message: Your password was too short. - - code: auth:password_character_classes - message: Your password did not contain any non-alphanumeric characters - items: - $ref: '#/components/schemas/ErrorDescription' - App: + config: ICAtIGNvbXBvbmVudFR5cGU6IHNjb3BlCiAgICBsYWJlbDog4oCYQXBhY2hlIEVycm9yIExvZyBT b3VyY2XigJkKICAgIHRmVmFyOiBlcnJMb2dTY29wZQogICAgCiAgLSBjb21wb25lbnRUeXBlOiBz Y29wZQogICAgbGFiZWw6IOKAmEFwYWNoZSBBY2Nlc3MgTG9nIFNvdXJjZeKAmQogICAgdGZWYXI6 IGFjY2Vzc0xvZ1Njb3BlCgogIC0gY29tcG9uZW50VHlwZTogY3VzdG9tCiAgICBkYXRhVHlwZTog U3RyaW5nCiAgICBsYWJlbDog4oCYQXBhY2hlIEVuZ2luZSBUeXBl4oCYCiAgICBoZWxwVGV4dDog 4oCYVGhlIGVuZ2luZSB0eXBlIG9mIHlvdXIgQXBhY2hlIEluc3RhbmNl4oCYCiAgICByZXF1aXJl ZDogRmFsc2UKICAgIGRlZmF1bHQ6IOKAmHYxLjDigJkKICAgIHRmVmFyOiBlbmdpbmVUeXBlCg== + readme: IyBPdmVydmlldwoKVGhlIEFwYWNoZSBhcHAgaXMgYSB1bmlmaWVkIGxvZ3MgYW5kIG1ldHJpY3Mg YXBwIHRoYXQgaGVscHMgeW91IG1vbml0b3IgdGhlIGF2YWlsYWJpbGl0eSwgcGVyZm9ybWFuY2Us IGhlYWx0aCBhbmQgcmVzb3VyY2UgdXRpbGl6YXRpb24gb2YgQXBhY2hlIHdlYiBzZXJ2ZXIgZmFy bXMuICBQcmVjb25maWd1cmVkIGRhc2hib2FyZHMgYW5kIHNlYXJjaGVzIHByb3ZpZGUgaW5zaWdo dCBpbnRvIHZpc2l0b3IgbG9jYXRpb25zLCB2aXNpdG9yIGFjY2VzcyB0eXBlcywgdHJhZmZpYyBw YXR0ZXJucywgZXJyb3JzLCB3ZWIgc2VydmVyIG9wZXJhdGlvbnMsIHJlc291cmNlIHV0aWxpemF0 aW9uIGFuZCBhY2Nlc3MgZnJvbSBrbm93biBtYWxpY2lvdXMgc291cmNlcy4KCiMgU2V0dXAKVGhp cyBpcyB0aGUgc2VjdGlvbiBmb3IgQXBhY2hlIC0gT3BlblRlbGVtZXRyeSBjb2xsZWN0aW9uIHNl dHVwLgo= + manifest: CnNjaGVtYVZlcnNpb246ICIxLjAiCgpuYW1lOiBBcGFjaGUKCmRlc2NyaXB0aW9u OiA+LQogIFRoZSBBcGFjaGUgYXBwIGlzIGEgdW5pZmllZCBsb2dzIGFuZCBtZXRy aWNzIGFwcCB0aGF0IGhlbHBzIHlvdSBtb25pdG9yIHRoZSBhdmFpbGFiaWxpdHks IHBlcmZvcm1hbmNlLAogIGhlYWx0aCBhbmQgcmVzb3VyY2UgdXRpbGl6YXRpb24g b2YgQXBhY2hlIHdlYiBzZXJ2ZXIgZmFybXMuICBQcmVjb25maWd1cmVkIGRhc2hi b2FyZHMgYW5kIHNlYXJjaGVzCiAgcHJvdmlkZSBpbnNpZ2h0IGludG8gdmlzaXRv ciBsb2NhdGlvbnMsIHZpc2l0b3IgYWNjZXNzIHR5cGVzLCB0cmFmZmljIHBhdHRl cm5zLCBlcnJvcnMsIHdlYiBzZXJ2ZXIKICBvcGVyYXRpb25zLCByZXNvdXJjZSB1 dGlsaXphdGlvbiBhbmQgYWNjZXNzIGZyb20ga25vd24gbWFsaWNpb3VzIHNvdXJj ZXMuCmF1dGhvcjogU3VtbyBMb2dpYwoKdmVyc2lvbjogMS4wLjAKCgo= + description: Information about an app. + SubscriptionStatusResponse: required: - - appDefinition - - appManifest + - status type: object properties: - appDefinition: - $ref: '#/components/schemas/AppDefinition' - appManifest: - $ref: '#/components/schemas/AppManifest' + status: + type: boolean + description: Show if the user has subscribed to the app or not. value is true, if the user has subscribed to the app + example: true + description: Subscription Status ErrorDescription: required: - code @@ -170,8 +746,8 @@ components: description: An optional fuller English-language description of the error. example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. meta: - type: object - description: An optional list of metadata about the error. + type: string + description: An optional list of metadata about the error. (opaque JSON object) example: minLength: 12 actualLength: 5 @@ -252,6 +828,7 @@ components: description: App help page URL. example: https://help.sumologic.com/ helpDocIdMap: + maxProperties: 1000 type: object additionalProperties: type: string @@ -294,6 +871,94 @@ components: type: string description: App author website URL. example: https://www.sumologic.com + AppV2: + required: + - accountTypes + - attributes + - author + - beta + - description + - family + - icon + - installable + - latestVersion + - name + - showOnMarketplace + - uuid + type: object + properties: + uuid: + type: string + description: UUID of the app. + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + name: + type: string + description: Name of the app. + example: AWS CloudTrail + description: + type: string + description: Description of the app. + example: AWS CloudTrail app description + latestVersion: + type: string + description: Latest version of the app. + example: 1.1.0 + icon: + type: string + description: URL of the icon for the app. + example: https://some-bucket.s3.amazonaws.com/AWSCloudTrail.png + author: + type: string + description: Author of the app. + example: Sumo Logic + accountTypes: + type: array + description: Account types of which the app is available to. + example: + - All + items: + type: string + beta: + type: boolean + description: Whether the app is in beta. + example: false + installs: + type: integer + description: Number of times the app was installed. + format: int32 + example: 3452 + attributes: + maxProperties: 3 + type: object + additionalProperties: + type: array + items: + type: string + description: A map of attributes for this app. Attributes allow to group apps based on different criteria. + example: + category: + - Web Server + - IT Infrastructure + - Amazon Web Services + useCase: + - security + - observability + collection: + - OpenTelemetry + installable: + type: boolean + description: Whether the app is installable or not as not all apps are installable. + example: true + showOnMarketplace: + type: boolean + description: Whether the app should show up on sumologic.com/applications webpage. + example: true + modifiedAt: + type: string + description: The timestamp in UTC of the most recent modification of the app. + format: date-time + example: '2018-10-16T09:10:00.000Z' + description: An app object. ServiceManifestDataSourceParameter: required: - parameterId @@ -332,460 +997,249 @@ components: type: boolean description: Should the UI display? default: false - AppInstallRequest: - required: - - description - - destinationFolderId - - name - type: object - properties: - name: - maxLength: 128 - minLength: 1 - type: string - description: Preferred name of the app to be installed. This will be the name of the app in the selected installation folder. - example: Sumo Logic Configuration App - description: - maxLength: 255 - minLength: 1 - type: string - description: Preferred description of the app to be installed. This will be displayed as the app description in the selected installation folder. - example: Sumo Logic Configuration App to configure collectors and data sources - destinationFolderId: - type: string - description: Identifier of the folder in which the app will be installed in hexadecimal format. - example: 00000000000001C8 - dataSourceValues: - type: object - additionalProperties: - type: string - description: Dictionary of properties specifying log-source name and value. - example: - logsrc: _sourceCategory = api - description: JSON object containing name, description, destinationFolderId, and dataSourceType. - BeginAsyncJobResponse: - required: - - id - type: object - properties: - id: - type: string - description: Identifier to get the status of an asynchronous job. - example: C03E086C137F38B4 - AsyncJobStatus: - required: - - status - type: object - properties: - status: - type: string - description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). - statusMessage: - type: string - description: Additional status message generated if the status is not `Failed`. - error: - $ref: '#/components/schemas/ErrorDescription' - example: - status: Success - statusMessage: '' - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: apps: id: sumologic.apps.apps name: apps title: Apps methods: - listApps: + list: operation: $ref: '#/paths/~1v1~1apps/get' response: mediaType: application/json openAPIDocKey: '200' - getApp: + objectKey: $.apps + request: + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1apps~1{uuid}/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel + install: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1apps~1{uuid}~1install/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/apps/methods/getApp' - - $ref: '#/components/x-stackQL-resources/apps/methods/listApps' + - $ref: '#/components/x-stackQL-resources/apps/methods/get' + - $ref: '#/components/x-stackQL-resources/apps/methods/list' insert: [] update: [] delete: [] - install: - id: sumologic.apps.install - name: install - title: Install + replace: [] + install_jobs: + id: sumologic.apps.install_jobs + name: install_jobs + title: Install Jobs methods: - installApp: + get: operation: - $ref: '#/paths/~1v1~1apps~1{uuid}~1install/post' + $ref: '#/paths/~1v1~1apps~1install~1{jobId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/install_jobs/methods/get' insert: [] update: [] delete: [] - install_status: - id: sumologic.apps.install_status - name: install_status - title: Install_status + replace: [] + apps_v2: + id: sumologic.apps.apps_v2 + name: apps_v2 + title: Apps V2 methods: - getAsyncInstallStatus: + install: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1apps~1install~1{jobId}~1status/get' + $ref: '#/paths/~1v2~1apps~1{uuid}~1install/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + uninstall: + operation: + $ref: '#/paths/~1v2~1apps~1{uuid}~1uninstall/post' + response: + mediaType: application/json + openAPIDocKey: '200' + upgrade: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1apps~1{uuid}~1upgrade/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v2~1apps/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.apps + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1apps~1{uuid}~1details/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/install_status/methods/getAsyncInstallStatus' + - $ref: '#/components/x-stackQL-resources/apps_v2/methods/get' + - $ref: '#/components/x-stackQL-resources/apps_v2/methods/list' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] + install_jobs_v2: + id: sumologic.apps.install_jobs_v2 + name: install_jobs_v2 + title: Install Jobs V2 + methods: + get: + operation: + $ref: '#/paths/~1v2~1apps~1install~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/install_jobs_v2/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + uninstall_jobs: + id: sumologic.apps.uninstall_jobs + name: uninstall_jobs + title: Uninstall Jobs + methods: + get: + operation: + $ref: '#/paths/~1v2~1apps~1uninstall~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/uninstall_jobs/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + upgrade_jobs: + id: sumologic.apps.upgrade_jobs + name: upgrade_jobs + title: Upgrade Jobs + methods: + get: + operation: + $ref: '#/paths/~1v2~1apps~1upgrade~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/upgrade_jobs/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + app_subscriptions: + id: sumologic.apps.app_subscriptions + name: app_subscriptions + title: App Subscriptions + methods: + get: + operation: + $ref: '#/paths/~1v2~1apps~1{uuid}~1subscription/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + subscribe: + operation: + $ref: '#/paths/~1v2~1apps~1{uuid}~1subscription/post' + response: + mediaType: application/json + openAPIDocKey: '204' + delete: + operation: + $ref: '#/paths/~1v2~1apps~1{uuid}~1subscription/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/app_subscriptions/methods/get' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/app_subscriptions/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - apps - description: apps - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/archive.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/archive.yaml index 7d3427d..b02d0c5 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/archive.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/archive.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Archive API + description: Archive ingestion jobs that replay archived logs from an AWS S3 archive source. + version: 1.0.0 paths: /v1/archive/{sourceId}/jobs: get: @@ -162,80 +167,41 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - ArchiveJob: - allOf: - - $ref: '#/components/schemas/CreateArchiveJobRequest' - - required: - - createdAt - - createdBy - - id - - status - - totalBytesIngested - - totalObjectsIngested - - totalObjectsScanned - properties: - id: - type: string - description: The unique identifier of the ingestion job. - example: 4e214571-cf27-4114-93e6-69a98c017f3 - totalObjectsScanned: - type: integer - description: The total number of objects scanned by the ingestion job. - format: int64 - example: 25 - totalObjectsIngested: - type: integer - description: The total number of objects ingested by the ingestion job. - format: int64 - example: 10 - totalBytesIngested: - type: integer - description: The total bytes ingested by the ingestion job. - format: int64 - example: 100 - status: - type: string - description: The status of the ingestion job, either `Pending`,`Scanning`,`Ingesting`,`Failed`, or `Succeeded`. - example: Scanning - createdAt: - type: string - description: The creation timestamp in UTC of the ingestion job. - format: date-time - example: '2018-10-16T09:10:00Z' - createdBy: - type: string - description: The identifier of the user who created the ingestion job. - example: 0000000006743FDD - ErrorDescription: + CreateArchiveJobRequest: required: - - code - - message + - endTime + - name + - startTime type: object properties: - code: + name: + maxLength: 128 + minLength: 1 type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + description: The name of the ingestion job. + startTime: type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: The starting timestamp of the ingestion job. + format: date-time + example: '2018-10-16T09:10:00.000Z' + endTime: type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - CreateArchiveJobRequest: + description: The ending timestamp of the ingestion job. + format: date-time + example: '2018-10-16T10:10:00.000Z' + ArchiveJob: + type: object required: - endTime - name - startTime - type: object + - createdAt + - createdBy + - id + - status + - totalBytesIngested + - totalObjectsIngested + - totalObjectsScanned properties: name: maxLength: 128 @@ -246,12 +212,44 @@ components: type: string description: The starting timestamp of the ingestion job. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' endTime: type: string description: The ending timestamp of the ingestion job. format: date-time - example: '2018-10-16T10:10:00Z' + example: '2018-10-16T10:10:00.000Z' + id: + type: string + description: The unique identifier of the ingestion job. + example: 4e214571-cf27-4114-93e6-69a98c017f3 + totalObjectsScanned: + type: integer + description: The total number of objects scanned by the ingestion job. + format: int64 + example: 25 + totalObjectsIngested: + type: integer + description: The total number of objects ingested by the ingestion job. + format: int64 + example: 10 + totalBytesIngested: + type: integer + description: The total bytes ingested by the ingestion job. + format: int64 + example: 100 + status: + type: string + description: The status of the ingestion job, either `Pending`,`Scanning`,`Ingesting`,`Failed`, or `Succeeded`. + example: Scanning + createdAt: + type: string + description: The creation timestamp in UTC of the ingestion job. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: The identifier of the user who created the ingestion job. + example: 0000000006743FDD ListArchiveJobsCount: required: - data @@ -262,6 +260,30 @@ components: description: List of archive sources with count of jobs having various statuses. items: $ref: '#/components/schemas/ArchiveJobsCount' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 ArchiveJobsCount: required: - failed @@ -301,397 +323,96 @@ components: description: The total number of archive jobs with succeeded status for the archive source. format: int64 example: 20 - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: jobs: id: sumologic.archive.jobs name: jobs title: Jobs methods: - listArchiveJobsBySourceId: + list: operation: $ref: '#/paths/~1v1~1archive~1{sourceId}~1jobs/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data - createArchiveJob: + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1archive~1{sourceId}~1jobs/post' response: mediaType: application/json openAPIDocKey: '200' - deleteArchiveJob: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1archive~1{sourceId}~1jobs~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/jobs/methods/listArchiveJobsBySourceId' + - $ref: '#/components/x-stackQL-resources/jobs/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/jobs/methods/createArchiveJob' + - $ref: '#/components/x-stackQL-resources/jobs/methods/create' update: [] delete: - - $ref: '#/components/x-stackQL-resources/jobs/methods/deleteArchiveJob' - jobs_count: - id: sumologic.archive.jobs_count - name: jobs_count - title: Jobs_count + - $ref: '#/components/x-stackQL-resources/jobs/methods/delete' + replace: [] + job_counts: + id: sumologic.archive.job_counts + name: job_counts + title: Job Counts methods: - listArchiveJobsCountPerSource: + list: operation: $ref: '#/paths/~1v1~1archive~1jobs~1count/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/jobs_count/methods/listArchiveJobsCountPerSource' + - $ref: '#/components/x-stackQL-resources/job_counts/methods/list' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - archive - description: archive - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/budgets.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/budgets.yaml new file mode 100644 index 0000000..f305867 --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/budgets.yaml @@ -0,0 +1,653 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Budgets API + description: Data volume and search cost budgets and their usage. + version: 1.0.0 +paths: + /v1/budgets: + get: + tags: + - budgetManagement + summary: Get budgets + description: Get budgets + operationId: getBudgets + parameters: + - name: limit + in: query + description: Limit the number of budgets returned in the response. The number of budgets returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. + required: false + schema: + type: string + responses: + '200': + description: Budgets assigned to the org. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetList' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - budgetManagement + summary: Creates a budget definition + description: Create a budget definition + operationId: createBudget + parameters: [] + requestBody: + description: Information about the new budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetDefinition' + required: true + responses: + '200': + description: The created budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudget' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/budgets/{budgetId}: + get: + tags: + - budgetManagement + summary: Get budget + description: Get budget + operationId: getBudget + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + responses: + '200': + description: The requested budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudget' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - budgetManagement + summary: Update budget + description: Update budget + operationId: updateBudget + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + requestBody: + description: Updated budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetDefinition' + required: true + responses: + '200': + description: The updated budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudget' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - budgetManagement + summary: Delete budget + description: Delete budget + operationId: deleteBudget + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + responses: + '204': + description: The budget was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/budgets/usage: + get: + tags: + - budgetManagement + summary: Get budget usages + description: Get budget usages + operationId: getBudgetUsages + parameters: + - name: limit + in: query + description: Limit the number of budget usages returned in the response. The number of budget usages returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. + required: false + schema: + type: string + responses: + '200': + description: Scan budget usages. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetUsageList' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/budgets/{budgetId}/usage: + get: + tags: + - budgetManagement + summary: Get budget usage + description: Get budget usage + operationId: getBudgetUsage + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + responses: + '200': + description: The requested budget usage. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ScanBudgetList: + required: + - data + type: object + properties: + data: + type: array + description: List of scan budgets. + items: + $ref: '#/components/schemas/ScanBudget' + next: + type: string + description: Next continuation token. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ScanBudgetDefinition: + required: + - action + - applicableOn + - budgetType + - capacity + - groupBy + - name + - scope + - unit + - window + type: object + properties: + name: + type: string + description: Name of the budget. + capacity: + type: integer + description: Capacity of the budget. + format: int64 + unit: + pattern: ^(GB|MB|TB|KB)$ + type: string + description: Unit of the budget. + example: GB + budgetType: + $ref: '#/components/schemas/BudgetType' + scope: + $ref: '#/components/schemas/ScanBudgetScope' + window: + pattern: ^(Query|Daily|Weekly|Monthly)$ + type: string + description: Window of the budget. Use Daily/Weekly/Monthly for creating a time based budget (beta) + example: Query + applicableOn: + pattern: ^(PerEntity|Sum)$ + type: string + description: Grouping of the budget. + example: PerEntity + groupBy: + pattern: ^(User)$ + type: string + description: Grouping Entity of the budget. + example: User + action: + pattern: ^(StopScan|StopForeGroundScan|Warn)$ + type: string + description: Action to be taken if the budget is breached + example: Warn + callerModules: + type: array + description: Caller modules this budget applies to. Empty list means budget applies to all callers. + example: + - api + - mcp + items: + type: string + status: + pattern: ^(active|inactive)$ + type: string + description: Signifies the state of the budget. (Active/Inactive) + example: active + ScanBudget: + required: + - action + - applicableOn + - budgetType + - capacity + - groupBy + - name + - scope + - unit + - window + - createdAt + - createdBy + - id + - modifiedAt + - modifiedBy + - orgId + - resetDateOfMonth + - resetDayOfWeek + - resetTime + - resetTimeZone + type: object + properties: + name: + type: string + description: Name of the budget. + capacity: + type: integer + description: Capacity of the budget. + format: int64 + unit: + pattern: ^(GB|MB|TB|KB)$ + type: string + description: Unit of the budget. + example: GB + budgetType: + $ref: '#/components/schemas/BudgetType' + scope: + $ref: '#/components/schemas/ScanBudgetScope' + window: + pattern: ^(Query|Daily|Weekly|Monthly)$ + type: string + description: Window of the budget. Use Daily/Weekly/Monthly for creating a time based budget (beta) + example: Query + applicableOn: + pattern: ^(PerEntity|Sum)$ + type: string + description: Grouping of the budget. + example: PerEntity + groupBy: + pattern: ^(User)$ + type: string + description: Grouping Entity of the budget. + example: User + action: + pattern: ^(StopScan|StopForeGroundScan|Warn)$ + type: string + description: Action to be taken if the budget is breached + example: Warn + callerModules: + type: array + description: Caller modules this budget applies to. Empty list means budget applies to all callers. + example: + - api + - mcp + items: + type: string + status: + pattern: ^(active|inactive)$ + type: string + description: Signifies the state of the budget. (Active/Inactive) + example: active + id: + type: string + description: Id of the budget. + orgId: + type: string + description: Org Id of the org for the budget. + resetTime: + maxLength: 5 + minLength: 5 + type: string + description: Reset time of the time based scan budget in HH:MM format + example: '23:30' + default: '00:00' + resetTimeZone: + type: string + description: Time zone of the reset time for the time based scan budget. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + default: Etc/UTC + resetDayOfWeek: + pattern: ^(MONDAY|TUESDAY|WEDNESDAY|THURSDAY|FRIDAY|SATURDAY|SUNDAY)$ + type: string + description: The day of the week when the budget resets, applicable for time based budgets with a Weekly window. Must be a valid day of the week. + default: MONDAY + resetDateOfMonth: + maximum: 28 + minimum: 1 + type: integer + description: The date of the month when the budget resets, applicable for time based budgets with a Monthly window. Must be a valid day of the month (1-28). + format: int32 + default: 1 + createdAt: + type: string + description: Date & time when budget was created. + format: date-time + createdBy: + type: string + description: Id of the user who created the budget. + modifiedAt: + type: string + description: Date & time when budget was last modified. + format: date-time + modifiedBy: + type: string + description: Id of the user who last modified the budget. + ScanBudgetUsageList: + required: + - data + type: object + properties: + data: + type: array + description: List of budget usages + items: + $ref: '#/components/schemas/ScanBudgetUsage' + next: + type: string + description: Next continuation token. + ScanBudgetUsage: + required: + - budgetId + - usage + - usagePercentage + type: object + properties: + budgetId: + type: string + description: Budget id. + usage: + type: integer + description: Budget usage (in bytes). + format: int64 + usagePercentage: + type: integer + description: Budget usage percentage. + format: int64 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + BudgetType: + pattern: ^(ScanBudget)$ + type: string + description: Type of the budget. + example: ScanBudget + ScanBudgetScope: + required: + - excludedRoles + - excludedUsers + - includedRoles + - includedUsers + type: object + properties: + includedUsers: + type: array + description: List of userIds included in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + excludedUsers: + type: array + description: List of userIds excluded in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + includedRoles: + type: array + description: List of roleIds included in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + excludedRoles: + type: array + description: List of roleIds excluded in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + x-stackQL-resources: + budgets: + id: sumologic.budgets.budgets + name: budgets + title: Budgets + methods: + list: + operation: + $ref: '#/paths/~1v1~1budgets/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1budgets/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1budgets~1{budgetId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1budgets~1{budgetId}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1budgets~1{budgetId}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/budgets/methods/get' + - $ref: '#/components/x-stackQL-resources/budgets/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/budgets/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/budgets/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/budgets/methods/delete' + replace: [] + usages: + id: sumologic.budgets.usages + name: usages + title: Usages + methods: + list: + operation: + $ref: '#/paths/~1v1~1budgets~1usage/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1budgets~1{budgetId}~1usage/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/usages/methods/get' + - $ref: '#/components/x-stackQL-resources/usages/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/collectors.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/collectors.yaml index 38fa258..90fda22 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/collectors.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/collectors.yaml @@ -1,650 +1,1024 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Collectors API + description: Collectors, Sources and Collector upgrades (the Collector Management API). + version: 1.0.0 +tags: + - name: collectorManagement + description: Collector Management API - Collectors, Sources and Collector upgrades. +paths: + /v1/collectors: + get: + tags: + - collectorManagement + operationId: listCollectors + summary: List Collectors + description: Get a list of Collectors with an optional limit and offset. + parameters: + - name: filter + in: query + description: 'Filter the Collectors returned using one of the available filter types: installed, hosted, dead, or alive.' + schema: + type: string + enum: + - installed + - hosted + - dead + - alive + - name: limit + in: query + description: Maximum number of Collectors to return (default 1000). + schema: + type: integer + - name: offset + in: query + description: Offset into the list of Collectors (default 0). + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsList' + post: + tags: + - collectorManagement + operationId: createCollector + summary: Create Hosted Collector + description: Create a Hosted Collector. This method can only be used to create Hosted Collectors; an Installed Collector is created by installing the collector software on a host. + requestBody: + description: Definition of the new Hosted Collector, wrapped in a collector object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorDefinition' + responses: + '200': + description: The Collector has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + /v1/collectors/offline: + get: + tags: + - collectorManagement + operationId: listOfflineCollectors + summary: List offline Collectors + description: Get a list of Installed Collectors last seen alive before a specified number of days with an optional limit and offset. + parameters: + - name: aliveBeforeDays + in: query + description: Minimum number of days the Collectors have been offline (default 100, minimum 1). + schema: + type: integer + - name: limit + in: query + description: Maximum number of Collectors to return (default 1000). + schema: + type: integer + - name: offset + in: query + description: Offset into the list of Collectors (default 0). + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsList' + delete: + tags: + - collectorManagement + operationId: deleteOfflineCollectors + summary: Delete offline Collectors + description: Delete Installed Collectors last seen alive before a specified number of days. The delete task is initiated asynchronously. + parameters: + - name: aliveBeforeDays + in: query + description: Minimum number of days the Collectors have been offline (default 100, minimum 1). + schema: + type: integer + responses: + '200': + description: The delete task has been initiated. + /v1/collectors/overview: + get: + tags: + - collectorManagement + operationId: getCollectorsOverview + summary: Collectors overview + description: Summary counts of Installed and Hosted Collectors and Sources, offline Collectors, errors and warnings. + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsOverview' + /v1/collectors/{id}: + get: + tags: + - collectorManagement + operationId: getCollector + summary: Get Collector by ID + description: Get the Collector with the specified identifier. The response carries an ETag header, which must be supplied as If-Match on an update. + parameters: + - $ref: '#/components/parameters/collectorId' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + put: + tags: + - collectorManagement + operationId: updateCollector + summary: Update Collector + description: Update a Collector. The Collector Management API requires the If-Match header to carry the ETag returned by a previous GET of the same Collector; the request body is the full Collector object wrapped in collector. + parameters: + - $ref: '#/components/parameters/collectorId' + - $ref: '#/components/parameters/ifMatch' + requestBody: + description: The updated Collector, wrapped in a collector object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorDefinition' + responses: + '200': + description: The Collector was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + delete: + tags: + - collectorManagement + operationId: deleteCollector + summary: Delete Collector + description: Delete the Collector with the specified identifier. + parameters: + - $ref: '#/components/parameters/collectorId' + responses: + '200': + description: The Collector was deleted successfully. + /v1/collectors/name/{name}: + get: + tags: + - collectorManagement + operationId: getCollectorByName + summary: Get Collector by name + description: Get the Collector with the specified name. + parameters: + - name: name + in: path + description: Name of the Collector. + required: true + schema: + type: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + /v1/collectors/{collectorId}/sources: + get: + tags: + - collectorManagement + operationId: listSources + summary: List Sources + description: Get information about all Sources of a specified Collector. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/download' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SourcesList' + post: + tags: + - collectorManagement + operationId: createSource + summary: Create Source + description: Create a new Source on a Collector. The request body is the Source definition wrapped in a source object; see the vendor documentation (Use JSON to Configure Sources) for the fields required by each sourceType. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + requestBody: + description: Definition of the new Source, wrapped in a source object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SourceDefinition' + responses: + '200': + description: The Source has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/GetSource' + /v1/collectors/{collectorId}/sources/{sourceId}: + get: + tags: + - collectorManagement + operationId: getSource + summary: Get Source + description: Get information about a specified Source of a Collector. The response carries an ETag header, which must be supplied as If-Match on an update. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/sourceId' + - $ref: '#/components/parameters/download' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetSource' + put: + tags: + - collectorManagement + operationId: updateSource + summary: Update Source + description: Update a Source. The Collector Management API requires the If-Match header to carry the ETag returned by a previous GET of the same Source; the request body is the full Source object wrapped in source. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/sourceId' + - $ref: '#/components/parameters/ifMatch' + requestBody: + description: The updated Source, wrapped in a source object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SourceDefinition' + responses: + '200': + description: The Source was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/GetSource' + delete: + tags: + - collectorManagement + operationId: deleteSource + summary: Delete Source + description: Delete the specified Source of a Collector. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/sourceId' + responses: + '200': + description: The Source was deleted successfully. + /v1/collectors/upgrades/targets: + get: + tags: + - collectorManagement + operationId: listUpgradeTargets + summary: List Collector upgrade targets + description: Get the Installed Collector versions available as upgrade (or downgrade) targets. + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/UpgradeTargetsList' + /v1/collectors/upgrades/collectors: + get: + tags: + - collectorManagement + operationId: listUpgradableCollectors + summary: List upgradable Collectors + description: Get the Installed Collectors that can be upgraded (or downgraded) to the specified version. + parameters: + - name: toVersion + in: query + description: Target Collector version. Defaults to the latest version. + schema: + type: string + - name: offset + in: query + description: Offset into the list of Collectors (default 0). + schema: + type: integer + - name: limit + in: query + description: Maximum number of Collectors to return (default 50). + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsList' + /v1/collectors/upgrades: + post: + tags: + - collectorManagement + operationId: createUpgrade + summary: Upgrade a Collector + description: Start an upgrade (or downgrade) task for an Installed Collector. Poll the returned task with the upgrade status method. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpgradeRequest' + responses: + '202': + description: The upgrade task has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/UpgradeTask' + /v1/collectors/upgrades/{upgradeTaskId}: + get: + tags: + - collectorManagement + operationId: getUpgradeStatus + summary: Get Collector upgrade status + description: Get the status of a Collector upgrade task. + parameters: + - name: upgradeTaskId + in: path + description: Identifier of the upgrade task. + required: true + schema: + type: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetUpgrade' components: + parameters: + collectorId: + name: id + in: path + description: Unique identifier of the Collector. + required: true + schema: + type: string + parentCollectorId: + name: collectorId + in: path + description: Unique identifier of the Collector. + required: true + schema: + type: string + sourceId: + name: sourceId + in: path + description: Unique identifier of the Source. + required: true + schema: + type: string + ifMatch: + name: If-Match + in: header + description: The ETag value returned in the response headers of a previous GET of this object. The Collector Management API requires it on updates. + required: false + schema: + type: string + download: + name: download + in: query + description: When true, the response is the JSON configuration of the Source(s), suitable for registering a new Collector or creating a new Source. + required: false + schema: + type: boolean schemas: - CollectorsList: - description: List of Collector objects. - properties: - collectors: - items: - $ref: '#/components/schemas/Collector' - type: array - type: object - GetCollector: - description: Collector object. - properties: - collector: - $ref: '#/components/schemas/Collector' - type: object Collector: + type: object description: Collector object. properties: - alive: - type: boolean - description: When a Collector is running it sends Sumo a heartbeat message every 15 seconds. If no heartbeat message is received after 30 minutes this becomes false. - category: - type: string - description: The Category of the Collector, used as metadata when searching data. - collectorType: - type: string - description: 'The Collector type: Installable or Hosted' - collectorVersion: - type: string - description: Version of the Collector software installed. - fields: - type: object - description: JSON map of key-value fields (metadata) to apply to the Collector. id: - type: integer - description: Identifier - lastSeenAlive: type: integer - description: The last time the Sumo Logic service received an active heartbeat from the Collector, specified as milliseconds since epoch. - links: - type: array - items: - properties: - href: - type: string - rel: - type: string - type: object + description: Unique identifier of the Collector. name: type: string description: Name of the Collector. It must be unique on your account. description: type: string description: Description of the Collector. - timeZone: + category: type: string - description: Time zone of the Collector. For a list of possible values, refer to the "TZ" column in this Wikipedia article. - cutoffRelativeTime: + description: The category of the Collector, used as metadata when searching data. + collectorType: type: string - description: 'Can be specified instead of cutoffTimestamp to provide a relative offset with respect to the current time. Example: use "-1h", "-1d", or "-1w" to collect data thats less than one hour, one day, or one week old, respectively.' - cutoffTimestamp: + description: 'The Collector type: Installable or Hosted.' + collectorVersion: + type: string + description: Version of the Collector software installed. + alive: + type: boolean + description: When a Collector is running it sends a heartbeat every 15 seconds. If no heartbeat is received for 30 minutes this becomes false. + lastSeenAlive: type: integer - description: 0 (collects all data)|Only collect data from files with a modified date more recent than this timestamp, specified as milliseconds since epoch + format: int64 + description: The last time the Sumo Logic service received an active heartbeat from the Collector, in milliseconds since epoch. ephemeral: type: boolean - description: When true, the collector will be deleted after 12 hours of inactivity. For more information, see Setting a Collector as Ephemeral. + description: When true, the Collector is deleted after 12 hours of inactivity. hostName: type: string - description: Host name of the Collector. The hostname can be a maximum of 128 characters. + description: Host name of the Collector. + timeZone: + type: string + description: Time zone of the Collector (TZ database name). sourceSyncMode: type: string - description: For installed Collectors, whether the Collector is using local source configuration management (using a JSON file), or cloud management (using the UI) + description: For Installed Collectors, whether Sources are managed locally from a JSON file (Json) or from the cloud (UI). + cutoffTimestamp: + type: integer + format: int64 + description: Only collect data from files with a modified date more recent than this timestamp, in milliseconds since epoch (0 collects all data). + cutoffRelativeTime: + type: string + description: Can be specified instead of cutoffTimestamp to provide a relative offset with respect to the current time, for example -1h, -1d or -1w. targetCpu: type: integer - description: When CPU utilization exceeds this threshold, the Collector will slow down its rate of ingestion to lower its CPU utilization. + description: When CPU utilization exceeds this threshold the Collector slows its rate of ingestion. osName: type: string - description: Name of OS that Collector is installed on. [Installed Collectors only] + description: Name of the OS the Collector is installed on (Installed Collectors only). osVersion: type: string - description: Version of the OS that Collector is installed on. [Installed Collectors only] + description: Version of the OS the Collector is installed on (Installed Collectors only). osArch: type: string - description: Architecture of the OS that Collector is installed on. [Installed Collectors only] + description: Architecture of the OS the Collector is installed on (Installed Collectors only). osTime: type: integer - description: Time that the Collector has been running, in milliseconds. [Installed Collectors only] + format: int64 + description: Time that the Collector has been running, in milliseconds (Installed Collectors only). + fields: + type: string + description: JSON map of key-value fields (metadata) applied to the Collector. (opaque JSON object) + links: + type: array + description: Related links. + items: + type: object + properties: + rel: + type: string + href: + type: string + CollectorsList: + type: object + description: List of Collector objects. + properties: + collectors: + type: array + items: + $ref: '#/components/schemas/Collector' + GetCollector: type: object - HostedCollectorDefinition: - description: Hosted Collector object creation fields. + description: A single Collector, wrapped in a collector object. properties: collector: - type: object - required: - - name - properties: - category: - type: string - description: The Category of the Collector, used as metadata when searching data. - collectorType: - type: string - description: 'The Collector type: Installable or Hosted' - default: Hosted - fields: - type: object - description: JSON map of key-value fields (metadata) to apply to the Collector. - name: - type: string - description: Name of the Collector. It must be unique on your account. - description: - type: string - description: Description of the Collector. + $ref: '#/components/schemas/Collector' + CollectorDefinition: type: object - SourcesList: - description: List of Sources for a Collector. + description: Collector definition for create and update requests, wrapped in a collector object. + required: + - collector properties: - sources: - items: - $ref: '#/components/schemas/Source' - type: array + collector: + $ref: '#/components/schemas/Collector' + CollectorsOverview: type: object + description: Summary counts of Collectors and Sources. + properties: + installedCollectorsCount: + type: integer + installedSourcesCount: + type: integer + hostedCollectorsCount: + type: integer + hostedSourcesCount: + type: integer + offlineCollectorsCount: + type: integer + errors: + type: integer + warnings: + type: integer Source: - description: Source object. + type: object + description: Source object. The set of properties depends on the sourceType; the properties listed here are the common ones. properties: id: type: integer - description: Source identifer. + description: Unique identifier of the Source. name: type: string - description: Source name. + description: Name of the Source. + description: + type: string + description: Description of the Source. category: type: string - description: Source category. + description: Source category (the _sourceCategory metadata field). hostName: type: string - description: Source hostName. + description: Host name assigned to data from this Source (the _sourceHost metadata field). + sourceType: + type: string + description: Type of the Source, for example HTTP, LocalFile, RemoteFileV2, Syslog, SystemStats, Polling, Script, and the cloud-to-cloud types. + contentType: + type: string + description: Content type of the data collected (used by some cloud Source types). + alive: + type: boolean + description: Whether the Source is alive. + url: + type: string + description: Unique URL of an HTTP Source endpoint. + encoding: + type: string + description: Character encoding of the data (default UTF-8). + timeZone: + type: string + description: Time zone applied to messages when forceTimeZone is true or the message has no time zone. + forceTimeZone: + type: boolean + description: When true, the timeZone is applied to all messages. automaticDateParsing: type: boolean - description: Source automaticDateParsing. + description: Whether timestamps are parsed automatically. multilineProcessingEnabled: type: boolean - description: Source multilineProcessingEnabled. + description: Whether multiline message processing is enabled. useAutolineMatching: type: boolean - description: Source useAutolineMatching. - alive: - type: boolean - description: Source alive. - forceTimeZone: - type: boolean - description: Source forceTimeZone. + description: Whether message boundaries are inferred automatically. + manualPrefixRegexp: + type: string + description: Regular expression that marks the start of a message when useAutolineMatching is false. messagePerRequest: type: boolean - description: Source messagePerRequest. - sourceType: - type: string - description: Source sourceType. - encoding: - type: string - description: Source encoding. - hashAlgorithm: - type: string - description: Source hashAlgorithm. - url: - type: string - description: Source url. + description: For HTTP Sources, whether each request is a single message. + defaultDateFormats: + type: array + description: Default date formats used to parse timestamps. + items: + type: string + description: (opaque JSON object) pathExpression: type: string - description: Source pathExpression. + description: Path expression of the files to collect (file Sources). denylist: type: array - description: Source denylist. + description: Path expressions to exclude from collection (file Sources). + items: + type: string filters: type: array - description: Source filters. + description: Processing rules (Exclude, Include, Hash, Mask, Forward) applied to the Source. items: + type: object properties: filterType: type: string name: type: string regexp: - type: string - type: object + type: string + mask: + type: string fields: - type: object - description: Source fields. + type: string + description: JSON map of key-value fields (metadata) applied to the Source. (opaque JSON object) cutoffTimestamp: type: integer - description: Source cutoffTimestamp. + format: int64 + description: Only collect data more recent than this timestamp, in milliseconds since epoch. + cutoffRelativeTime: + type: string + description: Relative offset instead of cutoffTimestamp, for example -1h, -1d or -1w. + hashAlgorithm: + type: string + description: Hash algorithm used by Hash processing rules. + interval: + type: integer + description: Collection interval in milliseconds (metrics and script Sources). + metrics: + type: array + description: Metrics to collect (SystemStats Sources). + items: + type: string + thirdPartyRef: + type: string + description: Cloud-to-cloud Source configuration. (opaque JSON object) + status: + type: string + description: Source status (cloud Sources). (opaque JSON object) + SourcesList: type: object + description: List of Sources for a Collector. + properties: + sources: + type: array + items: + $ref: '#/components/schemas/Source' GetSource: - description: Source object. + type: object + description: A single Source, wrapped in a source object. + properties: + source: + $ref: '#/components/schemas/Source' + SourceDefinition: + type: object + description: Source definition for create and update requests, wrapped in a source object. + required: + - source + properties: + source: + $ref: '#/components/schemas/Source' + UpgradeTarget: + type: object + properties: + version: + type: string + description: Collector version. + latest: + type: boolean + description: Whether this is the latest version. + UpgradeTargetsList: + type: object + properties: + targets: + type: array + items: + $ref: '#/components/schemas/UpgradeTarget' + UpgradeRequest: + type: object + required: + - collectorId properties: - source: - $ref: '#/components/schemas/Source' + collectorId: + type: integer + description: Identifier of the Installed Collector to upgrade. + toVersion: + type: string + description: Target version. Defaults to the latest version. + UpgradeTask: type: object - SourceDefinition: - description: Source object to create. properties: - source: + id: + type: string + description: Identifier of the upgrade task. + link: type: object + description: Link to the upgrade task status. properties: - name: + rel: type: string - description: Source name. - category: + href: type: string - description: Source category. - automaticDateParsing: - type: boolean - description: Source automaticDateParsing. - multilineProcessingEnabled: - type: boolean - description: Source multilineProcessingEnabled. - useAutolineMatching: - type: boolean - description: Source useAutolineMatching. - forceTimeZone: - type: boolean - description: Source forceTimeZone. - messagePerRequest: - type: boolean - description: Source messagePerRequest. - sourceType: - type: string - description: Source sourceType. - encoding: - type: string - description: Source encoding. - filters: - type: array - description: Source filters. - items: - properties: - filterType: - type: string - name: - type: string - regexp: - type: string - type: object - fields: - type: object - description: Source fields. - cutoffTimestamp: - type: integer - description: Source cutoffTimestamp. + Upgrade: + type: object + properties: + id: + type: string + description: Identifier of the upgrade task. + collectorId: + type: integer + description: Identifier of the Collector being upgraded. + toVersion: + type: string + description: Target version. + requestTime: + type: integer + format: int64 + description: Time the upgrade was requested, in milliseconds since epoch. + status: + type: integer + description: 'Upgrade status: 0 not started, 1 running, 2 succeeded, 3 failed, 6 progressing.' + message: + type: string + description: Status message. + GetUpgrade: type: object + properties: + upgrade: + $ref: '#/components/schemas/Upgrade' x-stackQL-resources: collectors: + id: sumologic.collectors.collectors name: collectors + title: Collectors methods: - create_collector: + list: operation: - $ref: '#/paths/~1v1~1collectors/post' + $ref: '#/paths/~1v1~1collectors/get' response: mediaType: application/json openAPIDocKey: '200' - list_collectors: + objectKey: $.collectors + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1collectors/get' + $ref: '#/paths/~1v1~1collectors/post' response: mediaType: application/json - objectKey: '$.collectors' openAPIDocKey: '200' - get_collector_by_id: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1collectors~1{id}/get' response: mediaType: application/json - objectKey: '$.collector' openAPIDocKey: '200' - delete_collector: + objectKey: $.collector + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1collectors~1{id}/delete' + $ref: '#/paths/~1v1~1collectors~1{id}/put' response: mediaType: application/json - openAPIDocKey: '200' - update_collector: + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: operation: - $ref: '#/paths/~1v1~1collectors~1{id}/put' + $ref: '#/paths/~1v1~1collectors~1{id}/delete' response: mediaType: application/json - objectKey: '$.collector' - openAPIDocKey: '200' - get_collector_by_name: + openAPIDocKey: '200' + request: + nativeCasing: camel + get_by_name: operation: $ref: '#/paths/~1v1~1collectors~1name~1{name}/get' response: mediaType: application/json - objectKey: '$.collector' - openAPIDocKey: '200' - id: sumologic.collectors.collectors + openAPIDocKey: '200' + objectKey: $.collector + request: + nativeCasing: camel sqlVerbs: - delete: - - $ref: '#/components/x-stackQL-resources/collectors/methods/delete_collector' - insert: - - $ref: '#/components/x-stackQL-resources/collectors/methods/create_collector' select: - # - $ref: '#/components/x-stackQL-resources/collectors/methods/get_collector_by_id' - - $ref: '#/components/x-stackQL-resources/collectors/methods/get_collector_by_name' - - $ref: '#/components/x-stackQL-resources/collectors/methods/list_collectors' - update: [] - title: collectors + - $ref: '#/components/x-stackQL-resources/collectors/methods/get' + - $ref: '#/components/x-stackQL-resources/collectors/methods/get_by_name' + - $ref: '#/components/x-stackQL-resources/collectors/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/collectors/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/collectors/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/collectors/methods/delete' + replace: [] offline_collectors: + id: sumologic.collectors.offline_collectors name: offline_collectors + title: Offline Collectors methods: - list_offline_collectors: + list: operation: $ref: '#/paths/~1v1~1collectors~1offline/get' response: mediaType: application/json - objectKey: '$.collectors' openAPIDocKey: '200' - id: sumologic.collectors.offline_collectors + objectKey: $.collectors + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1collectors~1offline/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - delete: [] + select: + - $ref: '#/components/x-stackQL-resources/offline_collectors/methods/list' insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/offline_collectors/methods/delete' + replace: [] + overview: + id: sumologic.collectors.overview + name: overview + title: Overview + methods: + get: + operation: + $ref: '#/paths/~1v1~1collectors~1overview/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/offline_collectors/methods/list_offline_collectors' + - $ref: '#/components/x-stackQL-resources/overview/methods/get' + insert: [] update: [] - title: offline_collectors - sources: + delete: [] + replace: [] + sources: + id: sumologic.collectors.sources name: sources + title: Sources methods: - list_sources: + list: operation: $ref: '#/paths/~1v1~1collectors~1{collectorId}~1sources/get' response: mediaType: application/json - objectKey: '$.sources' openAPIDocKey: '200' - get_source_by_id: + objectKey: $.sources + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1collectors~1{collectorId}~1sources~1{sourceId}/get' + $ref: '#/paths/~1v1~1collectors~1{collectorId}~1sources/post' response: mediaType: application/json - objectKey: '$.source' openAPIDocKey: '200' - create_source: + request: + mediaType: application/json + nativeCasing: camel + get: operation: - $ref: '#/paths/~1v1~1collectors~1{collectorId}~1sources/post' + $ref: '#/paths/~1v1~1collectors~1{collectorId}~1sources~1{sourceId}/get' response: mediaType: application/json - objectKey: '$.source' openAPIDocKey: '200' - update_source: + objectKey: $.source + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1collectors~1{collectorId}~1sources~1{sourceId}/put' response: mediaType: application/json - objectKey: '$.source' openAPIDocKey: '200' - delete_source: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1collectors~1{collectorId}~1sources~1{sourceId}/delete' response: mediaType: application/json - objectKey: '$.source' - openAPIDocKey: '200' - id: sumologic.collectors.sources - sqlVerbs: - delete: - - $ref: '#/components/x-stackQL-resources/sources/methods/delete_source' + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sources/methods/get' + - $ref: '#/components/x-stackQL-resources/sources/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/sources/methods/create_source' + - $ref: '#/components/x-stackQL-resources/sources/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/sources/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/sources/methods/delete' + replace: [] + upgrade_targets: + id: sumologic.collectors.upgrade_targets + name: upgrade_targets + title: Upgrade Targets + methods: + list: + operation: + $ref: '#/paths/~1v1~1collectors~1upgrades~1targets/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.targets + request: + nativeCasing: camel + sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/sources/methods/get_source_by_id' - - $ref: '#/components/x-stackQL-resources/sources/methods/list_sources' + - $ref: '#/components/x-stackQL-resources/upgrade_targets/methods/list' + insert: [] update: [] - title: sources -externalDocs: - description: Find more info here - url: https://help.sumologic.com/docs/api/collectors/ -info: - title: Sumologic Collector Managament API - description: OpenAPI 3 specification for Sumologic Collector Managament API with StackQL extensions - contact: - name: Jeffrey Aven - url: https://github.com/stackql/stackql - email: javen@stackql.io - version: 'v0.1.1' -openapi: 3.0.1 -paths: - /v1/collectors/{id}: - get: - description: Get the Collector with the specified Identifier. - parameters: - - name: id - in: path - description: Unique identifier of the Collector. - required: true - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GetCollector' - description: Success - put: - description: Update a Collector - parameters: - - name: id - in: path - description: Id of the collector to update. - required: true - schema: - type: string - requestBody: - description: Information to update about the collector. - content: - application/json: - schema: - $ref: '#/components/schemas/Collector' - required: true - responses: - '200': - description: The collector was successfully modified. - content: - application/json: - schema: - $ref: '#/components/schemas/GetCollector' - delete: - description: Delete Collector by ID - parameters: - - name: id - in: path - description: Identifier of the collector to delete. - required: true - schema: - type: string - responses: - '200': - description: Collector was deleted successfully. - /v1/collectors/name/{name}: - get: - description: Get the Collector with the specified name. - parameters: - - name: name - in: path - description: Name of the Collector. - required: true - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GetCollector' - description: Success - /v1/collectors: - post: - description: Create Hosted Collector. This method can only be used to create Hosted Collectors. You must install a Collector manually to create an Installed Collector. - parameters: [] - requestBody: - description: Information about the new connection. - content: - application/json: - schema: - $ref: '#/components/schemas/HostedCollectorDefinition' - required: true - responses: - '200': - description: The connection has been created. - content: - application/json: - schema: - $ref: '#/components/schemas/GetCollector' - get: - description: Get a list of Collectors with an optional limit and offset. - parameters: - - description: 'Filter the Collectors returned using one of the available filter types:installed, hosted, dead, or alive.' - in: query - name: filter - schema: - type: string - - description: Max number of Collectors to return. - in: query - name: limit - schema: - type: integer - - description: Offset into the list of Collectors. - in: query - name: offset - schema: - type: integer - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CollectorsList' - description: Success - /v1/collectors/offline: - get: - description: Get a list of Installed Collectors last seen alive before a specified number of days with an optional limit and offset. - parameters: - - description: 'Filter the Collectors returned using one of the available filter types:installed, hosted, dead, or alive.' - in: query - name: aliveBeforeDays - schema: - type: integer - - description: Minimum number of days the Collectors have been offline, must be at least 1 day. - in: query - name: limit - schema: - type: integer - - description: 'Offset into the list of Collectors.' - in: query - name: offset - schema: - type: integer - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CollectorsList' - description: Success - /v1/collectors/{collectorId}/sources: - post: - description: Creates a new Source for a Collector. See Use JSON to Configure Sources for required fields for the request JSON file. - parameters: - - name: collectorId - in: path - description: Unique identifier of the Collector. - required: true - schema: - type: string - requestBody: - description: Information about the new source. - content: - application/json: - schema: - $ref: '#/components/schemas/SourceDefinition' - required: true - responses: - '200': - description: The source has been created. - content: - application/json: - schema: - $ref: '#/components/schemas/GetSource' - get: - description: Gets information about all Sources for a specified Collector. - parameters: - - name: collectorId - in: path - description: Unique Collector identifier. - required: true - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SourcesList' - description: Success - /v1/collectors/{collectorId}/sources/{sourceId}: - get: - description: Gets information about a specified Collector and Source. - parameters: - - name: collectorId - in: path - description: Unique Collector identifier. - required: true - schema: - type: string - - name: sourceId - in: path - description: Unique Source identifier. - required: true - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GetSource' - description: Success - put: - description: Update a source - parameters: - - name: collectorId - in: path - description: Unique Collector identifier. - required: true - schema: - type: string - - name: sourceId - in: path - description: Unique Source identifier. - required: true - schema: - type: string - requestBody: - description: Information to update about the source. - content: - application/json: - schema: - $ref: '#/components/schemas/Source' - required: true - responses: - '200': - description: The source was successfully modified. - content: - application/json: - schema: - $ref: '#/components/schemas/GetSource' - delete: - description: Delete Source by ID - parameters: - - name: collectorId - in: path - description: Unique Collector identifier. - required: true - schema: - type: string - - name: sourceId - in: path - description: Unique Source identifier. - required: true - schema: - type: string - responses: - '200': - description: Source was deleted successfully. + delete: [] + replace: [] + upgradable_collectors: + id: sumologic.collectors.upgradable_collectors + name: upgradable_collectors + title: Upgradable Collectors + methods: + list: + operation: + $ref: '#/paths/~1v1~1collectors~1upgrades~1collectors/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.collectors + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/upgradable_collectors/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + upgrades: + id: sumologic.collectors.upgrades + name: upgrades + title: Upgrades + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1collectors~1upgrades/post' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1collectors~1upgrades~1{upgradeTaskId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.upgrade + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/upgrades/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/upgrades/methods/create' + update: [] + delete: [] + replace: [] servers: - - url: 'https://api.{region}.sumologic.com/api' + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint \ No newline at end of file + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/connections.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/connections.yaml index c00f1e7..46c6cd9 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/connections.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/connections.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Connections API + description: Webhook, ServiceNow, PagerDuty and other outbound connections used by monitors and scheduled searches. + version: 1.0.0 paths: /v1/connections: get: @@ -155,7 +160,6 @@ paths: - name: type in: query description: Type of connection to return. Valid values are `WebhookConnection`, `ServiceNowConnection`. - required: true schema: type: string default: WebhookConnection @@ -270,6 +274,32 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' + ConnectionDefinition: + required: + - name + - type + type: object + properties: + type: + pattern: ^(WebhookDefinition|ServiceNowDefinition)$ + type: string + description: Type of connection. Valid values are `WebhookDefinition`, `ServiceNowDefinition`. + x-pattern-message: must be either `WebhookDefinition` or `ServiceNowDefinition` + name: + maxLength: 127 + minLength: 1 + type: string + description: Name of the connection. + description: + maxLength: 1024 + type: string + description: Description of the connection. + default: '' + discriminator: + propertyName: type + mapping: + ServiceNowDefinition: '#/components/schemas/ServiceNowDefinition' + WebhookDefinition: '#/components/schemas/WebhookDefinition' Connection: required: - createdAt @@ -310,53 +340,6 @@ components: description: Identifier of the user who last modified the resource. discriminator: propertyName: type - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - ConnectionDefinition: - required: - - name - - type - type: object - properties: - type: - pattern: ^(WebhookDefinition|ServiceNowDefinition)$ - type: string - description: Type of connection. Valid values are `WebhookDefinition`, `ServiceNowDefinition`. - x-pattern-message: must be either `WebhookDefinition` or `ServiceNowDefinition` - name: - maxLength: 127 - minLength: 1 - type: string - description: Name of the connection. - description: - maxLength: 1024 - type: string - description: Description of the connection. - default: '' - discriminator: - propertyName: type TestConnectionResponse: required: - responseContent @@ -412,6 +395,30 @@ components: description: List of incident templates. items: $ref: '#/components/schemas/IncidentTemplate' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 IncidentTemplate: required: - id @@ -424,423 +431,121 @@ components: name: type: string description: Name of the incident template. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: connections: id: sumologic.connections.connections name: connections title: Connections methods: - listConnections: + list: operation: $ref: '#/paths/~1v1~1connections/get' response: mediaType: application/json openAPIDocKey: '200' - createConnection: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1connections/post' response: mediaType: application/json openAPIDocKey: '200' - getConnection: + request: + mediaType: application/json + nativeCasing: camel + test: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1connections~1{id}/get' + $ref: '#/paths/~1v1~1connections~1test/post' response: mediaType: application/json openAPIDocKey: '200' - updateConnection: + request: + mediaType: application/json + nativeCasing: camel + get_incident_templates: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1connections~1{id}/put' + $ref: '#/paths/~1v1~1connections~1incidentTemplates/post' response: mediaType: application/json openAPIDocKey: '200' - deleteConnection: + request: + mediaType: application/json + nativeCasing: camel + get: operation: - $ref: '#/paths/~1v1~1connections~1{id}/delete' + $ref: '#/paths/~1v1~1connections~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/connections/methods/getConnection' - - $ref: '#/components/x-stackQL-resources/connections/methods/listConnections' - insert: - - $ref: '#/components/x-stackQL-resources/connections/methods/createConnection' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/connections/methods/deleteConnection' - test: - id: sumologic.connections.test - name: test - title: Test - methods: - testConnection: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1connections~1test/post' + $ref: '#/paths/~1v1~1connections~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - incident_templates: - id: sumologic.connections.incident_templates - name: incident_templates - title: Incident_templates - methods: - getIncidentTemplates: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: - $ref: '#/paths/~1v1~1connections~1incidentTemplates/post' + $ref: '#/paths/~1v1~1connections~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] -openapi: 3.0.0 + select: + - $ref: '#/components/x-stackQL-resources/connections/methods/get' + - $ref: '#/components/x-stackQL-resources/connections/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/connections/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/connections/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/connections/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - connections - description: connections - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/content.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/content.yaml index f3fd82d..28bee2f 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/content.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/content.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Content API + description: The content library - folders (personal, global, admin recommended, installed apps), content permissions, paths, and the asynchronous export, import, copy, move and delete jobs. + version: 1.0.0 paths: /v2/content/folders: post: @@ -132,11 +137,11 @@ paths: - folderManagement summary: Schedule Global View job description: |- - Schedule an asynchronous job to get Global View. Global View contains all top-level content items that a user has permissions to view in the organization. User can traverse the top-level folders using [GetFolder API] to get rest of the content items. Make sure you set `isAdminMode` header parameter to `true` when traversing top-level items. + Schedule an asynchronous job to get Global View. Global View contains all top-level content items that a user has permissions to view in the organization. User can traverse the top-level folders using GetFolder API to get rest of the content items. Make sure you set `isAdminMode` header parameter to `true` when traversing top-level items. _Global View is not a real folder, therefore there is no folder identifier associated with it_. - _You get back a identifier of asynchronous job in response to this endpoint. See [Asynchronous-Request] section for more details on how to work with asynchronous request._ + _You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._ operationId: getGlobalFolderAsync parameters: - name: isAdminMode @@ -163,7 +168,7 @@ paths: tags: - folderManagement summary: Get Global View job status - description: Get the status of an asynchronous Global View job for the given job identifier. If job succeeds, use [Global View Result] endpoint to fetch all content items that you have permissions to view. + description: Get the status of an asynchronous Global View job for the given job identifier. If job succeeds, use Global View Result endpoint to fetch all content items that you have permissions to view. operationId: getGlobalFolderAsyncStatus parameters: - name: jobId @@ -220,7 +225,7 @@ paths: description: |- Schedule an asynchronous job to get the top-level Admin Recommended content items. You can read more about Admin Recommended folder [here](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode#move-important-content-to-admin-recommended). - _You get back a identifier of asynchronous job in response to this endpoint. See [Asynchronous-Request] section for more details on how to work with asynchronous request._ + _You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._ operationId: getAdminRecommendedFolderAsync parameters: - name: isAdminMode @@ -247,7 +252,7 @@ paths: tags: - folderManagement summary: Get Admin Recommended folder job status - description: Get the status of an asynchronous Admin Recommended folder job for the given job identifier. If job succeeds, use [Admin Recommended Job Result] endpoint to fetch top-level content items in Admin Recommended folder. + description: Get the status of an asynchronous Admin Recommended folder job for the given job identifier. If job succeeds, use Admin Recommended Job Result endpoint to fetch top-level content items in Admin Recommended folder. operationId: getAdminRecommendedFolderAsyncStatus parameters: - name: jobId @@ -296,6 +301,90 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/installedApps: + get: + tags: + - folderManagement + summary: Schedule Installed Apps folder job + description: |- + Schedule an asynchronous job to get the top-level Installed Apps content items. + + _You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._ + operationId: getInstalledAppsFolderAsync + parameters: + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: An asynchronous job to get the Installed Apps folder has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/installedApps/{jobId}/status: + get: + tags: + - folderManagement + summary: Get Installed Apps folder job status + description: Get the status of an asynchronous Installed Apps folder job for the given job identifier. If job succeeds, use Installed Apps Job Result endpoint to fetch top-level content items in Installed Apps folder. + operationId: getInstalledAppsFolderAsyncStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Installed Apps folder job. + required: true + schema: + type: string + responses: + '200': + description: Asynchronous Installed Apps folder job status. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/installedApps/{jobId}/result: + get: + tags: + - folderManagement + summary: Get Installed Apps folder job result + description: Get result of an Installed Apps job for the given job identifier. The result will be "Installed Apps" folder with a list of top-level Installed Apps content items in `children` field. + operationId: getInstalledAppsFolderAsyncResult + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Installed Apps folder job. + required: true + schema: + type: string + responses: + '200': + description: Installed Apps folder. + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' /v2/content/{id}/permissions: get: tags: @@ -488,7 +577,7 @@ paths: - contentManagement summary: Start a content export job. description: |- - Schedule an _asynchronous_ export of content with the given identifier. You will get back an asynchronous job identifier on success. Use the [getAsyncExportStatus] endpoint and the job identifier you got back in the response to track the status of an asynchronous export job. + Schedule an _asynchronous_ export of content with the given identifier. You will get back an asynchronous job identifier on success. Use the getAsyncExportStatus endpoint and the job identifier you got back in the response to track the status of an asynchronous export job. If the content item is a folder, everything under the folder is exported recursively. Keep in mind when exporting large folders that there is a limit of 1000 content objects that can be exported at once. If you want to import more than 1000 content objects, then be sure to split the import into batches of 1000 objects or less. The results from the export are compatible with the Library import feature in the Sumo Logic user interface as well as the API content import job. operationId: beginAsyncExport @@ -523,7 +612,7 @@ paths: tags: - contentManagement summary: Content export job status. - description: Get the status of an asynchronous content export request for the given job identifier. On success, use the [getExportResult] endpoint to get the result of the export job. + description: Get the status of an asynchronous content export request for the given job identifier. On success, use the getExportResult endpoint to get the result of the export job. operationId: getAsyncExportStatus parameters: - name: contentId @@ -682,6 +771,45 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/{folderId}/import/{jobId}/result: + get: + tags: + - contentManagement + summary: Content import job result. + description: Get the complete summary of content import job for the given job identifier. + operationId: getAsyncImportResult + parameters: + - name: folderId + in: path + description: The identifier of the folder to import into. + required: true + schema: + type: string + - name: jobId + in: path + description: The identifier of the import request. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: The result of the import job. + content: + application/json: + schema: + $ref: '#/components/schemas/ImportResult' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' /v2/content/{id}/delete: delete: tags: @@ -896,119 +1024,23 @@ components: type: string description: The identifier of the parent folder. Folder: - allOf: - - $ref: '#/components/schemas/Content' - - type: object - properties: - description: - maxLength: 255 - minLength: 0 - type: string - description: The description of the folder. - example: This is a sample folder. - children: - type: array - description: A list of the content items. - items: - $ref: '#/components/schemas/Content' - ErrorResponse: - required: - - errors - - id type: object - properties: - id: - type: string - description: An identifier for the error; this is unique to the specific API request. - example: IUUQI-DGH5I-TJ045 - errors: - type: array - description: A list of one or more causes of the error. - example: - - code: auth:password_too_short - message: Your password was too short. - - code: auth:password_character_classes - message: Your password did not contain any non-alphanumeric characters - items: - $ref: '#/components/schemas/ErrorDescription' - Content: - allOf: - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - - itemType - - name - - parentId - - permissions - properties: - id: - type: string - description: Identifier of the content item. - example: 000000000C1C17C6 - name: - type: string - description: The name of the content item. - example: Personal - itemType: - type: string - description: |- - Type of the content item. Supported values are: - 1. Folder - 2. Search - 3. Report (for old dashboards) - 4. Dashboard (for new dashboards) - 5. Lookups - example: Folder - parentId: - type: string - description: Identifier of the parent content item. - example: 0000000001C41EF2 - permissions: - type: array - description: List of permissions the user has on the content item. - example: - - View - - GrantView - - Edit - items: - type: string - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - MetadataModel: required: - createdAt - createdBy - modifiedAt - modifiedBy - type: object + - id + - itemType + - name + - parentId + - permissions properties: createdAt: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -1017,11 +1049,76 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 + id: + type: string + description: Identifier of the content item. + example: 000000000C1C17C6 + name: + type: string + description: The name of the content item. + example: Personal + itemType: + type: string + description: |- + Type of the content item. Supported values are: + 1. Folder + 2. Search + 3. Report (for old dashboards) + 4. Dashboard (for new dashboards) + 5. Lookups + example: Folder + parentId: + type: string + description: Identifier of the parent content item. + example: 0000000001C41EF2 + permissions: + type: array + description: List of permissions the user has on the content item. + example: + - View + - GrantView + - Edit + items: + type: string + description: + type: string + description: Description of the content item. + example: Personal folder for John Doe + isScheduled: + type: boolean + description: Indicates whether the content item refers to scheduled search. This field is only relevant to `Search` content type. + example: false + default: false + children: + type: array + description: A list of the content items. + items: + $ref: '#/components/schemas/Content' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' UpdateFolderRequest: required: - name @@ -1089,31 +1186,6 @@ components: description: Implicitly inherited content permissions. items: $ref: '#/components/schemas/ContentPermissionAssignment' - ContentPermissionAssignment: - required: - - contentId - - permissionName - - sourceId - - sourceType - type: object - properties: - permissionName: - pattern: ^(View|GrantView|Edit|GrantEdit|Manage|GrantManage)$ - type: string - description: 'Content permission name. Valid values are: `View`, `GrantView`, `Edit`, `GrantEdit`, `Manage`, and `GrantManage`.' - x-pattern-message: 'must be one of the following: `View`, `GrantView`, `Edit`, `GrantEdit`, `Manage`, `GrantManage`' - sourceType: - pattern: ^(user|role|org)$ - type: string - description: 'Type of source for the permission. Valid values are: `user`, `role`, and `org`.' - example: role - x-pattern-message: 'must be one of the following: `user`, `role`, `org`' - sourceId: - type: string - description: An identifier that belongs to the source type chosen above. For e.g. if the sourceType is set to "user", sourceId should be identifier of a user (same goes for `role` and `org` sourceType) - contentId: - type: string - description: Unique identifier for the content item. ContentPermissionUpdateRequest: required: - contentPermissionAssignments @@ -1132,6 +1204,77 @@ components: notificationMessage: type: string description: The notification message sent to the users who had a permission update. + Content: + type: object + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + - itemType + - name + - parentId + - permissions + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Identifier of the content item. + example: 000000000C1C17C6 + name: + type: string + description: The name of the content item. + example: Personal + itemType: + type: string + description: |- + Type of the content item. Supported values are: + 1. Folder + 2. Search + 3. Report (for old dashboards) + 4. Dashboard (for new dashboards) + 5. Lookups + example: Folder + parentId: + type: string + description: Identifier of the parent content item. + example: 0000000001C41EF2 + permissions: + type: array + description: List of permissions the user has on the content item. + example: + - View + - GrantView + - Edit + items: + type: string + description: + type: string + description: Description of the content item. + example: Personal folder for John Doe + isScheduled: + type: boolean + description: Indicates whether the content item refers to scheduled search. This field is only relevant to `Search` content type. + example: false + default: false ContentPath: required: - path @@ -1141,6 +1284,11 @@ components: type: string description: Path of the content item. example: /Library/Users/user@test.com/SampleFolder + pathItems: + type: array + description: The items in the path of the content. + items: + $ref: '#/components/schemas/PathSegment' ContentSyncDefinition: required: - name @@ -1160,734 +1308,613 @@ components: description: The name of the item. discriminator: propertyName: type - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + ImportResult: + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + summary: + type: object + properties: + totalItems: + type: integer + description: Total content items attempted in the import. + example: 15 + successCount: + type: integer + description: Number of content items successfully imported. + example: 12 + failureCount: + type: integer + description: Number of content items that failed to import. + example: 3 + description: Summary about the import job indicating total, success and failure count. + failures: + type: array + description: Detailed listing of failed import items. + items: + $ref: '#/components/schemas/ImportErrorResultItem' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ContentPermissionAssignment: + required: + - contentId + - permissionName + - sourceId + - sourceType + type: object + properties: + permissionName: + pattern: ^(View|GrantView|Edit|GrantEdit|Manage|GrantManage)$ + type: string + description: 'Content permission name. Valid values are: `View`, `GrantView`, `Edit`, `GrantEdit`, `Manage`, and `GrantManage`.' + x-pattern-message: 'must be one of the following: `View`, `GrantView`, `Edit`, `GrantEdit`, `Manage`, `GrantManage`' + sourceType: + pattern: ^(user|role|org)$ + type: string + description: 'Type of source for the permission. Valid values are: `user`, `role`, and `org`.' + example: role + x-pattern-message: 'must be one of the following: `user`, `role`, `org`' + sourceId: + type: string + description: An identifier that belongs to the source type chosen above. For e.g. if the sourceType is set to "user", sourceId should be identifier of a user (same goes for `role` and `org` sourceType) + contentId: + type: string + description: Unique identifier for the content item. + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + PathSegment: + required: + - id + - name + type: object + properties: + id: + type: string + description: The identifier of the path segment. + example: 0000000013D98A2A + name: + type: string + description: The name of the path segment. + example: Test Folder + description: + type: string + description: An optional description of the path segment. + example: This is a test folder + description: A segment of a path. + ImportErrorResultItem: + type: object + properties: + path: + type: string + description: Full folder path to the failed item. + example: /Marketing/Website Analytics/Daily Traffic Report + type: + type: string + description: The type of the content item (e.g., Folder, Search, Dashboard). + example: Dashboard + error: + type: string + description: Reason why the item failed to import. + example: Invalid JSON format in widget configuration. x-stackQL-resources: folders: id: sumologic.content.folders name: folders title: Folders methods: - createFolder: + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1content~1folders/post' response: mediaType: application/json openAPIDocKey: '200' - getFolder: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v2~1content~1folders~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateFolder: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1content~1folders~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders/methods/getFolder' + - $ref: '#/components/x-stackQL-resources/folders/methods/get' insert: - - $ref: '#/components/x-stackQL-resources/folders/methods/createFolder' - update: [] + - $ref: '#/components/x-stackQL-resources/folders/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/folders/methods/update' delete: [] - folders_personal: - id: sumologic.content.folders_personal - name: folders_personal - title: Folders_personal + replace: [] + personal_folder: + id: sumologic.content.personal_folder + name: personal_folder + title: Personal Folder methods: - getPersonalFolder: + get: operation: $ref: '#/paths/~1v2~1content~1folders~1personal/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_personal/methods/getPersonalFolder' + - $ref: '#/components/x-stackQL-resources/personal_folder/methods/get' insert: [] update: [] delete: [] - folders_global: - id: sumologic.content.folders_global - name: folders_global - title: Folders_global + replace: [] + global_folder_jobs: + id: sumologic.content.global_folder_jobs + name: global_folder_jobs + title: Global Folder Jobs methods: - getGlobalFolderAsync: + start: operation: $ref: '#/paths/~1v2~1content~1folders~1global/get' response: mediaType: application/json openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1v2~1content~1folders~1global~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_global/methods/getGlobalFolderAsync' + - $ref: '#/components/x-stackQL-resources/global_folder_jobs/methods/get' insert: [] update: [] delete: [] - folders_global_status: - id: sumologic.content.folders_global_status - name: folders_global_status - title: Folders_global_status + replace: [] + global_folder_results: + id: sumologic.content.global_folder_results + name: global_folder_results + title: Global Folder Results methods: - getGlobalFolderAsyncStatus: + list: operation: - $ref: '#/paths/~1v2~1content~1folders~1global~1{jobId}~1status/get' + $ref: '#/paths/~1v2~1content~1folders~1global~1{jobId}~1result/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_global_status/methods/getGlobalFolderAsyncStatus' + - $ref: '#/components/x-stackQL-resources/global_folder_results/methods/list' insert: [] update: [] delete: [] - folders_global_result: - id: sumologic.content.folders_global_result - name: folders_global_result - title: Folders_global_result + replace: [] + admin_recommended_folder_jobs: + id: sumologic.content.admin_recommended_folder_jobs + name: admin_recommended_folder_jobs + title: Admin Recommended Folder Jobs methods: - getGlobalFolderAsyncResult: + start: operation: - $ref: '#/paths/~1v2~1content~1folders~1global~1{jobId}~1result/get' + $ref: '#/paths/~1v2~1content~1folders~1adminRecommended/get' response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.data + get: + operation: + $ref: '#/paths/~1v2~1content~1folders~1adminRecommended~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_global_result/methods/getGlobalFolderAsyncResult' + - $ref: '#/components/x-stackQL-resources/admin_recommended_folder_jobs/methods/get' insert: [] update: [] delete: [] - folders_admin_recommended: - id: sumologic.content.folders_admin_recommended - name: folders_admin_recommended - title: Folders_admin_recommended + replace: [] + admin_recommended_folder_results: + id: sumologic.content.admin_recommended_folder_results + name: admin_recommended_folder_results + title: Admin Recommended Folder Results methods: - getAdminRecommendedFolderAsync: + get: operation: - $ref: '#/paths/~1v2~1content~1folders~1adminRecommended/get' + $ref: '#/paths/~1v2~1content~1folders~1adminRecommended~1{jobId}~1result/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_admin_recommended/methods/getAdminRecommendedFolderAsync' + - $ref: '#/components/x-stackQL-resources/admin_recommended_folder_results/methods/get' insert: [] update: [] delete: [] - folders_admin_recommended_status: - id: sumologic.content.folders_admin_recommended_status - name: folders_admin_recommended_status - title: Folders_admin_recommended_status + replace: [] + installed_apps_folder_jobs: + id: sumologic.content.installed_apps_folder_jobs + name: installed_apps_folder_jobs + title: Installed Apps Folder Jobs methods: - getAdminRecommendedFolderAsyncStatus: + start: operation: - $ref: '#/paths/~1v2~1content~1folders~1adminRecommended~1{jobId}~1status/get' + $ref: '#/paths/~1v2~1content~1folders~1installedApps/get' response: mediaType: application/json openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1v2~1content~1folders~1installedApps~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_admin_recommended_status/methods/getAdminRecommendedFolderAsyncStatus' + - $ref: '#/components/x-stackQL-resources/installed_apps_folder_jobs/methods/get' insert: [] update: [] delete: [] - folders_admin_recommended_result: - id: sumologic.content.folders_admin_recommended_result - name: folders_admin_recommended_result - title: Folders_admin_recommended_result + replace: [] + installed_apps_folder_results: + id: sumologic.content.installed_apps_folder_results + name: installed_apps_folder_results + title: Installed Apps Folder Results methods: - getAdminRecommendedFolderAsyncResult: + get: operation: - $ref: '#/paths/~1v2~1content~1folders~1adminRecommended~1{jobId}~1result/get' + $ref: '#/paths/~1v2~1content~1folders~1installedApps~1{jobId}~1result/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_admin_recommended_result/methods/getAdminRecommendedFolderAsyncResult' + - $ref: '#/components/x-stackQL-resources/installed_apps_folder_results/methods/get' insert: [] update: [] delete: [] + replace: [] permissions: id: sumologic.content.permissions name: permissions title: Permissions methods: - getContentPermissions: + get: operation: $ref: '#/paths/~1v2~1content~1{id}~1permissions/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/permissions/methods/getContentPermissions' - insert: [] - update: [] - delete: [] - permissions_add: - id: sumologic.content.permissions_add - name: permissions_add - title: Permissions_add - methods: - addContentPermissions: + request: + nativeCasing: camel + add: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1content~1{id}~1permissions~1add/put' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - permissions_remove: - id: sumologic.content.permissions_remove - name: permissions_remove - title: Permissions_remove - methods: - removeContentPermissions: + request: + mediaType: application/json + nativeCasing: camel + remove: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1content~1{id}~1permissions~1remove/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/permissions/methods/get' insert: [] update: [] delete: [] - path: - id: sumologic.content.path - name: path - title: Path + replace: [] + items: + id: sumologic.content.items + name: items + title: Items methods: - getItemByPath: + get_by_path: operation: $ref: '#/paths/~1v2~1content~1path/get' response: mediaType: application/json openAPIDocKey: '200' - getPathById: + request: + nativeCasing: camel + move: operation: - $ref: '#/paths/~1v2~1content~1{contentId}~1path/get' + $ref: '#/paths/~1v2~1content~1{id}~1move/post' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/path/methods/getPathById' - - $ref: '#/components/x-stackQL-resources/path/methods/getItemByPath' + - $ref: '#/components/x-stackQL-resources/items/methods/get_by_path' insert: [] update: [] delete: [] - export: - id: sumologic.content.export - name: export - title: Export + replace: [] + paths: + id: sumologic.content.paths + name: paths + title: Paths methods: - beginAsyncExport: + get: operation: - $ref: '#/paths/~1v2~1content~1{id}~1export/post' + $ref: '#/paths/~1v2~1content~1{contentId}~1path/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/paths/methods/get' insert: [] update: [] delete: [] - export_status: - id: sumologic.content.export_status - name: export_status - title: Export_status + replace: [] + export_jobs: + id: sumologic.content.export_jobs + name: export_jobs + title: Export Jobs methods: - getAsyncExportStatus: + start: + operation: + $ref: '#/paths/~1v2~1content~1{id}~1export/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get: operation: $ref: '#/paths/~1v2~1content~1{contentId}~1export~1{jobId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/export_status/methods/getAsyncExportStatus' + - $ref: '#/components/x-stackQL-resources/export_jobs/methods/get' insert: [] update: [] delete: [] - export_result: - id: sumologic.content.export_result - name: export_result - title: Export_result + replace: [] + export_results: + id: sumologic.content.export_results + name: export_results + title: Export Results methods: - getAsyncExportResult: + get: operation: $ref: '#/paths/~1v2~1content~1{contentId}~1export~1{jobId}~1result/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/export_result/methods/getAsyncExportResult' + - $ref: '#/components/x-stackQL-resources/export_results/methods/get' insert: [] update: [] delete: [] - folders_import: - id: sumologic.content.folders_import - name: folders_import - title: Folders_import + replace: [] + import_jobs: + id: sumologic.content.import_jobs + name: import_jobs + title: Import Jobs methods: - beginAsyncImport: + start: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1content~1folders~1{folderId}~1import/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - folders_import_status: - id: sumologic.content.folders_import_status - name: folders_import_status - title: Folders_import_status - methods: - getAsyncImportStatus: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v2~1content~1folders~1{folderId}~1import~1{jobId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_import_status/methods/getAsyncImportStatus' + - $ref: '#/components/x-stackQL-resources/import_jobs/methods/get' insert: [] update: [] delete: [] - delete: - id: sumologic.content.delete - name: delete - title: Delete + replace: [] + import_results: + id: sumologic.content.import_results + name: import_results + title: Import Results methods: - beginAsyncDelete: + get: operation: - $ref: '#/paths/~1v2~1content~1{id}~1delete/delete' + $ref: '#/paths/~1v2~1content~1folders~1{folderId}~1import~1{jobId}~1result/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/import_results/methods/get' insert: [] update: [] delete: [] - delete_status: - id: sumologic.content.delete_status - name: delete_status - title: Delete_status + replace: [] + delete_jobs: + id: sumologic.content.delete_jobs + name: delete_jobs + title: Delete Jobs methods: - getAsyncDeleteStatus: + start: operation: - $ref: '#/paths/~1v2~1content~1{id}~1delete~1{jobId}~1status/get' + $ref: '#/paths/~1v2~1content~1{id}~1delete/delete' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/delete_status/methods/getAsyncDeleteStatus' - insert: [] - update: [] - delete: [] - copy: - id: sumologic.content.copy - name: copy - title: Copy - methods: - beginAsyncCopy: + get: operation: - $ref: '#/paths/~1v2~1content~1{id}~1copy/post' + $ref: '#/paths/~1v2~1content~1{id}~1delete~1{jobId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/delete_jobs/methods/get' insert: [] update: [] delete: [] - copy_status: - id: sumologic.content.copy_status - name: copy_status - title: Copy_status + replace: [] + copy_jobs: + id: sumologic.content.copy_jobs + name: copy_jobs + title: Copy Jobs methods: - asyncCopyStatus: + start: operation: - $ref: '#/paths/~1v2~1content~1{id}~1copy~1{jobId}~1status/get' + $ref: '#/paths/~1v2~1content~1{id}~1copy/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - move: - id: sumologic.content.move - name: move - title: Move - methods: - moveItem: + get: operation: - $ref: '#/paths/~1v2~1content~1{id}~1move/post' + $ref: '#/paths/~1v2~1content~1{id}~1copy~1{jobId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/copy_jobs/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - content - description: content - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/content_sync.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/content_sync.yaml new file mode 100644 index 0000000..fa1e71c --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/content_sync.yaml @@ -0,0 +1,523 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Content Sync API + description: Multi-account content synchronisation jobs between child organizations. + version: 1.0.0 +paths: + /v1/multi-account-management/content/sync: + get: + tags: + - contentConfigManagement + summary: Get Content Sync Job Id. + description: Get Content Sync Job Id of last triggered job. + operationId: getContentSyncJobDetails + responses: + '200': + description: Last triggered Content Sync Job Details. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResponse' + default: + description: Error occurred while getting Content Sync Job Id. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - contentConfigManagement + summary: Sync Content and Configuration across Organization. + description: Sync Content and Configuration across Organization. + operationId: contentSync + requestBody: + description: Content and Organisation Information for Syncing. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncRequest' + required: true + responses: + '200': + description: Content Sync Job created successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResponse' + default: + description: Failed to created Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/status: + get: + tags: + - contentConfigManagement + summary: Get Status of Content Sync Job. + description: Get Status of Content Sync Job. + operationId: contentSyncStatus + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + responses: + '200': + description: Content Sync Job Status + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncStatusResponse' + default: + description: Error occurred while getting Content Sync Job Status. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/retry: + post: + tags: + - contentConfigManagement + summary: Retry Content Sync Job by ID + description: Retry Content Sync Job by ID to re-execute job. + operationId: contentSyncRetry + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + - name: retryOptions + in: query + description: Controls which contents to retry + required: false + schema: + $ref: '#/components/schemas/RetryOptions' + responses: + '200': + description: Content Sync Job restarted successfully + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResponse' + default: + description: Error occurred while restarting Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/cancel: + post: + tags: + - contentConfigManagement + summary: Cancel Content Sync Job by ID + description: Cancel In Progress Sync Job by ID.. + operationId: contentSyncCancel + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + responses: + '202': + description: Content Sync Job Cancellation started successfully + content: {} + default: + description: Error occurred while cancelling Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/result: + get: + tags: + - contentConfigManagement + summary: Get Result of Content Sync Job by ID. + description: Get Result Of Content Sync Job by ID. + operationId: contentSyncResult + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + - name: status + in: query + description: Specific Status of Content Sync Job Result to be fetched. Possible values are "SUCCESS", "FAILED", "WARNING", "CANCELLED". + required: true + schema: + type: string + responses: + '200': + description: Result of Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResult' + default: + description: Error occurred while getting Result for Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/info: + get: + tags: + - contentConfigManagement + summary: Get Information of Content Sync Job by ID. + description: Information Of Content Sync Job by ID. + operationId: contentSyncJobInfo + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + responses: + '200': + description: Information of Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncJobInfo' + default: + description: Error occurred while getting Result for Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ContentSyncResponse: + required: + - jobId + type: object + properties: + jobId: + type: string + description: Content Sync Job Id. + example: 68B6D772B616DC06 + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ContentSyncRequest: + required: + - contentList + - destinationChildOrgInfo + - sourceChildOrgInfo + type: object + properties: + sourceChildOrgInfo: + $ref: '#/components/schemas/ChildOrgInfo' + destinationChildOrgInfo: + $ref: '#/components/schemas/DestinationChildOrgInfo' + contentList: + type: array + description: List of Content and Configuration Information. + items: + $ref: '#/components/schemas/Content_1' + ContentSyncStatusResponse: + required: + - progress + - status + type: object + properties: + status: + type: string + description: Content Sync Job status. + example: Success + progress: + type: integer + description: Content Sync Job progress percentage. + example: 100 + RetryOptions: + type: string + description: Determines retry scope -> "ALL_CONTENTS" (default) retries all, "NON_SUCCESS_CONTENTS" retries only failed ones. + enum: + - ALL_CONTENTS + - NON_SUCCESS_CONTENTS + default: ALL_CONTENTS + ContentSyncResult: + required: + - contentList + type: object + properties: + contentList: + type: array + description: List of content sync items with details. + items: + $ref: '#/components/schemas/ContentSyncItemResult' + ContentSyncJobInfo: + required: + - contentList + - destinationChildOrgInfo + - sourceChildOrgInfo + type: object + properties: + sourceChildOrgInfo: + $ref: '#/components/schemas/ChildOrgInfo' + destinationChildOrgInfo: + $ref: '#/components/schemas/DestinationChildOrgInfo' + contentList: + type: array + description: List of Content and Configuration Information. + items: + $ref: '#/components/schemas/Content_1' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ChildOrgInfo: + required: + - orgId + type: object + properties: + orgId: + type: string + description: Organization Identifier. + example: us2-0000000000000006 + orgName: + type: string + description: Organization Name. + example: Test Org Name + DestinationChildOrgInfo: + required: + - excluded + - included + type: object + properties: + included: + type: array + description: Organization Info which needs to be included in Destination Organisation List. + items: + $ref: '#/components/schemas/ChildOrgInfo' + excluded: + type: array + description: Organization Info which needs to be excluded from Destination Organisation List. + items: + $ref: '#/components/schemas/ChildOrgInfo' + Content_1: + required: + - id + - options + - type + type: object + properties: + id: + type: string + description: Identifier of Content or Configuration + example: MATCH-S00574 + type: + type: string + description: Type Of Content. + example: CSE_RULE + enum: + - CSE_RULE + - CSE_TUNING_EXPRESSION + - LIBRARY_FOLDER + - DASHBOARD + - SEARCH + - SCHEDULED_SEARCH + - MONITOR + - MONITOR_FOLDER + - SOURCE_TEMPLATE + - LOOKUP_TABLE + name: + type: string + description: Name of Content or Configuration + example: Test CSE Rule + options: + maxProperties: 100 + type: object + additionalProperties: + type: string + description: Advance Settings required for syncing content or configuration. + example: + includeCSERule: true + default: {} + ContentSyncItemResult: + required: + - childOrganization + - contentId + - message + type: object + properties: + contentId: + type: string + description: Identifier of Content or Configuration + example: MATCH-S00574 + message: + type: string + description: Message Passed while processing content or configuration sync. + example: Sync Failed due to an Internal Error, Please check with support team for more details. + childOrganization: + $ref: '#/components/schemas/ChildOrgInfo' + x-stackQL-resources: + sync_jobs: + id: sumologic.content_sync.sync_jobs + name: sync_jobs + title: Sync Jobs + methods: + get_current: + operation: + $ref: '#/paths/~1v1~1multi-account-management~1content~1sync/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1multi-account-management~1content~1sync/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1multi-account-management~1content~1sync~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + retry: + operation: + $ref: '#/paths/~1v1~1multi-account-management~1content~1sync~1{jobId}~1retry/post' + response: + mediaType: application/json + openAPIDocKey: '200' + cancel: + operation: + $ref: '#/paths/~1v1~1multi-account-management~1content~1sync~1{jobId}~1cancel/post' + response: + mediaType: application/json + openAPIDocKey: '202' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sync_jobs/methods/get' + - $ref: '#/components/x-stackQL-resources/sync_jobs/methods/get_current' + insert: + - $ref: '#/components/x-stackQL-resources/sync_jobs/methods/create' + update: [] + delete: [] + replace: [] + sync_job_results: + id: sumologic.content_sync.sync_job_results + name: sync_job_results + title: Sync Job Results + methods: + list: + operation: + $ref: '#/paths/~1v1~1multi-account-management~1content~1sync~1{jobId}~1result/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.contentList + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sync_job_results/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + sync_job_info: + id: sumologic.content_sync.sync_job_info + name: sync_job_info + title: Sync Job Info + methods: + get: + operation: + $ref: '#/paths/~1v1~1multi-account-management~1content~1sync~1{jobId}~1info/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sync_job_info/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/dashboards.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/dashboards.yaml index bf46d6b..08ba437 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/dashboards.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/dashboards.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Dashboards API + description: Dashboards (New), dashboard report schedules, report generation jobs and legacy report migration. + version: 1.0.0 paths: /v2/dashboards: get: @@ -162,7 +167,7 @@ paths: - dashboardManagement summary: Start a report job description: | - Schedule an asynchronous job to generate a report from a template. All items in the template will be included unless specified. See template section for more details on individual templates. Reports can be generated in Pdf or Png format and exported in various methods (ex. direct download). You will get back an asynchronous job identifier on success. Use the [getAsyncReportGenerationStatus] endpoint and the job identifier you got back in the response to track the status of an asynchronous report generation job. + Schedule an asynchronous job to generate a report from a template. All items in the template will be included unless specified. See template section for more details on individual templates. Reports can be generated in Pdf or Png format and exported in various methods (ex. direct download). You will get back an asynchronous job identifier on success. Use the getAsyncReportGenerationStatus endpoint and the job identifier you got back in the response to track the status of an asynchronous report generation job. operationId: generateDashboardReport requestBody: description: Request for a report. @@ -189,7 +194,7 @@ paths: tags: - dashboardManagement summary: Get report generation job status - description: Get the status of an asynchronous report generation request for the given job identifier. On success, use the [getReportGenerationResult] endpoint to get the result of the report generation job. + description: Get the status of an asynchronous report generation request for the given job identifier. On success, use the getReportGenerationResult endpoint to get the result of the report generation job. operationId: getAsyncReportGenerationStatus parameters: - name: jobId @@ -243,6 +248,269 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate: + post: + tags: + - dashboardManagement + summary: Migrate Legacy Dashboards to Dashboards(New) + description: | + Schedule an asynchronous job to migrate a list of legacy Dashboards to Dashboard(New). Once migration is finished, the migrated dashboards will be in the same folder as the corresponding legacy Dashboard. + Note: This feature is in beta and may not support all existing features of legacy dashboards. + operationId: migrateReportToDashboard + requestBody: + description: List of legacy dashboard content identifiers. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardMigrationRequest' + required: true + responses: + '200': + description: Async job identifier to get the status and result of the dashboard migration job. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate/preview: + post: + tags: + - dashboardManagement + summary: Preview of Migrating Legacy Dashboards to Dashboards(New) + description: Get a preview of migrating Legacy Dashboards to Dashboard(New) + operationId: previewMigrateReportToDashboard + requestBody: + description: List of content identifiers. Can be folders or classic dashboard. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardMigrationRequest' + required: true + responses: + '200': + description: Preview of the dashboard migration job. + content: + application/json: + schema: + $ref: '#/components/schemas/MigrationPreviewResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate/{jobId}/status: + get: + tags: + - dashboardManagement + summary: Get dashboard migration status. + description: Get the status of an asynchronous Dashboard Migration job for the given job identifier. If job succeeds, use Dashboard Migration Result endpoint to see results of the migration. + operationId: getDashboardMigrationStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Dashboard Migration job. + required: true + schema: + type: string + responses: + '200': + description: Dashboard migration job status. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate/{jobId}/result: + get: + tags: + - dashboardManagement + summary: Get dashboard migration result. + description: Get the result of an asynchronous Dashboard Migration request for the given job identifier. + operationId: getDashboardMigrationResult + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Dashboard Migration job. + required: true + schema: + type: string + responses: + '200': + description: Dashboard migration job result. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardMigrationResult' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dashboards/reportSchedules: + get: + tags: + - dashboardManagement + summary: List all dashboard report schedules. + description: List all dashboard report schedules created by the user. + operationId: listReportSchedules + parameters: + - name: dashboardId + in: query + description: UUID of the dashboard that the report shedules are associated with. + required: false + schema: + type: string + - name: limit + in: query + description: Limit the number of dashboard report schedules returned in the response. The number of dashboard report schedules returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + responses: + '200': + description: Paginated list of dashboard report schedules created by the user. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReportSchedules' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dashboardManagement + summary: Schedule dashboard report + description: 'Schedule dashboard report to send at a specific date and time. The report should be sent as attachment or downloadable URL in one of the following notification types: ''Email'', ''AWSLambda'', ''AzureFunctions'', ''Datadog'', ''HipChat'', ''Jira'', ''NewRelic'', ''Opsgenie'', ''PagerDuty'', ''Slack'', ''MicrosoftTeams'', ''ServiceNow'', ''SumoCloudSOAR'' and ''Webhook''.' + operationId: createScheduleReport + requestBody: + description: Request for scheduling dashboard report. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportScheduleRequest' + required: true + responses: + '200': + description: Dashboard report has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSchedule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dashboards/reportSchedules/{scheduleId}: + get: + tags: + - dashboardManagement + summary: Get dashboard report schedule. + description: Get the schedule of a scheduled dashboard report by the given identifier. + operationId: getReportSchedule + parameters: + - name: scheduleId + in: path + description: Identifier of the dashboard report schedule to return. + required: true + schema: + type: string + responses: + '200': + description: Dashboard report schedule object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSchedule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - dashboardManagement + summary: Update dashboard report schedule. + description: Update the schedule of a scheduled dashboard report by the given identifier. + operationId: updateReportSchedule + parameters: + - name: scheduleId + in: path + description: identifier of the dashboard report schedule to update. + required: true + schema: + type: string + requestBody: + description: Request to update on the dashboard report schedule. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportScheduleRequest' + required: true + responses: + '200': + description: The dashboard report schedule was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSchedule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - dashboardManagement + summary: Delete dashboard report schedule. + description: Delete the schedule of a scheduled dashboard report by the given identifier. The scheduled dashboard report will no longer be generated and sent. + operationId: deleteReportSchedule + parameters: + - name: scheduleId + in: path + description: UUID of the dashboard report schedule to delete. + required: true + schema: + type: string + responses: + '204': + description: Dashboard report schedule was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: PaginatedDashboards: @@ -257,7 +525,7 @@ components: $ref: '#/components/schemas/Dashboard' next: type: string - description: Next continuation token. `token` is set to null when no more pages are left. + description: Next continuation token. `next` is set to null when no more pages are left. example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc ErrorResponse: required: @@ -279,50 +547,6 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - Dashboard: - allOf: - - $ref: '#/components/schemas/DashboardRequest' - - type: object - properties: - id: - type: string - description: | - Unique identifier for the dashboard. This id is used to get detailed information about the dashboard, such as panels, variables and the layout. - example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 - contentId: - type: string - description: | - Content identifier for the dashboard. This id is used to connect to the Sumo Content Library and get general metadata about the dashboard. Use this id if you want to search for dashboards in Sumo folders. - example: '1' - scheduleId: - type: string - description: | - Scheduled report identifier for the dashboard. Only most recently modified report schedule is rerun per dashboard. This id is used to manage the schedule details through the scheduled report API. - example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 DashboardRequest: required: - timeRange @@ -363,7 +587,7 @@ components: refreshInterval: type: integer description: | - Interval of time (in seconds) to automatically refresh the dashboard. A value of 0 means we never automatically refresh the dashboard. Allowed values are `0`, `30`, `60`, 120`, `300`, `900`, `3600`, `86400`. + Interval of time (in seconds) to automatically refresh the dashboard. A value of 0 means we never automatically refresh the dashboard. Allowed values are `0`, `30`, `60`, `120`, `300`, `900`, `1800`, `3600`, `7200`, `86400`. format: int32 example: 30 timeRange: @@ -387,33 +611,445 @@ components: example: light default: Light x-pattern-message: Must be `Light`, or `Dark` - TopologyLabelMap: - required: - - data - type: object - properties: - data: - type: object - additionalProperties: - $ref: '#/components/schemas/TopologyLabelValuesList' - description: Map from topology labels to `TopologyLabelValuesList`. - description: | - Map of the topology labels. Each label has a key and a list of values. If a value is `*`, it means the label will match content for all values of its key. - example: - data: - service: - - kube-scheduler - - kube-dns - ResolvableTimeRange: + isPublic: + type: boolean + description: Is the dashboard public + default: false + highlightViolations: + type: boolean + description: Whether to highlight threshold violations. + default: false + organizations: + $ref: '#/components/schemas/Organizations' + Dashboard: required: - - type + - timeRange + - title type: object properties: - type: + title: + maxLength: 255 + minLength: 1 type: string - description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. - example: - type: BeginBoundedTimeRange + description: Title of the dashboard. + example: Kubernetes Dashboard + description: + type: string + description: Description of the dashboard. + example: A view of pods, namespaces and nodes of your cluster. + folderId: + type: string + description: | + The identifier of the folder to save the dashboard in. By default it is saved in your personal folder. + example: 000000000C1C17C6 + topologyLabelMap: + $ref: '#/components/schemas/TopologyLabelMap' + domain: + type: string + description: If set denotes that the dashboard concerns a given domain (e.g. `aws`, `k8s`, `app`). + example: aws + default: '' + hierarchies: + maxItems: 20 + type: array + description: If set to non-empty array denotes that the dashboard concerns given hierarchies. + example: + - Kubernetes Node View + items: + type: string + default: [] + refreshInterval: + type: integer + description: | + Interval of time (in seconds) to automatically refresh the dashboard. A value of 0 means we never automatically refresh the dashboard. Allowed values are `0`, `30`, `60`, `120`, `300`, `900`, `1800`, `3600`, `7200`, `86400`. + format: int32 + example: 30 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + panels: + type: array + description: Panels in the dashboard. + items: + $ref: '#/components/schemas/Panel' + layout: + $ref: '#/components/schemas/Layout' + variables: + type: array + description: Variables to apply to the panels. + items: + $ref: '#/components/schemas/Variable' + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the dashboard. Either `Light` or `Dark`. + example: light + default: Light + x-pattern-message: Must be `Light`, or `Dark` + isPublic: + type: boolean + description: Is the dashboard public + default: false + highlightViolations: + type: boolean + description: Whether to highlight threshold violations. + default: false + organizations: + $ref: '#/components/schemas/Organizations' + id: + type: string + description: | + Unique identifier for the dashboard. This id is used to get detailed information about the dashboard, such as panels, variables and the layout. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + contentId: + type: string + description: | + Content identifier for the dashboard. This id is used to connect to the Sumo Content Library and get general metadata about the dashboard. Use this id if you want to search for dashboards in Sumo folders. + example: '1' + scheduleId: + type: string + description: | + Scheduled report identifier for the dashboard. Only most recently modified report schedule is rerun per dashboard. This id is used to manage the schedule details through the scheduled report API. + example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd + scheduleCount: + type: integer + description: Count of report schedules for the dashboard. + format: int32 + example: 10 + GenerateReportRequest: + required: + - action + - exportFormat + - template + - timezone + type: object + properties: + action: + $ref: '#/components/schemas/ReportAction' + exportFormat: + pattern: ^(Pdf|Png)$ + type: string + description: File format of the report. Can be `Pdf` or `Png`. `Pdf` is portable document format. `Png` is portable graphics image format. + example: Pdf + x-pattern-message: 'should be one of the following: ''Pdf'', ''Png''' + timezone: + type: string + description: Time zone for the query time ranges. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + template: + $ref: '#/components/schemas/Template' + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the report rendering. If absent, the default theme of the dashboard is used. + example: Light + x-pattern-message: Must be `Light`, 'light, `Dark`, 'dark' + exportWidth: + maximum: 6000 + minimum: 1500 + type: integer + description: Pixel width of the exported PDF or PNG. If absent, the default width is used. + example: 1500 + BeginAsyncJobResponse: + required: + - id + type: object + properties: + id: + type: string + description: Identifier to get the status of an asynchronous job. + example: C03E086C137F38B4 + AsyncJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + statusMessage: + type: string + description: Additional status message generated if the status is not `Failed`. + error: + $ref: '#/components/schemas/ErrorDescription' + example: + status: Success + statusMessage: '' + DashboardMigrationRequest: + required: + - contentIds + type: object + properties: + contentIds: + maxItems: 50 + type: array + description: Content identifiers of the Legacy dashboards. + items: + type: string + description: Content identifier of the Legacy dashboard. + example: 00000000000001C8 + BeginAsyncJobResponseV2: + required: + - jobId + type: object + properties: + jobId: + type: string + description: Identifier of the asynchronous job. Use it to get status of the job. + example: C03E086C137F38B4 + MigrationPreviewResponse: + required: + - count + type: object + properties: + count: + type: integer + description: Count of dashboards to be migrated. + example: 5 + description: Preview of the dashboard migration. + DashboardMigrationResult: + required: + - data + - status + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: | + A mapping of Legacy Dashboard Content Ids to migrated Dashboard(New) Content Ids. Only successful migration are shown here, see errors field for failed migrations and the failure reason. + example: + '1': 64 + richData: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MigratedDashboardInfo' + description: | + A mapping of Legacy Dashboard Content Ids to migrated Dashboard(New) info. Only successful migration are shown here, see errors field for failed migrations and the failure reason. + status: + $ref: '#/components/schemas/DashboardMigrationStatus' + errors: + maxProperties: 1000 + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/ErrorDescription' + description: A mapping of Legacy Dashboards Content Identifiers that failed validation to the failure reason(s). + warnings: + maxProperties: 1000 + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/ErrorDescription' + description: A mapping of Legacy Dashboards Content Identifiers to warnings. + PaginatedReportSchedules: + required: + - reportSchedules + type: object + properties: + reportSchedules: + type: array + description: List of dashboard report schedules. + items: + $ref: '#/components/schemas/ReportSchedule' + next: + type: string + description: Next continuation token. `token` is set to null when no more pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + ReportScheduleRequest: + required: + - dashboardId + - emailNotification + - reportFormat + - scheduleType + - timeZone + type: object + properties: + dashboardId: + type: string + description: Identifier of dashboard the schedule will generate report for. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + variableValues: + $ref: '#/components/schemas/VariablesValuesData' + reportFormat: + pattern: ^(Pdf|Png)$ + type: string + description: File format of the report. Can be `Pdf` or `Png`. `Pdf` is portable document format. `Png` is portable graphics image format. + example: Pdf + x-pattern-message: 'should be one of the following: ''Pdf'', ''Png''' + scheduleType: + type: string + description: |- + Run schedule of the scheduled report. Set to "Custom" to specify the schedule with a CRON expression. Possible schedule types are: + - `RealTime` + - `15Minutes` + - `1Hour` + - `2Hours` + - `4Hours` + - `6Hours` + - `8Hours` + - `12Hours` + - `1Day` + - `1Week` + - `Custom` + example: 1Day + cronExpression: + type: string + description: Cron-like expression specifying the report's schedule. Field scheduleType must be set to "Custom", otherwise, scheduleType takes precedence over cronExpression. + example: 0 0/15 * * * ? * + timeZone: + maxLength: 1024 + minLength: 1 + type: string + description: Time zone identifier for time specification. Either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used. + example: America/Los_Angeles + emailNotification: + $ref: '#/components/schemas/Email' + isActive: + type: boolean + description: Is the dashboard report schedule active + default: true + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the report rendering. Must be `Light` or `Dark`. If absent, the dashboard's own theme is used. + example: Light + x-pattern-message: Must be `Light`, `light`, `dark` or `Dark` + exportWidth: + maximum: 6000 + minimum: 1500 + type: integer + description: Pixel width of the exported PDF or PNG. If absent, the default width is used. + example: 1500 + ReportSchedule: + required: + - dashboardId + - emailNotification + - reportFormat + - scheduleType + - timeZone + type: object + properties: + dashboardId: + type: string + description: Identifier of dashboard the schedule will generate report for. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + variableValues: + $ref: '#/components/schemas/VariablesValuesData' + reportFormat: + pattern: ^(Pdf|Png)$ + type: string + description: File format of the report. Can be `Pdf` or `Png`. `Pdf` is portable document format. `Png` is portable graphics image format. + example: Pdf + x-pattern-message: 'should be one of the following: ''Pdf'', ''Png''' + scheduleType: + type: string + description: |- + Run schedule of the scheduled report. Set to "Custom" to specify the schedule with a CRON expression. Possible schedule types are: + - `RealTime` + - `15Minutes` + - `1Hour` + - `2Hours` + - `4Hours` + - `6Hours` + - `8Hours` + - `12Hours` + - `1Day` + - `1Week` + - `Custom` + example: 1Day + cronExpression: + type: string + description: Cron-like expression specifying the report's schedule. Field scheduleType must be set to "Custom", otherwise, scheduleType takes precedence over cronExpression. + example: 0 0/15 * * * ? * + timeZone: + maxLength: 1024 + minLength: 1 + type: string + description: Time zone identifier for time specification. Either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used. + example: America/Los_Angeles + emailNotification: + $ref: '#/components/schemas/Email' + isActive: + type: boolean + description: Is the dashboard report schedule active + default: true + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the report rendering. Must be `Light` or `Dark`. If absent, the dashboard's own theme is used. + example: Light + x-pattern-message: Must be `Light`, `light`, `dark` or `Dark` + exportWidth: + maximum: 6000 + minimum: 1500 + type: integer + description: Pixel width of the exported PDF or PNG. If absent, the default width is used. + example: 1500 + scheduleId: + type: string + description: Identifier of the dashboard report schedule. + example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + TopologyLabelMap: + required: + - data + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/TopologyLabelValuesList' + description: Map from topology labels to `TopologyLabelValuesList`. + description: | + Map of the topology labels. Each label has a key and a list of values. If a value is `*`, it means the label will match content for all values of its key. + example: + data: + service: + - kube-scheduler + - kube-dns + ResolvableTimeRange: + required: + - type + type: object + properties: + type: + type: string + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. + example: + type: BeginBoundedTimeRange from: type: RelativeTimeRangeBoundary relativeTime: '-15m' @@ -513,20 +1149,162 @@ components: example: false default: false valueType: - pattern: ^(String|Any)$ type: string - description: The type of value of the variable. Allowed values are `String` and Any`. `String` considers as a single phrase and will wrap in double-quotes, `Any` is all characters. + description: | + The type of value of the variable. Allowed values are `String`, Any` and `Numeric`. - `String` considers as a single phrase and will wrap in double-quotes. - `Any` is all characters. - `Numeric` consists of a numeric value for variables, it will be displayed differently in the UI. - `Integer` is a variable with an `Int` value. - `Long` is a variable with a `Long` value. - `Double` is a variable with a `Double` value. - `Boolean` is a variable with a `Boolean` value. example: Any default: Any - x-pattern-message: Only `String` and `Any` are allowed. + Organizations: + type: object + properties: + defaultOrgIds: + type: array + description: The default list of organization IDs to run the dashboard by + items: + $ref: '#/components/schemas/OrgId' + description: The organization details to run the dashboard by + ReportAction: + required: + - actionType + type: object + properties: + actionType: + pattern: ^DirectDownloadReportAction$ + type: string + description: Type of action. + example: DirectDownloadReportAction + x-pattern-message: should be 'DirectDownloadReportAction' + description: The base class of all report action types. `DirectDownloadReportAction` downloads dashboard from browser. New action types may be supported in the future. + discriminator: + propertyName: actionType + Template: + required: + - templateType + type: object + properties: + templateType: + pattern: ^(DashboardTemplate|DashboardReportModeTemplate)$ + type: string + description: The type of template. `DashboardTemplate` provides a snapshot view of the exported dashboard. `DashboardReportModeTemplate` provides a printer-friendly view of the exported dashboard. New templates may be supported in the future. + example: DashboardTemplate + x-pattern-message: Must be `DashboardTemplate`, or `DashboardReportModeTemplate` + discriminator: + propertyName: templateType + MigratedDashboardInfo: + required: + - id + - name + type: object + properties: + id: + type: string + description: The id of the Dashboard(New) + example: jgiJLiFP9dX6YdNG0u9t0yqUVOF0iIlNcX0usw2Uy6g8BYTgBj0vYVeiRjRj + name: + type: string + description: The name of the Dashboard(New) + example: New Dashboard + DashboardMigrationStatus: + required: + - failedCount + - successCount + - totalCount + type: object + properties: + successCount: + type: integer + description: A successful migration to Dashboard(New). + example: 3 + failedCount: + type: integer + description: A failed migration to Dashboard(New). + example: 1 + totalCount: + type: integer + description: The total number of Legacy Dashboards to migrate. + example: 10 + VariablesValuesData: + required: + - data + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + type: array + items: + type: string + description: Data for variable values. + default: {} + richData: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/VariableValuesData' + description: A rich form of data for the variable search, including variable values, status and variable type. This field is different from `data` in that it includes an object instead of list as the value in the map. The `data` field is kept for backwards compatibility, please use `richData` for all usages going forward. + Email: + required: + - connectionType + - recipients + - subject + type: object + properties: + connectionType: + pattern: ^(Email|AWSLambda|AzureFunctions|Datadog|HipChat|Jira|NewRelic|Opsgenie|PagerDuty|Slack|MicrosoftTeams|ServiceNow|SumoCloudSOAR|Webhook)$ + type: string + description: |- + Connection type of the connection. Valid values: + 1. `Email` + 2. `AWSLambda` + 3. `AzureFunctions` + 4. `Datadog` + 5. `HipChat` + 6. `Jira` + 7. `NewRelic` + 8. `Opsgenie` + 9. `PagerDuty` + 10. `Slack` + 11. `MicrosoftTeams` + 12. `ServiceNow` + 13. `SumoCloudSOAR` + 14. `Webhook` + x-pattern-message: 'should be one of the following: ''Email'', ''AWSLambda'', ''AzureFunctions'', ''Datadog'', ''HipChat'', ''Jira'', ''NewRelic'', ''Opsgenie'', ''PagerDuty'', ''Slack'', ''MicrosoftTeams'', ''ServiceNow'', ''SumoCloudSOAR'' and ''Webhook''' + recipients: + type: array + description: A list of email addresses to send to when the rule fires. + items: + type: string + example: john@doe.com + subject: + type: string + description: The subject line of the email. + example: Sample Email Subject + messageBody: + type: string + description: The message body of the email to send. + example: Sample Email Message Body + timeZone: + type: string + description: Time zone for the email content. All dates/times will be displayed in this timeZone in the email payload. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + includeQuery: + type: boolean + description: Whether to include the triggering query in the notification email. + includeResultSet: + type: boolean + description: Whether to include the result set in the notification email. This field is not applicable for SLO monitors. + description: The base class of all connection types. + discriminator: + propertyName: connectionType TopologyLabelValuesList: type: array description: List of values corresponding to a key of a label. - example: kube-scheduler + example: + - kube-scheduler items: type: string description: Value of the label. - default: [] LayoutStructure: required: - key @@ -552,514 +1330,349 @@ components: example: MetadataVariableSourceDefinition discriminator: propertyName: variableSourceType - GenerateReportRequest: + OrgId: + maxLength: 23 + minLength: 19 + type: string + description: The unique identifier of an organization. It consists of the deployment ID and the hexadecimal account ID separated by a dash `-` character. + example: us2-00000000FF42A0C3 + VariableValuesData: required: - - action - - exportFormat - - template - - timezone + - variableValues type: object properties: - action: - $ref: '#/components/schemas/ReportAction' - exportFormat: - pattern: ^(Pdf|Png)$ - type: string - description: File format of the report. Can be `Pdf` or `Png`. `Pdf` is portable document format. `Png` is portable graphics image format. - example: Pdf - x-pattern-message: 'should be one of the following: ''Pdf'', ''Png''' - timezone: + variableValues: + type: array + description: Values for the variable. + example: + - myCluster + items: + type: string + status: + $ref: '#/components/schemas/DashboardSearchStatus' + variableType: + pattern: ^(LogQueryVariableSourceDefinition|MetadataVariableSourceDefinition|CsvVariableSourceDefinition|FilterSourceDefinition)$ type: string - description: Time zone for the query time ranges. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). - example: America/Los_Angeles - template: - $ref: '#/components/schemas/Template' - BeginAsyncJobResponse: - required: - - id - type: object - properties: - id: + description: The type of the variable. + example: LogQueryVariableSourceDefinition + x-pattern-message: Must be `LogQueryVariableSourceDefinition`, `MetadataVariableSourceDefinition` `CsvVariableSourceDefinition` or `FilterSourceDefinition`. + valueType: type: string - description: Identifier to get the status of an asynchronous job. - example: C03E086C137F38B4 - ReportAction: - required: - - actionType - type: object - properties: - actionType: - pattern: ^DirectDownloadReportAction$ + description: | + The type of value of the variable. Allowed values are `String`, Any`, `Numeric`, `Integer`, `Long`, `Double`, `Boolean`. - `String` considers as a single phrase and will wrap in double-quotes. - `Any` is all characters. - `Numeric` consists of a numeric value for variables, it will be displayed differently in the UI. - `Integer` is a variable with an `Int` value. - `Long` is a variable with a `Long` value. - `Double` is a variable with a `Double` value. - `Boolean` is a variable with a `Boolean` value. + example: Any + default: Any + allowMultiSelect: + type: boolean + description: Allow multiple selections in the values dropdown. + example: false + default: false + variableKey: type: string - description: Type of action. - example: DirectDownloadReportAction - x-pattern-message: should be 'DirectDownloadReportAction' - description: The base class of all report action types. `DirectDownloadReportAction` downloads dashboard from browser. New action types may be supported in the future. - discriminator: - propertyName: actionType - Template: + description: The key of the variable. + example: _source + errors: + type: array + description: Generic errors returned by backend from downstream assemblies. More specific errors will be thrown in the future. + items: + $ref: '#/components/schemas/ErrorDescription' + description: Variable values, status, type and errors for the variable values search. + Action: required: - - templateType + - connectionType type: object properties: - templateType: - pattern: ^(DashboardTemplate|DashboardReportModeTemplate)$ + connectionType: + pattern: ^(Email|AWSLambda|AzureFunctions|Datadog|HipChat|Jira|NewRelic|Opsgenie|PagerDuty|Slack|MicrosoftTeams|ServiceNow|SumoCloudSOAR|Webhook)$ type: string - description: The type of template. `DashboardTemplate` provides a snapshot view of the exported dashboard. `DashboardReportModeTemplate` provides a printer-friendly view of the exported dashboard. New templates may be supported in the future. - example: DashboardTemplate - x-pattern-message: Must be `DashboardTemplate`, or `DashboardReportModeTemplate` + description: |- + Connection type of the connection. Valid values: + 1. `Email` + 2. `AWSLambda` + 3. `AzureFunctions` + 4. `Datadog` + 5. `HipChat` + 6. `Jira` + 7. `NewRelic` + 8. `Opsgenie` + 9. `PagerDuty` + 10. `Slack` + 11. `MicrosoftTeams` + 12. `ServiceNow` + 13. `SumoCloudSOAR` + 14. `Webhook` + x-pattern-message: 'should be one of the following: ''Email'', ''AWSLambda'', ''AzureFunctions'', ''Datadog'', ''HipChat'', ''Jira'', ''NewRelic'', ''Opsgenie'', ''PagerDuty'', ''Slack'', ''MicrosoftTeams'', ''ServiceNow'', ''SumoCloudSOAR'' and ''Webhook''' + description: The base class of all connection types. discriminator: - propertyName: templateType - AsyncJobStatus: + propertyName: connectionType + DashboardSearchStatus: required: - - status + - state type: object properties: - status: - type: string - description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). - statusMessage: + state: type: string - description: Additional status message generated if the status is not `Failed`. - error: - $ref: '#/components/schemas/ErrorDescription' - example: - status: Success - statusMessage: '' - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + description: Current state of the search. + percentCompleted: + maximum: 100 + minimum: 0 + type: integer + description: Percentage of search completed. + format: int32 x-stackQL-resources: dashboards: id: sumologic.dashboards.dashboards name: dashboards title: Dashboards methods: - listDashboards: + list: operation: $ref: '#/paths/~1v2~1dashboards/get' response: mediaType: application/json openAPIDocKey: '200' - createDashboard: + objectKey: $.dashboards + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1dashboards/post' response: mediaType: application/json openAPIDocKey: '200' - getDashboard: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v2~1dashboards~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateDashboard: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1dashboards~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteDashboard: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v2~1dashboards~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/dashboards/methods/getDashboard' - - $ref: '#/components/x-stackQL-resources/dashboards/methods/listDashboards' + - $ref: '#/components/x-stackQL-resources/dashboards/methods/get' + - $ref: '#/components/x-stackQL-resources/dashboards/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/dashboards/methods/createDashboard' - update: [] + - $ref: '#/components/x-stackQL-resources/dashboards/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/dashboards/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/dashboards/methods/deleteDashboard' + - $ref: '#/components/x-stackQL-resources/dashboards/methods/delete' + replace: [] report_jobs: id: sumologic.dashboards.report_jobs name: report_jobs - title: Report_jobs + title: Report Jobs methods: - generateDashboardReport: + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1dashboards~1reportJobs/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1dashboards~1reportJobs~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] - insert: [] + select: + - $ref: '#/components/x-stackQL-resources/report_jobs/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/report_jobs/methods/create' update: [] delete: [] - report_jobs_status: - id: sumologic.dashboards.report_jobs_status - name: report_jobs_status - title: Report_jobs_status + replace: [] + migrations: + id: sumologic.dashboards.migrations + name: migrations + title: Migrations methods: - getAsyncReportGenerationStatus: + create: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v2~1dashboards~1reportJobs~1{jobId}~1status/get' + $ref: '#/paths/~1v2~1dashboards~1migrate/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + preview: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1dashboards~1migrate~1preview/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1dashboards~1migrate~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/report_jobs_status/methods/getAsyncReportGenerationStatus' - insert: [] + - $ref: '#/components/x-stackQL-resources/migrations/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/migrations/methods/create' update: [] delete: [] - report_jobs_result: - id: sumologic.dashboards.report_jobs_result - name: report_jobs_result - title: Report_jobs_result + replace: [] + migration_results: + id: sumologic.dashboards.migration_results + name: migration_results + title: Migration Results methods: - getAsyncReportGenerationResult: + get: operation: - $ref: '#/paths/~1v2~1dashboards~1reportJobs~1{jobId}~1result/get' + $ref: '#/paths/~1v2~1dashboards~1migrate~1{jobId}~1result/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/migration_results/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] + report_schedules: + id: sumologic.dashboards.report_schedules + name: report_schedules + title: Report Schedules + methods: + list: + operation: + $ref: '#/paths/~1v1~1dashboards~1reportSchedules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.reportSchedules + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dashboards~1reportSchedules/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1dashboards~1reportSchedules~1{scheduleId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dashboards~1reportSchedules~1{scheduleId}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1dashboards~1reportSchedules~1{scheduleId}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/report_schedules/methods/get' + - $ref: '#/components/x-stackQL-resources/report_schedules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/report_schedules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/report_schedules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/report_schedules/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - dashboards - description: dashboards - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/data_archiving.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/data_archiving.yaml new file mode 100644 index 0000000..8aafd52 --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/data_archiving.yaml @@ -0,0 +1,458 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Data Archiving API + description: Data archiving destinations (AWS S3 buckets for archived logs). + version: 1.0.0 +paths: + /v1/dataarchiving/destinations: + get: + tags: + - dataArchivingManagement + summary: Get all data archiving destinations. + description: Get a list of all data archiving destinations configured for installed collectors. + operationId: getDataArchivingDestinations + parameters: + - name: limit + in: query + description: Limit the number of destinations returned in the response. The number of destinations returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: List of all data archiving destinations. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDataArchivingDestinationsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dataArchivingManagement + summary: Create a data archiving destination. + description: Create a new data archiving destination. + operationId: createDataArchivingDestination + parameters: [] + requestBody: + description: Parameters to create a new data archiving destination. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDataArchivingDestinationRequest' + required: true + responses: + '200': + description: The data archiving destination has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/DataArchivingDestination' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataarchiving/destinations/{id}: + get: + tags: + - dataArchivingManagement + summary: Get a data archiving destination. + description: Get a data archiving destination by the given identifier. + operationId: getDataArchivingDestination + parameters: + - name: id + in: path + description: Identifier of the data archiving destination to return. + required: true + schema: + type: string + example: 1 + responses: + '200': + description: Data archiving destination object requested. + content: + application/json: + schema: + $ref: '#/components/schemas/DataArchivingDestination' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - dataArchivingManagement + summary: Update a data archiving destination. + description: Update a data archiving destination by the given identifier. + operationId: updateDataArchivingDestination + parameters: + - name: id + in: path + description: Identifier of the data archiving destination to update. + required: true + schema: + type: string + example: 1 + requestBody: + description: Object with the updated parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateDataArchivingDestinationRequest' + required: true + responses: + '200': + description: The data archiving destination has been updated. + content: + application/json: + schema: + $ref: '#/components/schemas/DataArchivingDestination' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - dataArchivingManagement + summary: Delete a data archiving destination. + description: Delete an existing data archiving destination with the given identifier. + operationId: deleteDataArchivingDestination + parameters: + - name: id + in: path + description: Identifier of the data archiving destination to delete. + required: true + schema: + type: string + example: 1 + responses: + '204': + description: The data archiving destination has been deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + GetDataArchivingDestinationsResponse: + type: object + properties: + nextToken: + type: string + description: Next continuation token. + example: VEZuRU4veXF2UWFCUURYSDNQUzJxWlpRRUsvTlBieXA + data: + type: array + description: List of data archiving destinations. + items: + $ref: '#/components/schemas/DataArchivingDestination' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreateDataArchivingDestinationRequest: + required: + - destinationName + - destinationConfig + type: object + properties: + destinationName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data archiving destination. + example: my-archive-destination + destinationConfig: + $ref: '#/components/schemas/DataArchivingDestinationConfig' + DataArchivingDestination: + required: + - destinationName + - destinationConfig + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + type: object + properties: + destinationName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data archiving destination. + example: my-archive-destination + destinationConfig: + $ref: '#/components/schemas/DataArchivingDestinationConfig' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the data archiving destination. + example: '1' + UpdateDataArchivingDestinationRequest: + required: + - destinationConfig + - destinationName + type: object + properties: + destinationName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data archiving destination. + example: my-archive-destination + destinationConfig: + $ref: '#/components/schemas/UpdateDataArchivingDestinationConfigRequest' + description: Request object to update a data archiving destination. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + BaseDataArchivingDestination: + required: + - destinationName + type: object + properties: + destinationName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data archiving destination. + example: my-archive-destination + DataArchivingDestinationConfig: + required: + - destinationType + type: object + properties: + destinationType: + pattern: ^(S3|Syslog|Hitachi|RestAPI)$ + type: string + description: Type of the data archiving destination. + example: S3 + x-pattern-message: should be 'S3', 'Syslog', 'Hitachi' or 'RestAPI' + discriminator: + propertyName: destinationType + mapping: + S3: '#/components/schemas/S3ArchivingDestinationConfig' + Syslog: '#/components/schemas/SyslogArchivingDestinationConfig' + Hitachi: '#/components/schemas/HitachiArchivingDestinationConfig' + RestAPI: '#/components/schemas/RestAPIArchivingDestinationConfig' + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + UpdateDataArchivingDestinationConfigRequest: + required: + - destinationType + type: object + properties: + destinationType: + pattern: ^(S3|Syslog|Hitachi|RestAPI)$ + type: string + description: Type of the data archiving destination. + example: S3 + x-pattern-message: should be 'S3', 'Syslog', 'Hitachi' or 'RestAPI' + discriminator: + propertyName: destinationType + mapping: + S3: '#/components/schemas/UpdateS3ArchivingDestinationConfigRequest' + Syslog: '#/components/schemas/UpdateSyslogArchivingDestinationConfigRequest' + Hitachi: '#/components/schemas/UpdateHitachiArchivingDestinationConfigRequest' + RestAPI: '#/components/schemas/UpdateRestAPIArchivingDestinationConfigRequest' + x-stackQL-resources: + destinations: + id: sumologic.data_archiving.destinations + name: destinations + title: Destinations + methods: + list: + operation: + $ref: '#/paths/~1v1~1dataarchiving~1destinations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: nextToken + location: body + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dataarchiving~1destinations/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1dataarchiving~1destinations~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dataarchiving~1destinations~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1dataarchiving~1destinations~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/destinations/methods/get' + - $ref: '#/components/x-stackQL-resources/destinations/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/destinations/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/destinations/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/destinations/methods/delete' + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/data_deletion_rules.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/data_deletion_rules.yaml new file mode 100644 index 0000000..6d2758a --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/data_deletion_rules.yaml @@ -0,0 +1,443 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Data Deletion Rules API + description: Data deletion rules that remove already-ingested log data. + version: 1.0.0 +paths: + /v1/dataDeletionRules: + get: + tags: + - dataDeletionRules + summary: Get a list of Data Deletion Rules + description: Get a list of data deletion rules in the organization. The response is paginated with a default limit of 50 rules. + operationId: listDeletionRules + parameters: + - name: limit + in: query + description: Limit the number of deletion Rules returned in the response + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: A paginated list of data deletion Rules + content: + application/json: + schema: + $ref: '#/components/schemas/ListDeletionRulesResponse' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dataDeletionRules + summary: Create a new Data Deletion Rule + description: Create a new data deletion rule to delete logs. + operationId: createDataDeletionRule + parameters: [] + requestBody: + description: Information about the new deletion rule. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDeletionRuleRequest' + required: true + responses: + '200': + description: The data deletion Rule that has been created + content: + application/json: + schema: + $ref: '#/components/schemas/DeletionRuleDefinition' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataDeletionRules/{id}: + get: + tags: + - dataDeletionRules + summary: Get Data Deletion Rule information for the given Id. + description: Get Data Deletion Rule information for the given Id with updated fields. + operationId: getDataDeletionRule + parameters: + - name: id + in: path + description: Identifier of the Deletion Rule to fetch + required: true + schema: + type: string + responses: + '200': + description: The data deletion Rule Definition that was requested + content: + application/json: + schema: + $ref: '#/components/schemas/DeletionRuleDefinition' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataDeletionRules/{id}/cancel: + post: + tags: + - dataDeletionRules + summary: Cancel the data Deletion Rule with the given Id. + description: Cancel the data Deletion Rule with the given Id. Allowed only if the rule is waiting for approval. + operationId: cancelDataDeletionRule + parameters: + - name: id + in: path + description: Identifier of the Deletion Rule to cancel + required: true + schema: + type: string + responses: + '200': + description: The data deletion Rule has been cancelled successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletionRuleDefinition' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataDeletionRules/{id}/delete: + delete: + tags: + - dataDeletionRules + summary: Delete the data Deletion Rule with the given Id. + description: Delete the data Deletion Rule with the given Id. Allowed only if the rule is cancelled. + operationId: deleteDataDeletionRule + parameters: + - name: id + in: path + description: Identifier of the Deletion Rule to delete + required: true + schema: + type: string + responses: + '204': + description: The data deletion Rule has been deleted successfully. + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListDeletionRulesResponse: + required: + - deletionRulesList + type: object + properties: + deletionRulesList: + type: array + description: List of data deletion rules. + items: + $ref: '#/components/schemas/DeletionRuleDefinition' + next: + type: string + description: Next Continuation token + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreateDeletionRuleRequest: + required: + - endMillis + - query + - ruleName + - ruleReason + - startMillis + type: object + properties: + ruleName: + maxLength: 127 + minLength: 1 + type: string + description: Name of the deletion rule. + ruleReason: + maxLength: 255 + minLength: 1 + type: string + description: Reason mentioning what data is being deleted and why. + query: + maxLength: 15000 + minLength: 0 + type: string + description: query to filter out the logs that need to be deleted. + startMillis: + type: integer + description: Start time of the search as a number of milliseconds. + format: int64 + example: 1704976268773 + endMillis: + type: integer + description: End time of the search as a number of milliseconds. + format: int64 + example: 1704977168773 + byReceiptTime: + type: boolean + description: Flag to order the search results in the order collector received it. This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + default: false + timezone: + type: string + description: Timezone for the resolving timerange from startMillis,endMillis + default: UTC + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + DeletionRuleDefinition: + required: + - endMillis + - query + - ruleName + - ruleReason + - startMillis + type: object + properties: + ruleName: + maxLength: 127 + minLength: 1 + type: string + description: Name of the deletion rule. + ruleReason: + maxLength: 255 + minLength: 1 + type: string + description: Reason mentioning what data is being deleted and why. + query: + maxLength: 15000 + minLength: 0 + type: string + description: query to filter out the logs that need to be deleted. + startMillis: + type: integer + description: Start time of the search as a number of milliseconds. + format: int64 + example: 1704976268773 + endMillis: + type: integer + description: End time of the search as a number of milliseconds. + format: int64 + example: 1704977168773 + byReceiptTime: + type: boolean + description: Flag to order the search results in the order collector received it. This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + default: false + timezone: + type: string + description: Timezone for the resolving timerange from startMillis,endMillis + default: UTC + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + id: + type: string + description: Identifier for the deletion rule. + createdAt: + type: string + description: Creation timestamp in UTC. + format: date-time + modifiedAt: + type: string + description: Last modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + error: + type: string + description: Errors related to the deletion rule. + status: + type: string + description: Status of the deletion rule. + createdBy: + type: string + description: Identifier of the user who created the deletion rule. + example: 0000000006743FE8 + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + deletedRanges: + type: array + description: List of the different units of deleted ranges since the deletion rule has been created. + items: + $ref: '#/components/schemas/DeletedRange' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + DeletedRange: + required: + - endTime + - startTime + type: object + properties: + startTime: + type: string + description: Start of the timestamp for each unit of filled ranges, expressed in timeZone specified in rule. + format: date-time + endTime: + type: string + description: End of the timestamp for each unit of filled ranges, expressed in timeZone specified in rule. + format: date-time + description: Range of timestamps from which logs obtained from the query have been deleted. + x-stackQL-resources: + data_deletion_rules: + id: sumologic.data_deletion_rules.data_deletion_rules + name: data_deletion_rules + title: Data Deletion Rules + methods: + list: + operation: + $ref: '#/paths/~1v1~1dataDeletionRules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.deletionRulesList + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dataDeletionRules/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1dataDeletionRules~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + cancel: + operation: + $ref: '#/paths/~1v1~1dataDeletionRules~1{id}~1cancel/post' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1v1~1dataDeletionRules~1{id}~1delete/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/data_deletion_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/data_deletion_rules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/data_deletion_rules/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/data_deletion_rules/methods/delete' + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/data_masking_rules.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/data_masking_rules.yaml new file mode 100644 index 0000000..d0b5fa2 --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/data_masking_rules.yaml @@ -0,0 +1,573 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Data Masking Rules API + description: Data masking rules applied at ingest. + version: 1.0.0 +paths: + /v1/dataMaskingRules: + get: + tags: + - dataMaskingManagement + summary: Get a list of data masking rules. + description: Get a list of all data masking rules for the current organization. The response is paginated with a default limit of 100 rules per page. + operationId: listDataMaskingRules + parameters: + - name: limit + in: query + description: Limit the number of data masking rules returned in the response. The number of rules returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. + required: false + schema: + type: string + responses: + '200': + description: A paginated list of data masking rules. + content: + application/json: + schema: + $ref: '#/components/schemas/ListDataMaskingRulesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dataMaskingManagement + summary: Create a new data masking rule. + description: |- + Create a new data masking rule. The rule will be applied to search results at query time, replacing matches of the regex pattern with the specified mask string. + **Note:** Changes to data masking rules may take up to 30 seconds to take effect. + operationId: createDataMaskingRule + parameters: [] + requestBody: + description: Information about the new data masking rule. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRuleDefinition' + required: true + responses: + '200': + description: The data masking rule has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createDataMaskingRule + /v1/dataMaskingRules/{id}: + get: + tags: + - dataMaskingManagement + summary: Get a data masking rule. + description: Get a data masking rule with the given identifier. + operationId: getDataMaskingRule + parameters: + - name: id + in: path + description: Identifier of the data masking rule to return. + required: true + schema: + type: string + responses: + '200': + description: Data masking rule object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getDataMaskingRule + put: + tags: + - dataMaskingManagement + summary: Update a data masking rule. + description: |- + Update an existing data masking rule. Only the fields provided in the request are updated; omitted fields retain their current values. The rule name is immutable and cannot be changed after creation. + **Note:** Changes to data masking rules may take up to 30 seconds to take effect. + operationId: updateDataMaskingRule + parameters: + - name: id + in: path + description: Identifier of the data masking rule to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the data masking rule. The name field cannot be changed as it is immutable. Only fields provided will be updated; omitted fields retain their current values. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseDataMaskingRuleDefinition' + required: true + responses: + '200': + description: The data masking rule was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateDataMaskingRule + delete: + tags: + - dataMaskingManagement + summary: Delete a data masking rule. + description: |- + Delete a data masking rule with the given identifier. + **Note:** Changes to data masking rules may take up to 30 seconds to take effect. + operationId: deleteDataMaskingRule + parameters: + - name: id + in: path + description: Identifier of the data masking rule to delete. + required: true + schema: + type: string + responses: + '204': + description: Data masking rule was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteDataMaskingRule + /v1/dataMaskingRules/evaluate: + post: + tags: + - dataMaskingManagement + summary: Test and preview a regex pattern by evaluating it against sample input text. Optionally provide a maskString to use as the replacement for text that matches the regex. + description: 'Evaluate a regex pattern against input text. This endpoint can be used to test regex patterns for data masking rules. You can provide your own mask string which will be used for masking, otherwise it will be masked with default value of ##redactedPII##. The response includes the masked text, match count, and positions of matches in the masked output text.' + operationId: evaluateDataMaskingPattern + parameters: [] + requestBody: + description: Input regex and sample message for data masking evaluation. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingEvaluateDefinition' + required: true + responses: + '200': + description: Evaluation result for the provided sample message. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingEvaluateResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListDataMaskingRulesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of data masking rules. + items: + $ref: '#/components/schemas/DataMaskingRule' + next: + type: string + description: Next continuation token. Null if this is the last page. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + DataMaskingRuleDefinition: + type: object + required: + - enabled + - name + - regexPattern + properties: + description: + maxLength: 512 + type: string + description: Optional description of the data masking rule. Provide context about what PII this rule masks and why it's needed. + example: Masks email addresses in application logs + regexPattern: + maxLength: 2048 + minLength: 1 + type: string + description: Regular expression pattern to match PII data that should be masked. The pattern must be valid according to Java regex syntax. All matches in search results will be replaced with the mask string. Required when creating a rule. When updating, if omitted the existing pattern is retained. + example: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b + maskString: + maxLength: 64 + minLength: 1 + type: string + description: The string to replace matched PII with. Defaults to '##redactedPII##' if not specified. Use descriptive mask strings like 'EMAIL_REDACTED' or 'PHONE_REDACTED' for clarity. + example: EMAIL_REDACTED + default: '##redactedPII##' + enabled: + type: boolean + description: Whether the data masking rule is active. Only enabled rules are applied to search results. Set to false to temporarily disable a rule without deleting it. + default: true + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data masking rule. Use a name that makes it easy to identify the rule. Must be unique within the organization. This field is immutable and cannot be changed after creation. + example: Email Masking + DataMaskingRule: + type: object + x-tf-generated-properties: id,name,description,regexPattern,maskString,enabled + x-tf-resource-name: DataMaskingRule + required: + - enabled + - name + - regexPattern + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + description: + maxLength: 512 + type: string + description: Optional description of the data masking rule. Provide context about what PII this rule masks and why it's needed. + example: Masks email addresses in application logs + regexPattern: + maxLength: 2048 + minLength: 1 + type: string + description: Regular expression pattern to match PII data that should be masked. The pattern must be valid according to Java regex syntax. All matches in search results will be replaced with the mask string. Required when creating a rule. When updating, if omitted the existing pattern is retained. + example: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b + maskString: + maxLength: 64 + minLength: 1 + type: string + description: The string to replace matched PII with. Defaults to '##redactedPII##' if not specified. Use descriptive mask strings like 'EMAIL_REDACTED' or 'PHONE_REDACTED' for clarity. + example: EMAIL_REDACTED + default: '##redactedPII##' + enabled: + type: boolean + description: Whether the data masking rule is active. Only enabled rules are applied to search results. Set to false to temporarily disable a rule without deleting it. + default: true + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data masking rule. Use a name that makes it easy to identify the rule. Must be unique within the organization. This field is immutable and cannot be changed after creation. + example: Email Masking + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the data masking rule. + example: 00000000FF42A0C3 + BaseDataMaskingRuleDefinition: + required: + - enabled + type: object + properties: + description: + maxLength: 512 + type: string + description: Optional description of the data masking rule. Provide context about what PII this rule masks and why it's needed. + example: Masks email addresses in application logs + regexPattern: + maxLength: 2048 + minLength: 1 + type: string + description: Regular expression pattern to match PII data that should be masked. The pattern must be valid according to Java regex syntax. All matches in search results will be replaced with the mask string. Required when creating a rule. When updating, if omitted the existing pattern is retained. + example: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b + maskString: + maxLength: 64 + minLength: 1 + type: string + description: The string to replace matched PII with. Defaults to '##redactedPII##' if not specified. Use descriptive mask strings like 'EMAIL_REDACTED' or 'PHONE_REDACTED' for clarity. + example: EMAIL_REDACTED + default: '##redactedPII##' + enabled: + type: boolean + description: Whether the data masking rule is active. Only enabled rules are applied to search results. Set to false to temporarily disable a rule without deleting it. + default: true + DataMaskingEvaluateDefinition: + required: + - regexPattern + - text + type: object + properties: + regexPattern: + maxLength: 2048 + minLength: 1 + type: string + description: Regex pattern used to identify substrings to mask. + example: \\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b + maskString: + maxLength: 64 + minLength: 0 + type: string + description: Optional mask string. If null or empty, the service may apply a default mask string. + nullable: true + example: EMAIL_REDACTED + default: '##redactedPII##' + text: + maxLength: 2048 + minLength: 1 + type: string + description: Sample message used for masking evaluation. + example: 2026-04-21 INFO User 192.168.1.1 logged in at 10.0.0.1 + DataMaskingEvaluateResponse: + required: + - maskedText + - matchCount + - matchPositions + type: object + properties: + maskedText: + type: string + description: Message after applying masking. + example: '2026-04-21 INFO User ##redactedPII## logged in at ##redactedPII##' + matchCount: + minimum: 0 + type: integer + description: Number of replaced matches. + format: int32 + example: 2 + matchPositions: + type: array + description: Start/end offsets for each replaced segment in the output string. + items: + $ref: '#/components/schemas/DataMaskingMatchPosition' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + DataMaskingMatchPosition: + required: + - end + - start + type: object + properties: + start: + minimum: 0 + type: integer + description: Start index of masked segment in output string (inclusive). + format: int32 + example: 21 + end: + minimum: 0 + type: integer + description: End index of masked segment in output string (exclusive). + format: int32 + example: 36 + x-stackQL-resources: + data_masking_rules: + id: sumologic.data_masking_rules.data_masking_rules + name: data_masking_rules + title: Data Masking Rules + methods: + list: + operation: + $ref: '#/paths/~1v1~1dataMaskingRules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dataMaskingRules/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1dataMaskingRules~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dataMaskingRules~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1dataMaskingRules~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + evaluate: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dataMaskingRules~1evaluate/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/data_masking_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/data_masking_rules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/data_masking_rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/data_masking_rules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/data_masking_rules/methods/delete' + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/dynamic_parsing_rules.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/dynamic_parsing_rules.yaml index 57c23b0..03ddc60 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/dynamic_parsing_rules.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/dynamic_parsing_rules.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Dynamic Parsing Rules API + description: Dynamic parsing rules that extract fields automatically from JSON logs. + version: 1.0.0 paths: /v1/dynamicParsingRules: get: @@ -185,52 +190,42 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - DynamicRule: - allOf: - - $ref: '#/components/schemas/DynamicRuleDefinition' - - $ref: '#/components/schemas/Metadata' - - required: - - id - - isSystemRule - properties: - id: - type: string - description: Unique identifier for the dynamic parsing rule. - example: 0000000001C41EE4 - isSystemRule: - type: boolean - description: Whether the rule has been defined by the system, rather than by a user. - example: false - ErrorDescription: + DynamicRuleDefinition: required: - - code - - message + - enabled + - name + - scope type: object properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + name: + maxLength: 256 + minLength: 1 type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: Name of the dynamic parsing rule. Use a name that makes it easy to identify the rule. + example: DynamicParsingRule123 + scope: + maxLength: 2048 + minLength: 1 type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - DynamicRuleDefinition: + description: Scope of the dynamic parsing rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. + example: _sourceHost=127.0.0.1 + enabled: + type: boolean + description: Is the dynamic parsing rule enabled. + example: false + default: true + DynamicRule: + type: object required: - enabled - name - scope - type: object + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + - isSystemRule properties: name: maxLength: 256 @@ -249,6 +244,52 @@ components: description: Is the dynamic parsing rule enabled. example: false default: true + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: dateTime + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: dateTime + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + id: + type: string + description: Unique identifier for the dynamic parsing rule. + example: 0000000001C41EE4 + isSystemRule: + type: boolean + description: Whether the rule has been defined by the system, rather than by a user. + example: false + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 Metadata: required: - createdAt @@ -271,391 +312,97 @@ components: modifiedBy: type: string description: Identifier of the user who last modified the resource. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: dynamic_parsing_rules: id: sumologic.dynamic_parsing_rules.dynamic_parsing_rules name: dynamic_parsing_rules - title: Dynamic_parsing_rules + title: Dynamic Parsing Rules methods: - listDynamicParsingRules: + list: operation: $ref: '#/paths/~1v1~1dynamicParsingRules/get' response: mediaType: application/json openAPIDocKey: '200' - createDynamicParsingRule: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1dynamicParsingRules/post' response: mediaType: application/json openAPIDocKey: '200' - getDynamicParsingRule: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1dynamicParsingRules~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateDynamicParsingRule: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1dynamicParsingRules~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteDynamicParsingRule: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1dynamicParsingRules~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/getDynamicParsingRule' - - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/listDynamicParsingRules' + - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/createDynamicParsingRule' - update: [] + - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/deleteDynamicParsingRule' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - dynamic_parsing_rules - description: dynamicParsingRules - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/event_extraction_rules.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/event_extraction_rules.yaml new file mode 100644 index 0000000..94f050f --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/event_extraction_rules.yaml @@ -0,0 +1,575 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Event Extraction Rules API + description: Event extraction rules (Event Analytics) and their quota. + version: 1.0.0 +paths: + /v1/eventExtractionRules: + get: + tags: + - eventAnalytics + summary: Get all event extraction rules. + description: Get all event extraction rules. + operationId: getEventExtractionRules + responses: + '200': + description: Event extraction rules. + content: + application/json: + schema: + $ref: '#/components/schemas/ListEventExtractionRulesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - eventAnalytics + summary: Create event extraction rule. + description: Create event extraction rule. + operationId: createEventExtractionRule + requestBody: + description: Information to create a new event extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRule' + required: true + responses: + '200': + description: The event extraction rule was created. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/eventExtractionRules/quota: + get: + tags: + - eventAnalytics + summary: Get event extraction rules quota. + description: Every customer can use a limited number of Event Extraction Rules. This endpoint allows learning about these limitations and remaining quota. + operationId: getEventExtractionRulesQuota + responses: + '200': + description: Current state of Event Extraction Rules quota usage (limit and remaining). + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRulesQuotaUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/eventExtractionRules/{id}: + get: + tags: + - eventAnalytics + summary: Get an event extraction rule. + description: Get an event extraction rule. + operationId: getEventExtractionRule + parameters: + - name: id + in: path + description: The identifier of the event extraction rule. + required: true + schema: + type: string + example: 000000000000000A + responses: + '200': + description: Requested event extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - eventAnalytics + summary: Update an event extraction rule. + description: Update an event extraction rule. + operationId: updateEventExtractionRule + parameters: + - name: id + in: path + description: The identifier of the event extraction rule. + required: true + schema: + type: string + example: 000000000000000A + requestBody: + description: Information to update event extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRule' + required: true + responses: + '200': + description: The event extraction rule was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - eventAnalytics + summary: Delete an event extraction rule. + description: Delete an event extraction rule. + operationId: deleteEventExtractionRule + parameters: + - name: id + in: path + description: The identifier of the event extraction rule. + required: true + schema: + type: string + example: 000000000000000A + responses: + '204': + description: The event extraction rule was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListEventExtractionRulesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of event extraction rules. + items: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + EventExtractionRule: + required: + - configuration + - name + - query + type: object + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of event extraction rule. + example: foo + description: + maxLength: 1024 + type: string + description: Description of event extraction rule. + example: foo + query: + type: string + description: | + Query string for the Event Extraction Rule. Logs matching this query are periodically ingested into the `sumologic_userdata_events` index (**Events**). + + Guidelines for creating the query: + - Optimize the query to limit the number of returned log messages (intended for special logs only). + - The query runs in `Manual` mode, explicitly parse and extract only the necessary fields for event correlation and visualization. + - Use the `fields` operator to restrict the output to required fields. + example: _sourceCategory=eventSource + correlationExpression: + required: + - eventFieldName + - queryFieldName + - stringMatchingAlgorithm + type: object + properties: + queryFieldName: + type: string + description: Name of the query field returned by a log search query. + example: _sourcecategory + eventFieldName: + type: string + description: Name of the field from event query output. + example: foo + stringMatchingAlgorithm: + pattern: ^(ExactMatch)$ + type: string + description: Type of string matching algorithm which tells how to match eventFieldName and queryFieldName. + example: ExactMatch + description: | + Correlation Expression specifies how to determine related events for a log search query. + The value of `eventFieldName` from Events is compared with the values of `queryFieldName` from the log search query output using the defined stringMatchingAlgorithm. Events that match according to this algorithm are considered correlated. + configuration: + maxProperties: 1000 + required: + - eventName + - eventPriority + - eventSource + - eventType + type: object + additionalProperties: + $ref: '#/components/schemas/FieldMapping' + description: | + Configuration for the Event Extraction Rule. + + This object defines how event fields are mapped to their corresponding values. + Each field specifies a `valueSource`, which provides the actual value, and an optional `mappingType`, + indicating the value is hardcoded. + + The following fields are **required**: + - `eventType`: Type of the event. Accepted values are `Deployment`, `Feature Flag Change`, `Configuration Change` or `Infrastructure Change`. + - `eventPriority`: Indicates the priority of the event. Accepted values are `High`, `Medium`, or `Low`. + - `eventSource`: Source system or component where the event originated (e.g., "Jenkins"). + - `eventName`: Descriptive name of the event (e.g., "monitor-manager deployed."). + + The following fields are **optional**: + - `eventDescription`: Additional context or details about the event. + + Custom fields can also be added as needed to capture domain-specific event data. + example: + eventType: + valueSource: Deploy + mappingType: HardCoded + eventPriority: + valueSource: High + mappingType: HardCoded + eventSource: + valueSource: Jenkins + mappingType: HardCoded + eventName: + valueSource: monitor-manager deployed. + mappingType: HardCoded + eventDescription: + valueSource: 2 containers in monitor-manager were upgraded. + mappingType: HardCoded + EventExtractionRuleWithDetails: + type: object + description: Event extraction rule object. + required: + - configuration + - name + - query + - id + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of event extraction rule. + example: foo + description: + maxLength: 1024 + type: string + description: Description of event extraction rule. + example: foo + query: + type: string + description: | + Query string for the Event Extraction Rule. Logs matching this query are periodically ingested into the `sumologic_userdata_events` index (**Events**). + + Guidelines for creating the query: + - Optimize the query to limit the number of returned log messages (intended for special logs only). + - The query runs in `Manual` mode, explicitly parse and extract only the necessary fields for event correlation and visualization. + - Use the `fields` operator to restrict the output to required fields. + example: _sourceCategory=eventSource + correlationExpression: + required: + - eventFieldName + - queryFieldName + - stringMatchingAlgorithm + type: object + properties: + queryFieldName: + type: string + description: Name of the query field returned by a log search query. + example: _sourcecategory + eventFieldName: + type: string + description: Name of the field from event query output. + example: foo + stringMatchingAlgorithm: + pattern: ^(ExactMatch)$ + type: string + description: Type of string matching algorithm which tells how to match eventFieldName and queryFieldName. + example: ExactMatch + description: | + Correlation Expression specifies how to determine related events for a log search query. + The value of `eventFieldName` from Events is compared with the values of `queryFieldName` from the log search query output using the defined stringMatchingAlgorithm. Events that match according to this algorithm are considered correlated. + configuration: + maxProperties: 1000 + required: + - eventName + - eventPriority + - eventSource + - eventType + type: object + additionalProperties: + $ref: '#/components/schemas/FieldMapping' + description: | + Configuration for the Event Extraction Rule. + + This object defines how event fields are mapped to their corresponding values. + Each field specifies a `valueSource`, which provides the actual value, and an optional `mappingType`, + indicating the value is hardcoded. + + The following fields are **required**: + - `eventType`: Type of the event. Accepted values are `Deployment`, `Feature Flag Change`, `Configuration Change` or `Infrastructure Change`. + - `eventPriority`: Indicates the priority of the event. Accepted values are `High`, `Medium`, or `Low`. + - `eventSource`: Source system or component where the event originated (e.g., "Jenkins"). + - `eventName`: Descriptive name of the event (e.g., "monitor-manager deployed."). + + The following fields are **optional**: + - `eventDescription`: Additional context or details about the event. + + Custom fields can also be added as needed to capture domain-specific event data. + example: + eventType: + valueSource: Deploy + mappingType: HardCoded + eventPriority: + valueSource: High + mappingType: HardCoded + eventSource: + valueSource: Jenkins + mappingType: HardCoded + eventName: + valueSource: monitor-manager deployed. + mappingType: HardCoded + eventDescription: + valueSource: 2 containers in monitor-manager were upgraded. + mappingType: HardCoded + id: + type: string + description: Id of the event extraction rule. + example: '0000000001213227' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + enabled: + type: boolean + description: Flag indicating whether the event extraction rule is enabled or disabled. + example: true + disableReason: + type: string + description: Reason for disabling the event extraction rule, if applicable. + example: Event Extraction Rule output exceeded maximum allowed rate of 1000 events per hour in last 24 hours. + EventExtractionRulesQuotaUsage: + required: + - quota + - remaining + type: object + properties: + quota: + type: integer + description: Maximum number of EventExtractionRules allowed. + format: int32 + example: 200 + remaining: + type: integer + description: Remaining number of EventExtractionRules allowed. + format: int32 + example: 121 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + FieldMapping: + required: + - valueSource + type: object + properties: + valueSource: + maxLength: 256 + type: string + description: The actual value or field reference for the mapping. + example: Knobs Changes + mappingType: + pattern: ^(HardCoded)$ + type: string + description: Specifies valueSource is hardcoded. + example: HardCoded + x-pattern-message: Must be `HardCoded` + x-stackQL-resources: + event_extraction_rules: + id: sumologic.event_extraction_rules.event_extraction_rules + name: event_extraction_rules + title: Event Extraction Rules + methods: + list: + operation: + $ref: '#/paths/~1v1~1eventExtractionRules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1eventExtractionRules/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1eventExtractionRules~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1eventExtractionRules~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1eventExtractionRules~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/event_extraction_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/event_extraction_rules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/event_extraction_rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/event_extraction_rules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/event_extraction_rules/methods/delete' + replace: [] + quota: + id: sumologic.event_extraction_rules.quota + name: quota + title: Quota + methods: + get: + operation: + $ref: '#/paths/~1v1~1eventExtractionRules~1quota/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/quota/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/extraction_rules.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/extraction_rules.yaml index 3e8fdaa..b63e9e4 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/extraction_rules.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/extraction_rules.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Extraction Rules API + description: Field extraction rules and their quota. + version: 1.0.0 paths: /v1/extractionRules: get: @@ -184,69 +189,74 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - ExtractionRule: - allOf: - - $ref: '#/components/schemas/ExtractionRuleDefinition' - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - properties: - id: - type: string - description: Unique identifier for the field extraction rule. - fieldNames: - type: array - description: List of extracted fields from "parseExpression". - items: - type: string - x-tf-generated-properties: id,name,scope,parseExpression,enabled - x-tf-resource-name: ExtractionRule - ErrorDescription: + ExtractionRuleDefinition: required: - - code - - message + - name + - parseExpression + - scope type: object properties: - code: + name: + maxLength: 256 + minLength: 1 type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + description: Name of the field extraction rule. Use a name that makes it easy to identify the rule. + example: ExtractionRule123 + scope: + maxLength: 2048 + minLength: 0 type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: Scope of the field extraction rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. + example: _sourceHost=127.0.0.1 + parseExpression: + maxLength: 16384 type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - ExtractionRuleDefinition: - allOf: - - $ref: '#/components/schemas/BaseExtractionRuleDefinition' - - type: object - properties: - enabled: - type: boolean - description: Is the field extraction rule enabled. - default: true - MetadataModel: + description: Describes the fields to be parsed. + example: csv _raw extract 1 as f1 + enabled: + type: boolean + description: Is the field extraction rule enabled. + default: true + ExtractionRule: + type: object + x-tf-generated-properties: id,name,scope,parseExpression,enabled + x-tf-resource-name: ExtractionRule required: + - name + - parseExpression + - scope - createdAt - createdBy - modifiedAt - modifiedBy - type: object + - id properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of the field extraction rule. Use a name that makes it easy to identify the rule. + example: ExtractionRule123 + scope: + maxLength: 2048 + minLength: 0 + type: string + description: Scope of the field extraction rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. + example: _sourceHost=127.0.0.1 + parseExpression: + maxLength: 16384 + type: string + description: Describes the fields to be parsed. + example: csv _raw extract 1 as f1 + enabled: + type: boolean + description: Is the field extraction rule enabled. + default: true createdAt: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -255,11 +265,71 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the field extraction rule. + fieldNames: + type: array + description: List of extracted fields from "parseExpression". + items: + type: string + UpdateExtractionRuleDefinition: + required: + - name + - parseExpression + - scope + - enabled + type: object + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of the field extraction rule. Use a name that makes it easy to identify the rule. + example: ExtractionRule123 + scope: + maxLength: 2048 + minLength: 0 + type: string + description: Scope of the field extraction rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. + example: _sourceHost=127.0.0.1 + parseExpression: + maxLength: 16384 + type: string + description: Describes the fields to be parsed. + example: csv _raw extract 1 as f1 + enabled: + type: boolean + description: Is the field extraction rule enabled. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 BaseExtractionRuleDefinition: required: - name @@ -284,401 +354,123 @@ components: type: string description: Describes the fields to be parsed. example: csv _raw extract 1 as f1 - UpdateExtractionRuleDefinition: - allOf: - - $ref: '#/components/schemas/BaseExtractionRuleDefinition' - - required: - - enabled - type: object - properties: - enabled: - type: boolean - description: Is the field extraction rule enabled. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 x-stackQL-resources: extraction_rules: id: sumologic.extraction_rules.extraction_rules name: extraction_rules - title: Extraction_rules + title: Extraction Rules methods: - listExtractionRules: + list: operation: $ref: '#/paths/~1v1~1extractionRules/get' response: mediaType: application/json openAPIDocKey: '200' - createExtractionRule: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1extractionRules/post' response: mediaType: application/json openAPIDocKey: '200' - getExtractionRule: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1extractionRules~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateExtractionRule: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1extractionRules~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteExtractionRule: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1extractionRules~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/getExtractionRule' - - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/listExtractionRules' + - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/createExtractionRule' - update: [] + - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/deleteExtractionRule' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - extraction_rules - description: extractionRules - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/feature_settings.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/feature_settings.yaml new file mode 100644 index 0000000..d27e005 --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/feature_settings.yaml @@ -0,0 +1,259 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Feature Settings API + description: Organization feature settings. + version: 1.0.0 +paths: + /v1/featureSettings: + get: + tags: + - orgFeatureSettings + summary: Get a list of opt-in/out features. + description: Get a list of opt-in/out features for the organization. + operationId: listFeatureSettings + responses: + '200': + description: A list of opt-in/out features for the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/FeatureSettingsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - orgFeatureSettings + summary: Update one or more feature settings. + description: Update feature settings for the organization. + operationId: updateFeatureSettings + parameters: [] + requestBody: + description: List of feature Id and its settings. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFeatureSettingsRequest' + required: true + responses: + '200': + description: One or more feature settings have been updated. + content: + application/json: + schema: + $ref: '#/components/schemas/FeatureSettingsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + FeatureSettingsResponse: + type: object + properties: + featureSettings: + type: array + description: List of opt-in/out features. + items: + $ref: '#/components/schemas/FeatureSettingsModel' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + UpdateFeatureSettingsRequest: + required: + - featureSettings + type: object + properties: + featureSettings: + minItems: 1 + type: array + description: List of feature Id and its settings. + items: + $ref: '#/components/schemas/FeatureSettingsBase' + FeatureSettingsModel: + required: + - id + - settings + - description + - lastModifiedAt + - lastModifiedBy + - name + - type + type: object + properties: + id: + maxLength: 32 + type: string + description: Id of the feature. + example: Mobot + settings: + minItems: 1 + type: array + description: List of settings. + items: + $ref: '#/components/schemas/Setting' + name: + maxLength: 64 + type: string + description: Name of the feature (user-friendly). + example: Mobot + description: + maxLength: 255 + type: string + description: Details of the feature. + type: + pattern: ^(GA|PublicPreview|PrivatePreview)$ + type: string + description: Type of the feature + example: GA + lastModifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + nullable: true + example: '2025-10-16T09:10:00.000Z' + lastModifiedBy: + type: string + description: Identifier of the user who last modified the resource. + nullable: true + example: 0000000006743FE8 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + FeatureSettingsBase: + required: + - id + - settings + type: object + properties: + id: + maxLength: 32 + type: string + description: Id of the feature. + example: Mobot + settings: + minItems: 1 + type: array + description: List of settings. + items: + $ref: '#/components/schemas/Setting' + Setting: + required: + - key + - value + type: object + properties: + key: + type: string + description: The key for the setting. + example: enabled + value: + type: string + description: The value for the setting. + example: 'false' + x-stackQL-resources: + feature_settings: + id: sumologic.feature_settings.feature_settings + name: feature_settings + title: Feature Settings + methods: + list: + operation: + $ref: '#/paths/~1v1~1featureSettings/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.featureSettings + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1featureSettings/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/feature_settings/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/feature_settings/methods/update' + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/fields.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/fields.yaml index fb7835e..a4c1090 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/fields.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/fields.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Fields API + description: Custom fields, built-in fields, dropped fields and the field quota. + version: 1.0.0 paths: /v1/fields: get: @@ -266,58 +271,23 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - CustomField: - allOf: - - $ref: '#/components/schemas/FieldName' - - required: - - dataType - - fieldId - - state - type: object - properties: - fieldId: - type: string - description: Identifier of the field. - example: 00000000031D02DA - dataType: - pattern: ^(String|Long|Int|Double|Boolean)$ - type: string - description: Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. - example: String - x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean` - state: - pattern: ^(Enabled|Disabled)$ - type: string - description: Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. - example: Enabled - x-pattern-message: Must be `Enabled` or `Disabled` - ErrorDescription: + FieldName: required: - - code - - message + - fieldName type: object properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + fieldName: + maxLength: 255 + minLength: 1 type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - FieldName: + description: Field name. + example: hostIP + CustomField: required: - fieldName + - dataType + - fieldId + - state type: object properties: fieldName: @@ -326,6 +296,22 @@ components: type: string description: Field name. example: hostIP + fieldId: + type: string + description: Identifier of the field. + example: 00000000031D02DA + dataType: + pattern: ^(String|Long|Int|Double|Boolean)$ + type: string + description: Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. + example: String + x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean` + state: + pattern: ^(Enabled|Disabled)$ + type: string + description: Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. + example: Enabled + x-pattern-message: Must be `Enabled` or `Disabled` ListDroppedFieldsResponse: required: - data @@ -336,9 +322,6 @@ components: description: List of dropped fields. items: $ref: '#/components/schemas/DroppedField' - DroppedField: - allOf: - - $ref: '#/components/schemas/FieldName' ListBuiltinFieldsResponse: required: - data @@ -350,30 +333,35 @@ components: items: $ref: '#/components/schemas/BuiltinField' BuiltinField: - allOf: - - $ref: '#/components/schemas/FieldName' - - required: - - dataType - - fieldId - - state - type: object - properties: - fieldId: - type: string - description: Identifier of the field. - example: 00000000031D02DA - dataType: - pattern: ^(String|Long|Int|Double|Boolean)$ - type: string - description: Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. - example: String - x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean` - state: - pattern: ^(Enabled|Disabled)$ - type: string - description: Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. - example: Enabled - x-pattern-message: Must be `Enabled` or `Disabled` + required: + - fieldName + - dataType + - fieldId + - state + type: object + properties: + fieldName: + maxLength: 255 + minLength: 1 + type: string + description: Field name. + example: hostIP + fieldId: + type: string + description: Identifier of the field. + example: 00000000031D02DA + dataType: + pattern: ^(String|Long|Int|Double|Boolean)$ + type: string + description: Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. + example: String + x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean` + state: + pattern: ^(Enabled|Disabled)$ + type: string + description: Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. + example: Enabled + x-pattern-message: Must be `Enabled` or `Disabled` FieldQuotaUsage: required: - quota @@ -390,476 +378,202 @@ components: description: Current number of fields available. format: int32 example: 121 - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + DroppedField: + required: + - fieldName + type: object + properties: + fieldName: + maxLength: 255 + minLength: 1 + type: string + description: Field name. + example: hostIP x-stackQL-resources: fields: id: sumologic.fields.fields name: fields title: Fields methods: - listCustomFields: + list: operation: $ref: '#/paths/~1v1~1fields/get' response: mediaType: application/json openAPIDocKey: '200' - createField: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1fields/post' response: mediaType: application/json openAPIDocKey: '200' - getCustomField: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1fields~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - deleteField: + request: + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1fields~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/fields/methods/getCustomField' - - $ref: '#/components/x-stackQL-resources/fields/methods/listCustomFields' - insert: - - $ref: '#/components/x-stackQL-resources/fields/methods/createField' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/fields/methods/deleteField' - enable: - id: sumologic.fields.enable - name: enable - title: Enable - methods: - enableField: + openAPIDocKey: '204' + request: + nativeCasing: camel + enable: operation: $ref: '#/paths/~1v1~1fields~1{id}~1enable/put' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - disable: - id: sumologic.fields.disable - name: disable - title: Disable - methods: - disableField: + openAPIDocKey: '204' + disable: operation: $ref: '#/paths/~1v1~1fields~1{id}~1disable/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' sqlVerbs: - select: [] - insert: [] + select: + - $ref: '#/components/x-stackQL-resources/fields/methods/get' + - $ref: '#/components/x-stackQL-resources/fields/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/fields/methods/create' update: [] - delete: [] - dropped: - id: sumologic.fields.dropped - name: dropped - title: Dropped + delete: + - $ref: '#/components/x-stackQL-resources/fields/methods/delete' + replace: [] + dropped_fields: + id: sumologic.fields.dropped_fields + name: dropped_fields + title: Dropped Fields methods: - listDroppedFields: + list: operation: $ref: '#/paths/~1v1~1fields~1dropped/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/dropped/methods/listDroppedFields' + - $ref: '#/components/x-stackQL-resources/dropped_fields/methods/list' insert: [] update: [] delete: [] - builtin: - id: sumologic.fields.builtin - name: builtin - title: Builtin + replace: [] + builtin_fields: + id: sumologic.fields.builtin_fields + name: builtin_fields + title: Builtin Fields methods: - listBuiltInFields: + list: operation: $ref: '#/paths/~1v1~1fields~1builtin/get' response: mediaType: application/json openAPIDocKey: '200' - getBuiltInField: + objectKey: $.data + request: + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1fields~1builtin~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/builtin/methods/getBuiltInField' - - $ref: '#/components/x-stackQL-resources/builtin/methods/listBuiltInFields' + - $ref: '#/components/x-stackQL-resources/builtin_fields/methods/get' + - $ref: '#/components/x-stackQL-resources/builtin_fields/methods/list' insert: [] update: [] delete: [] + replace: [] quota: id: sumologic.fields.quota name: quota title: Quota methods: - getFieldQuota: + get: operation: $ref: '#/paths/~1v1~1fields~1quota/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/quota/methods/getFieldQuota' + - $ref: '#/components/x-stackQL-resources/quota/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - fields - description: fields - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/health_events.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/health_events.yaml index 90cf8c3..e796e2f 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/health_events.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/health_events.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Health Events API + description: Health events for collectors, sources, ingest budgets and other resources. + version: 1.0.0 paths: /v1/healthEvents: get: @@ -115,6 +120,16 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' + ResourceIdentities: + required: + - data + type: object + properties: + data: + type: array + description: A list of the resources. + items: + $ref: '#/components/schemas/ResourceIdentity' HealthEvent: required: - details @@ -142,7 +157,7 @@ components: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' subsystem: type: string description: The product area of the event. @@ -168,31 +183,11 @@ components: description: An optional fuller English-language description of the error. example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. meta: - type: object - description: An optional list of metadata about the error. + type: string + description: An optional list of metadata about the error. (opaque JSON object) example: minLength: 12 actualLength: 5 - TrackerIdentity: - required: - - description - - error - - trackerId - type: object - properties: - trackerId: - type: string - description: Name that uniquely identifies the health event. It focuses on what happened rather than why. - error: - type: string - description: Description of the underlying reason for the event change. - example: Access denied to Amazon S3 bucket - description: - type: string - description: A more elaborate description of why the event occurred. - example: S3 collection is not working as expected because of access issues. - discriminator: - propertyName: description ResourceIdentity: required: - id @@ -220,391 +215,86 @@ components: IngestBudget: '#/components/schemas/IngestBudgetResourceIdentity' Organisation: '#/components/schemas/OrgIdentity' LogsToMetricsRule: '#/components/schemas/LogsToMetricsRuleIdentity' - ResourceIdentities: + ScheduledView: '#/components/schemas/ScheduledViewResourceIdentity' + TrackerIdentity: required: - - data + - description + - error + - trackerId type: object properties: - data: - type: array - description: A list of the resources. - items: - $ref: '#/components/schemas/ResourceIdentity' - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + trackerId: + type: string + description: Name that uniquely identifies the health event. It focuses on what happened rather than why. + error: + type: string + description: Description of the underlying reason for the event change. + example: Access denied to Amazon S3 bucket + description: + type: string + description: A more elaborate description of why the event occurred. + example: S3 collection is not working as expected because of access issues. + discriminator: + propertyName: description x-stackQL-resources: health_events: id: sumologic.health_events.health_events name: health_events - title: Health_events + title: Health Events methods: - listAllHealthEvents: + list: operation: $ref: '#/paths/~1v1~1healthEvents/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/health_events/methods/listAllHealthEvents' - insert: [] - update: [] - delete: [] - resources: - id: sumologic.health_events.resources - name: resources - title: Resources - methods: - listAllHealthEventsForResources: + request: + nativeCasing: camel + list_for_resources: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1healthEvents~1resources/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/health_events/methods/list' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - health_events - description: healthEvents - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/ingest_budgets.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/ingest_budgets.yaml index 5b6f974..d7eac4d 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/ingest_budgets.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/ingest_budgets.yaml @@ -1,281 +1,9 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Ingest Budgets API + description: Ingest budgets (v2) and their usage reset. + version: 1.0.0 paths: - /v1/ingestBudgets: - get: - tags: - - ingestBudgetManagementV1 - summary: Get a list of ingest budgets. - description: Get a list of all ingest budgets. The response is paginated with a default limit of 100 budgets per page. - operationId: listIngestBudgets - parameters: - - name: limit - in: query - description: Limit the number of budgets returned in the response. The number of budgets returned may be less than the `limit`. - required: false - schema: - maximum: 1000 - minimum: 1 - type: integer - format: int32 - default: 100 - - name: token - in: query - description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. - required: false - schema: - type: string - responses: - '200': - description: A paginated list of budgets. - content: - application/json: - schema: - $ref: '#/components/schemas/ListIngestBudgetsResponse' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - post: - tags: - - ingestBudgetManagementV1 - summary: Create a new ingest budget. - description: Create a new ingest budget. - operationId: createIngestBudget - parameters: [] - requestBody: - description: Information about the new ingest budget. - content: - application/json: - schema: - $ref: '#/components/schemas/IngestBudgetDefinition' - required: true - responses: - '200': - description: The ingest budget has been created. - content: - application/json: - schema: - $ref: '#/components/schemas/IngestBudget' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /v1/ingestBudgets/{id}: - get: - tags: - - ingestBudgetManagementV1 - summary: Get an ingest budget. - description: Get an ingest budget by the given identifier. - operationId: getIngestBudget - parameters: - - name: id - in: path - description: Identifier of ingest budget to return. - required: true - schema: - type: string - responses: - '200': - description: Ingest budget object that was requested. - content: - application/json: - schema: - $ref: '#/components/schemas/IngestBudget' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - put: - tags: - - ingestBudgetManagementV1 - summary: Update an ingest budget. - description: Update an existing ingest budget. All properties specified in the request are required. - operationId: updateIngestBudget - parameters: - - name: id - in: path - description: Identifier of the ingest budget to update. - required: true - schema: - type: string - requestBody: - description: Information to update about the ingest budget. - content: - application/json: - schema: - $ref: '#/components/schemas/IngestBudgetDefinition' - required: true - responses: - '200': - description: The ingest budget was successfully modified. - content: - application/json: - schema: - $ref: '#/components/schemas/IngestBudget' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - delete: - tags: - - ingestBudgetManagementV1 - summary: Delete an ingest budget. - description: Delete an ingest budget with the given identifier. - operationId: deleteIngestBudget - parameters: - - name: id - in: path - description: Identifier of the ingest budget to delete. - required: true - schema: - type: string - responses: - '204': - description: The ingest budget was deleted successfully. - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /v1/ingestBudgets/{id}/usage/reset: - post: - tags: - - ingestBudgetManagementV1 - summary: Reset usage. - description: Reset ingest budget's current usage to 0 before the scheduled reset time. - operationId: resetUsage - parameters: - - name: id - in: path - description: Identifier of the ingest budget to reset usage. - required: true - schema: - type: string - responses: - '200': - description: Ingest budget's usage was reset successfully. - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /v1/ingestBudgets/{id}/collectors: - get: - tags: - - ingestBudgetManagementV1 - summary: Get a list of Collectors. - description: Get a list of Collectors assigned to an ingest budget. The response is paginated with a default limit of 100 Collectors per page. - operationId: getAssignedCollectors - parameters: - - name: id - in: path - description: Identifier of ingest budget to which Collectors are assigned. - required: true - schema: - type: string - - name: limit - in: query - description: Limit the number of Collectors returned in the response. The number of Collectors returned may be less than the `limit`. - required: false - schema: - maximum: 1000 - minimum: 1 - type: integer - format: int32 - default: 100 - - name: token - in: query - description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. - required: false - schema: - type: string - responses: - '200': - description: A paginated list of Collectors. - content: - application/json: - schema: - $ref: '#/components/schemas/ListCollectorIdentitiesResponse' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /v1/ingestBudgets/{id}/collectors/{collectorId}: - put: - tags: - - ingestBudgetManagementV1 - summary: Assign a Collector to a budget. - description: Assign a Collector to a budget. - operationId: assignCollectorToBudget - parameters: - - name: id - in: path - description: Identifier of the ingest budget to assign to the Collector. - required: true - schema: - type: string - - name: collectorId - in: path - description: Identifier of the Collector to assign. - required: true - schema: - type: string - responses: - '200': - description: Collector was successfully assigned to the ingest budget. - content: - application/json: - schema: - $ref: '#/components/schemas/IngestBudget' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - delete: - tags: - - ingestBudgetManagementV1 - summary: Remove Collector from a budget. - description: Remove Collector from a budget. - operationId: removeCollectorFromBudget - parameters: - - name: id - in: path - description: Identifier of the ingest budget to unassign from the Collector. - required: true - schema: - type: string - - name: collectorId - in: path - description: Identifier of the Collector to unassign. - required: true - schema: - type: string - responses: - '200': - description: Collector was successfully unassigned from the ingest budget. - content: - application/json: - schema: - $ref: '#/components/schemas/IngestBudget' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' /v2/ingestBudgets: get: tags: @@ -427,7 +155,7 @@ paths: tags: - ingestBudgetManagementV2 summary: Reset usage. - description: Reset ingest budget's current usage to 0 before the scheduled reset time. + description: Reset ingest budget's current usage to 0 before the scheduled reset time. This is only applicable to `dailyVolume` budgetType. operationId: resetUsageV2 parameters: - name: id @@ -447,7 +175,7 @@ paths: $ref: '#/components/schemas/ErrorResponse' components: schemas: - ListIngestBudgetsResponse: + ListIngestBudgetsResponseV2: required: - data type: object @@ -456,7 +184,7 @@ components: type: array description: List of ingest budgets. items: - $ref: '#/components/schemas/IngestBudget' + $ref: '#/components/schemas/IngestBudgetV2' next: type: string description: Next continuation token. @@ -480,62 +208,12 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - IngestBudget: - allOf: - - $ref: '#/components/schemas/IngestBudgetDefinition' - - $ref: '#/components/schemas/MetadataWithUserInfo' - - required: - - id - properties: - id: - type: string - description: Unique identifier for the ingest budget. - usageBytes: - type: integer - description: Current usage since the last reset, in bytes. - format: int64 - example: 900 - usageStatus: - type: string - description: Status of the current usage. Can be `Normal`, `Approaching`, `Exceeded`, or `Unknown` (unable to retrieve usage). - example: Approaching - numberOfCollectors: - type: integer - description: Number of collectors assigned to the ingest budget. - format: int64 - example: 10 - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - IngestBudgetDefinition: + IngestBudgetDefinitionV2: required: - action - capacityBytes - - fieldValue - name - - resetTime - - timezone + - scope type: object properties: name: @@ -544,28 +222,30 @@ components: type: string description: Display name of the ingest budget. example: Developer Budget - fieldValue: + scope: maxLength: 1024 minLength: 1 type: string - description: Custom field value that is used to assign Collectors to the ingest budget. - example: dev_30_gb + description: A scope is a constraint that will be used to identify the messages on which budget needs to be applied. A scope is consists of key and value separated by =. The field must be enabled in the fields table. Value supports wildcard. e.g. _sourceCategory=*prod*payment*, cluster=kafka. If the scope is defined _sourceCategory=*nginx* in this budget will be applied on messages having fields _sourceCategory=prod/nginx, _sourceCategory=dev/nginx, or _sourceCategory=dev/nginx/error + example: _sourceCategory=*prod*nginx* capacityBytes: - minimum: 0 + minimum: 1 type: integer - description: Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. + description: Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. The capacity bytes unit varies based on the budgetType field. For `dailyVolume` budgetType the capacity specified is in bytes/day whereas for `minuteVolume` budgetType its bytes/min. format: int64 example: 1000 timezone: type: string description: Time zone of the reset time for the ingest budget. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). example: America/Los_Angeles + default: Etc/UTC resetTime: maxLength: 5 minLength: 5 type: string description: Reset time of the ingest budget in HH:MM format. example: '23:30' + default: '00:00' description: maxLength: 1024 minLength: 0 @@ -587,148 +267,19 @@ components: description: The threshold as a percentage of when an ingest budget's capacity usage is logged in the Audit Index. format: int32 example: 85 - MetadataWithUserInfo: - required: - - createdAt - - createdByUser - - modifiedAt - - modifiedByUser - type: object - properties: - createdAt: - type: string - description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. - format: date-time - nullable: true - createdByUser: - $ref: '#/components/schemas/UserInfo' - modifiedAt: - type: string - description: Last modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. - format: date-time - nullable: true - modifiedByUser: - $ref: '#/components/schemas/UserInfo' - UserInfo: - required: - - email - - firstName - - id - - lastName - type: object - properties: - id: - type: string - description: User's identifier. - example: 0000000006743FDD - email: - type: string - description: User's email. - example: johndoe@acme.com - firstName: - type: string - description: User's first name. - example: John - lastName: - type: string - description: User's last name. - example: Doe - ListCollectorIdentitiesResponse: - required: - - data - type: object - properties: - data: - type: array - description: List of Collector identities. - items: - $ref: '#/components/schemas/CollectorIdentity' - next: - type: string - description: Next continuation token. - CollectorIdentity: - required: - - id - - name - type: object - properties: - id: - type: string - description: Unique identifier for the Collector. - name: - type: string - description: The name of the Collector. - ListIngestBudgetsResponseV2: - required: - - data - type: object - properties: - data: - type: array - description: List of ingest budgets. - items: - $ref: '#/components/schemas/IngestBudgetV2' - next: - type: string - description: Next continuation token. IngestBudgetV2: - allOf: - - $ref: '#/components/schemas/IngestBudgetDefinitionV2' - - required: - - createdAt - - createdBy - - id - - modifiedAt - - modifiedBy - - version - properties: - id: - type: string - description: Unique identifier for the ingest budget. - example: 0000000003343FDD - usageBytes: - type: integer - description: Current usage since the last reset, in bytes. - format: int64 - example: 900 - usageStatus: - pattern: ^(Normal|Approaching|Exceeded|Unknown)$ - type: string - description: Status of the current usage. Can be `Normal`, `Approaching`, `Exceeded`, or `Unknown` (unable to retrieve usage). - example: Approaching - x-pattern-message: must be either `Normal`, `Approaching`, `Exceeded`, or `Unknown` - createdAt: - type: string - description: The creation timestamp in UTC of the Ingest Budget. - format: date-time - example: '2018-10-16T09:10:00Z' - createdBy: - type: string - description: The identifier of the user who created the Ingest Budget. - example: 0000000006743FDD - modifiedAt: - type: string - description: The modified timestamp in UTC of the Ingest Budget. - format: date-time - example: '2018-10-16T09:10:00Z' - modifiedBy: - type: string - description: The identifier of the user who modified the Ingest Budget. - example: 0000000001243FDD - budgetVersion: - type: integer - description: The version of the Ingest Budget - format: int32 - example: 2 - IngestBudgetDefinitionV2: + type: object required: - action - capacityBytes - name - - resetTime - scope - - timezone - type: object + - createdAt + - createdBy + - id + - modifiedAt + - modifiedBy + - version properties: name: maxLength: 128 @@ -745,19 +296,21 @@ components: capacityBytes: minimum: 1 type: integer - description: Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. + description: Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. The capacity bytes unit varies based on the budgetType field. For `dailyVolume` budgetType the capacity specified is in bytes/day whereas for `minuteVolume` budgetType its bytes/min. format: int64 example: 1000 timezone: type: string description: Time zone of the reset time for the ingest budget. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). example: America/Los_Angeles + default: Etc/UTC resetTime: maxLength: 5 minLength: 5 type: string description: Reset time of the ingest budget in HH:MM format. example: '23:30' + default: '00:00' description: maxLength: 1024 minLength: 0 @@ -779,488 +332,165 @@ components: description: The threshold as a percentage of when an ingest budget's capacity usage is logged in the Audit Index. format: int32 example: 85 - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + id: + type: string + description: Unique identifier for the ingest budget. + example: 0000000003343FDD + usageBytes: + type: integer + description: Current usage since the last reset, in bytes. + format: int64 + example: 900 + usageStatus: + pattern: ^(Normal|Approaching|Exceeded|Unknown)$ + type: string + description: Status of the current usage. Can be `Normal`, `Approaching`, `Exceeded`, or `Unknown` (unable to retrieve usage). + example: Approaching + x-pattern-message: must be either `Normal`, `Approaching`, `Exceeded`, or `Unknown` + createdAt: + type: string + description: The creation timestamp in UTC of the Ingest Budget. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: The identifier of the user who created the Ingest Budget. + example: 0000000006743FDD + modifiedAt: + type: string + description: The modified timestamp in UTC of the Ingest Budget. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: The identifier of the user who modified the Ingest Budget. + example: 0000000001243FDD + budgetVersion: + type: integer + description: The version of the Ingest Budget + format: int32 + example: 2 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 x-stackQL-resources: - ingest_budgets_v1: - id: sumologic.ingest_budgets.ingest_budgets_v1 - name: ingest_budgets_v1 - title: Ingest_budgets v1 - methods: - listIngestBudgets: - operation: - $ref: '#/paths/~1v1~1ingestBudgets/get' - response: - mediaType: application/json - openAPIDocKey: '200' - createIngestBudget: - operation: - $ref: '#/paths/~1v1~1ingestBudgets/post' - response: - mediaType: application/json - openAPIDocKey: '200' - getIngestBudget: - operation: - $ref: '#/paths/~1v1~1ingestBudgets~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - updateIngestBudget: - operation: - $ref: '#/paths/~1v1~1ingestBudgets~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - deleteIngestBudget: - operation: - $ref: '#/paths/~1v1~1ingestBudgets~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v1/methods/getIngestBudget' - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v1/methods/listIngestBudgets' - insert: - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v1/methods/createIngestBudget' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v1/methods/deleteIngestBudget' - ingest_budgets_v2: - id: sumologic.ingest_budgets.ingest_budgets_v2 - name: ingest_budgets_v2 - title: Ingest_budgets v2 + ingest_budgets: + id: sumologic.ingest_budgets.ingest_budgets + name: ingest_budgets + title: Ingest Budgets methods: - listIngestBudgetsV2: + list: operation: $ref: '#/paths/~1v2~1ingestBudgets/get' response: mediaType: application/json openAPIDocKey: '200' - createIngestBudgetV2: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1ingestBudgets/post' response: mediaType: application/json openAPIDocKey: '200' - getIngestBudgetV2: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v2~1ingestBudgets~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateIngestBudgetV2: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1ingestBudgets~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteIngestBudgetV2: - operation: - $ref: '#/paths/~1v2~1ingestBudgets~1{id}/delete' - response: + request: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v2/methods/getIngestBudgetV2' - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v2/methods/listIngestBudgetsV2' - insert: - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v2/methods/createIngestBudgetV2' - update: [] + nativeCasing: camel delete: - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v2/methods/deleteIngestBudgetV2' - usage_reset: - id: sumologic.ingest_budgets.usage_reset - name: usage_reset - title: Usage_reset - methods: - resetUsage: operation: - $ref: '#/paths/~1v1~1ingestBudgets~1{id}~1usage~1reset/post' + $ref: '#/paths/~1v2~1ingestBudgets~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' - resetUsageV2: + openAPIDocKey: '204' + request: + nativeCasing: camel + reset_usage: operation: $ref: '#/paths/~1v2~1ingestBudgets~1{id}~1usage~1reset/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - collectors: - id: sumologic.ingest_budgets.collectors - name: collectors - title: Collectors - methods: - getAssignedCollectors: - operation: - $ref: '#/paths/~1v1~1ingestBudgets~1{id}~1collectors/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - assignCollectorToBudget: - operation: - $ref: '#/paths/~1v1~1ingestBudgets~1{id}~1collectors~1{collectorId}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - removeCollectorFromBudget: - operation: - $ref: '#/paths/~1v1~1ingestBudgets~1{id}~1collectors~1{collectorId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/collectors/methods/getAssignedCollectors' - insert: [] - update: [] + - $ref: '#/components/x-stackQL-resources/ingest_budgets/methods/get' + - $ref: '#/components/x-stackQL-resources/ingest_budgets/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/ingest_budgets/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/ingest_budgets/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/collectors/methods/removeCollectorFromBudget' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/ingest_budgets/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - ingest_budgets - description: ingestBudgets - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/log_searches.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/log_searches.yaml index 47db4c2..c7bfaaf 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/log_searches.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/log_searches.yaml @@ -1,4 +1,161 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Log Searches API + description: Saved and scheduled log searches, and estimated usage of a log search across data tiers. + version: 1.0.0 paths: + /v1/logSearches: + get: + tags: + - logSearchesManagement + summary: List all saved log searches. + description: List all saved log searches viewable by the user. + operationId: listLogSearches + parameters: + - name: limit + in: query + description: Limit the number of log searches returned in the response. The number of log searches returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + responses: + '200': + description: Paginated list of log searches under the Personal folder created by the user. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLogSearches' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - logSearchesManagement + summary: Save a log search. + description: Save the log search in the content library. + operationId: createLogSearch + parameters: [] + requestBody: + description: The definition of the saved log search. + content: + application/json: + schema: + $ref: '#/components/schemas/SaveLogSearchRequest' + required: true + responses: + '200': + description: Newly saved log search. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearch' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createLogSearch + /v1/logSearches/{id}: + get: + tags: + - logSearchesManagement + summary: Get the saved log search. + description: Get a saved log search from the content library by identifier. + operationId: getLogSearch + parameters: + - name: id + in: path + description: Identifier of the saved log search. + required: true + schema: + type: string + responses: + '200': + description: Saved log search that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearch' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getLogSearch + put: + tags: + - logSearchesManagement + summary: Update the saved log Search. + description: Update the saved log search with the specified identifier. Partial update is not supported, you must provide values for all fields. + operationId: updateLogSearch + parameters: + - name: id + in: path + description: Identifier of the saved log search. + required: true + schema: + type: string + requestBody: + description: An updated saved log search definition. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchDefinition' + required: true + responses: + '200': + description: The saved log search that was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearch' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateLogSearch + delete: + tags: + - logSearchesManagement + summary: Delete the saved log search. + description: Delete the saved log search from the content library. + operationId: deleteLogSearch + parameters: + - name: id + in: path + description: Identifier of the saved log search. + required: true + schema: + type: string + responses: + '204': + description: The saved log search was successfully deleted. + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteLogSearch /v1/logSearches/estimatedUsage: post: tags: @@ -57,29 +214,86 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/logSearches/estimatedUsageByMeteringType: + post: + tags: + - logSearchesEstimatedUsage + summary: Gets estimated usage details per metering type. + description: | + Gets the estimated volume of data, per metering type, that would be scanned for running a given log search for a given timerange. + operationId: getLogSearchEstimatedUsageByMeteringType + parameters: [] + requestBody: + description: The definition of the log search estimated usage. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV3' + required: true + responses: + '200': + description: Log search information along with its metering type wise estimated usage details. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageByMeteringTypeDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logSearches/estimatedUsageByView: + post: + tags: + - logSearchesEstimatedUsage + summary: Gets estimated usage details per view. + description: | + Gets the estimated volume of data, per view, that would be scanned for running a given log search for a given timerange. + operationId: logSearchesEstimatedUsageByView + parameters: [] + requestBody: + description: The definition of the log search estimated usage. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV3' + required: true + responses: + '200': + description: Log search information along with its view wise estimated usage details. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageByViewDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: - LogSearchEstimatedUsageRequest: - allOf: - - $ref: '#/components/schemas/LogSearchQueryTimeRangeBase' - - required: - - timezone - type: object - properties: - timezone: - type: string - description: | - Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). - example: America/Los_Angeles - LogSearchEstimatedUsageDefinition: - allOf: - - $ref: '#/components/schemas/LogSearchEstimatedUsageRequest' - - required: - - estimatedUsageDetails - type: object - properties: - estimatedUsageDetails: - $ref: '#/components/schemas/EstimatedUsageDetails' + PaginatedLogSearches: + required: + - logSearches + type: object + properties: + logSearches: + type: array + description: List of log searches. + items: + $ref: '#/components/schemas/LogSearch' + warnings: + type: array + description: List of warning messages for invalid log search definitions. + items: + type: string + example: 'Invalid saved search: . Please validate your saved search.' + token: + type: string + description: Next continuation token. `token` is set to null when no more pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc ErrorResponse: required: - errors @@ -100,63 +314,95 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - LogSearchQueryTimeRangeBase: - description: Definition of a log search with query and timerange. - allOf: - - $ref: '#/components/schemas/LogSearchQueryTimeRangeBaseExceptParsingMode' - - type: object - properties: - parsingMode: - type: string - description: |- - Define the parsing mode to scan the JSON format log messages. Possible values are: - 1. `AutoParse` - 2. `Manual` - In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). - example: AutoParse - default: Manual - EstimatedUsageDetails: + SaveLogSearchRequest: type: object - properties: - dataScannedInBytes: - type: integer - description: Amount of data scanned in bytes, to run the query. - format: int64 - example: 114086541 - ErrorDescription: + description: The definition of the log search to save in the content library. required: - - code - - message - type: object + - queryString + - timeRange + - name + - parentId properties: - code: + queryString: + maxLength: 15000 type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - LogSearchQueryTimeRangeBaseExceptParsingMode: + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + name: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()\\]+$ + type: string + description: Name of the item in the content library. + example: Short title + description: + maxLength: 255 + type: string + description: Item description in the content library. + example: Long and detailed description + schedule: + $ref: '#/components/schemas/LogSearchScheduleSyncDefinition' + properties: + maxLength: 65536 + type: string + description: | + Aggregate Results Settings and View configurations, Legends settings, and different visualisation settings overrides. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ "key": "value" }' + parentId: + type: string + description: Identifier of a folder where to save the log search. + example: 000000000000001A + LogSearch: + x-tf-generated-properties: id,parentId,name,description,schedule,queryString,timeRange,runByReceiptTime,queryParameters,parsingMode,intervalTimeType + x-tf-resource-name: LogSearch + type: object + description: Definition of the saved log search with query and timerange. required: - queryString - timeRange - type: object + - name + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id properties: queryString: + maxLength: 15000 type: string description: Query to perform. - example: error | count by _sourceCategory + example: error {{sourceCategory}}| count by _sourceCategory timeRange: $ref: '#/components/schemas/ResolvableTimeRange' runByReceiptTime: @@ -165,459 +411,1086 @@ components: example: false default: false queryParameters: + maxLength: 50 type: array - description: Definition of the query parameters. + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' items: $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' - description: Definition of a log search with query and timerange. - ResolvableTimeRange: - required: - - type - type: object - properties: - type: + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ type: string - description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. - example: - type: BeginBoundedTimeRange - from: - type: RelativeTimeRangeBoundary - relativeTime: '-15m' - discriminator: - propertyName: type - LogSearchQueryParameterSyncDefinitionBase: + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + name: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()\\]+$ + type: string + description: Name of the item in the content library. + example: Short title + description: + maxLength: 255 + type: string + description: Item description in the content library. + example: Long and detailed description + schedule: + $ref: '#/components/schemas/LogSearchScheduleSyncDefinition' + properties: + maxLength: 65536 + type: string + description: | + Aggregate Results Settings and View configurations, Legends settings, and different visualisation settings overrides. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ "key": "value" }' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Identifier of the saved log search. + example: 000000000000001A + parentId: + type: string + description: Identifier of the parent element in the content library, such as folder. + example: 0000000000007D2B + LogSearchDefinition: + type: object + description: Definition of the saved log search with query and timerange. required: - - dataType + - queryString + - timeRange - name - - value - type: object properties: - name: + queryString: + maxLength: 15000 type: string - description: The name of the parameter. - description: + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ type: string - description: A description of the parameter. - dataType: - pattern: ^(NUMBER|STRING|QUERY_FRAGMENT|SEARCH_KEYWORD)$ + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ type: string description: |- - The data type of the parameter. Supported values are: - 1. `NUMBER` - 2. `STRING` - 3. `QUERY_FRAGMENT` - 4. `SEARCH_KEYWORD` - value: + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + name: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()\\]+$ type: string - description: A value for the parameter. Should be compatible with the type set in dataType field. - LogSearchEstimatedUsageRequestV2: - allOf: - - $ref: '#/components/schemas/LogSearchQueryTimeRangeBaseExceptParsingMode' - - required: - - timezone - type: object - properties: - timezone: - type: string - description: | - Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). - example: America/Los_Angeles - LogSearchEstimatedUsageByTierDefinition: - allOf: - - $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV2' - - required: - - estimatedUsageDetails - type: object - properties: - estimatedUsageDetails: - type: array - items: - $ref: '#/components/schemas/EstimatedUsageDetailsWithTier' - EstimatedUsageDetailsWithTier: + description: Name of the item in the content library. + example: Short title + description: + maxLength: 255 + type: string + description: Item description in the content library. + example: Long and detailed description + schedule: + $ref: '#/components/schemas/LogSearchScheduleSyncDefinition' + properties: + maxLength: 65536 + type: string + description: | + Aggregate Results Settings and View configurations, Legends settings, and different visualisation settings overrides. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ "key": "value" }' + LogSearchEstimatedUsageRequest: + description: Definition of the saved log search with query and timerange. + required: + - queryString + - timeRange + - timezone type: object properties: - tier: + queryString: + maxLength: 15000 type: string - description: Name of the data tier. Supported Values are Continuous, Frequent, Infrequent - example: Continuous - dataScannedInBytes: - type: integer - description: Amount of data scanned in bytes, to run the query. - format: int64 - example: 114086541 - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} - x-stackQL-resources: + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + LogSearchEstimatedUsageDefinition: + description: Definition of the saved log search with query and timerange. + required: + - queryString + - timeRange + - timezone + - estimatedUsageDetails + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + estimatedUsageDetails: + $ref: '#/components/schemas/EstimatedUsageDetails' + LogSearchEstimatedUsageRequestV2: + required: + - queryString + - timeRange + - timezone + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + description: Definition of the saved log search with query and timerange. + LogSearchEstimatedUsageByTierDefinition: + required: + - queryString + - timeRange + - timezone + - estimatedUsageDetails + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + estimatedUsageDetails: + type: array + items: + $ref: '#/components/schemas/EstimatedUsageDetailsWithTier' + description: Definition of the saved log search with query and timerange. + LogSearchEstimatedUsageRequestV3: + description: Definition of the log search with query and timerange. + required: + - queryString + - timeRange + - timezone + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + emulateSearchContext: + $ref: '#/components/schemas/EmulateSearchContext' + LogSearchEstimatedUsageByMeteringTypeDefinition: + description: Definition of the log search with query and timerange. + required: + - queryString + - timeRange + - timezone + - estimatedUsageDetails + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + emulateSearchContext: + $ref: '#/components/schemas/EmulateSearchContext' + estimatedUsageDetails: + type: array + items: + $ref: '#/components/schemas/EstimatedUsageDetailsWithMeteringType' + LogSearchEstimatedUsageByViewDefinition: + description: Definition of the log search with query and timerange. + required: + - queryString + - timeRange + - timezone + - estimatedUsageDetails + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + emulateSearchContext: + $ref: '#/components/schemas/EmulateSearchContext' + estimatedUsageDetails: + type: array + items: + $ref: '#/components/schemas/EstimatedUsageDetailsPerView' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + LogSearchQueryTimeRangeBase: + description: Definition of the saved log search with query and timerange. + required: + - queryString + - timeRange + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + LogSearchScheduleSyncDefinition: + required: + - parseableTimeRange + - scheduleType + - timeZone + type: object + properties: + cronExpression: + type: string + description: Cron-like expression specifying the search's schedule. Field scheduleType must be set to "Custom", otherwise, scheduleType takes precedence over cronExpression. + example: 0 0/15 * * * ? * + displayableTimeRange: + type: string + description: A human-friendly text describing the query time range. For e.g. "-2h", "last three days", "team default time". This value can not be set via API. + example: '-2h' + parseableTimeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + timeZone: + type: string + description: Time zone identifier for time specification. Either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used. The GMT time zone is chosen if the given time zone cannot be identified. + threshold: + $ref: '#/components/schemas/LogSearchNotificationThresholdSyncDefinition' + notification: + $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + scheduleType: + pattern: ^(RealTime|15Minutes|1Hour|2Hours|4Hours|6Hours|8Hours|12Hours|1Day|1Week|Custom)$ + type: string + description: |- + Run schedule of the scheduled search. Set to "Custom" to specify the schedule with a CRON expression.Please note that with Custom, 1Day and 1Week schedule types you need to provide the corresponding cron expression to determine when to actually run the search. e.g. Sample Valid Cron for 1Day is "0 0 16 ? * 2-6 *". Possible schedule types are: + - `RealTime` + - `15Minutes` + - `1Hour` + - `2Hours` + - `4Hours` + - `6Hours` + - `8Hours` + - `12Hours` + - `1Day` + - `1Week` + - `Custom` + muteErrorEmails: + type: boolean + description: If enabled, emails are not sent out in case of errors with the search. + parameters: + maxLength: 50 + type: array + description: 'A list of scheduled search template parameters to be used while executing the query. This is different from the queryParameters field in parent object as this field will be used for execution as per the schedule. The parent object field is for search itself, not part of execution. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/ScheduleSearchParameterSyncDefinition' + notifications: + type: array + description: List of notification actions for this schedule. Mutually exclusive with 'notification' — exactly one of these fields must be provided. Sending both or neither returns a 400 error. Supports multiple notification channels (e.g., email and webhook) for a single scheduled search execution. + items: + $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + description: Schedule definition for a log search. Exactly one of 'notification' (single notification) or 'notifications' (multiple notification actions) must be provided. Sending both or neither will result in a 400 error. + EstimatedUsageDetails: + type: object + properties: + dataScannedInBytes: + type: integer + description: Amount of data scanned in bytes, to run the query. + format: int64 + example: 114086541 + LogSearchQueryTimeRangeBaseExceptParsingMode: + required: + - queryString + - timeRange + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + description: Definition of the saved log search with query and timerange. + EstimatedUsageDetailsWithTier: + type: object + properties: + tier: + type: string + description: Name of the data tier. Supported Values are Continuous, Frequent, Infrequent + example: Continuous + dataScannedInBytes: + type: integer + description: Amount of data scanned in bytes, to run the query. + format: int64 + example: 114086541 + LogSearchQueryEstimationQueryDefinition: + description: Definition of the log search with query and timerange. + required: + - queryString + - timeRange + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + EmulateSearchContext: + type: object + properties: + roleIds: + type: array + description: List of role IDs to emulate the search context for. + example: + - 000000000000000C + items: + type: string + userId: + type: string + description: User ID to emulate the search context for. + example: 000000000000019F + description: | + Contains keys like "roleIds" with a list of role IDs or "userId" as a string. + EstimatedUsageDetailsWithMeteringType: + type: object + properties: + meteringType: + type: string + description: | + Name of the metering type. Metering type indicates how the data scanned within a particular data tier is actually metered and billed. Supported Values are Continuous, Frequent, Infrequent, ContinuousSecurity and FlexSecurity. + example: Continuous + dataScannedInBytes: + type: integer + description: Amount of data scanned in bytes, to run the query. + format: int64 + example: 114086541 + tier: + type: string + description: Name of the data tier. Supported Values are Continuous, Frequent, Infrequent and Flex. + example: Continuous + scanCreditAccounted: + type: boolean + description: | + Whether particular metering type is accounted against a customer's credit on a per scan basis. e.g Data belonging to "Flex" and "Infrequent" metering type is accounted for credits on per scan basis. For other metering types, eg. "Continuous" it's charged upfront during ingestion. + example: false + description: Estimated Usage details for the given log search query with the above timerange. + EstimatedUsageDetailsPerView: + required: + - usageDetails + - viewName + type: object + properties: + viewName: + type: string + description: Name of the view for which usage is estimated. + usageDetails: + type: array + description: The scanning and data retrieval usages to run the query per view. + items: + $ref: '#/components/schemas/EstimatedUsageDetailsWithMeteringType' + LogSearchQueryParsingMode: + type: object + properties: + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + description: Definition of log search parsing mode + ResolvableTimeRange: + required: + - type + type: object + properties: + type: + type: string + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. + example: + type: BeginBoundedTimeRange + from: + type: RelativeTimeRangeBoundary + relativeTime: '-15m' + discriminator: + propertyName: type + LogSearchNotificationThresholdSyncDefinition: + required: + - count + - operator + type: object + properties: + thresholdType: + pattern: ^(message|group)$ + type: string + description: |- + This property is deprecated. The system will automatically infer the value of this field from the query going forward, so the user-specified value will no longer be honored. + Threshold type. Possible values are: + 1. `message` + 2. `group` + + Use `group` as threshold type if the search query is of aggregate type. For non-aggregate queries, set it to `message`. + operator: + pattern: ^(eq|gt|ge|lt|le)$ + type: string + description: |- + Criterion to be applied when comparing actual result count with expected count. Possible values are: + 1. `eq` + 2. `gt` + 3. `ge` + 4. `lt` + 5. `le` + count: + type: integer + description: Expected result count. + ScheduleNotificationSyncDefinition: + required: + - taskType + type: object + properties: + taskType: + type: string + description: Delivery channel for notifications. + discriminator: + propertyName: taskType + ScheduleSearchParameterSyncDefinition: + required: + - name + - value + type: object + properties: + name: + maxLength: 60 + type: string + description: Name of scheduled search parameter. + value: + maxLength: 300 + type: string + description: Value of scheduled search parameter. + LogSearchQueryParameterSyncDefinitionBase: + required: + - dataType + - name + - value + type: object + properties: + autoComplete: + $ref: '#/components/schemas/AutoCompleteDefinition' + name: + maxLength: 50 + pattern: ^[a-zA-Z0-9_]+$ + type: string + description: The name of the parameter. + example: sourceCategory + x-pattern-message: Name must be between 1 and 50 Characters. Can only consist alphanumeric and underscore characters. + description: + maxLength: 256 + pattern: ^[a-zA-Z0-9@ \-_\.]+$ + type: string + description: A description of the parameter. + example: source category for the string + x-pattern-message: Description must be between 1 and 256 Characters. Can only consist alphanumeric, @, underscore and dash characters. + dataType: + pattern: ^(NUMBER|STRING|ANY|KEYWORD)$ + type: string + description: |- + The data type of the parameter. Supported values are: + 1. `NUMBER` + 2. `STRING` + 3. `ANY` + 4. `KEYWORD` + example: STRING + value: + maxLength: 256 + type: string + description: A value for the parameter. Should be compatible with the type set in dataType field. + example: apache + LogSearchQueryEstimationBaseDefinition: + required: + - queryString + - timeRange + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + description: Base definition of the log search with query and timerange (without runByReceiptTime). + AutoCompleteDefinition: + required: + - type + type: object + properties: + type: + type: string + description: The autocomplete parameter type. + example: SKIP_AUTOCOMPLETE + autoCompleteKey: + type: string + description: The autocomplete key to be used to fetch autocomplete values. + example: Ephemeral-3644138589235809747-1583470806220-parameter + autoCompleteValues: + type: array + description: The array of label-value pairs for autocomplete. + items: + $ref: '#/components/schemas/AutoCompleteValueSyncDefinition' + lookupMetaData: + $ref: '#/components/schemas/AutoCompleteLookupMetaData' + AutoCompleteValueSyncDefinition: + required: + - label + - value + type: object + properties: + label: + type: string + description: The label of the autocomplete value. + value: + type: string + description: The value of the autocomplete value. + AutoCompleteLookupMetaData: + type: object + properties: + fileName: + type: string + description: The lookup file name to use as a source for autocomplete values. + example: users.csv + valueColumn: + type: string + description: The column from the lookup file to use as the value. + example: user_id + labelColumn: + type: string + description: The column from the lookup file to use as the label. + example: user_name + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + x-stackQL-resources: + log_searches: + id: sumologic.log_searches.log_searches + name: log_searches + title: Log Searches + methods: + list: + operation: + $ref: '#/paths/~1v1~1logSearches/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.logSearches + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: token + location: body + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1logSearches/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1logSearches~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1logSearches~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1logSearches~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/log_searches/methods/get' + - $ref: '#/components/x-stackQL-resources/log_searches/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/log_searches/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/log_searches/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/log_searches/methods/delete' + replace: [] estimated_usage: id: sumologic.log_searches.estimated_usage name: estimated_usage - title: Estimated_usage + title: Estimated Usage methods: - getLogSearchEstimatedUsage: + estimate: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1logSearches~1estimatedUsage/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - estimated_usage_by_tier: - id: sumologic.log_searches.estimated_usage_by_tier - name: estimated_usage_by_tier - title: Estimated_usage_by_tier - methods: - getLogSearchEstimatedUsageByTier: + request: + mediaType: application/json + nativeCasing: camel + estimate_by_tier: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1logSearches~1estimatedUsageByTier/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + estimate_by_metering_type: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1logSearches~1estimatedUsageByMeteringType/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + estimate_by_view: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1logSearches~1estimatedUsageByView/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: [] insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - log_searches - description: logSearches - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/logs_data_forwarding.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/logs_data_forwarding.yaml index 0fb9782..82993a5 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/logs_data_forwarding.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/logs_data_forwarding.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Logs Data Forwarding API + description: Log data forwarding destinations (AWS S3) and forwarding rules per partition. + version: 1.0.0 paths: /v1/logsDataForwarding/destinations: get: @@ -63,7 +68,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-create: createDataForwardingDestination /v1/logsDataForwarding/destinations/{id}: get: tags: @@ -92,7 +96,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-read: getDataForwardingDestination put: tags: - logsDataForwardingManagement @@ -127,7 +130,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-update: updateDataForwardingDestination delete: tags: - logsDataForwardingManagement @@ -151,7 +153,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-delete: deleteDataForwardingDestination /v1/logsDataForwarding/rules: get: tags: @@ -216,7 +217,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-create: createDataForwardingRuleTF /v1/logsDataForwarding/rules/{indexId}: get: tags: @@ -245,7 +245,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-read: getDataForwardingRuleTF put: tags: - logsDataForwardingManagement @@ -280,7 +279,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-update: updateDataForwardingRuleTF delete: tags: - logsDataForwardingManagement @@ -304,7 +302,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-delete: deleteDataForwardingRuleTF components: schemas: GetDataForwardingDestinations: @@ -339,65 +336,110 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - BucketDefinition: - allOf: - - $ref: '#/components/schemas/CreateBucketDefinition' - - $ref: '#/components/schemas/MetadataModel' - - required: - - bucketName - - destinationName - - id - properties: - id: - type: string - description: The unique identifier of the data forwarding destination. - example: '1' - invalidatedBySystem: - type: boolean - description: True if invalidated by the system. - x-tf-generated-properties: id,bucketName,destinationName,description,authenticationMode,accessKeyId,secretAccessKey,roleArn,region,encrypted,enabled - x-tf-resource-name: DataForwardingDestination - ErrorDescription: - required: - - code - - message + CreateBucketDefinition: type: object + required: + - authenticationMode + - bucketName + - destinationName properties: - code: + destinationName: type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + description: Name of the S3 data forwarding destination. + example: df-destination + description: type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: Description of the S3 data forwarding destination. + authenticationMode: type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - CreateBucketDefinition: - allOf: - - $ref: '#/components/schemas/UpdateBucketDefinition' - - $ref: '#/components/schemas/CreateBucketDefinitionItems' - MetadataModel: + description: 'AWS IAM authentication method used for access. Possible values are: 1. `AccessKey` 2. `RoleBased`' + example: RoleBased + accessKeyId: + type: string + description: The AWS Access ID to access the S3 bucket. + example: accessKeyId + secretAccessKey: + type: string + description: The AWS Secret Key to access the S3 bucket. + example: secretAccessKey + roleArn: + type: string + description: The AWS Role ARN to access the S3 bucket. + example: roleArn + region: + type: string + description: The region where the S3 bucket is located. + example: us-east-1 + encrypted: + type: boolean + description: Enable S3 server-side encryption. + enabled: + type: boolean + description: True if the destination is Active. + example: true + bucketName: + pattern: (?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-.]{1,61}[a-z0-9]$ + type: string + description: The name of the Amazon S3 bucket. + example: df-bucket + x-pattern-message: Must be a valid AWS S3 Bucket name. + BucketDefinition: + type: object required: + - authenticationMode + - bucketName + - destinationName - createdAt - createdBy - modifiedAt - modifiedBy - type: object + - id properties: + destinationName: + type: string + description: Name of the S3 data forwarding destination. + example: df-destination + description: + type: string + description: Description of the S3 data forwarding destination. + authenticationMode: + type: string + description: 'AWS IAM authentication method used for access. Possible values are: 1. `AccessKey` 2. `RoleBased`' + example: RoleBased + accessKeyId: + type: string + description: The AWS Access ID to access the S3 bucket. + example: accessKeyId + secretAccessKey: + type: string + description: The AWS Secret Key to access the S3 bucket. + example: secretAccessKey + roleArn: + type: string + description: The AWS Role ARN to access the S3 bucket. + example: roleArn + region: + type: string + description: The region where the S3 bucket is located. + example: us-east-1 + encrypted: + type: boolean + description: Enable S3 server-side encryption. + enabled: + type: boolean + description: True if the destination is Active. + example: true + bucketName: + pattern: (?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-.]{1,61}[a-z0-9]$ + type: string + description: The name of the Amazon S3 bucket. + example: df-bucket + x-pattern-message: Must be a valid AWS S3 Bucket name. createdAt: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -406,11 +448,18 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 + id: + type: string + description: The unique identifier of the data forwarding destination. + example: '1' + invalidatedBySystem: + type: boolean + description: True if invalidated by the system. UpdateBucketDefinition: required: - authenticationMode @@ -450,19 +499,6 @@ components: type: boolean description: True if the destination is Active. example: true - CreateBucketDefinitionItems: - required: - - authenticationMode - - bucketName - - destinationName - type: object - properties: - bucketName: - pattern: (?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$ - type: string - description: The name of the Amazon S3 bucket. - example: df-bucket - x-pattern-message: Must be a valid AWS S3 Bucket name. GetRulesAndBucketsResult: type: object properties: @@ -475,31 +511,108 @@ components: type: string description: Next continuation token. example: VEZuRU4veXF2UWFCUURYSDNQUzJxWlpRRUsvTlBieXA - RuleAndBucketDetail: - allOf: - - $ref: '#/components/schemas/DataForwardingRule' - - type: object - properties: - bucket: - $ref: '#/components/schemas/logs-data-forwarding-rule-management' + CreateDataForwardingRule: + required: + - destinationId + - indexId + type: object + properties: + indexId: + type: string + description: The `id` of the Partition or Scheduled View the rule applies to. + example: '1' + destinationId: + type: string + description: The data forwarding destination id. + example: '1' + enabled: + type: boolean + description: True when the data forwarding rule is enabled. + example: true + fileFormat: + type: string + description: Specify the path prefix to a directory in the S3 bucket and how to format the file name. + example: '{index}_{day}_{hour}_{minute}_{second}' + payloadSchema: + pattern: ^(builtInFields|allFields|raw)$ + type: string + description: Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. + example: builtInFields + x-pattern-message: 'should be one of the following: ''builtInFields'', ''allFields'' or ''raw''' + format: + pattern: ^(csv|json|text)$ + type: string + description: Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. + example: csv + x-pattern-message: 'should be one of the following: ''csv'', ''json'' or ''text''' DataForwardingRule: - allOf: - - $ref: '#/components/schemas/CreateDataForwardingRule' - - $ref: '#/components/schemas/MetadataModel' - - type: object - properties: - id: - type: string - description: The unique identifier of the data forwarding rule. - example: '1' - x-tf-generated-properties: id - x-tf-resource-name: DataForwardingRule - logs-data-forwarding-rule-management: + required: + - destinationId + - indexId + - createdAt + - createdBy + - modifiedAt + - modifiedBy type: object - CreateDataForwardingRule: + properties: + indexId: + type: string + description: The `id` of the Partition or Scheduled View the rule applies to. + example: '1' + destinationId: + type: string + description: The data forwarding destination id. + example: '1' + enabled: + type: boolean + description: True when the data forwarding rule is enabled. + example: true + fileFormat: + type: string + description: Specify the path prefix to a directory in the S3 bucket and how to format the file name. + example: '{index}_{day}_{hour}_{minute}_{second}' + payloadSchema: + pattern: ^(builtInFields|allFields|raw)$ + type: string + description: Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. + example: builtInFields + x-pattern-message: 'should be one of the following: ''builtInFields'', ''allFields'' or ''raw''' + format: + pattern: ^(csv|json|text)$ + type: string + description: Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. + example: csv + x-pattern-message: 'should be one of the following: ''csv'', ''json'' or ''text''' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: The unique identifier of the data forwarding rule. + example: '1' + RuleAndBucketDetail: required: - destinationId - indexId + - createdAt + - createdBy + - modifiedAt + - modifiedBy type: object properties: indexId: @@ -519,19 +632,41 @@ components: description: Specify the path prefix to a directory in the S3 bucket and how to format the file name. example: '{index}_{day}_{hour}_{minute}_{second}' payloadSchema: - pattern: ^(default|builtInFields|allFields)$ + pattern: ^(builtInFields|allFields|raw)$ type: string - description: Schema for the payload. - example: default - default: default - x-pattern-message: 'should be one of the following: ''default'', ''builtInFields'', or ''allFields''' + description: Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. + example: builtInFields + x-pattern-message: 'should be one of the following: ''builtInFields'', ''allFields'' or ''raw''' format: - pattern: ^(csv|raw|json)$ + pattern: ^(csv|json|text)$ type: string - description: Format of the payload. + description: Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. example: csv - default: csv - x-pattern-message: 'should be one of the following: ''csv'', ''raw'', or ''json''' + x-pattern-message: 'should be one of the following: ''csv'', ''json'' or ''text''' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: The unique identifier of the data forwarding rule. + example: '1' + bucket: + $ref: '#/components/schemas/logs-data-forwarding-rule-management' UpdateDataForwardingRule: type: object properties: @@ -548,448 +683,255 @@ components: description: Specify the path prefix to a directory in the S3 bucket and how to format the file name. example: '{index}_{day}_{hour}_{minute}_{second}' payloadSchema: - pattern: ^(default|builtInFields|allFields)$ + pattern: ^(builtInFields|allFields|raw)$ type: string - description: Schema for the payload. - example: default - default: default - x-pattern-message: 'should be one of the following: ''default'', ''builtInFields'', or ''allFields''' + description: Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. + example: builtInFields + x-pattern-message: 'should be one of the following: ''builtInFields'', ''allFields'' or ''raw''' format: - pattern: ^(csv|raw|json)$ + pattern: ^(csv|json|text)$ type: string - description: Format of the payload. + description: Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. example: csv - default: csv - x-pattern-message: 'should be one of the following: ''csv'', ''raw'', or ''json''' - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + x-pattern-message: 'should be one of the following: ''csv'', ''json'' or ''text''' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + CreateBucketDefinitionItems: + required: + - authenticationMode + - bucketName + - destinationName + type: object + properties: + bucketName: + pattern: (?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-.]{1,61}[a-z0-9]$ + type: string + description: The name of the Amazon S3 bucket. + example: df-bucket + x-pattern-message: Must be a valid AWS S3 Bucket name. + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + logs-data-forwarding-rule-management: + type: string + description: (opaque JSON object) x-stackQL-resources: destinations: id: sumologic.logs_data_forwarding.destinations name: destinations title: Destinations methods: - getDataForwardingBuckets: + list: operation: $ref: '#/paths/~1v1~1logsDataForwarding~1destinations/get' response: mediaType: application/json openAPIDocKey: '200' - createDataForwardingBucket: + objectKey: $.data + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: nextToken + location: body + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1logsDataForwarding~1destinations/post' response: mediaType: application/json openAPIDocKey: '200' - getDataForwardingDestination: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1logsDataForwarding~1destinations~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - UpdateDataForwardingBucket: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1logsDataForwarding~1destinations~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteDataForwardingBucket: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1logsDataForwarding~1destinations~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/destinations/methods/getDataForwardingDestination' - - $ref: '#/components/x-stackQL-resources/destinations/methods/getDataForwardingBuckets' + - $ref: '#/components/x-stackQL-resources/destinations/methods/get' + - $ref: '#/components/x-stackQL-resources/destinations/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/destinations/methods/createDataForwardingBucket' - update: [] + - $ref: '#/components/x-stackQL-resources/destinations/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/destinations/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/destinations/methods/deleteDataForwardingBucket' + - $ref: '#/components/x-stackQL-resources/destinations/methods/delete' + replace: [] rules: id: sumologic.logs_data_forwarding.rules name: rules title: Rules methods: - getRulesAndBuckets: + list: operation: $ref: '#/paths/~1v1~1logsDataForwarding~1rules/get' response: mediaType: application/json openAPIDocKey: '200' - createDataForwardingRule: + objectKey: $.data + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: nextToken + location: body + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1logsDataForwarding~1rules/post' response: mediaType: application/json openAPIDocKey: '200' - getDataForwardingRule: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1logsDataForwarding~1rules~1{indexId}/get' response: mediaType: application/json openAPIDocKey: '200' - updateDataForwardingRule: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1logsDataForwarding~1rules~1{indexId}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteDataForwardingRule: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1logsDataForwarding~1rules~1{indexId}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/rules/methods/getDataForwardingRule' - - $ref: '#/components/x-stackQL-resources/rules/methods/getRulesAndBuckets' + - $ref: '#/components/x-stackQL-resources/rules/methods/get' + - $ref: '#/components/x-stackQL-resources/rules/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/rules/methods/createDataForwardingRule' - update: [] + - $ref: '#/components/x-stackQL-resources/rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/rules/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/rules/methods/deleteDataForwardingRule' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/rules/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - logs_data_forwarding - description: logsDataForwarding - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/lookup_tables.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/lookup_tables.yaml index 7aba097..d2eea60 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/lookup_tables.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/lookup_tables.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Lookup Tables API + description: Lookup tables, their rows, file uploads and the asynchronous lookup jobs. + version: 1.0.0 paths: /v1/lookupTables: post: @@ -6,8 +11,8 @@ paths: summary: Create a lookup table. description: |- Create a new lookup table by providing a schema and specifying its configuration. Providing parentFolderId - is mandatory. Use the [getItemByPath] endpoint to get content id of a path. - Please check [Content management API] and [Folder management API] for all available options. + is mandatory. Use the getItemByPath endpoint to get content id of a path. + Please check Content management API and Folder management API for all available options. operationId: createTable parameters: [] requestBody: @@ -132,7 +137,7 @@ paths: example: 0000000001C41EE4 - name: merge in: query - description: This indicates whether the file contents will be merged with existing data in the lookup table or not. If this is true then data with the same primary keys will be updated while the rest of the rows will be appended. By default, merge is false. The response includes a request identifier that you need to use in the [Request Status API] to track the status of the upload request. + description: This indicates whether the file contents will be merged with existing data in the lookup table or not. If this is true then data with the same primary keys will be updated while the rest of the rows will be appended. By default, merge is false. The response includes a request identifier that you need to use in the Request Status API to track the status of the upload request. schema: type: boolean example: true @@ -299,66 +304,11 @@ components: required: - name - parentFolderId - description: Definition of the lookup table. - allOf: - - $ref: '#/components/schemas/ExportableLookupTableInfo' - - properties: - name: - maxLength: 255 - type: string - description: The name of the lookup table. - example: SampleLookupTable - parentFolderId: - type: string - description: The parent-folder-path identifier of the lookup table in the Library. - example: 0000000001C41EE4 - LookupTable: - required: - - id - description: Lookup table definition and metadata. - allOf: - - $ref: '#/components/schemas/MetadataModel' - - $ref: '#/components/schemas/LookupTableDefinition' - - properties: - id: - type: string - description: Identifier of the lookup table as a content item. - example: 0000000001C41EE4 - contentPath: - type: string - description: 'Address/path of the parent folder of this lookup table in content library. For example, a lookup table existing in the personal/lookupTable folder for user johndoe would be: /Library/Users/johndoe@acme.com/lookupTable' - example: /Library/Users/johndoe@acme.com/lookupTable - size: - type: integer - description: The current size of the lookup table in bytes - format: int64 - example: 100 - ErrorResponse: - required: - - errors - - id - type: object - properties: - id: - type: string - description: An identifier for the error; this is unique to the specific API request. - example: IUUQI-DGH5I-TJ045 - errors: - type: array - description: A list of one or more causes of the error. - example: - - code: auth:password_too_short - message: Your password was too short. - - code: auth:password_character_classes - message: Your password did not contain any non-alphanumeric characters - items: - $ref: '#/components/schemas/ErrorDescription' - ExportableLookupTableInfo: - required: - description - fields - primaryKeys type: object + description: Definition of the lookup table. properties: description: maxLength: 1000 @@ -395,20 +345,35 @@ components: example: DeleteOldData default: StopIncomingMessages x-pattern-message: must be either `StopIncomingMessages` or `DeleteOldData` - description: The lookup table definition independent of its location in the Library and name. - MetadataModel: + name: + maxLength: 255 + type: string + description: The name of the lookup table. + example: SampleLookupTable + parentFolderId: + type: string + description: The parent-folder-path identifier of the lookup table in the Library. + example: 0000000001C41EE4 + LookupTable: required: + - id - createdAt - createdBy - modifiedAt - modifiedBy + - name + - parentFolderId + - description + - fields + - primaryKeys type: object + description: Lookup table definition and metadata. properties: createdAt: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -417,58 +382,88 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 - ErrorDescription: - required: - - code - - message - type: object - properties: - code: + description: + maxLength: 1000 type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + description: The description of the lookup table. + example: This is a sample lookup table description. + fields: + minItems: 1 + type: array + description: The list of fields in the lookup table. + items: + $ref: '#/components/schemas/LookupTableField' + primaryKeys: + minItems: 1 + uniqueItems: true + type: array + description: The names of the fields that make up the primary key for the lookup table. These will be a subset of the fields that the table will contain. + example: + - FieldName1 + items: + type: string + ttl: + maximum: 525600 + minimum: 0 + type: integer + description: A time to live for each entry in the lookup table (in minutes). 365 days is the maximum time to live for each entry that you can specify. Setting it to 0 means that the records will not expire automatically. + format: int32 + example: 100 + default: 0 + sizeLimitAction: + pattern: ^(StopIncomingMessages|DeleteOldData)$ type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: The action that needs to be taken when the size limit is reached for the table. The possible values can be `StopIncomingMessages` or `DeleteOldData`. DeleteOldData will start deleting old data once size limit is reached whereas StopIncomingMessages will discard all the updates made to the lookup table once size limit is reached. + example: DeleteOldData + default: StopIncomingMessages + x-pattern-message: must be either `StopIncomingMessages` or `DeleteOldData` + name: + maxLength: 255 type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - LookupTableField: + description: The name of the lookup table. + example: SampleLookupTable + parentFolderId: + type: string + description: The parent-folder-path identifier of the lookup table in the Library. + example: 0000000001C41EE4 + id: + type: string + description: Identifier of the lookup table as a content item. + example: 0000000001C41EE4 + contentPath: + type: string + description: 'Address/path of the parent folder of this lookup table in content library. For example, a lookup table existing in the personal/lookupTable folder for user johndoe would be: /Library/Users/johndoe@acme.com/lookupTable' + example: /Library/Users/johndoe@acme.com/lookupTable + size: + type: integer + description: The current size of the lookup table in bytes + format: int64 + example: 100 + ErrorResponse: required: - - fieldName - - fieldType + - errors + - id type: object properties: - fieldName: - type: string - description: The name of the field. - example: FieldName1 - fieldType: - pattern: ^(boolean|int|long|double|string)$ + id: type: string - description: |- - The data type of the field. Supported types: - - `boolean` - - `int` - - `long` - - `double` - - `string` - example: boolean - x-pattern-message: 'must be one of the following: `boolean`, `int`, `long`, `double`, `string`' - description: The definition of the field. + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' LookupUpdateDefinition: required: - description @@ -567,13 +562,130 @@ components: type: string description: Creation time of this job in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedAt: type: string description: Timestamp in UTC when status was last updated. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' description: Lookup table async job status. + RowUpdateDefinition: + required: + - row + type: object + properties: + row: + maxItems: 1000 + type: array + description: A list of all the field identifiers and their corresponding values. + items: + $ref: '#/components/schemas/TableRow' + description: Lookup table data to be uploaded. + RowDeleteDefinition: + required: + - primaryKey + type: object + properties: + primaryKey: + maxItems: 1000 + type: array + description: A list of all the primary key field identifiers and their corresponding values which defines the row to delete. + items: + $ref: '#/components/schemas/TableRow' + description: Lookup table primary key of the row to be deleted. + ExportableLookupTableInfo: + required: + - description + - fields + - primaryKeys + type: object + properties: + description: + maxLength: 1000 + type: string + description: The description of the lookup table. + example: This is a sample lookup table description. + fields: + minItems: 1 + type: array + description: The list of fields in the lookup table. + items: + $ref: '#/components/schemas/LookupTableField' + primaryKeys: + minItems: 1 + uniqueItems: true + type: array + description: The names of the fields that make up the primary key for the lookup table. These will be a subset of the fields that the table will contain. + example: + - FieldName1 + items: + type: string + ttl: + maximum: 525600 + minimum: 0 + type: integer + description: A time to live for each entry in the lookup table (in minutes). 365 days is the maximum time to live for each entry that you can specify. Setting it to 0 means that the records will not expire automatically. + format: int32 + example: 100 + default: 0 + sizeLimitAction: + pattern: ^(StopIncomingMessages|DeleteOldData)$ + type: string + description: The action that needs to be taken when the size limit is reached for the table. The possible values can be `StopIncomingMessages` or `DeleteOldData`. DeleteOldData will start deleting old data once size limit is reached whereas StopIncomingMessages will discard all the updates made to the lookup table once size limit is reached. + example: DeleteOldData + default: StopIncomingMessages + x-pattern-message: must be either `StopIncomingMessages` or `DeleteOldData` + description: The lookup table definition independent of its location in the Library and name. + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 warningDescription: required: - message @@ -588,18 +700,6 @@ components: description: An optional cause of this warning. example: Primary key values were duplicate. description: Warning description - RowUpdateDefinition: - required: - - row - type: object - properties: - row: - maxItems: 1000 - type: array - description: A list of all the field identifiers and their corresponding values. - items: - $ref: '#/components/schemas/TableRow' - description: Lookup table data to be uploaded. TableRow: required: - columnName @@ -615,475 +715,160 @@ components: description: Value of the specified column. example: user1 description: Lookup table row column and column value. - RowDeleteDefinition: + LookupTableField: required: - - primaryKey + - fieldName + - fieldType type: object properties: - primaryKey: - maxItems: 1000 - type: array - description: A list of all the primary key field identifiers and their corresponding values which defines the row to delete. - items: - $ref: '#/components/schemas/TableRow' - description: Lookup table primary key of the row to be deleted. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + fieldName: + type: string + description: The name of the field. + example: FieldName1 + fieldType: + pattern: ^(boolean|int|long|double|string)$ + type: string + description: |- + The data type of the field. Supported types: + - `boolean` + - `int` + - `long` + - `double` + - `string` + example: boolean + x-pattern-message: 'must be one of the following: `boolean`, `int`, `long`, `double`, `string`' + description: The definition of the field. x-stackQL-resources: lookup_tables: id: sumologic.lookup_tables.lookup_tables name: lookup_tables - title: Lookup_tables + title: Lookup Tables methods: - createTable: + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1lookupTables/post' response: mediaType: application/json openAPIDocKey: '200' - lookupTableById: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1lookupTables~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateTable: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1lookupTables~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteTable: - operation: - $ref: '#/paths/~1v1~1lookupTables~1{id}/delete' - response: + request: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: '#/components/x-stackQL-resources/lookup_tables/methods/createTable' - update: [] + nativeCasing: camel delete: - - $ref: '#/components/x-stackQL-resources/lookup_tables/methods/deleteTable' - upload: - id: sumologic.lookup_tables.upload - name: upload - title: Upload - methods: - uploadFile: operation: - $ref: '#/paths/~1v1~1lookupTables~1{id}~1upload/post' + $ref: '#/paths/~1v1~1lookupTables~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - jobs_status: - id: sumologic.lookup_tables.jobs_status - name: jobs_status - title: Jobs_status - methods: - requestJobStatus: + openAPIDocKey: '204' + request: + nativeCasing: camel + truncate: operation: - $ref: '#/paths/~1v1~1lookupTables~1jobs~1{jobId}~1status/get' + $ref: '#/paths/~1v1~1lookupTables~1{id}~1truncate/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - truncate: - id: sumologic.lookup_tables.truncate - name: truncate - title: Truncate - methods: - truncateTable: + upsert_row: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1lookupTables~1{id}~1truncate/post' + $ref: '#/paths/~1v1~1lookupTables~1{id}~1row/put' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - row: - id: sumologic.lookup_tables.row - name: row - title: Row - methods: - updateTableRow: + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel + delete_row: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1lookupTables~1{id}~1row/put' + $ref: '#/paths/~1v1~1lookupTables~1{id}~1deleteTableRow/put' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - delete_table_row: - id: sumologic.lookup_tables.delete_table_row - name: delete_table_row - title: Delete_table_row + select: + - $ref: '#/components/x-stackQL-resources/lookup_tables/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/lookup_tables/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/lookup_tables/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/lookup_tables/methods/delete' + replace: [] + jobs: + id: sumologic.lookup_tables.jobs + name: jobs + title: Jobs methods: - deleteTableRow: + get: operation: - $ref: '#/paths/~1v1~1lookupTables~1{id}~1deleteTableRow/put' + $ref: '#/paths/~1v1~1lookupTables~1jobs~1{jobId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/jobs/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - lookup_tables - description: lookupTables - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/macros.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/macros.yaml new file mode 100644 index 0000000..11dafa3 --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/macros.yaml @@ -0,0 +1,466 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Macros API + description: Search macros. + version: 1.0.0 +paths: + /v2/macros: + get: + tags: + - macroManagement + summary: List all macros. + description: List all viewable macros for the customer. + operationId: listMacros + parameters: + - name: limit + in: query + description: Limit the number of macro returned in the response. The number of macros returned may be less than the `limit`. Default 50. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + responses: + '200': + description: Paginated list of viewable macros for the customer. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedMacros' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - macroManagement + summary: Create a new macro. + description: Creates a new macro. + operationId: createMacro + requestBody: + description: Information to create the new macro. + content: + application/json: + schema: + $ref: '#/components/schemas/MacroRequest' + required: true + responses: + '200': + description: The macro has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/Macro' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/macros/{id}: + get: + tags: + - macroManagement + summary: Get a macro. + description: Get a macro by the given identifier. + operationId: getMacro + parameters: + - name: id + in: path + description: UUID of the macro. + required: true + schema: + type: string + responses: + '200': + description: Macro object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/Macro' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - macroManagement + summary: Edit a macro. + description: Edits an existing macro by id. Macro name is immutable. + operationId: editMacro + parameters: + - name: id + in: path + description: UUID of the macro to edit. + required: true + schema: + type: string + requestBody: + description: Macro fields to update. Macro name is immutable. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseMacroRequest' + required: true + responses: + '200': + description: The edited macro. + content: + application/json: + schema: + $ref: '#/components/schemas/Macro' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - macroManagement + summary: Delete a macro. + description: Delete a macro by id. + operationId: deleteMacro + parameters: + - name: id + in: path + description: Id of macro to delete. + required: true + schema: + type: string + responses: + '204': + description: Macro was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + PaginatedMacros: + required: + - macros + type: object + properties: + data: + type: array + description: List of macros. + items: + $ref: '#/components/schemas/Macro' + next: + type: string + description: Next continuation token. `token` is set to null when no more pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + MacroRequest: + required: + - definition + - name + type: object + properties: + description: + maxLength: 4000 + type: string + description: Description of the macro. + example: Macro for geo lookup. + definition: + minLength: 1 + type: string + description: The definition of the macro. Use a valid Sumo Log Search expression. + example: | + lookup latitude, longitude from geo://location on ip = {{ip_field}} | count by latitude, longitude | sort _count" + enabled: + type: boolean + description: If the macro is enabled or not (default True) + default: true + arguments: + type: array + description: Arguments used in the macro. + items: + $ref: '#/components/schemas/Argument' + argumentValidations: + type: array + description: Validation expressions for the arguments. + items: + $ref: '#/components/schemas/ArgumentValidation' + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the macro. + example: MacroGeoLookup + macroCreationSuggestionId: + type: string + description: Identifier if the suggestion comes from an macro creation suggestion. This id is used to track macro creation suggestions, and to delete the suggestion once the macro is created. + example: ABC12 + Macro: + required: + - definition + - name + - createdAt + - createdBy + - id + type: object + properties: + description: + maxLength: 4000 + type: string + description: Description of the macro. + example: Macro for geo lookup. + definition: + minLength: 1 + type: string + description: The definition of the macro. Use a valid Sumo Log Search expression. + example: | + lookup latitude, longitude from geo://location on ip = {{ip_field}} | count by latitude, longitude | sort _count" + enabled: + type: boolean + description: If the macro is enabled or not (default True) + default: true + arguments: + type: array + description: Arguments used in the macro. + items: + $ref: '#/components/schemas/Argument' + argumentValidations: + type: array + description: Validation expressions for the arguments. + items: + $ref: '#/components/schemas/ArgumentValidation' + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the macro. + example: MacroGeoLookup + macroCreationSuggestionId: + type: string + description: Identifier if the suggestion comes from an macro creation suggestion. This id is used to track macro creation suggestions, and to delete the suggestion once the macro is created. + example: ABC12 + id: + type: string + description: | + Unique identifier for the macro. This id is used to get detailed information about the macro, such as name, definition, arguments and argument validations. + example: C03E086C137F38B4 + createdAt: + type: string + description: Creation timestamp of the macro in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2024-10-01T09:10:00.000Z' + createdBy: + type: string + description: The identifier of the user who created the macro. + example: 0000000006743FDD + BaseMacroRequest: + required: + - definition + type: object + properties: + description: + maxLength: 4000 + type: string + description: Description of the macro. + example: Macro for geo lookup. + definition: + minLength: 1 + type: string + description: The definition of the macro. Use a valid Sumo Log Search expression. + example: | + lookup latitude, longitude from geo://location on ip = {{ip_field}} | count by latitude, longitude | sort _count" + enabled: + type: boolean + description: If the macro is enabled or not (default True) + default: true + arguments: + type: array + description: Arguments used in the macro. + items: + $ref: '#/components/schemas/Argument' + argumentValidations: + type: array + description: Validation expressions for the arguments. + items: + $ref: '#/components/schemas/ArgumentValidation' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + Argument: + required: + - name + type: object + properties: + name: + type: string + description: Argument name for the macro. + example: ip_field + type: + pattern: ^(String|Any|Number|Keyword)$ + type: string + description: The type of the macro. + example: String + default: String + x-pattern-message: Must be `String`, `Any`, `Number or `Keyword`. + ArgumentValidation: + required: + - errorMessage + - evalExpression + type: object + properties: + evalExpression: + type: string + description: The expression to validate a macro argument. + example: isValidIp(ip_field) + errorMessage: + type: string + description: Error message to be shown if the macro argument validation fails. + example: You need to enter a field name which is a valid ip. + x-stackQL-resources: + macros: + id: sumologic.macros.macros + name: macros + title: Macros + methods: + list: + operation: + $ref: '#/paths/~1v2~1macros/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1macros/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1macros~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1macros~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1macros~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/macros/methods/get' + - $ref: '#/components/x-stackQL-resources/macros/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/macros/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/macros/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/macros/methods/delete' + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/metrics_queries.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/metrics_queries.yaml index 515c650..397d6bb 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/metrics_queries.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/metrics_queries.yaml @@ -1,12 +1,15 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Metrics Queries API + description: Ad hoc metrics queries. + version: 1.0.0 paths: /v1/metricsQueries: post: tags: - metricsQuery summary: Run metrics queries - description: |- - Execute up to six metrics queries. If you specify multiple queries, each is returned as a separate set of time series. A metric query returns a maximum of 300 data points per metric. A metric query will process a maximum of 15K unique time series to calculate the query results. Query results are limited to 1000 unique time series. - For more information see [Metrics Queries](https://help.sumologic.com/?cid=10144). + description: Execute multiple metrics queries. Limits of this API are described in [Metrics Query Error Messages](https://help.sumologic.com/docs/metrics/metrics-queries/metric-query-error-messages/). For general information about Metrics Queries see [Metrics Queries](https://help.sumologic.com/docs/metrics/metrics-queries/). operationId: runMetricsQueries parameters: [] requestBody: @@ -65,8 +68,24 @@ components: errors: - code: metrics:incomplete_results message: Incomplete results - allOf: - - $ref: '#/components/schemas/ErrorResponse' + required: + - errors + - id + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' ErrorResponse: required: - errors @@ -179,8 +198,8 @@ components: description: An optional fuller English-language description of the error. example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. meta: - type: object - description: An optional list of metadata about the error. + type: string + description: An optional list of metadata about the error. (opaque JSON object) example: minLength: 12 actualLength: 5 @@ -237,6 +256,7 @@ components: description: Name of the metric returning the timeseries. example: CPU_Total dimensions: + maxProperties: 1000 type: object additionalProperties: type: string @@ -275,371 +295,63 @@ components: type: string description: Start time in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' end: type: string description: End time in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format format: date-time - example: '2018-10-16T09:20:00Z' + example: '2018-10-16T09:20:00.000Z' description: | A simple time range class, where the start and end points are specified in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: metrics_queries: id: sumologic.metrics_queries.metrics_queries name: metrics_queries - title: Metrics_queries + title: Metrics Queries methods: - runMetricsQueries: + run: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1metricsQueries/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: [] insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - metrics_queries - description: metricsQueries - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/metrics_searches.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/metrics_searches.yaml index d0f26a0..53f30db 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/metrics_searches.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/metrics_searches.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Metrics Searches API + description: Saved metrics searches (v1 and v2). + version: 1.0.0 paths: /v1/metricsSearches: post: @@ -109,36 +114,293 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v2/metricsSearches: + get: + tags: + - metricsSearchesManagementV2 + summary: List all metrics search pages. + description: List all metrics search pages under the Personal folder created by the user or under folders viewable by user. + operationId: ListMetricsSearches + parameters: + - name: limit + in: query + description: Limit the number of metric searches returned in the response. The number of metric searches returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + - name: mode + in: query + description: whether to list all viewable metric searches under the folders + required: false + schema: + pattern: ^(createdByUser|allViewableByUser)$ + type: string + example: createdByUser + x-pattern-message: Must be `createdByUser` or `allViewableByUser` + example: createdByUser + responses: + '200': + description: Paginated list of metrics search pages under the Personal folder created by the user or viewable by user. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedMetricsSearches' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - metricsSearchesManagementV2 + summary: Create a new metrics search page. + description: Creates a new metrics search page. + operationId: createMetricsSearches + requestBody: + description: Information to create the new metrics search page. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchRequest' + required: true + responses: + '200': + description: The metrics search page has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/metricsSearches/{id}: + get: + tags: + - metricsSearchesManagementV2 + summary: Get a metrics search page. + description: Get a metrics search page by the given identifier. + operationId: getMetricsSearches + parameters: + - name: id + in: path + description: Unique identifier of the metrics search page to return. + required: true + schema: + type: string + responses: + '200': + description: Metrics search page that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - metricsSearchesManagementV2 + summary: Update a metrics search page. + description: Update a metrics search page by the given identifier. + operationId: updateMetricsSearches + parameters: + - name: id + in: path + description: Unique identifier of the metrics search page to return. + required: true + schema: + type: string + requestBody: + description: Information to update the metrics search page. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchRequest' + required: true + responses: + '200': + description: The metrics search page was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - metricsSearchesManagementV2 + summary: Delete a metrics search page. + description: Delete metrics search page by the given identifier. + operationId: deleteMetricsSearches + parameters: + - name: id + in: path + description: Unique identifier of the metrics search page to delete. + required: true + schema: + type: string + responses: + '204': + description: Metrics search page was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: SaveMetricsSearchRequest: + type: object description: The definition of the metrics search to save in the content library. - allOf: - - $ref: '#/components/schemas/MetricsSearchV1' - - required: - - parentId - type: object - properties: - parentId: - type: string - description: Identifier of a folder to which the metrics search should be added. - example: 000000000000001A + required: + - description + - metricsQueries + - timeRange + - title + - parentId + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()]+$ + type: string + description: Item title in the content library. + example: Short title + description: + maxLength: 8192 + type: string + description: Item description in the content library. + example: Long and detailed description + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + logQuery: + maxLength: 10240 + type: string + description: Log query used to add an overlay to the chart. + example: my_metric | timeslice 1m | count by _timeslice + metricsQueries: + type: array + description: Metrics queries, up to the maximum of six. + items: + $ref: '#/components/schemas/MetricsSearchQuery' + desiredQuantizationInSecs: + minimum: 0 + type: integer + description: Desired quantization in seconds. + format: int32 + example: 60 + default: 0 + properties: + type: string + description: | + Chart properties, like line width, color palette, and the fill missing data method. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ \"key\": \"value\" }' + parentId: + type: string + description: Identifier of a folder to which the metrics search should be added. + example: 000000000000001A MetricsSearchInstance: - allOf: - - $ref: '#/components/schemas/MetricsSearchV1' - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - type: object - properties: - id: - type: string - description: Identifier of the metrics search. - example: 000000000000001A - parentId: - type: string - description: Identifier of the parent element in the content library, such as folder. - example: 0000000000007D2B + required: + - description + - metricsQueries + - timeRange + - title + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()]+$ + type: string + description: Item title in the content library. + example: Short title + description: + maxLength: 8192 + type: string + description: Item description in the content library. + example: Long and detailed description + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + logQuery: + maxLength: 10240 + type: string + description: Log query used to add an overlay to the chart. + example: my_metric | timeslice 1m | count by _timeslice + metricsQueries: + type: array + description: Metrics queries, up to the maximum of six. + items: + $ref: '#/components/schemas/MetricsSearchQuery' + desiredQuantizationInSecs: + minimum: 0 + type: integer + description: Desired quantization in seconds. + format: int32 + example: 60 + default: 0 + properties: + type: string + description: | + Chart properties, like line width, color palette, and the fill missing data method. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ \"key\": \"value\" }' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Identifier of the metrics search. + example: 000000000000001A + parentId: + type: string + description: Identifier of the parent element in the content library, such as folder. + example: 0000000000007D2B + description: Definition of a metrics search. ErrorResponse: required: - errors @@ -205,6 +467,88 @@ components: This property contains JSON object encoded as a string. example: '{ \"key\": \"value\" }' description: Definition of a metrics search. + PaginatedMetricsSearches: + required: + - metricsSearches + type: object + properties: + metricsSearches: + type: array + description: List of metrics search pages. + items: + $ref: '#/components/schemas/MetricsSearchResponse' + next: + type: string + description: Next continuation token. `token` is set to null when no more pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + MetricsSearchRequest: + required: + - queries + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^\s*\S.*$ + type: string + description: Title of the metrics search page. + x-pattern-message: must contain at least 1 non-whitespace character + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: + type: string + description: Description of the metrics search page. + queries: + type: array + description: Queries of the metrics search page. + items: + $ref: '#/components/schemas/Query' + visualSettings: + type: string + description: Visual settings of the metrics search page. + folderId: + type: string + description: | + The identifier of the folder to save the metrics search in. By default it is saved in your personal folder. + example: 000000000C1C17C6 + MetricsSearchResponse: + required: + - queries + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^\s*\S.*$ + type: string + description: Title of the metrics search page. + x-pattern-message: must contain at least 1 non-whitespace character + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: + type: string + description: Description of the metrics search page. + queries: + type: array + description: Queries of the metrics search page. + items: + $ref: '#/components/schemas/Query' + visualSettings: + type: string + description: Visual settings of the metrics search page. + folderId: + type: string + description: | + The identifier of the folder to save the metrics search in. By default it is saved in your personal folder. + example: 000000000C1C17C6 + id: + type: string + description: Unique identifier for the metrics search page. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 MetadataModel: required: - createdAt @@ -217,7 +561,7 @@ components: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -226,7 +570,7 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. @@ -250,8 +594,8 @@ components: description: An optional fuller English-language description of the error. example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. meta: - type: object - description: An optional list of metadata about the error. + type: string + description: An optional list of metadata about the error. (opaque JSON object) example: minLength: 12 actualLength: 5 @@ -285,384 +629,490 @@ components: description: Metrics query. example: my_metric | avg description: Definition of a metrics query. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + MetricsSearch: + required: + - queries + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^\s*\S.*$ + type: string + description: Title of the metrics search page. + x-pattern-message: must contain at least 1 non-whitespace character + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: + type: string + description: Description of the metrics search page. + queries: + type: array + description: Queries of the metrics search page. + items: + $ref: '#/components/schemas/Query' + visualSettings: + type: string + description: Visual settings of the metrics search page. + Query: + required: + - queryKey + - queryString + - queryType + type: object + properties: + queryString: + type: string + description: The metrics, traces or logs query. + example: _sourceCategory=cqsplitter metric=CPU_user | count by _sourceHost + queryType: + pattern: ^(Logs|Metrics|Traces|Spans)$ + type: string + description: The type of the query, either `Metrics`, `Traces`, `Spans` or `Logs`. + example: Logs + x-pattern-message: Must be `Logs`, `Traces`, `Spans` or `Metrics` + queryKey: + type: string + description: | + The key for metric, traces or log queries. Used as an identifier for queries. It is displayed on the panel builder and used for display overrides and query toggling. + example: A + metricsQueryMode: + pattern: ^(Basic|Advanced|basic|advanced)$ + type: string + description: | + The mode of the metrics query that the user was editing. Can be `Basic` or `Advanced`. Will ONLY be specified for metrics queries. + example: Basic + x-pattern-message: Must be `Basic`, or `Advanced` + metricsQueryData: + $ref: '#/components/schemas/MetricsQueryData' + tracesQueryData: + $ref: '#/components/schemas/TracesQueryData' + spansQueryData: + $ref: '#/components/schemas/SpansQueryData' + parseMode: + pattern: ^(Auto|Manual|Intelliparse)$ + type: string + description: |- + This field only applies for queryType of `Logs` but other query types may be supported in the future. Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `Auto` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: Auto + default: Auto + x-pattern-message: Must be either `Auto`,`Manual` or `Intelliparse` + timeSource: + pattern: ^(Message|Receipt|Searchable)$ + type: string + description: This field only applies for queryType of `Logs` but other query types may be supported in the future. Define the time source of this query. Possible values are `Message`, `Receipt`. `Message` will use the timeStamp on the message, while `Receipt` will use the timestamp it was received by Sumo. + example: Message + default: Message + x-pattern-message: Must be `Message`, or `Receipt` + transient: + type: boolean + description: This field only applies for queryType of `Metrics` but other query types may be supported in the future. Determines if the row should be returned in the response. Can be used in conjunction with a join, if only the result of the join is needed, and not the intermediate rows. Setting `transient` to `true` wherever the intermediate results aren't required speeds up the computation and reduces the amount of data transferred over the network. + default: false + outputCardinalityLimit: + maximum: 3000 + minimum: 1 + type: integer + description: This field only applies for queryType of `Metrics` but other query types may be supported in the future. Specifies the output cardinality limitations for the query, which is the maximum number of timeseries returned in the result. + format: int32 + example: 1000 + default: 1000 + MetricsQueryData: + required: + - filters + - metric + type: object + properties: + metric: + type: string + description: The metric of the query. + example: CPU_user + aggregationType: + pattern: ^(Count|Minimum|Maximum|Sum|Average|None)$|^$ + type: string + description: The type of aggregation. Can be `Count`, `Minimum`, `Maximum`, `Sum`, `Average` or `None`. + example: Count + x-pattern-message: Must be `Count`, `Minimum`, `Maximum`, `Sum`, `Average` or `None` + groupBy: + type: string + description: The field to group the results by. + example: _sourceHost + filters: + type: array + description: A list of filters for the metrics query. + items: + $ref: '#/components/schemas/MetricsFilter' + operators: + type: array + description: A list of operator data for the metrics query. + items: + $ref: '#/components/schemas/OperatorData' + description: The data format describing a basic metrics query. + example: + metric: CPU_user + aggregationType: count + groupBy: _sourceHost + filters: + - key: _sourceCategory + value: kubernetes + - key: _sourceHost + value: dep-kubernetes-1 + operators: + operatorName: avg + parameters: + - key: aggregator + value: max + - key: operation + value: '' + - key: value + value: 50 + TracesQueryData: + required: + - filters + type: object + properties: + filters: + type: array + description: A list of filters for the traces query. + items: + $ref: '#/components/schemas/TracesFilter' + description: The data format describing a basic traces query. + SpansQueryData: + required: + - filters + - groupBy + - limit + - visualizations + type: object + properties: + filters: + type: array + description: A list of filters for the spans query. + items: + $ref: '#/components/schemas/SpansFilter' + visualizations: + type: array + description: A list of used visualization methods for the spans query. + items: + $ref: '#/components/schemas/SpansVisualization' + groupBy: + type: array + description: A list of group-by clauses for the spans query. + items: + $ref: '#/components/schemas/SpansGroupBy' + limit: + type: array + description: A list of limits that will be applied to the spans query. + items: + $ref: '#/components/schemas/SpansLimitItem' + description: The data format describing a basic spans query. + MetricsFilter: + required: + - value + type: object + properties: + key: + type: string + description: The key of the metrics filter. + example: _sourceCategory + value: + type: string + description: The value of the metrics filter. + example: kubernetes + negation: + type: boolean + description: Whether or not the metrics filter is negated. + example: false + description: The filter for metrics query. + example: + key: _sourceCategory + value: cqmerger + negation: false + OperatorData: + required: + - operatorName + - parameters + type: object + properties: + operatorName: + type: string + description: The name of the metrics operator. + example: avg + parameters: + type: array + description: A list of operator parameters for the operator data. + items: + $ref: '#/components/schemas/OperatorParameter' + description: The operator data for metrics query. + example: + operatorName: avg + parameters: + - key: aggregator + value: max + - key: operation + value: '' + - key: value + value: 50 + TracesFilter: + required: + - type + type: object + properties: + type: + pattern: ^(FieldDescriptor|DurationMetricDescriptor|NumericMetricDescriptor|CPCOfFilterDescriptor|MaxCPCOfFilterDescriptor|MaxCPCFilterDescriptor)$|^$ + type: string + description: The type of the filter. + example: FieldDescriptor + x-pattern-message: Must be `FieldDescriptor`, `DurationMetricDescriptor`, `NumericMetricDescriptor`, `CPCOfFilterDescriptor`, `MaxCPCOfFilterDescriptor` or `MaxCPCFilterDescriptor` + description: The filter for traces query. + discriminator: + propertyName: type + SpansFilter: + required: + - fieldName + - type + type: object + properties: + type: + pattern: ^(StandaloneKey|KeyValuePair)$ + type: string + description: The spans filter type. + example: StandaloneKey + x-pattern-message: Must be `StandaloneKey` or `KeyValuePair`. + fieldName: + type: string + description: The name of the filtering field. + example: service + discriminator: + propertyName: type + mapping: + StandaloneKey: '#/components/schemas/SpansFilterStandaloneKey' + KeyValuePair: '#/components/schemas/SpansFilterKeyValuePair' + SpansVisualization: + required: + - name + - type + type: object + properties: + type: + pattern: ^(count|calculation)$ + type: string + description: The visualization type. + example: count + x-pattern-message: Must be `count` or `calculation` + name: + type: string + description: A unique name of the visualization. + example: duration_pct_95 + discriminator: + propertyName: type + mapping: + count: '#/components/schemas/SpansCountVisualization' + calculation: '#/components/schemas/SpansCalculationVisualization' + SpansGroupBy: + required: + - type + type: object + properties: + type: + pattern: ^(time|field)$ + type: string + description: The type of the group-by clause. + example: time + x-pattern-message: Must be `time` or `field` + discriminator: + propertyName: type + mapping: + time: '#/components/schemas/SpansTimeGroupBy' + field: '#/components/schemas/SpansFieldGroupBy' + SpansLimitItem: + required: + - direction + - limitValue + type: object + properties: + direction: + pattern: ^(asc|desc)$ + type: string + description: Describes whether the results should be sorted in an ascending or a descending order. + example: asc + x-pattern-message: Must be `asc` or `desc` + limitValue: + type: integer + description: | + The number of aggregated results returned, e.g. if 10 is requested, then only the first 10 aggregated results are returned. + format: int32 + example: 10 + description: | + A representation of the limit operator which reduces the number of aggregate results returned: either the top k results or bottom k results. + OperatorParameter: + required: + - key + - value + type: object + properties: + key: + type: string + description: The key of the operator parameter. + example: operation + value: + type: string + description: The value of the operator parameter. + example: '>' + description: The operator parameter for operator data. + example: + key: aggregator + value: max x-stackQL-resources: metrics_searches: id: sumologic.metrics_searches.metrics_searches name: metrics_searches - title: Metrics_searches + title: Metrics Searches methods: - createMetricsSearch: + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1metricsSearches/post' response: mediaType: application/json openAPIDocKey: '200' - getMetricsSearch: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1metricsSearches~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateMetricsSearch: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1metricsSearches~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteMetricsSearch: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1metricsSearches~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/metrics_searches/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/metrics_searches/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/metrics_searches/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/metrics_searches/methods/delete' + replace: [] + metrics_searches_v2: + id: sumologic.metrics_searches.metrics_searches_v2 + name: metrics_searches_v2 + title: Metrics Searches V2 + methods: + list: + operation: + $ref: '#/paths/~1v2~1metricsSearches/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.metricsSearches + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1metricsSearches/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1metricsSearches~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1metricsSearches~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1metricsSearches~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/metrics_searches/methods/getMetricsSearch' + - $ref: '#/components/x-stackQL-resources/metrics_searches_v2/methods/get' + - $ref: '#/components/x-stackQL-resources/metrics_searches_v2/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/metrics_searches/methods/createMetricsSearch' - update: [] + - $ref: '#/components/x-stackQL-resources/metrics_searches_v2/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/metrics_searches_v2/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/metrics_searches/methods/deleteMetricsSearch' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/metrics_searches_v2/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - metrics_searches - description: metricsSearches - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/monitors.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/monitors.yaml index 13397b0..9877c31 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/monitors.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/monitors.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Monitors API + description: Monitors and monitor folders in the monitors library - search, path, copy, move, import, export, permissions, playbooks and usage. + version: 1.0.0 paths: /v1/monitors/usageInfo: get: @@ -12,7 +17,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/MonitorUsageInfo' + $ref: '#/components/schemas/GetMonitorUsageInfoResponse' default: description: Operation failed with an error. content: @@ -51,6 +56,66 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/playbooks: + get: + tags: + - monitorsLibraryManagement + summary: List all playbooks. + description: List all playbooks available to run. + operationId: getMonitorPlaybooks + parameters: + - name: playbookType + in: query + description: A string value for playbook type. + required: false + schema: + type: string + example: CSE + responses: + '200': + description: MonitorPlaybooks have been retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/GetMonitorPlaybooksResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/playbooksDetails: + get: + tags: + - monitorsLibraryManagement + summary: Get playbook details. + description: Get the details of the playbooks with the specified identifiers. + operationId: getPlaybooksDetails + parameters: + - name: ids + in: query + description: A comma-separated list of playbook identifiers. + required: true + style: form + explode: false + schema: + type: array + items: + type: string + example: 649074b5b3d402d6e80b0d1d,649074b7b3d402d6e80b0da1,649074b6b3d402d6e80b0d75 + responses: + '200': + description: MonitorPlaybooks have been retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/GetPlaybooksDetailsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' /v1/monitors: get: tags: @@ -68,6 +133,12 @@ paths: items: type: string example: 0000000000000001,0000000000000002,0000000000000003 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean responses: '200': description: A map between an identifier and its definition (monitor or folder). @@ -224,9 +295,10 @@ paths: description: Maximum number of items you want in the response. required: false schema: + maximum: 5000 type: integer format: int32 - default: 100 + default: 1000 example: 10 - name: offset in: query @@ -237,13 +309,19 @@ paths: format: int32 default: 0 example: 5 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean responses: '200': description: List of folders and monitors matching the search query. content: application/json: schema: - $ref: '#/components/schemas/ListMonitorsLibraryItemWithPath' + $ref: '#/components/schemas/MonitorsSearchResponse' default: description: Operation failed with an error. content: @@ -282,7 +360,7 @@ paths: - monitorsLibraryManagement summary: | Update a monitor or folder. - description: Update a monitor or folder in the monitors library. + description: Update a monitor or folder in the monitors library. When making updates to existing monitors via API, all configurations are over-written. Make sure to include all configurations of the monitor (existing with new updates), not just the new configurations you want to apply. operationId: monitorsUpdateById parameters: - name: id @@ -629,56 +707,11 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - MonitorUsage: - properties: - monitorType: - type: string - description: The type of monitor usage info (Logs or Metrics). - example: Logs - enum: - - Logs - - Metrics - usage: - type: integer - description: Current number of active Logs/Metrics monitors. - example: 100 - limit: - type: integer - description: The limit of active Logs/Metrics monitors. - example: 100 - total: - type: integer - description: The total number of monitors created. (Including both active and disabled Logs/Metrics monitors) - example: 100 - description: The usage info of monitors. - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 DisableMonitorResponse: type: object properties: monitors: + maxProperties: 1000 type: object additionalProperties: $ref: '#/components/schemas/MonitorsLibraryMonitorResponse' @@ -689,126 +722,37 @@ components: items: $ref: '#/components/schemas/DisableMonitorWarning' description: Response for disabling monitors. - MonitorsLibraryMonitorResponse: - allOf: - - $ref: '#/components/schemas/MonitorsLibraryBaseResponse' - - required: - - monitorType - - queries - - triggers - type: object - properties: - monitorType: - pattern: ^(Logs|Metrics|Slo)$ - type: string - description: |- - The type of monitor. Valid values: - 1. `Logs`: A logs query monitor. - 2. `Metrics`: A metrics query monitor. - 3. `Slo`: A SLO based monitor. Currently SLO based monitor is available in closed beta (Notify your Sumo Logic representative in order to get the early access). - example: Logs - x-pattern-message: should be 'Logs' or 'Metrics' or 'Slo' - evaluationDelay: - type: string - description: The delay duration for evaluating the monitor (relative to current time). The timerange of monitor will be shifted in the past by this delay time. - example: 5m - default: 0m - alertName: - type: string - description: The name of the alert(s) triggered from this monitor. Monitor name will be used if not specified. - queries: - uniqueItems: true - type: array - description: All queries from the monitor. - items: - $ref: '#/components/schemas/MonitorQuery' - triggers: - type: array - description: Defines the conditions of when to send notifications. - example: - - detectionMethod: StaticCondition - timeRange: 15m - triggerType: Critical - threshold: 50 - thresholdType: GreaterThanOrEqual - occurrenceType: ResultCount - triggerSource: AllResults - - detectionMethod: StaticCondition - timeRange: 15m - triggerType: ResolvedCritical - threshold: 50 - thresholdType: LessThan - occurrenceType: ResultCount - triggerSource: AllResults - items: - $ref: '#/components/schemas/TriggerCondition' - notifications: - type: array - description: The notifications the monitor will send when the respective trigger condition is met. - example: - - notification: - connectionType: Slack - connectionId: '0000000000000005' - runForTriggerTypes: - - Critical - - notification: - connectionType: Email - messageBody: Alert Triggered! - recipients: - - john@doe.com - subject: 'Monitor Alert: {{TriggerType}} on {{SearchName}}' - timeZone: America/Los_Angeles - runForTriggerTypes: - - Critical - items: - $ref: '#/components/schemas/MonitorNotification' - default: [] - isDisabled: - type: boolean - description: Whether or not the monitor is disabled. Disabled monitors will not run, and will not generate or send notifications. - example: false - default: false - status: - uniqueItems: true - type: array - description: |- - The current status of the monitor. Each monitor can have one or more status values. Valid values: - 1. `Normal`: The monitor is running normally and does not have any currently triggered conditions. - 2. `Critical`: The Critical trigger condition has been met. - 3. `Warning`: The Warning trigger condition has been met. - 4. `MissingData`: The MissingData trigger condition has been met. - 5. `Disabled`: The monitor has been disabled and is not currently running. - example: '[Normal]' - items: - type: string - groupNotifications: - type: boolean - description: Whether or not to group notifications for individual items that meet the trigger condition. - example: true - default: true - warnings: - type: object - additionalProperties: - type: string - description: Monitor manager warnings - playbook: - maxLength: 4096 - type: string - description: Notes such as links and instruction to help you resolve alerts triggered by this monitor. {{Markdown}} supported. It will be enabled only if available for your organization. Please contact your Sumo Logic account team to learn more. - example: This issue typically happens when database calls are timing out. Look at ServiceA's dashboard to investigate further - default: '' - DisableMonitorWarning: + MonitorPlaybooksList: + type: array + description: The list of monitor playbooks. + items: + $ref: '#/components/schemas/MonitorPlaybook' + IdToMonitorsLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + MonitorsLibraryBase: + required: + - name + - type type: object properties: - code: + name: type: string - description: A code for the warning message. - example: content:not_found - message: + description: Name of the monitor or folder. + description: type: string - description: A short message with details about the warning. - example: Monitor id=0000000000000001 not found. - description: Warning object from the operation providing details such as when a given monitor to disable does not exist. + description: Description of the monitor or folder. + default: '' + type: + type: string + description: |- + Type of the object model. Valid values: + 1) MonitorsLibraryMonitor + 2) MonitorsLibraryFolder + discriminator: + propertyName: type MonitorsLibraryBaseResponse: required: - contentType @@ -881,168 +825,90 @@ components: type: string discriminator: propertyName: type - MonitorQuery: + MonitorsLibraryFolderResponse: required: - - query - - rowId + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + - children + - permissions type: object properties: - rowId: + id: type: string - description: The unique identifier of the row. Defaults to sequential capital letters, `A`, `B`, `C`, etc. - example: A - query: + description: Identifier of the monitor or folder. + name: type: string - description: The logs or metrics query that defines the stream of data the monitor runs on. - example: _sourceCategory=search error - description: A search query. - TriggerCondition: - required: - - triggerType - type: object - properties: - detectionMethod: - pattern: ^(StaticCondition|LogsStaticCondition|MetricsStaticCondition|LogsOutlierCondition|MetricsOutlierCondition|LogsMissingDataCondition|MetricsMissingDataCondition|SloSliCondition|SloBurnRateCondition)$ + description: Identifier of the monitor or folder. + description: type: string - description: |- - Detection method of the trigger condition. Valid values: - 1. `StaticCondition`: A condition that triggers based off of a static threshold. This `detectionMethod` is deprecated, it is recommended to use other ones instead. - 2. `LogsStaticCondition`: A logs condition that triggers based off of a static threshold. - 3. `MetricsStaticCondition`: A metrics condition that triggers based off of a static threshold. - 4. `LogsOutlierCondition`: A logs condition that triggers based off of a dynamic outlier threshold. - 5. `MetricsOutlierCondition`: A metrics condition that triggers based off of a dynamic outlier threshold. - 6. `LogsMissingDataCondition`: A logs missing data condition that triggers based off of no data available. - 7. `MetricsMissingDataCondition`: A metrics missing data condition that triggers based off of no data available. - 8. `SloSliCondition`: An SLO condition that triggers based off of current SLI value. - 9. `SloBurnRateCondition`: An SLO condition that triggers based off of error budget burn rate. - example: StaticCondition - default: StaticCondition - x-pattern-message: 'should be one of the following: ''StaticCondition'', ''LogsStaticCondition'', ''MetricsStaticCondition'', ''LogsOutlierCondition'', ''MetricsOutlierCondition'', ''LogsMissingDataCondition'', ''MetricsMissingDataCondition'', ''SloSliCondition'', ''SloBurnRateCondition''' - triggerType: - pattern: ^(Critical|Warning|MissingData|ResolvedCritical|ResolvedWarning|ResolvedMissingData)$ + description: Description of the monitor or folder. + version: + type: integer + description: Version of the monitor or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: type: string description: |- - The type of trigger condition. Valid values: - 1. `Critical`: A critical condition to trigger on. - 2. `Warning`: A warning condition to trigger on. - 3. `MissingData`: A condition that indicates data is missing. - 4. `ResolvedCritical`: A condition to resolve a Critical trigger on. - 5. `ResolvedWarning`: A condition to resolve a Warning trigger on. - 6. `ResolvedMissingData`: A condition to resolve a MissingData trigger. - example: Critical - x-pattern-message: 'should be one of the following: ''Critical'', ''Warning'', ''MissingData'', ''ResolvedCritical'', ''ResolvedWarning'', or ''ResolvedMissingData''' - resolutionWindow: + Type of the content. Valid values: + 1) Monitor + 2) Folder + type: type: string - description: 'The resolution window that the recovery condition must be met in each evaluation that happens within this entire duration before the alert is recovered (resolved). If not specified, the time range of your trigger will be used. Valid values are: `0m`, `-5m`, `-10m`, `-15m`, `-30m`, `-1h`, `-3h`, `-6h`, `-12h`, or `-24h`' - nullable: true - example: '-5m' - discriminator: - propertyName: detectionMethod - MonitorNotification: - required: - - notification - - runForTriggerTypes - type: object - properties: - notification: - $ref: '#/components/schemas/Action' - runForTriggerTypes: - uniqueItems: true + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: type: array - description: The trigger types assigned to send this notification. + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete items: type: string - Action: - required: - - connectionType - type: object - properties: - connectionType: - pattern: ^(Email|AWSLambda|AzureFunctions|Datadog|HipChat|Jira|NewRelic|Opsgenie|PagerDuty|Slack|MicrosoftTeams|ServiceNow|SumoCloudSOAR|Webhook)$ - type: string - description: |- - Connection type of the connection. Valid values: - 1. `Email` - 2. `AWSLambda` - 3. `AzureFunctions` - 4. `Datadog` - 5. `HipChat` - 6. `Jira` - 7. `NewRelic` - 8. `Opsgenie` - 9. `PagerDuty` - 10. `Slack` - 11. `MicrosoftTeams` - 12. `ServiceNow` - 13. `SumoCloudSOAR` - 14. `Webhook` - x-pattern-message: 'should be one of the following: ''Email'', ''AWSLambda'', ''AzureFunctions'', ''Datadog'', ''HipChat'', ''Jira'', ''NewRelic'', ''Opsgenie'', ''PagerDuty'', ''Slack'', ''MicrosoftTeams'', ''ServiceNow'', ''SumoCloudSOAR'' and ''Webhook''' - description: The base class of all connection types. - discriminator: - propertyName: connectionType - IdToMonitorsLibraryBaseResponseMap: - type: object - additionalProperties: - $ref: '#/components/schemas/MonitorsLibraryBaseResponse' - MonitorsLibraryBase: - required: - - name - - type - type: object - properties: - name: - type: string - description: Name of the monitor or folder. - description: - type: string - description: Description of the monitor or folder. - default: '' - type: - type: string - description: |- - Type of the object model. Valid values: - 1) MonitorsLibraryMonitor - 2) MonitorsLibraryFolder + children: + type: array + description: 'Children of the folder. NOTE: Permissions field will not be filled (empty list) for children.' + items: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' discriminator: propertyName: type - MonitorsLibraryFolderResponse: - allOf: - - $ref: '#/components/schemas/MonitorsLibraryBaseResponse' - - required: - - children - - permissions - type: object - properties: - permissions: - type: array - description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. - example: - - Read - - Delete - items: - type: string - children: - type: array - description: 'Children of the folder. NOTE: Permissions field will not be filled (empty list) for children.' - items: - $ref: '#/components/schemas/MonitorsLibraryBaseResponse' ListMonitorsLibraryItemWithPath: type: array description: Multi-type list of types monitor or folder. items: $ref: '#/components/schemas/MonitorsLibraryItemWithPath' - MonitorsLibraryItemWithPath: - required: - - item - - path - type: object - properties: - item: - $ref: '#/components/schemas/MonitorsLibraryBaseResponse' - path: - type: string - description: Path of the monitor or folder. - example: /Monitors/SampleFolder/TestMonitor MonitorsLibraryBaseUpdate: required: - name @@ -1080,18 +946,6 @@ components: path: type: string description: String representation of the path. - PathItem: - required: - - id - - name - type: object - properties: - id: - type: string - description: Identifier of the path element. - name: - type: string - description: Name of the path element. ContentCopyParams: required: - parentId @@ -1122,44 +976,601 @@ components: type: string description: Type of the object model. discriminator: - propertyName: type - ListPermissionsResponse: + propertyName: type + ListPermissionsResponse: + required: + - permissionStatements + type: object + properties: + permissionStatements: + type: array + description: A list of permission statements. + items: + $ref: '#/components/schemas/PermissionStatement' + PermissionStatementDefinitions: + required: + - permissionStatementDefinitions + type: object + properties: + permissionStatementDefinitions: + maxItems: 1000 + minItems: 1 + type: array + description: List of permission statement definitions. + items: + $ref: '#/components/schemas/PermissionStatementDefinition' + PermissionStatements: + required: + - permissionStatements + type: object + properties: + permissionStatements: + type: array + description: A list of permission statements. + items: + $ref: '#/components/schemas/PermissionStatement' + PermissionIdentifiers: + required: + - permissionIdentifiers + type: object + properties: + permissionIdentifiers: + maxItems: 1000 + minItems: 1 + type: array + description: List of permission identifiers. + items: + $ref: '#/components/schemas/PermissionIdentifier' + PermissionSummariesBySubjects: + required: + - permissionSummariesBySubjects + type: object + properties: + permissionSummariesBySubjects: + type: array + description: A list of PermissionSubjects and PermissionSummaryMeta(s) associated with each subject. + items: + $ref: '#/components/schemas/PermissionSummaryBySubjects' + MonitorUsage: + properties: + monitorType: + type: string + description: The type of monitor usage info (Logs or Metrics). + example: Logs + enum: + - Logs + - Metrics + usage: + type: integer + description: Current number of active Logs/Metrics monitors. + example: 100 + limit: + type: integer + description: The limit of active Logs/Metrics monitors. + example: 100 + total: + type: integer + description: The total number of monitors created. (Including both active and disabled Logs/Metrics monitors) + example: 100 + description: The usage info of monitors. + type: object + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MonitorsLibraryMonitorResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + - monitorType + - queries + - triggers + type: object + properties: + id: + type: string + description: Identifier of the monitor or folder. + name: + type: string + description: Identifier of the monitor or folder. + description: + type: string + description: Description of the monitor or folder. + version: + type: integer + description: Version of the monitor or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Monitor + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + monitorType: + pattern: ^(Logs|Metrics|Slo)$ + type: string + description: |- + The type of monitor. Valid values: + 1. `Logs`: A logs query monitor. + 2. `Metrics`: A metrics query monitor. + 3. `Slo`: A SLO based monitor. Currently SLO based monitor is available in closed beta (Notify your Sumo Logic representative in order to get the early access). + example: Logs + x-pattern-message: should be 'Logs' or 'Metrics' or 'Slo' + evaluationDelay: + type: string + description: The delay duration for evaluating the monitor (relative to current time). The timerange of monitor will be shifted in the past by this delay time. + example: 5m + default: 0m + alertName: + type: string + description: The name of the alert(s) triggered from this monitor. Monitor name will be used if not specified. All template variables can be used here except {{AlertName}}, {{AlertResponseURL}}, {{ResultsJson}}, and {{Playbook}}. + runAs: + type: object + required: + - runAsId + properties: + runAsId: + type: string + description: The runAsId indicates the context in which monitors will run. If not provided, then it will run in the context of the monitor author. + example: 00000000000001DF + notificationGroupFields: + type: array + description: The set of fields to be used to group alert notifications for a monitor. The value of this field will be considered only when 'groupNotifications' is true. The fields with very high cardinality such as `_blockid`, `_raw`, `_messagetime`, `_receipttime`, and `_messageid` are not allowed for Alert Grouping. + example: + - service + - env + items: + type: string + queries: + uniqueItems: true + type: array + description: All queries from the monitor. + items: + $ref: '#/components/schemas/MonitorQuery' + triggers: + type: array + description: Defines the conditions of when to send notifications. + example: + - detectionMethod: LogsStaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + - detectionMethod: LogsStaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + items: + $ref: '#/components/schemas/TriggerCondition' + timeZone: + type: string + description: Time zone identifier for monitor notifications. Follow the format in [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + notifications: + type: array + description: The notifications the monitor will send when the respective trigger condition is met. + example: + - notification: + connectionType: Slack + connectionId: '0000000000000005' + runForTriggerTypes: + - Critical + - notification: + connectionType: Email + messageBody: Alert Triggered! + recipients: + - john@doe.com + subject: 'Monitor Alert: {{TriggerType}} on {{SearchName}}' + timeZone: America/Los_Angeles + runForTriggerTypes: + - Critical + items: + $ref: '#/components/schemas/MonitorNotification' + default: [] + isDisabled: + type: boolean + description: Whether or not the monitor is disabled. Disabled monitors will not run, and will not generate or send notifications. + example: false + default: false + status: + uniqueItems: true + type: array + description: |- + The current status of the monitor. Each monitor can have one or more status values. Valid values: + 1. `Normal`: The monitor is running normally and does not have any currently triggered conditions. + 2. `Critical`: The Critical trigger condition has been met. + 3. `Warning`: The Warning trigger condition has been met. + 4. `MissingData`: The MissingData trigger condition has been met. + 5. `Disabled`: The monitor has been disabled and is not currently running. + example: '[Normal]' + items: + type: string + groupNotifications: + type: boolean + description: Whether or not to group notifications for individual items that meet the trigger condition. + example: true + default: true + warnings: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Monitor manager warnings + playbook: + type: string + description: Notes such as links and instruction to help you resolve alerts triggered by this monitor. {{Markdown}} supported. It will be enabled only if available for your organization. Please contact your Sumo Logic account team to learn more. + example: This issue typically happens when database calls are timing out. Look at ServiceA's dashboard to investigate further + default: '' + sloId: + type: string + description: Identifier of the SLO definition for the monitor. This is only applicable for SLO type monitors. + automatedPlaybookIds: + uniqueItems: true + type: array + description: The set of automated playbook ids for a monitor. + example: + - 649dcb922b70c74b5d2110f8 + - 649dcb912b70c74b5d2110a0 + items: + type: string + default: [] + discriminator: + propertyName: type + DisableMonitorWarning: + type: object + properties: + code: + type: string + description: A code for the warning message. + example: content:not_found + message: + type: string + description: A short message with details about the warning. + example: Monitor id=0000000000000001 not found. + description: Warning object from the operation providing details such as when a given monitor to disable does not exist. + MonitorPlaybook: + required: + - description + - name + - playbookId + - type + - versionId + type: object + properties: + description: + type: string + description: The description of the monitor playbook. + example:

30 Seconds API Will Take To Respond

+ playbookId: + type: string + description: The id of the playbook. + example: '1' + name: + type: string + description: The name of the playbook. + example: Test + versionId: + type: string + description: The version id of the playbook. + example: '1' + type: + type: string + description: The type of the playbook. + example: Analytics + description: The single monitor playbook. + MonitorsLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + path: + type: string + description: Path of the monitor or folder. + example: /Monitors/SampleFolder/TestMonitor + PathItem: + required: + - id + - name + type: object + properties: + id: + type: string + description: Identifier of the path element. + name: + type: string + description: Name of the path element. + description: + type: string + description: Description of the path element. + PermissionStatement: + type: object + required: + - permissions + - subjectId + - subjectType + - targetId + - createdAt + - createdBy + - modifiedAt + - modifiedBy + properties: + permissions: + type: array + description: List of permissions. + example: + - Read + - Delete + items: + type: string + subjectType: + pattern: ^(role|org)$ + type: string + description: 'Type of subject for the permission. Valid values are: `role` or `org`.' + example: role + x-pattern-message: 'must be one of the following: `role` or `org`' + subjectId: + type: string + description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `role`, subjectId should be the identifier of a role. Similarly, if the subjectType is `org`, the subjectId should be the identifier of the same org, which owns the resource target. + example: 0000000006743FDA + targetId: + type: string + description: The identifier that belongs to the resource this permission assignment applies to. + example: 0000000006743FE2 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + PermissionStatementDefinition: + required: + - permissions + - subjectId + - subjectType + - targetId + type: object + properties: + permissions: + type: array + description: List of permissions. + example: + - Read + - Delete + items: + type: string + subjectType: + pattern: ^(role|org)$ + type: string + description: 'Type of subject for the permission. Valid values are: `role` or `org`.' + example: role + x-pattern-message: 'must be one of the following: `role` or `org`' + subjectId: + type: string + description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `role`, subjectId should be the identifier of a role. Similarly, if the subjectType is `org`, the subjectId should be the identifier of the same org, which owns the resource target. + example: 0000000006743FDA + targetId: + type: string + description: The identifier that belongs to the resource this permission assignment applies to. + example: 0000000006743FE2 + PermissionIdentifier: + required: + - subjectId + - subjectType + - targetId + type: object + properties: + subjectType: + pattern: ^(user|role|org)$ + type: string + description: 'Type of subject for the permission. Valid values are: `user` or `role` or `org`.' + example: role + x-pattern-message: 'must be one of the following: `user`, `role`, `org`' + subjectId: + type: string + description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `user`, subjectId should be the identifier of a user (same goes for `role` or `org` subjectType). + example: 0000000006743FDA + targetId: + type: string + description: The identifier that belongs to the resource this permission assignment applies to. + example: 0000000006743FE2 + description: Identifier for the entity (subject) that is granted the permission on resource(s). + PermissionSummaryBySubjects: + description: A list of PermissionSubjects and PermissionSummaryMeta(s) associated with each subject. + required: + - subjectId + - subjectType + - permissionSummaries + type: object + properties: + subjectType: + pattern: ^(user|role|org)$ + type: string + description: 'Type of subject for the permission. Valid values are: `user` or `role` or `org`.' + example: role + x-pattern-message: 'must be one of the following: `user`, `role`, `org`' + subjectId: + type: string + description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `user`, subjectId should be the identifier of a user (same goes for `role` or `org` subjectType). + example: 0000000006743FDA + permissionSummaries: + type: array + items: + $ref: '#/components/schemas/PermissionSummaryMeta' + RunAs: + required: + - runAsId + type: object + properties: + runAsId: + type: string + description: The runAsId indicates the context in which monitors will run. If not provided, then it will run in the context of the monitor author. + example: 00000000000001DF + MonitorQuery: + required: + - query + - rowId + type: object + properties: + rowId: + type: string + description: The unique identifier of the row. Defaults to sequential capital letters, `A`, `B`, `C`, etc. + example: A + query: + type: string + description: The logs or metrics query that defines the stream of data the monitor runs on. + example: _sourceCategory=search error + description: A search query. + TriggerCondition: + required: + - triggerType + type: object + properties: + detectionMethod: + pattern: ^(StaticCondition|LogsStaticCondition|MetricsStaticCondition|LogsOutlierCondition|MetricsOutlierCondition|LogsMissingDataCondition|MetricsMissingDataCondition|SloSliCondition|SloBurnRateCondition|LogsAnomalyCondition|MetricsAnomalyCondition)$ + type: string + description: |- + Detection method of the trigger condition. Valid values: + 1. `StaticCondition`: A condition that triggers based off of a static threshold. This `detectionMethod` is deprecated, it is recommended to use other ones instead. + 2. `LogsStaticCondition`: A logs condition that triggers based off of a static threshold. + 3. `MetricsStaticCondition`: A metrics condition that triggers based off of a static threshold. + 4. `LogsOutlierCondition`: A logs condition that triggers based off of a dynamic outlier threshold. + 5. `MetricsOutlierCondition`: A metrics condition that triggers based off of a dynamic outlier threshold. + 6. `LogsMissingDataCondition`: A logs missing data condition that triggers based off of no data available. + 7. `MetricsMissingDataCondition`: A metrics missing data condition that triggers based off of no data available. + 8. `SloSliCondition`: An SLO condition that triggers based off of current SLI value. + 9. `SloBurnRateCondition`: An SLO condition that triggers based off of error budget burn rate. + 10. `LogsAnomalyCondition`: A log anomaly condition that triggers based off anomalies in the data. + 11. `MetricsAnomalyCondition`: A metric anomaly condition that triggers based off anomalies in the data. + example: StaticCondition + default: StaticCondition + x-pattern-message: 'should be one of the following: ''StaticCondition'', ''LogsStaticCondition'', ''MetricsStaticCondition'', ''LogsOutlierCondition'', ''MetricsOutlierCondition'', ''LogsMissingDataCondition'', ''MetricsMissingDataCondition'', ''SloSliCondition'', ''SloBurnRateCondition'', ''LogsAnomalyCondition'', ''MetricsAnomalyCondition'' ' + triggerType: + pattern: ^(Critical|Warning|MissingData|ResolvedCritical|ResolvedWarning|ResolvedMissingData)$ + type: string + description: |- + The type of trigger condition. Valid values: + 1. `Critical`: A critical condition to trigger on. + 2. `Warning`: A warning condition to trigger on. + 3. `MissingData`: A condition that indicates data is missing. + 4. `ResolvedCritical`: A condition to resolve a Critical trigger on. + 5. `ResolvedWarning`: A condition to resolve a Warning trigger on. + 6. `ResolvedMissingData`: A condition to resolve a MissingData trigger. + example: Critical + x-pattern-message: 'should be one of the following: ''Critical'', ''Warning'', ''MissingData'', ''ResolvedCritical'', ''ResolvedWarning'', or ''ResolvedMissingData''' + resolutionWindow: + type: string + description: 'The resolution window that the recovery condition must be met in each evaluation that happens within this entire duration before the alert is recovered (resolved). If not specified, the time range of your trigger will be used. Valid values are: `0m`, `-5m`, `-10m`, `-15m`, `-30m`, `-1h`, `-3h`, `-6h`, `-12h`, or `-24h`' + nullable: true + example: '-5m' + discriminator: + propertyName: detectionMethod + mapping: + StaticCondition: '#/components/schemas/StaticCondition' + LogsStaticCondition: '#/components/schemas/LogsStaticCondition' + MetricsStaticCondition: '#/components/schemas/MetricsStaticCondition' + LogsOutlierCondition: '#/components/schemas/LogsOutlierCondition' + MetricsOutlierCondition: '#/components/schemas/MetricsOutlierCondition' + LogsMissingDataCondition: '#/components/schemas/LogsMissingDataCondition' + MetricsMissingDataCondition: '#/components/schemas/MetricsMissingDataCondition' + SloSliCondition: '#/components/schemas/SloSliCondition' + SloBurnRateCondition: '#/components/schemas/SloBurnRateCondition' + LogsAnomalyCondition: '#/components/schemas/LogsAnomalyCondition' + MetricsAnomalyCondition: '#/components/schemas/MetricsAnomalyCondition' + MonitorNotification: required: - - permissionStatements + - notification + - runForTriggerTypes type: object properties: - permissionStatements: + notification: + $ref: '#/components/schemas/Action' + runForTriggerTypes: + uniqueItems: true type: array - description: A list of permission statements. + description: The trigger types assigned to send this notification. items: - $ref: '#/components/schemas/PermissionStatement' - PermissionStatement: - allOf: - - $ref: '#/components/schemas/PermissionStatementDefinition' - - $ref: '#/components/schemas/MetadataModel' - PermissionStatementDefinition: - allOf: - - $ref: '#/components/schemas/Permissions' - - required: - - subjectId - - subjectType - - targetId - type: object - properties: - subjectType: - pattern: ^(role|org)$ - type: string - description: 'Type of subject for the permission. Valid values are: `role` or `org`.' - example: role - x-pattern-message: 'must be one of the following: `role` or `org`' - subjectId: - type: string - description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `role`, subjectId should be the identifier of a role. Similarly, if the subjectType is `org`, the subjectId should be the identifier of the same org, which owns the resource target. - example: 0000000006743FDA - targetId: - type: string - description: The identifier that belongs to the resource this permission assignment applies to. - example: 0000000006743FE2 + type: string MetadataModel: required: - createdAt @@ -1172,7 +1583,7 @@ components: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -1181,7 +1592,7 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. @@ -1199,51 +1610,6 @@ components: - Delete items: type: string - PermissionStatementDefinitions: - required: - - permissionStatementDefinitions - type: object - properties: - permissionStatementDefinitions: - maxItems: 1000 - minItems: 1 - type: array - description: List of permission statement definitions. - items: - $ref: '#/components/schemas/PermissionStatementDefinition' - PermissionStatements: - required: - - permissionStatements - type: object - properties: - permissionStatements: - type: array - description: A list of permission statements. - items: - $ref: '#/components/schemas/PermissionStatement' - PermissionIdentifiers: - required: - - permissionIdentifiers - type: object - properties: - permissionIdentifiers: - maxItems: 1000 - minItems: 1 - type: array - description: List of permission identifiers. - items: - $ref: '#/components/schemas/PermissionIdentifier' - PermissionIdentifier: - allOf: - - $ref: '#/components/schemas/PermissionSubject' - - required: - - targetId - type: object - properties: - targetId: - type: string - description: The identifier that belongs to the resource this permission assignment applies to. - example: 0000000006743FE2 PermissionSubject: required: - subjectId @@ -1261,28 +1627,6 @@ components: description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `user`, subjectId should be the identifier of a user (same goes for `role` or `org` subjectType). example: 0000000006743FDA description: Identifier for the entity (subject) that is granted the permission on resource(s). - PermissionSummariesBySubjects: - required: - - permissionSummariesBySubjects - type: object - properties: - permissionSummariesBySubjects: - type: array - description: A list of PermissionSubjects and PermissionSummaryMeta(s) associated with each subject. - items: - $ref: '#/components/schemas/PermissionSummaryBySubjects' - PermissionSummaryBySubjects: - description: A list of PermissionSubjects and PermissionSummaryMeta(s) associated with each subject. - allOf: - - $ref: '#/components/schemas/PermissionSubject' - - required: - - permissionSummaries - type: object - properties: - permissionSummaries: - type: array - items: - $ref: '#/components/schemas/PermissionSummaryMeta' PermissionSummaryMeta: required: - isExplicit @@ -1318,610 +1662,428 @@ components: description: A true value implies that the permission is defined by the system on the resource and can not be modified by the user. A false value implies that the permission is defined by the user on the resource and can be modified by the user. example: true description: Permission Summary with additional information like inheritance, revocation, etc about the permission. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + Action: + required: + - connectionType + type: object + properties: + connectionType: + pattern: ^(Email|AWSLambda|AzureFunctions|Datadog|HipChat|Jira|NewRelic|Opsgenie|PagerDuty|Slack|MicrosoftTeams|ServiceNow|SumoCloudSOAR|Webhook)$ + type: string + description: |- + Connection type of the connection. Valid values: + 1. `Email` + 2. `AWSLambda` + 3. `AzureFunctions` + 4. `Datadog` + 5. `HipChat` + 6. `Jira` + 7. `NewRelic` + 8. `Opsgenie` + 9. `PagerDuty` + 10. `Slack` + 11. `MicrosoftTeams` + 12. `ServiceNow` + 13. `SumoCloudSOAR` + 14. `Webhook` + x-pattern-message: 'should be one of the following: ''Email'', ''AWSLambda'', ''AzureFunctions'', ''Datadog'', ''HipChat'', ''Jira'', ''NewRelic'', ''Opsgenie'', ''PagerDuty'', ''Slack'', ''MicrosoftTeams'', ''ServiceNow'', ''SumoCloudSOAR'' and ''Webhook''' + description: The base class of all connection types. + discriminator: + propertyName: connectionType + GetMonitorUsageInfoResponse: + type: object + properties: + monitor_usage_info: + type: array + items: + $ref: '#/components/schemas/MonitorUsage' + GetMonitorPlaybooksResponse: + type: object + properties: + monitor_playbooks: + type: array + items: + $ref: '#/components/schemas/MonitorPlaybook' + GetPlaybooksDetailsResponse: + type: object + properties: + playbooks_details: + type: array + items: + $ref: '#/components/schemas/MonitorPlaybook' + MonitorsSearchResponse: + type: object + properties: + monitors_search: + type: array + items: + $ref: '#/components/schemas/MonitorsLibraryItemWithPath' x-stackQL-resources: usage_info: id: sumologic.monitors.usage_info name: usage_info - title: Usage_info + title: Usage Info methods: - getMonitorUsageInfo: + list: operation: $ref: '#/paths/~1v1~1monitors~1usageInfo/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.monitor_usage_info + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetMonitorUsageInfoResponse' + transform: + body: |- + {{- $wrapped := printf "{\"monitor_usage_info\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/usage_info/methods/getMonitorUsageInfo' + - $ref: '#/components/x-stackQL-resources/usage_info/methods/list' insert: [] update: [] delete: [] - disable: - id: sumologic.monitors.disable - name: disable - title: Disable + replace: [] + monitors: + id: sumologic.monitors.monitors + name: monitors + title: Monitors methods: - disableMonitorByIds: + disable_by_ids: operation: $ref: '#/paths/~1v1~1monitors~1disable/put' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - monitors: - id: sumologic.monitors.monitors - name: monitors - title: Monitors - methods: - monitorsReadByIds: + read_by_ids: operation: $ref: '#/paths/~1v1~1monitors/get' response: mediaType: application/json openAPIDocKey: '200' - monitorsCreate: + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1monitors/post' response: mediaType: application/json openAPIDocKey: '200' - monitorsDeleteByIds: + request: + mediaType: application/json + nativeCasing: camel + delete_by_ids: operation: $ref: '#/paths/~1v1~1monitors/delete' response: mediaType: application/json openAPIDocKey: '200' - monitorsReadById: + get_by_path: + operation: + $ref: '#/paths/~1v1~1monitors~1path/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1monitors~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - monitorsUpdateById: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1monitors~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - monitorsDeleteById: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1monitors~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + move: + operation: + $ref: '#/paths/~1v1~1monitors~1{id}~1move/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - root: - id: sumologic.monitors.root - name: root - title: Root - methods: - getMonitorsLibraryRoot: + copy: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1monitors~1root/get' + $ref: '#/paths/~1v1~1monitors~1{id}~1copy/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/root/methods/getMonitorsLibraryRoot' - insert: [] - update: [] - delete: [] - path: - id: sumologic.monitors.path - name: path - title: Path - methods: - monitorsGetByPath: + request: + mediaType: application/json + nativeCasing: camel + export: operation: - $ref: '#/paths/~1v1~1monitors~1path/get' + $ref: '#/paths/~1v1~1monitors~1{id}~1export/get' response: mediaType: application/json openAPIDocKey: '200' - getMonitorsFullPath: + import: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1monitors~1{id}~1path/get' + $ref: '#/paths/~1v1~1monitors~1{parentId}~1import/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/path/methods/getMonitorsFullPath' - insert: [] - update: [] - delete: [] - search: - id: sumologic.monitors.search - name: search - title: Search + - $ref: '#/components/x-stackQL-resources/monitors/methods/get' + - $ref: '#/components/x-stackQL-resources/monitors/methods/get_by_path' + insert: + - $ref: '#/components/x-stackQL-resources/monitors/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/monitors/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/monitors/methods/delete' + replace: [] + playbooks: + id: sumologic.monitors.playbooks + name: playbooks + title: Playbooks methods: - monitorsSearch: + list: operation: - $ref: '#/paths/~1v1~1monitors~1search/get' + $ref: '#/paths/~1v1~1monitors~1playbooks/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.monitor_playbooks + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetMonitorPlaybooksResponse' + transform: + body: |- + {{- $wrapped := printf "{\"monitor_playbooks\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/playbooks/methods/list' insert: [] update: [] delete: [] - move: - id: sumologic.monitors.move - name: move - title: Move + replace: [] + playbook_details: + id: sumologic.monitors.playbook_details + name: playbook_details + title: Playbook Details methods: - monitorsMove: + list: operation: - $ref: '#/paths/~1v1~1monitors~1{id}~1move/post' + $ref: '#/paths/~1v1~1monitors~1playbooksDetails/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.playbooks_details + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetPlaybooksDetailsResponse' + transform: + body: |- + {{- $wrapped := printf "{\"playbooks_details\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/playbook_details/methods/list' insert: [] update: [] delete: [] - copy: - id: sumologic.monitors.copy - name: copy - title: Copy + replace: [] + root: + id: sumologic.monitors.root + name: root + title: Root methods: - monitorsCopy: + get: operation: - $ref: '#/paths/~1v1~1monitors~1{id}~1copy/post' + $ref: '#/paths/~1v1~1monitors~1root/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/root/methods/get' insert: [] update: [] delete: [] - export: - id: sumologic.monitors.export - name: export - title: Export + replace: [] + search: + id: sumologic.monitors.search + name: search + title: Search methods: - monitorsExportItem: + list: operation: - $ref: '#/paths/~1v1~1monitors~1{id}~1export/get' + $ref: '#/paths/~1v1~1monitors~1search/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.monitors_search + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/MonitorsSearchResponse' + transform: + body: |- + {{- $wrapped := printf "{\"monitors_search\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/search/methods/list' insert: [] update: [] delete: [] - import: - id: sumologic.monitors.import - name: import - title: Import + replace: [] + paths: + id: sumologic.monitors.paths + name: paths + title: Paths methods: - monitorsImportItem: + get: operation: - $ref: '#/paths/~1v1~1monitors~1{parentId}~1import/post' + $ref: '#/paths/~1v1~1monitors~1{id}~1path/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/paths/methods/get' insert: [] update: [] delete: [] + replace: [] permissions: id: sumologic.monitors.permissions name: permissions title: Permissions methods: - monitorsReadPermissionsById: + list: operation: $ref: '#/paths/~1v1~1monitors~1{id}~1permissions/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - permissions_set: - id: sumologic.monitors.permissions_set - name: permissions_set - title: Permissions_set - methods: - monitorsSetPermissions: + objectKey: $.permissionStatements + request: + nativeCasing: camel + set: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1monitors~1permissions~1set/put' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - permissions_revoke: - id: sumologic.monitors.permissions_revoke - name: permissions_revoke - title: Permissions_revoke - methods: - monitorsRevokePermissions: + request: + mediaType: application/json + nativeCasing: camel + revoke: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1monitors~1permissions~1revoke/put' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/permissions/methods/list' insert: [] update: [] delete: [] - permission_summaries_by_subjects: - id: sumologic.monitors.permission_summaries_by_subjects - name: permission_summaries_by_subjects - title: Permission_summaries_by_subjects + replace: [] + permission_summaries: + id: sumologic.monitors.permission_summaries + name: permission_summaries + title: Permission Summaries methods: - monitorsReadPermissionSummariesByIdGroupBySubjects: + list: operation: $ref: '#/paths/~1v1~1monitors~1{id}~1permissionSummariesBySubjects/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.permissionSummariesBySubjects + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/permission_summaries/methods/list' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - monitors - description: monitors - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/muting_schedules.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/muting_schedules.yaml new file mode 100644 index 0000000..51f641f --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/muting_schedules.yaml @@ -0,0 +1,926 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Muting Schedules API + description: Muting schedules in the muting schedules library. + version: 1.0.0 +paths: + /v1/mutingSchedules: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Bulk read a mutingschedule or folder. + description: Bulk read a mutingschedule or folder by the given identifiers from the mutingSchedules library. + operationId: mutingSchedulesReadByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: 0000000000000001,0000000000000002,0000000000000003 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean + responses: + '200': + description: A map between an identifier and its definition (mutingschedule or folder). + content: + application/json: + schema: + $ref: '#/components/schemas/IdToMutingSchedulesLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - mutingSchedulesLibraryManagement + summary: | + Create a mutingschedule or folder. + description: Create a mutingschedule or folder in the mutingSchedules library. + operationId: mutingSchedulesCreate + parameters: + - name: parentId + in: query + description: Identifier of the parent folder in which to create the mutingschedule or folder. + required: true + schema: + type: string + requestBody: + description: The mutingschedule or folder to create. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBase' + required: true + responses: + '200': + description: The mutingschedule or folder was created. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - mutingSchedulesLibraryManagement + summary: | + Bulk delete a mutingschedule or folder. + description: Bulk delete a mutingschedule or folder by the given identifiers in the mutingSchedules library. + operationId: mutingSchedulesDeleteByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: 0000000000000001,0000000000000002,0000000000000003 + responses: + '200': + description: A map between the deleted identifier and its metadata. + content: + application/json: + schema: + $ref: '#/components/schemas/IdToMutingSchedulesLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/root: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Get the root mutingSchedules folder. + description: Get the root folder in the mutingSchedules library. + operationId: getMutingSchedulesLibraryRoot + responses: + '200': + description: Root folder of the mutingSchedules library. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryFolderResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/search: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Search for a mutingschedule or folder. + description: Search for a mutingschedule or folder in the mutingSchedules library structure. + operationId: mutingSchedulesSearch + parameters: + - name: query + in: query + description: |- + The search query to find mutingschedule or folder. Below is the list of different filters with examples: + - **createdBy** : Filter by the user's identifier who created the content. Example: `createdBy:000000000000968B`. + - **createdBefore** : Filter by the content objects created before the given timestamp(in milliseconds). Example: `createdBefore:1457997222`. + - **createdAfter** : Filter by the content objects created after the given timestamp(in milliseconds). Example: `createdAfter:1457997111`. + - **modifiedBefore** : Filter by the content objects modified before the given timestamp(in milliseconds). Example: `modifiedBefore:1457997222`. + - **modifiedAfter** : Filter by the content objects modified after the given timestamp(in milliseconds). Example: `modifiedAfter:1457997111`. + - **type** : Filter by the type of the content object. Example: `type:folder`. + + You can also use multiple filters in one query. For example to search for all content objects created by user with identifier 000000000000968B with creation timestamp after 1457997222 containing the text Test, the query would look like: + + `createdBy:000000000000968B createdAfter:1457997222 Test` + required: true + schema: + type: string + example: createdBy:000000000000968B Test + - name: limit + in: query + description: Maximum number of items you want in the response. + required: false + schema: + maximum: 5000 + type: integer + format: int32 + default: 1000 + example: 10 + - name: offset + in: query + description: The position or row from where to start the search operation. + required: false + schema: + type: integer + format: int32 + default: 0 + example: 5 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean + responses: + '200': + description: List of folders and mutingSchedules matching the search query. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Get a mutingschedule or folder. + description: Get a mutingschedule or folder from the mutingSchedules library. + operationId: mutingSchedulesReadById + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to read. + required: true + schema: + type: string + responses: + '200': + description: Requested mutingschedule or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - mutingSchedulesLibraryManagement + summary: | + Update a mutingschedule or folder. + description: Update a mutingschedule or folder in the mutingSchedules library. + operationId: mutingSchedulesUpdateById + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to update. + required: true + schema: + type: string + requestBody: + description: The mutingschedule or folder to update. The content version must match its latest version number in the mutingSchedules library. If the version does not match it will not be updated. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseUpdate' + required: true + responses: + '200': + description: The mutingschedule or folder was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - mutingSchedulesLibraryManagement + summary: | + Delete a mutingschedule or folder. + description: Delete a mutingschedule or folder from the mutingSchedules library. + operationId: mutingSchedulesDeleteById + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to delete. + required: true + schema: + type: string + responses: + '204': + description: The mutingschedule or folder was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}/path: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Get the path of a mutingschedule or folder. + description: Get the full path of the mutingschedule or folder in the mutingSchedules library. + operationId: getMutingSchedulesFullPath + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder. + required: true + schema: + type: string + responses: + '200': + description: Full path of the mutingschedule or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/Path' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}/copy: + post: + tags: + - mutingSchedulesLibraryManagement + summary: Copy a mutingschedule or folder. + description: Copy a mutingschedule or folder in the mutingSchedules library. + operationId: mutingSchedulesCopy + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to copy. + required: true + schema: + type: string + requestBody: + description: |- + Fields include: + 1) Identifier of the parent folder to copy to. + 2) Optionally provide a new name. + 3) Optionally provide a new description. + 4) Optionally set to true if you want to copy and preserve the locked status. Requires `LockMutingSchedules` capability. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentCopyParams' + required: true + responses: + '200': + description: The mutingschedule or folder was copied. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}/export: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Export a mutingschedule or folder. + description: Export a mutingschedule or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root. + operationId: mutingSchedulesExportItem + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to export. + required: true + schema: + type: string + responses: + '200': + description: Exported mutingschedule or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseExport' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{parentId}/import: + post: + tags: + - mutingSchedulesLibraryManagement + summary: Import a mutingschedule or folder. + description: Import a mutingschedule or folder. + operationId: mutingSchedulesImportItem + parameters: + - name: parentId + in: path + description: Identifier of the parent folder in which to import the mutingschedule or folder. + required: true + schema: + type: string + requestBody: + description: The mutingschedule or folder to be imported. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseExport' + required: true + responses: + '200': + description: 'Newly imported mutingschedule or folder. NOTE: Permissions field will not be filled (empty list).' + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + IdToMutingSchedulesLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + MutingSchedulesLibraryBase: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + default: '' + type: + type: string + description: |- + Type of the object model. Valid values: + 1) MutingSchedulesLibraryMutingschedule + 2) MutingSchedulesLibraryFolder + discriminator: + propertyName: type + MutingSchedulesLibraryBaseResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the mutingschedule or folder. + name: + type: string + description: Identifier of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + version: + type: integer + description: Version of the mutingschedule or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Mutingschedule + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + discriminator: + propertyName: type + MutingSchedulesLibraryFolderResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + - children + - permissions + type: object + properties: + id: + type: string + description: Identifier of the mutingschedule or folder. + name: + type: string + description: Identifier of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + version: + type: integer + description: Version of the mutingschedule or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Mutingschedule + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + children: + type: array + description: 'Children of the folder. NOTE: Permissions field will not be filled (empty list) for children.' + items: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + discriminator: + propertyName: type + ListMutingSchedulesLibraryItemWithPath: + type: array + description: Multi-type list of types mutingschedule or folder. + items: + $ref: '#/components/schemas/MutingSchedulesLibraryItemWithPath' + MutingSchedulesLibraryBaseUpdate: + required: + - name + - type + - version + type: object + properties: + name: + type: string + description: The name of the mutingschedule or folder. + description: + type: string + description: The description of the mutingschedule or folder. + default: '' + version: + type: integer + description: The version of the mutingschedule or folder. + format: int64 + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + Path: + required: + - path + - pathItems + type: object + properties: + pathItems: + type: array + description: Elements of the path. + items: + $ref: '#/components/schemas/PathItem' + path: + type: string + description: String representation of the path. + ContentCopyParams: + required: + - parentId + type: object + properties: + parentId: + type: string + description: Identifier of the parent folder to copy to. + name: + type: string + description: Optionally provide a new name. + description: + type: string + description: Optionally provide a new description. + MutingSchedulesLibraryBaseExport: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MutingSchedulesLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + path: + type: string + description: Path of the mutingschedule or folder. + example: /MutingSchedules/SampleFolder/TestMutingschedule + PathItem: + required: + - id + - name + type: object + properties: + id: + type: string + description: Identifier of the path element. + name: + type: string + description: Name of the path element. + description: + type: string + description: Description of the path element. + MutingSchedulesSearchResponse: + type: object + properties: + muting_schedules_search: + type: array + items: + $ref: '#/components/schemas/MutingSchedulesLibraryItemWithPath' + x-stackQL-resources: + muting_schedules: + id: sumologic.muting_schedules.muting_schedules + name: muting_schedules + title: Muting Schedules + methods: + read_by_ids: + operation: + $ref: '#/paths/~1v1~1mutingSchedules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1mutingSchedules/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete_by_ids: + operation: + $ref: '#/paths/~1v1~1mutingSchedules/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + copy: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1{id}~1copy/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + export: + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1{id}~1export/get' + response: + mediaType: application/json + openAPIDocKey: '200' + import: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1{parentId}~1import/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/muting_schedules/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/muting_schedules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/muting_schedules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/muting_schedules/methods/delete' + replace: [] + root: + id: sumologic.muting_schedules.root + name: root + title: Root + methods: + get: + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1root/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/root/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + search: + id: sumologic.muting_schedules.search + name: search + title: Search + methods: + list: + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1search/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.muting_schedules_search + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/MutingSchedulesSearchResponse' + transform: + body: |- + {{- $wrapped := printf "{\"muting_schedules_search\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/search/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + paths: + id: sumologic.muting_schedules.paths + name: paths + title: Paths + methods: + get: + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1{id}~1path/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/paths/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/oauth.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/oauth.yaml new file mode 100644 index 0000000..0603d2e --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/oauth.yaml @@ -0,0 +1,1819 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Oauth API + description: OAuth clients, consents and scopes. + version: 1.0.0 +paths: + /v1/oauth/scopes: + get: + tags: + - oauthManagement + summary: Get all scopes. + description: Get a list of all of the scopes that can be added to an oauth client. + operationId: listOAuthScopes + responses: + '200': + description: A list of scopes that can be added to an oauth client. + content: + application/json: + schema: + $ref: '#/components/schemas/ScopesList' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/clients: + get: + tags: + - oauthManagement + summary: List the OAuth clients. + description: List all OAuth clients. + operationId: listOAuthClients + parameters: + - name: limit + in: query + description: Limit the number of OAuth clients returned in the response. The number of OAuth clients returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: runAsId + in: query + description: Identifier of the service account that the OAuth Client runs as. + required: false + schema: + type: string + - name: clientId + in: query + description: Filter clients by exact client ID. When specified, returns only the client matching this ID. Supports URL-based client identifiers (URL-encode the value). + required: false + schema: + type: string + responses: + '200': + description: A list of all OAuth clients within the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListOAuthClientsResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - oauthManagement + summary: Create a new OAuth client. + description: Creates a new OAuth clientId and clientSecret. + operationId: createOAuthClient + requestBody: + description: Information about the new OAuth client. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientCreateRequest' + required: true + responses: + '200': + description: The OAuth client has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientCreationResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/clients/{id}: + get: + tags: + - oauthManagement + summary: Get an OAuth client. + description: Get an OAuth client with the given identifier from the organization. + operationId: getOAuthClientById + parameters: + - name: id + in: path + description: Identifier of an OAuth client to return. + required: true + schema: + type: string + responses: + '200': + description: OAuth client object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClient' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - oauthManagement + summary: Update an OAuth client. + description: Updates the properties of existing OAuth client by Id. + operationId: updateOAuthClient + parameters: + - name: id + in: path + description: The id of an OAuth client to update. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientUpdateRequest' + required: true + responses: + '200': + description: OAuth client updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClient' + default: + description: OAuth client update failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - oauthManagement + summary: Delete an OAuth client. + description: Deletes the OAuth client with the given Id. + operationId: deleteOAuthClient + parameters: + - name: id + in: path + description: The Id of the OAuth client to delete. + required: true + schema: + type: string + responses: + '204': + description: OAuth client deletion completed successfully. + default: + description: OAuth client deletion failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/clients/{id}/rotate: + put: + tags: + - oauthManagement + summary: Rotate the oauth client secret + description: Generates a new secret for the oauth client that is passed in the call, keeping the same client ID. + operationId: rotateOauthSecret + parameters: + - name: id + in: path + description: The ID of the oauth client to rotate the secret for. + required: true + schema: + type: string + responses: + '200': + description: OAuth client secret rotated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientCreationResponse' + default: + description: Oauth client secret rotation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/consents: + get: + tags: + - oauthManagement + summary: List OAuth consents. + description: Get a list of OAuth consents within the organization. Administrators can list all consents, while others can only list consents that they have authorized. + operationId: listOAuthConsents + parameters: + - name: limit + in: query + description: Limit the number of consents returned in the response. + required: false + schema: + maximum: 10000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. + required: false + schema: + type: string + - name: authorizedUser + in: query + description: Filter consents by the identifier of the user who authorized the consent. + required: false + schema: + type: string + - name: clientId + in: query + description: Filter consents by the clientId of a registered OAuth client. + required: false + schema: + type: string + responses: + '200': + description: A list of OAuth consents. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListOAuthConsentsResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/consents/{consentId}: + delete: + tags: + - oauthManagement + summary: Delete an OAuth consent. + description: Deletes the OAuth consent with the given Id. + operationId: deleteOAuthConsent + parameters: + - name: consentId + in: path + description: The ID of the OAuth consent to delete. + required: true + schema: + type: string + responses: + '204': + description: OAuth consent deletion completed successfully. + default: + description: OAuth consent deletion failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ScopesList: + required: + - data + type: object + properties: + data: + type: array + description: List of scopes + items: + $ref: '#/components/schemas/ScopeDefinition' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + PaginatedListOAuthClientsResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of OAuth clients. + items: + $ref: '#/components/schemas/OAuthClient' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + description: List of OAuth clients. + OAuthClientCreateRequest: + required: + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + default: [] + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/CreateClientCredentialsClientRequest' + AuthorizationCodeClient: '#/components/schemas/CreateAuthorizationCodeClientRequest' + CimdAuthorizationCodeClient: '#/components/schemas/CreateCimdAuthorizationCodeClientRequest' + OAuthClientCreationResponse: + required: + - clientId + - createdAt + - createdBy + - description + - disabled + - id + - modifiedAt + - modifiedBy + - name + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + id: + pattern: ^[0-9A-F]{16}$ + type: string + description: Unique identifier of the OAuth client. + example: 0000000006743FDE + clientId: + type: string + description: Identifier of the OAuth client. Unique within each organization. Will be a URL for dynamically generated clients. + example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the OAuth client. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the OAuth client. + example: 0000000006743FDD + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the OAuth client. + example: My OAuth Client + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the OAuth client. + example: OAuth client for data ingestion + disabled: + type: boolean + description: Whether the OAuth client is disabled. Disabled OAuth clients cannot be used to authenticate users. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/ClientCredentialsClientWithSecret' + AuthorizationCodeClient: '#/components/schemas/AuthorizationCodeClientWithSecret' + CimdAuthorizationCodeClient: '#/components/schemas/CimdAuthorizationCodeClientCreationResponse' + OAuthClient: + required: + - clientId + - createdAt + - createdBy + - description + - disabled + - id + - modifiedAt + - modifiedBy + - name + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + id: + type: string + description: Unique identifier of the OAuth client. + example: 0000000006743FDE + clientId: + type: string + description: Identifier of the OAuth client. Unique within each organization. Will be a URL for dynamically generated clients. + example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the OAuth client. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the OAuth client. + example: 0000000006743FDD + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the OAuth client. + example: My OAuth Client + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the OAuth client. + example: OAuth client for data ingestion + disabled: + type: boolean + description: Whether the OAuth client is disabled. Disabled OAuth clients cannot be used to authenticate users. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/ClientCredentialsClient' + AuthorizationCodeClient: '#/components/schemas/AuthorizationCodeClient' + CimdAuthorizationCodeClient: '#/components/schemas/CimdAuthorizationCodeClient' + OAuthClientUpdateRequest: + required: + - disabled + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + disabled: + type: boolean + description: Whether the OAuth client is disabled. Disabled OAuth clients cannot be used to authenticate users. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/UpdateClientCredentialsClientRequest' + AuthorizationCodeClient: '#/components/schemas/UpdateAuthorizationCodeClientRequest' + CimdAuthorizationCodeClient: '#/components/schemas/UpdateCimdAuthorizationCodeClientRequest' + PaginatedListOAuthConsentsResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of OAuth consents. + items: + $ref: '#/components/schemas/OAuthConsent' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + description: List of OAuth consents. + ScopeDefinition: + required: + - dependsOn + - group + - id + - label + - type + type: object + properties: + id: + type: string + description: The name of the scope. + example: managePartitions + label: + type: string + description: The UI label for the scope. + example: Manage Partitions + type: + type: string + description: Type of scope. + example: Manage + dependsOn: + type: array + description: Any scopes that are required for this scope to be enabled. + example: + - viewPartitions + items: + type: string + group: + required: + - id + - label + type: object + properties: + id: + type: string + description: The name of the scope group + example: dataManagement + label: + type: string + description: The label for the scope group + example: Data Management + parentId: + type: string + description: The ID of the parent scope group + description: The group that the scope belongs to. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + OAuthConsent: + required: + - authorizedAt + - authorizedUser + - clientId + - clientName + - id + - scopes + type: object + properties: + id: + type: string + description: Unique identifier for the consent. + example: 0000000006743FDE + clientId: + type: string + description: The ID of the registered client that was used in granting consent. + example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ + clientName: + type: string + description: The name of the registered client that was used in granting consent. + example: My OAuth App + authorizedAt: + type: string + description: Timestamp when the consent was authorized in UTC in RFC3339 format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + authorizedUser: + type: string + description: Identifier of the user who authorized the consent. + example: 0000000006743FDD + lastUsedAt: + type: string + description: Timestamp when the consent was last used to grant an access token in UTC in RFC3339 format. Null if never used. + format: date-time + example: '2018-10-16T09:10:00.000Z' + scopes: + type: array + description: The scopes that were granted in the consent. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + description: An OAuth consent granted by a user. + x-stackQL-resources: + scopes: + id: sumologic.oauth.scopes + name: scopes + title: Scopes + methods: + list: + operation: + $ref: '#/paths/~1v1~1oauth~1scopes/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/scopes/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + clients: + id: sumologic.oauth.clients + name: clients + title: Clients + methods: + list: + operation: + $ref: '#/paths/~1v1~1oauth~1clients/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1oauth~1clients/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1oauth~1clients~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1oauth~1clients~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1oauth~1clients~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + rotate_secret: + operation: + $ref: '#/paths/~1v1~1oauth~1clients~1{id}~1rotate/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/clients/methods/get' + - $ref: '#/components/x-stackQL-resources/clients/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/clients/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/clients/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/clients/methods/delete' + replace: [] + consents: + id: sumologic.oauth.consents + name: consents + title: Consents + methods: + list: + operation: + $ref: '#/paths/~1v1~1oauth~1consents/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1oauth~1consents~1{consentId}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/consents/methods/list' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/consents/methods/delete' + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/organizations.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/organizations.yaml new file mode 100644 index 0000000..4338f5b --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/organizations.yaml @@ -0,0 +1,212 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Organizations API + description: Usage of child organizations (multi-account management). + version: 1.0.0 +paths: + /v1/organizations/usages: + post: + tags: + - orgsManagement + summary: Get usages for child orgs. + description: Get the credits usage details of the child orgs for a parent. + operationId: getChildUsages + requestBody: + description: Details for the usages to be fetched. + content: + application/json: + schema: + $ref: '#/components/schemas/ChildUsageDetailsRequest' + responses: + '200': + description: Usage details for the child orgs. + content: + application/json: + schema: + $ref: '#/components/schemas/ChildUsageDetailsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ChildUsageDetailsRequest: + type: object + properties: + startDate: + type: string + description: Start date, without the time, of the usage data to fetch. + example: '2019-07-20T00:00:00.000Z' + endDate: + type: string + description: End date, without the time, of usage data to fetch. + example: '2019-10-20T00:00:00.000Z' + description: The child usage details request for the parent account + ChildUsageDetailsResponse: + required: + - data + type: object + properties: + data: + type: array + description: Usage details of the child orgs. + items: + $ref: '#/components/schemas/ChildUsageDetail' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ChildUsageDetail: + required: + - orgId + - status + - usages + type: object + properties: + status: + pattern: ^(Active|Delinked|Deactivated)$ + type: string + description: Status of the child org. + example: Active + x-pattern-message: Valid values are `Active`, `Delinked`, and `Deactivated` + orgName: + type: string + description: Name of the child org. + example: DSW Corp - Prod/Main + orgId: + maxLength: 23 + minLength: 19 + type: string + description: The unique identifier of an organization. It consists of the deployment ID and the hexadecimal account ID separated by a dash `-` character. + example: us2-00000000FF42A0C3 + allocatedCredits: + type: number + description: Denotes the total number of credits provisioned for the child organization to use. + format: double + example: 10000 + usages: + $ref: '#/components/schemas/ChildUsage' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ChildUsage: + required: + - totalCreditsUsed + type: object + properties: + totalCreditsUsed: + type: number + description: Total Credits used by the child org. + format: double + example: 10000 + usagePercentage: + type: number + description: Percentage of used credits from the allocated credits. + format: double + example: 10000 + forecastPercentage: + type: number + description: Forecasted percentage of credits will be used in the given time period. + format: double + example: 10000 + usagePercentChangeWoW: + type: number + description: Week over week usage percentage for the subscription period. + format: double + example: 10000 + usagePercentChange: + type: number + description: Percentage of usage change over the given time period. + format: double + example: 10000 + x-stackQL-resources: + child_usages: + id: sumologic.organizations.child_usages + name: child_usages + title: Child Usages + methods: + get_usages: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1organizations~1usages/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/ot_collectors.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/ot_collectors.yaml new file mode 100644 index 0000000..00bfda8 --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/ot_collectors.yaml @@ -0,0 +1,618 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Ot Collectors API + description: OpenTelemetry collectors. + version: 1.0.0 +paths: + /v1/otCollectors: + post: + tags: + - otCollectorManagementExternal + summary: Get paginated list of OT Collectors + description: Given different filter, search and sort conditions, get list of otCollectors. + operationId: getPaginatedOTCollectors + requestBody: + description: pagination request details + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedOTCollectorsRequest' + required: true + responses: + '200': + description: A list of paginated OT Collectors. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedOTCollectorsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/{id}: + get: + tags: + - otCollectorManagementExternal + summary: Get OT Collector by ID. + description: Get OT Collector by ID. + operationId: getOTCollector + parameters: + - name: id + in: path + description: Identifier of the OT Collector to get. + required: true + schema: + type: string + responses: + '200': + description: An OT Collector by identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/OTCollector' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - otCollectorManagementExternal + summary: Delete an OT Collector. + description: Delete an OT Collector with the given identifier. + operationId: deleteOTCollector + parameters: + - name: id + in: path + description: Identifier of the OT Collector to delete. + required: true + schema: + type: string + responses: + '204': + description: The OT Collector was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/totalCount: + get: + tags: + - otCollectorManagementExternal + summary: Get a count of OT Collectors. + description: Get total count of OT Collectors for a customer. + operationId: getOTCollectorsCount + responses: + '200': + description: Total count of OT Collectors. + content: + application/json: + schema: + $ref: '#/components/schemas/OTCollectorCountResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/otCollectorsByName: + get: + tags: + - otCollectorManagementExternal + summary: Get OT Collectors by name. + description: provided list of names, get all OT Collectors with metadata. + operationId: getOTCollectorsByNames + parameters: + - name: names + in: query + description: A required parameter that accepts a list of names for which we need to collect all metadata. + required: true + schema: + type: array + items: + type: string + responses: + '200': + description: A list of OT Collectors. + content: + application/json: + schema: + $ref: '#/components/schemas/OTCollectorListResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/offline: + delete: + tags: + - otCollectorManagementExternal + summary: Delete all Offline OT Collectors + description: Delete all offline OT Collectors for a given customer. + operationId: deleteOfflineOTCollectors + responses: + '204': + description: All offline OT Collectors of the given customer deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + PaginatedOTCollectorsRequest: + type: object + properties: + search: + type: string + description: search by collector id or free text search on collector properties. + example: testAgent + filters: + type: object + properties: + tags: + type: array + description: tags associated with the OT collector + example: + - - key: region + values: + - us2 + - mum + - - key: key2 + values: + - value2 + items: + type: array + items: + $ref: '#/components/schemas/OtTag' + default: [] + os: + type: string + description: Name of the Operating System. + nullable: true + example: linux + x-visibility: private + collectorVersionRange: + $ref: '#/components/schemas/VersionRange' + alive: + type: boolean + description: alive Status of the OT Collector based on heartbeat. + nullable: true + example: true + isRemotelyManaged: + type: boolean + description: Management Status of the OT Collector based on if it is remotely or locally managed. + nullable: true + example: true + isUpgradeAvailable: + type: boolean + description: upgrade availability status of the OT Collector. + nullable: true + example: true + hasNoSourceTemplateLinked: + type: boolean + description: whether the remotely managed OT Collector has no source template linked. + nullable: true + example: true + healthStatus: + type: array + description: Filter by one or more health statuses of the OT Collector. + example: + - Error + - Warning + items: + type: string + enum: + - Healthy + - Error + - Warning + hasNoData: + type: boolean + description: Filter OT Collectors by no-data status. When true, returns only collectors with no data. When false, returns only collectors that have data. + nullable: true + example: true + fleetIds: + maxItems: 50 + type: array + description: Filter OT Collectors by fleet IDs. + example: + - 0000000005F5E105 + items: + maxLength: 16 + minLength: 1 + type: string + x-visibility: private + description: parameter which is used for filtering. + sortBy: + type: string + description: parameter which is used for sorting. + example: name + next: + type: string + description: parameter which is used for fetching next set of results. + example: token + limit: + maximum: 1000 + minimum: 1 + type: integer + description: parameter which is used for limiting number of otCollectors on a page. + format: int32 + example: 30 + includeCount: + type: boolean + description: count of filtered otCollectors. + nullable: true + example: false + PaginatedOTCollectorsResponse: + required: + - data + type: object + properties: + data: + type: array + description: paginated list of OT Collectors. + items: + $ref: '#/components/schemas/OTCollector' + next: + type: string + description: next page token. + count: + type: integer + description: count of otCollectors in response. + format: int32 + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + OTCollector: + required: + - createdAt + - createdBy + - id + - modifiedAt + - modifiedBy + - name + - systemInfo + - version + type: object + properties: + id: + type: string + description: Unique identifier of the OT Collector. + example: 0000000005F5E105 + name: + type: string + description: Name of the OT Collector. + example: test OT Collector + version: + required: + - currentVersion + type: object + properties: + currentVersion: + type: string + description: Current version of the OT Collector. + latestAvailableVersion: + type: string + description: Latest available version of the OT Collector. + description: Version information of the OT Collector. + category: + type: string + description: Category of the OT Collector. + example: apache + description: + type: string + description: Description of the OT Collector. + tags: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Tags associated with the OT Collector. + example: + team: app-dev + showIcon: true + fleetId: + type: string + description: Fleet Id of the OT Collector + example: 0000000005F5E105 + healthIncidentsTracker: + type: object + properties: + errorsCount: + type: integer + description: Number of errors associated with the OT Collector. + format: int32 + example: 0 + warningsCount: + type: integer + description: Number of warnings associated with the OT Collector. + format: int32 + example: 1 + description: Health incident information. + ephemeral: + type: boolean + description: Ephemeral Status of the OT Collector. + example: false + alive: + type: boolean + description: Alive Status of the OT Collector based on heartbeat. + example: true + isRemotelyManaged: + type: boolean + description: Management Status of the OT Collector based on if it is remotely or locally managed. + example: true + effectiveConfig: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Config map that includes Base 64 Encoded Effective Configuration Yaml of the Remotely managed OT Collector. + example: + 00000000000000A3: ZGVtbyBjb25maWc= + 00000000000000D5: XFVtbfe34tgcvefv= + systemInfo: + type: object + properties: + hostName: + type: string + description: Host name of the OT Collector. + example: app.test.com + hostOsName: + type: string + description: Host OS name of the OT Collector. + example: Linux + hostOsVersion: + type: string + description: Host OS version of the OT Collector. + example: 5.4.144-69.257.amzn2.x86_64 + hostIpAddress: + type: string + description: Host IP address of the OT Collector. + example: 19.123.24.66 + hostEnv: + type: string + description: Host environment of the OT Collector. + example: EKS-1.20.2 + description: System information of the OT Collector. + timeZone: + type: string + description: timezone of the collector + example: UTC + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006A5C7A2 + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006A5C7A2 + sourceTemplateLinkedCount: + type: integer + description: Count of the source templates linked to a collector + example: 1 + description: An OT Collector definition. + OTCollectorCountResponse: + required: + - totalCount + type: object + properties: + totalCount: + type: integer + description: Total number of OT Collector for a customer. + format: int32 + example: 100 + description: response for total count of otCollectors. + OTCollectorListResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of OT Collectors. + items: + $ref: '#/components/schemas/OTCollector' + OtTag: + required: + - key + - values + type: object + properties: + key: + type: string + description: key of the given tag. + example: key1 + values: + type: array + description: values of the given tag. + items: + type: string + example: value1 + VersionRange: + type: object + properties: + minVersion: + pattern: ^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-sumo.+)?$ + type: string + description: Minimum version of otCollector. + maxVersion: + pattern: ^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-sumo.+)?$ + type: string + description: Maximum version of the collector. + rangeType: + type: string + description: 'Specifies how filtering should be applied when `minVersion` and `maxVersion` are defined. - `Within`: Filtering includes the specified range. - `Outside`: Filtering excludes the specified range. By default, filtering includes the specified range.' + description: Version range for otCollector. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + x-stackQL-resources: + ot_collectors: + id: sumologic.ot_collectors.ot_collectors + name: ot_collectors + title: Ot Collectors + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + pagination: + requestToken: + key: next + location: body + responseToken: + key: next + location: body + operation: + $ref: '#/paths/~1v1~1otCollectors/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1otCollectors~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1otCollectors~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + get_by_names: + operation: + $ref: '#/paths/~1v1~1otCollectors~1otCollectorsByName/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + delete_offline: + operation: + $ref: '#/paths/~1v1~1otCollectors~1offline/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/ot_collectors/methods/get' + - $ref: '#/components/x-stackQL-resources/ot_collectors/methods/list' + - $ref: '#/components/x-stackQL-resources/ot_collectors/methods/get_by_names' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/ot_collectors/methods/delete' + replace: [] + total_count: + id: sumologic.ot_collectors.total_count + name: total_count + title: Total Count + methods: + get: + operation: + $ref: '#/paths/~1v1~1otCollectors~1totalCount/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/total_count/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/parsers.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/parsers.yaml new file mode 100644 index 0000000..fb3bdc1 --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/parsers.yaml @@ -0,0 +1,1159 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Parsers API + description: Custom and system parsers in the parsers library. + version: 1.0.0 +paths: + /v1/parsers/root: + get: + tags: + - parsersLibraryManagement + summary: Get the root folder in the library. + description: | + Get the root folder in the library. + operationId: getParsersLibraryRoot + responses: + '200': + description: Root folder in the library. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryFolderResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers: + get: + tags: + - parsersLibraryManagement + summary: Bulk read folders and parsers. + description: | + Bulk read folders and parsers by the given identifiers from the library. + operationId: parsersReadByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + example: 0000000000000001,0000000000000002,0000000000000003 + items: + type: string + responses: + '200': + description: A map between an identifier and its definition (folder or parser). + content: + application/json: + schema: + $ref: '#/components/schemas/IdToParsersLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - parsersLibraryManagement + summary: | + Create a folder or parser. + description: | + Create a folder or parser. + operationId: parsersCreate + parameters: + - name: parentId + in: query + description: Identifier of the parent folder in which to create the folder or parser. + required: true + schema: + type: string + requestBody: + description: The folder or parser to be created. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBase' + required: true + responses: + '200': + description: Newly created folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - parsersLibraryManagement + summary: | + Bulk delete folders and parsers. + description: | + Bulk delete folders and parsers by the given identifiers from the library. + operationId: parsersDeleteByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + example: 0000000000000001,0000000000000002,0000000000000003 + items: + type: string + responses: + '200': + description: A map between the deleted identifier and its meta data. + content: + application/json: + schema: + $ref: '#/components/schemas/IdToParsersLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}: + get: + tags: + - parsersLibraryManagement + summary: | + Read a folder or parser. + description: | + Read a folder or parser. + operationId: parsersReadById + parameters: + - name: id + in: path + description: Identifier of the folder or parser to read. + required: true + schema: + type: string + responses: + '200': + description: Requested folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - parsersLibraryManagement + summary: | + Update a folder or parser. + description: | + Update a folder or parser. + operationId: parsersUpdateById + parameters: + - name: id + in: path + description: Identifier of the folder or parser to update. + required: true + schema: + type: string + requestBody: + description: | + The folder or parser to be updated. Content version must match its latest version number in the library. Any staled version will not be updated. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseUpdate' + required: true + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - parsersLibraryManagement + summary: | + Delete a folder or parser. + description: | + Delete a folder or parser. + operationId: parsersDeleteById + parameters: + - name: id + in: path + description: Identifier of the folder or parser to delete. + required: true + schema: + type: string + responses: + '204': + description: The folder or parser was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/path: + get: + tags: + - parsersLibraryManagement + summary: Get full path of folder or parser. + description: | + Get full path of folder or parser. + operationId: getParsersFullPath + parameters: + - name: id + in: path + description: Identifier of the folder or parser. + required: true + schema: + type: string + responses: + '200': + description: Full path of the folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/Path' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/lock: + post: + tags: + - parsersLibraryManagement + summary: Lock a folder or a parser. + description: | + Locking requires the `LockParsers` capability. When an object is locked, it can't be moved or deleted and only the local fields can be modified. Locking recursively locks all of the objects children. + operationId: parsersLockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be locked. + required: true + schema: + type: string + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/unlock: + post: + tags: + - parsersLibraryManagement + summary: Unlock a folder or a parser. + description: | + Unlocking requires the `LockParsers` capability. It is only possible to unlock the highest locked object in a tree of locked objects. Unlocking recursively unlocks all of the objects children. + operationId: parsersUnlockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be unlocked. + required: true + schema: + type: string + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/move: + post: + tags: + - parsersLibraryManagement + summary: Move a folder or parser. + description: | + Move a folder or parser. + operationId: parsersMove + parameters: + - name: id + in: path + description: Identifier of the folder or parser to move. + required: true + schema: + type: string + - name: parentId + in: query + description: Identifier of the parent folder to move the folder or parser to. + required: true + schema: + type: string + responses: + '200': + description: Moved folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/copy: + post: + tags: + - parsersLibraryManagement + summary: Copy a folder or parser. + description: | + Copy a folder or parser. + operationId: parsersCopy + parameters: + - name: id + in: path + description: Identifier of the folder or parser to copy. + required: true + schema: + type: string + requestBody: + description: | + Fields include: + 1) Identifier of the parent folder to copy to. + 2) Optionally provide a new name. + 3) Optionally provide a new description. + 4) Optionally set to true if you want to copy and preserved the locked status. Requires `LockParsers` capability. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentCopyParams' + required: true + responses: + '200': + description: Newly copied folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/export: + get: + tags: + - parsersLibraryManagement + summary: Export a folder or parser. + description: Export a folder or parser. + operationId: parsersExportItem + parameters: + - name: id + in: path + description: Identifier of the folder or parser to export. + required: true + schema: + type: string + - name: preserveLock + in: query + description: | + Set this to true if you want to export an object and preserve the locked status. + required: false + schema: + type: boolean + default: false + responses: + '200': + description: Exported folder or parser + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryExportBase' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{parentId}/import: + post: + tags: + - parsersLibraryManagement + summary: Import a folder or parser + description: | + Import a folder or parser + operationId: parsersImportItem + parameters: + - name: parentId + in: path + description: Identifier of the parent folder in which to import the folder or parser. + required: true + schema: + type: string + requestBody: + description: | + The folder or parser to be imported. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryExportBase' + required: true + responses: + '200': + description: Newly imported folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/path: + get: + tags: + - parsersLibraryManagement + summary: Read a folder or parser by its path. + description: | + Read a folder or parser by its path. + operationId: parsersGetByPath + parameters: + - name: path + in: query + description: The path of the folder or parser. + required: true + schema: + type: string + responses: + '200': + description: Requested folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/search: + get: + tags: + - parsersLibraryManagement + summary: Search for folders or parsers. + description: Search for a folder or parser in the cloud SIEM parsers library structure. + operationId: parsersSearch + parameters: + - name: query + in: query + description: |- + The search query to find folder or parsers. Below is the list of different filters with examples: + - **createdBy** : Filter by the user's identifier who created the content. Example: `createdBy:000000000000968B`. + - **createdBefore** : Filter by the content objects created before the given timestamp(in milliseconds). Example: `createdBefore:1457997222`. + - **createdAfter** : Filter by the content objects created after the given timestamp(in milliseconds). Example: `createdAfter:1457997111`. + - **modifiedBefore** : Filter by the content objects modified before the given timestamp(in milliseconds). Example: `modifiedBefore:1457997222`. + - **modifiedAfter** : Filter by the content objects modified after the given timestamp(in milliseconds). Example: `modifiedAfter:1457997111`. + - **type** : Filter by the type of the content object. Example: `type:folder`. + You can also use multiple filters in one query. For example to search for all content objects created by user with identifier 000000000000968B with creation timestamp after 1457997222 containing the text Test, the query would look like: + `createdBy:000000000000968B createdAfter:1457997222 Test` + required: true + schema: + type: string + example: createdBy:000000000000968B Test + - name: limit + in: query + description: Maximum number of items you want in the response. + required: false + schema: + type: integer + format: int32 + example: 10 + default: 100 + - name: offset + in: query + description: The position or row from where to start the search operation. + required: false + schema: + type: integer + format: int32 + example: 5 + default: 0 + responses: + '200': + description: List of folders and parsers matching the search query. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/system/parsers/{id}/lock: + post: + tags: + - parsersLibraryManagement + summary: Lock a folder or a parser. + description: | + Locking requires the `LockParsers` capability. When an object is locked, it can't be moved or deleted and only the local fields can be modified. Locking recursively locks all of the objects children. + operationId: systemParsersLockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be locked. + required: true + schema: + type: string + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/system/parsers/{id}/unlock: + post: + tags: + - parsersLibraryManagement + summary: Unlock a folder or a parser. + description: | + Unlocking requires the `LockParsers` capability. It is only possible to unlock the highest locked object in a tree of locked objects. Unlocking recursively unlocks all of the objects children. + operationId: systemParsersUnlockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be unlocked. + required: true + schema: + type: string + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ParsersLibraryFolderResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isLocked + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + - children + type: object + properties: + id: + type: string + description: Identifier of the folder or parser. + name: + type: string + description: Name of the folder or parser. + description: + type: string + description: Description of the folder or parser. + version: + type: integer + description: Version of the folder or parser. + format: int64 + createdAt: + type: string + description: | + Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: | + Type of the content. Valid values: + 1) Folder + 2) Parser + type: + type: string + description: Type of the object model. + isLocked: + type: boolean + description: Whether the object is locked. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + children: + type: array + description: Children of the folder. + items: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + discriminator: + propertyName: type + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + IdToParsersLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + ParsersLibraryBase: + required: + - description + - name + - type + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the folder or parser. + description: + maxLength: 4096 + type: string + description: Description of the folder or parser. + type: + type: string + description: Type of the object model. + isLocked: + type: boolean + description: Locking/Unlocking requires the `LockParsers` capability. Locked objects can only be `Localized`. Updating or moving requires unlocking the object. Locking/Unlocking recursively locks all of the objects children. All children of a locked object must be locked. + default: false + discriminator: + propertyName: type + ParsersLibraryBaseResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isLocked + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the folder or parser. + name: + type: string + description: Name of the folder or parser. + description: + type: string + description: Description of the folder or parser. + version: + type: integer + description: Version of the folder or parser. + format: int64 + createdAt: + type: string + description: | + Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: | + Type of the content. Valid values: + 1) Folder + 2) Parser + type: + type: string + description: Type of the object model. + isLocked: + type: boolean + description: Whether the object is locked. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + discriminator: + propertyName: type + ParsersLibraryBaseUpdate: + required: + - description + - name + - version + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the folder or parser. + description: + maxLength: 4096 + type: string + description: Description of the folder or parser. + version: + type: integer + description: Version of the folder or parser. + format: int64 + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + Path: + required: + - path + - pathItems + type: object + properties: + pathItems: + type: array + description: Elements of the path. + items: + $ref: '#/components/schemas/PathItem' + path: + type: string + description: String representation of the path. + ContentCopyParams: + required: + - parentId + type: object + properties: + parentId: + type: string + description: Identifier of the parent folder to copy to. + name: + type: string + description: Optionally provide a new name. + description: + type: string + description: Optionally provide a new description. + ParsersLibraryExportBase: + required: + - description + - name + - type + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the folder or parser. + description: + maxLength: 4096 + type: string + description: Description of the folder or parser. + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + ListParsersLibraryItemWithPath: + type: array + description: List of folders or parsers. + items: + $ref: '#/components/schemas/ParsersLibraryItemWithPath' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + PathItem: + required: + - id + - name + type: object + properties: + id: + type: string + description: Identifier of the path element. + name: + type: string + description: Name of the path element. + description: + type: string + description: Description of the path element. + ParsersLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + path: + type: string + description: Path of the folder or parser. + example: /Parsers/SampleFolder/TestParser + ParsersSearchResponse: + type: object + properties: + parsers_search: + type: array + items: + $ref: '#/components/schemas/ParsersLibraryItemWithPath' + x-stackQL-resources: + root: + id: sumologic.parsers.root + name: root + title: Root + methods: + get: + operation: + $ref: '#/paths/~1v1~1parsers~1root/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/root/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + parsers: + id: sumologic.parsers.parsers + name: parsers + title: Parsers + methods: + read_by_ids: + operation: + $ref: '#/paths/~1v1~1parsers/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1parsers/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete_by_ids: + operation: + $ref: '#/paths/~1v1~1parsers/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1v1~1parsers~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1parsers~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1parsers~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + lock: + operation: + $ref: '#/paths/~1v1~1parsers~1{id}~1lock/post' + response: + mediaType: application/json + openAPIDocKey: '200' + unlock: + operation: + $ref: '#/paths/~1v1~1parsers~1{id}~1unlock/post' + response: + mediaType: application/json + openAPIDocKey: '200' + move: + operation: + $ref: '#/paths/~1v1~1parsers~1{id}~1move/post' + response: + mediaType: application/json + openAPIDocKey: '200' + copy: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1parsers~1{id}~1copy/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + export: + operation: + $ref: '#/paths/~1v1~1parsers~1{id}~1export/get' + response: + mediaType: application/json + openAPIDocKey: '200' + import: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1parsers~1{parentId}~1import/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get_by_path: + operation: + $ref: '#/paths/~1v1~1parsers~1path/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/parsers/methods/get' + - $ref: '#/components/x-stackQL-resources/parsers/methods/get_by_path' + insert: + - $ref: '#/components/x-stackQL-resources/parsers/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/parsers/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/parsers/methods/delete' + replace: [] + paths: + id: sumologic.parsers.paths + name: paths + title: Paths + methods: + get: + operation: + $ref: '#/paths/~1v1~1parsers~1{id}~1path/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/paths/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + search: + id: sumologic.parsers.search + name: search + title: Search + methods: + list: + operation: + $ref: '#/paths/~1v1~1parsers~1search/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.parsers_search + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/ParsersSearchResponse' + transform: + body: |- + {{- $wrapped := printf "{\"parsers_search\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/search/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + system_parsers: + id: sumologic.parsers.system_parsers + name: system_parsers + title: System Parsers + methods: + lock: + operation: + $ref: '#/paths/~1v1~1system~1parsers~1{id}~1lock/post' + response: + mediaType: application/json + openAPIDocKey: '200' + unlock: + operation: + $ref: '#/paths/~1v1~1system~1parsers~1{id}~1unlock/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/partitions.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/partitions.yaml index 7ab43e7..06be71d 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/partitions.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/partitions.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Partitions API + description: Partitions (indexes), their retention and decommissioning, and the partition quota. + version: 1.0.0 paths: /v1/partitions: get: @@ -190,6 +195,26 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/partitions/quota: + get: + tags: + - partitionManagement + summary: Provides information about partitions quota. + description: Every customer can use a limited number of partitions. This endpoint allows learning about these limitations and remaining quota. + operationId: getPartitionsQuota + responses: + '200': + description: Current state of partitions quota usage (limit and remaining). + content: + application/json: + schema: + $ref: '#/components/schemas/PartitionsQuotaUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: ListPartitionsResponse: @@ -226,64 +251,59 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - Partition: - allOf: - - $ref: '#/components/schemas/CreatePartitionDefinition' - - $ref: '#/components/schemas/ViewRetentionProperties' - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - - totalBytes - properties: - id: - type: string - description: Unique identifier for the partition. - example: '1' - totalBytes: - type: integer - description: Size of data in partition in bytes. - format: int64 - example: 42 - isActive: - type: boolean - description: This has the value `true` if the partition is active and `false` if it has been decommissioned. - indexType: - pattern: ^(DefaultIndex|AuditIndex|Partition)$ - type: string - description: This has the value `DefaultIndex`, `AuditIndex`or `Partition` depending upon the type of partition. - example: Partition - dataForwardingId: - type: string - description: Id of the data forwarding configuration to be used by the partition. - ErrorDescription: + CreatePartitionDefinition: required: - - code - - message + - name + - routingExpression type: object properties: - code: + name: + maxLength: 255 type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + description: The name of the partition. + example: apache + routingExpression: + maxLength: 16384 + minLength: 1 type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: The query that defines the data to be included in the partition. + example: _sourcecategory=*/Apache + analyticsTier: type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - CreatePartitionDefinition: + description: |- + The Data Tier where the data in the partition will reside. Possible values are: + 1. `continuous` + 2. `frequent` + 3. `infrequent` + Note: The "infrequent" and "frequent" tiers are only available to Cloud Flex Credits Enterprise Suite accounts. + example: continuous + x-limited-description: The Data Tier where the data in the partition will reside. You can leave it empty or send `flex`. It is the only value applicable on your account. + x-limited-example: flex + retentionPeriod: + type: integer + description: The number of days to retain data in the partition, or -1 to use the default value for your account. Only relevant if your account has variable retention enabled. + example: 365 + default: -1 + isCompliant: + type: boolean + description: Whether the partition is compliant or not. Mark a partition as compliant if it contains data used for compliance or audit purpose. Retention for a compliant partition can only be increased and cannot be reduced after the partition is marked compliant. A partition once marked compliant, cannot be marked non-compliant later. + example: false + default: false + isIncludedInDefaultSearch: + type: boolean + description: Indicates whether the partition is included in the default search scope. When executing a query such as "error | count," certain partitions are automatically part of the search scope. However, for specific partitions, the user must explicitly mention the partition using the _index term, as in "_index=webApp error | count". This property governs the default inclusion of the partition in the search scope. Configuring this property is exclusively permitted for flex partitions. + example: true + Partition: + type: object required: - name - routingExpression - type: object + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + - totalBytes properties: name: maxLength: 255 @@ -297,7 +317,6 @@ components: description: The query that defines the data to be included in the partition. example: _sourcecategory=*/Apache analyticsTier: - pattern: ^(frequent|infrequent|continuous)$ type: string description: |- The Data Tier where the data in the partition will reside. Possible values are: @@ -306,8 +325,8 @@ components: 3. `infrequent` Note: The "infrequent" and "frequent" tiers are only available to Cloud Flex Credits Enterprise Suite accounts. example: continuous - default: continuous - x-pattern-message: must be one of `continuous`, `frequent` or `infrequent` + x-limited-description: The Data Tier where the data in the partition will reside. You can leave it empty or send `flex`. It is the only value applicable on your account. + x-limited-example: flex retentionPeriod: type: integer description: The number of days to retain data in the partition, or -1 to use the default value for your account. Only relevant if your account has variable retention enabled. @@ -318,9 +337,10 @@ components: description: Whether the partition is compliant or not. Mark a partition as compliant if it contains data used for compliance or audit purpose. Retention for a compliant partition can only be increased and cannot be reduced after the partition is marked compliant. A partition once marked compliant, cannot be marked non-compliant later. example: false default: false - ViewRetentionProperties: - type: object - properties: + isIncludedInDefaultSearch: + type: boolean + description: Indicates whether the partition is included in the default search scope. When executing a query such as "error | count," certain partitions are automatically part of the search scope. However, for specific partitions, the user must explicitly mention the partition using the _index term, as in "_index=webApp error | count". This property governs the default inclusion of the partition in the search scope. Configuring this property is exclusively permitted for flex partitions. + example: true newRetentionPeriod: type: integer description: If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. @@ -330,19 +350,11 @@ components: type: string description: When the newRetentionPeriod will become effective in UTC format. format: date-time - MetadataModel: - required: - - createdAt - - createdBy - - modifiedAt - - modifiedBy - type: object - properties: createdAt: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -351,11 +363,31 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the partition. + example: '1' + totalBytes: + type: integer + description: Size of data in partition in bytes. + format: int64 + example: 42 + isActive: + type: boolean + description: This has the value `true` if the partition is active and `false` if it has been decommissioned. + indexType: + pattern: ^(DefaultIndex|AuditIndex|Partition)$ + type: string + description: This has the value `DefaultIndex`, `AuditIndex`or `Partition` depending upon the type of partition. + example: Partition + dataForwardingId: + type: string + description: Id of the data forwarding configuration to be used by the partition. UpdatePartitionDefinition: type: object properties: @@ -365,429 +397,214 @@ components: example: 365 reduceRetentionPeriodImmediately: type: boolean - description: This is required if the newly specified `retentionPeriod` is less than the existing retention period. In such a situation, a value of `true` says that data between the existing retention period and the new retention period should be deleted immediately; if `false`, such data will be deleted after seven days. This property is optional and ignored if the specified `retentionPeriod` is greater than or equal to the current retention period. + description: This is required if the newly specified `retentionPeriod` is less than the existing retention period. In such a situation, a value of `true` says that data between the existing retention period and the new retention period should be deleted immediately; if `false`, such data will be deleted after seven days. This property is optional and ignored if the specified `retentionPeriod` is greater than or equal to the current retention period. default: false isCompliant: type: boolean description: Whether to mark a partition as compliant. Mark a partition as compliant if it contains data used for compliance or audit purpose. Retention for a compliant partition can only be increased and cannot be reduced after the partition marked as compliant. A partition once marked compliant, cannot be marked non-compliant later. example: false default: false + isIncludedInDefaultSearch: + type: boolean + description: Indicates whether the partition is included in the default search scope. When executing a query such as "error | count," certain partitions are automatically part of the search scope. However, for specific partitions, the user must explicitly mention the partition using the _index term, as in "_index=webApp error | count". This property governs the default inclusion of the partition in the search scope. Configuring this property is exclusively permitted for flex partitions. routingExpression: maxLength: 16384 minLength: 1 type: string description: The query that defines the data to be included in the partition. example: _sourcecategory=*/Apache - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + PartitionsQuotaUsage: + required: + - quota + - remaining + type: object + properties: + quota: + type: integer + description: Maximum number of Partitions allowed. + format: int32 + example: 200 + remaining: + type: integer + description: Remaining number of Partitions allowed. + format: int32 + example: 121 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ViewRetentionProperties: + type: object + properties: + newRetentionPeriod: + type: integer + description: If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. + format: int32 + example: 300 + retentionEffectiveAt: + type: string + description: When the newRetentionPeriod will become effective in UTC format. + format: date-time + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 x-stackQL-resources: partitions: id: sumologic.partitions.partitions name: partitions title: Partitions methods: - listPartitions: + list: operation: $ref: '#/paths/~1v1~1partitions/get' response: mediaType: application/json openAPIDocKey: '200' - createPartition: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1partitions/post' response: mediaType: application/json openAPIDocKey: '200' - getPartition: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1partitions~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updatePartition: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1partitions~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/partitions/methods/getPartition' - - $ref: '#/components/x-stackQL-resources/partitions/methods/listPartitions' - insert: - - $ref: '#/components/x-stackQL-resources/partitions/methods/createPartition' - update: [] - delete: [] - decommission: - id: sumologic.partitions.decommission - name: decommission - title: Decommission - methods: - decommissionPartition: + request: + mediaType: application/json + nativeCasing: camel + decommission: operation: $ref: '#/paths/~1v1~1partitions~1{id}~1decommission/post' response: mediaType: application/json openAPIDocKey: '200' + cancel_retention_update: + operation: + $ref: '#/paths/~1v1~1partitions~1{id}~1cancelRetentionUpdate/post' + response: + mediaType: application/json + openAPIDocKey: '204' sqlVerbs: - select: [] - insert: [] - update: [] + select: + - $ref: '#/components/x-stackQL-resources/partitions/methods/get' + - $ref: '#/components/x-stackQL-resources/partitions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/partitions/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/partitions/methods/update' delete: [] - cancel_retention_update: - id: sumologic.partitions.cancel_retention_update - name: cancel_retention_update - title: Cancel_retention_update + replace: [] + quota: + id: sumologic.partitions.quota + name: quota + title: Quota methods: - cancelRetentionUpdate: + get: operation: - $ref: '#/paths/~1v1~1partitions~1{id}~1cancelRetentionUpdate/post' + $ref: '#/paths/~1v1~1partitions~1quota/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/quota/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - partitions - description: partitions - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/password_policy.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/password_policy.yaml index 090f207..77dbcf8 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/password_policy.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/password_policy.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Password Policy API + description: The organization password policy. + version: 1.0.0 paths: /v1/passwordPolicy: get: @@ -96,7 +101,7 @@ components: example: 365 default: 365 minUniquePasswords: - maximum: 10 + maximum: 12 minimum: 4 type: integer description: The minimum number of unique new passwords that a user must use before an old password can be reused. @@ -137,6 +142,11 @@ components: description: If MFA should be remembered on the browser. example: true default: true + disallowWeakPasswords: + type: boolean + description: If weak passwords should be disallowed. By default, this field is set to `false`. + example: false + default: false description: Password Policy ErrorResponse: required: @@ -177,375 +187,70 @@ components: description: An optional fuller English-language description of the error. example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. meta: - type: object - description: An optional list of metadata about the error. + type: string + description: An optional list of metadata about the error. (opaque JSON object) example: minLength: 12 actualLength: 5 - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: password_policy: id: sumologic.password_policy.password_policy name: password_policy - title: Password_policy + title: Password Policy methods: - getPasswordPolicy: + get: operation: $ref: '#/paths/~1v1~1passwordPolicy/get' response: mediaType: application/json openAPIDocKey: '200' - setPasswordPolicy: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1passwordPolicy/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/password_policy/methods/getPasswordPolicy' + - $ref: '#/components/x-stackQL-resources/password_policy/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/password_policy/methods/update' delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - password_policy - description: passwordPolicy - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/plan.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/plan.yaml deleted file mode 100644 index 998d36a..0000000 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/plan.yaml +++ /dev/null @@ -1,700 +0,0 @@ -paths: - /v1/plan/pendingUpdateRequest: - get: - tags: - - accountManagement - summary: Get the pending plan update request, if any. - description: Get the pending plan update request which will be applicable from next billing cycle. - operationId: getPendingUpdateRequest - responses: - '200': - description: Pending plan update request. - content: - application/json: - schema: - $ref: '#/components/schemas/PendingUpdateRequest' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - delete: - tags: - - accountManagement - summary: Delete the pending plan update request, if any. - description: Delete the pending plan update request which would be applicable from next billing cycle. - operationId: deletePendingUpdateRequest - responses: - '204': - description: Deleted the pending update request. - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' -components: - schemas: - PendingUpdateRequest: - required: - - createdOn - - plan - type: object - properties: - createdOn: - type: string - description: The date on which the update request was created. - format: date - plan: - $ref: '#/components/schemas/CurrentPlan' - description: The pending plan update request for the account - ErrorResponse: - required: - - errors - - id - type: object - properties: - id: - type: string - description: An identifier for the error; this is unique to the specific API request. - example: IUUQI-DGH5I-TJ045 - errors: - type: array - description: A list of one or more causes of the error. - example: - - code: auth:password_too_short - message: Your password was too short. - - code: auth:password_character_classes - message: Your password did not contain any non-alphanumeric characters - items: - $ref: '#/components/schemas/ErrorDescription' - CurrentPlan: - required: - - billingFrequency - - planCost - - productId - type: object - properties: - productId: - pattern: ^(Essentials|Trial|Free|EnterpriseOps|EnterpriseSec|EnterpriseSuite)$ - type: string - description: | - Unique identifier of the product in current plan. Valid values are: 1. `Free` 2. `Trial` 3. `Essentials` 4. `EnterpriseOps` 5. `EnterpriseSec` 6. `EnterpriseSuite` - example: Essentials - x-pattern-message: 'must be one of the following: `Essentials`, `Trial`, `Free`, `EnterpriseOps`, `EnterpriseSec`, `EnterpriseSuite`' - planCost: - type: number - description: Cost incurred for the current plan. - format: double - example: 725.46 - billingFrequency: - pattern: ^(Monthly|Annually)$ - type: string - description: | - Billing frequency for the current plan. Valid values are: 1. `Monthly` 2. `Annually` - example: Monthly - x-pattern-message: 'must be one of the following: `Monthly` or `Annually`' - consumables: - type: array - description: Consumables in the current plan. - items: - $ref: '#/components/schemas/Consumable' - planType: - pattern: ^(Free|Trial|Paid)$ - type: string - description: Whether the account is `Free`/`Trial`/`Paid` - example: Free - x-pattern-message: 'must be one of the following: `Free`, `Trial` or `Paid`' - planName: - type: string - description: The plan name for the product being used. - discountAmount: - type: integer - description: The discount offered for the given contract period. - contractPeriod: - $ref: '#/components/schemas/ContractPeriod' - currentBillingPeriod: - $ref: '#/components/schemas/CurrentBillingPeriod' - credits: - type: integer - description: Numerical value of the amount of credits - format: int64 - example: 300 - baselines: - $ref: '#/components/schemas/Baselines' - pendingUpdateRequest: - type: boolean - description: True if there is a pending update request - prorationDetails: - $ref: '#/components/schemas/ProrationDetails' - description: Current plan of the account. - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - Consumable: - required: - - consumableId - - quantity - type: object - properties: - consumableId: - pattern: ^(Storage|Metrics|Continuous|Credits)$ - type: string - description: | - Unique identifier of the consumable. Valid values are: 1. `Storage` 2. `Metrics` 3. `Continuous` 4. `Credits` - example: Metrics - x-pattern-message: 'must be one of the following: `Storage`, `Metrics`, `Continuous`, `Credits`' - quantity: - $ref: '#/components/schemas/Quantity' - description: Details of consumable and its quantity. - ContractPeriod: - required: - - endDate - - startDate - type: object - properties: - startDate: - type: string - description: Start date of the contract. - format: date - endDate: - type: string - description: End date of the contract. - format: date - CurrentBillingPeriod: - required: - - endDate - - startDate - type: object - properties: - startDate: - type: string - description: Start date of the current billing period. - format: date - example: '2012-02-02' - endDate: - type: string - description: End date of the current billing period. - format: date - example: '2012-02-02' - Baselines: - type: object - properties: - continuousIngest: - maximum: 1000000 - minimum: 0 - type: integer - description: The amount of continuous logs ingest to allocate to the organization, in GBs. - format: int64 - example: 50000 - default: 0 - continuousStorage: - maximum: 30 - minimum: 30 - type: integer - description: Number of days of continuous logs storage to allocate to the organization, in Days. - format: int64 - example: 30 - default: 30 - frequentIngest: - maximum: 1000000 - minimum: 0 - type: integer - description: The amount of frequent logs ingest to allocate to the organization, in GBs. - format: int64 - example: 50000 - default: 0 - frequentStorage: - maximum: 30 - minimum: 30 - type: integer - description: Number of days of frequent logs storage to allocate to the organization, in Days. - format: int64 - example: 30 - default: 30 - infrequentIngest: - maximum: 1000000 - minimum: 0 - type: integer - description: The amount of infrequent logs ingest to allocate to the organization, in GBs. - format: int64 - example: 50000 - default: 0 - infrequentStorage: - maximum: 30 - minimum: 30 - type: integer - description: The amount of infrequent logs storage to allocate to the organization, in Days. - format: int64 - example: 30 - default: 30 - infrequentScan: - maximum: 1000000 - minimum: 0 - type: integer - description: The amount of infrequent logs scan to allocate to the organization, in GBs. - format: int64 - example: 50000 - default: 0 - metrics: - maximum: 5000000 - minimum: 0 - type: integer - description: The amount of Metrics usage to allocate to the organization, in DPMs (Data Points per Minute). - format: int64 - example: 50000 - default: 0 - cseIngest: - maximum: 1000000 - minimum: 0 - type: integer - description: The amount of CSE ingest to allocate to the organization, in GBs. - format: int64 - example: 50000 - default: 0 - cseStorage: - maximum: 1000000 - minimum: 0 - type: integer - description: The amount of CSE storage to allocate to the organization, in GBs. - format: int64 - example: 50000 - default: 0 - tracingIngest: - maximum: 1000000 - minimum: 0 - type: integer - description: The amount of tracing data ingest to allocate to the organization, in GBs. - format: int64 - example: 50000 - default: 0 - description: Details of consumable and its quantity. - ProrationDetails: - required: - - proratedCost - - proratedCredits - - remainingDays - type: object - properties: - remainingDays: - type: integer - description: Remaining days in the billing cycle for which the new plan is prorated. - format: int32 - proratedCredits: - type: integer - description: Total prorated credits that get added to the bucket based on the remaining billing period. - format: int32 - proratedCost: - type: number - description: Cost of the total prorated credits. - format: double - description: Details about the prorated credits and prorated cost in case of immediate monthly to monthly cycle upgrades. - Quantity: - required: - - unit - - value - type: object - properties: - value: - type: integer - description: The value of the consumable in units. - format: int64 - example: 61425 - unit: - pattern: ^(GB|DPM|Credits|Days)$ - type: string - description: | - The unit of the consumable. Units are provided in: 1. `GB` 2. `DPM`(Data Points Per Minute) 3. `Credits` 4. `Days` - example: GB - x-pattern-message: 'must be one of the following: `GB`, `DPM`, `Credits`, `Days`' - description: Details of unit of consumption and its value. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} - x-stackQL-resources: - pending_update_request: - id: sumologic.plan.pending_update_request - name: pending_update_request - title: Pending_update_request - methods: - getPendingUpdateRequest: - operation: - $ref: '#/paths/~1v1~1plan~1pendingUpdateRequest/get' - response: - mediaType: application/json - openAPIDocKey: '200' - deletePendingUpdateRequest: - operation: - $ref: '#/paths/~1v1~1plan~1pendingUpdateRequest/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/pending_update_request/methods/getPendingUpdateRequest' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/pending_update_request/methods/deletePendingUpdateRequest' -openapi: 3.0.0 -servers: - - url: https://api.{region}.sumologic.com/api - variables: - region: - description: SumoLogic region - enum: - - us2 - - au - - ca - - de - - eu - - fed - - in - - jp - default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - plan - description: plan - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/policies.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/policies.yaml index 130cf98..1faf964 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/policies.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/policies.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Policies API + description: Organization security and behaviour policies - audit, search audit, data access level, data deletion, session limits, dashboard sharing, timestamp format, OAuth CIMD and access key lifetime. + version: 1.0.0 paths: /v1/policies/audit: get: @@ -269,6 +274,186 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/policies/accessKeysLifetime: + get: + tags: + - policiesManagement + summary: Get access key lifetime policy. + description: Get access key lifetime policy. This policy defines the maximum time an access key has once it has been created or rotated before it must be rotated. Otherwise, it will no longer be able to be used. The value 0 represents that the access keys will never expire and the time specified can be configured by the organization. + operationId: getAccessKeysLifetimePolicy + responses: + '200': + description: The Access Key Lifetime Policy. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeysLifetimePolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set access keys lifetime policy. + description: Sets the access keys lifetime policy. By setting this policy, the time an access key has to live before it is expired or must be rotated is defined based on the period (default = never) configured for the organization. Setting the value to 0 would represent that the access keys never expire. + operationId: setAccessKeysLifetimePolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeysLifetimePolicy' + required: true + responses: + '200': + description: Access Keys Lifetime policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeysLifetimePolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/dataDeletion: + get: + tags: + - policiesManagement + summary: Get Data Deletion policy. + description: Get the Data Deletion policy. This policy specifies whether users are allowed to delete data from Sumo Logic. Disabling this policy prevents users from deleting log data. [Learn More](https://help.sumologic.com/Manage/Security/Data_Deletion) + operationId: getDataDeletionPolicy + responses: + '200': + description: The Data Deletion policy. + content: + application/json: + schema: + $ref: '#/components/schemas/DataDeletionPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Data Deletion policy. + description: Set the Data Deletion policy. This policy specifies whether users are allowed to delete data from Sumo Logic. Disabling this policy prevents users from deleting log data. [Learn More](https://help.sumologic.com/Manage/Security/Data_Deletion) + operationId: setDataDeletionPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataDeletionPolicy' + required: true + responses: + '200': + description: Data Deletion policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/DataDeletionPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/timestampFormat: + get: + tags: + - policiesManagement + summary: Get Alert Timestamp Format policy. + description: Get the Alert Timestamp Format policy. This policy controls the date/time format used in alert and recovery notification payloads across all connections and monitor types. When set to ISO, timestamps use the format yyyy-MM-dd HH:mm:ss z. When set to LEGACY, timestamps use the format MM/dd/yyyy hh:mm:ss a z. + operationId: getTimestampFormatPolicy + responses: + '200': + description: The Alert Timestamp Format policy. + content: + application/json: + schema: + $ref: '#/components/schemas/TimestampFormatPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Alert Timestamp Format policy. + description: Set the Alert Timestamp Format policy. This policy controls the date/time format used in alert and recovery notification payloads across all connections and monitor types. When set to ISO, timestamps use the format yyyy-MM-dd HH:mm:ss z. When set to LEGACY, timestamps use the format MM/dd/yyyy hh:mm:ss a z. + operationId: setTimestampFormatPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TimestampFormatPolicy' + required: true + responses: + '200': + description: Alert Timestamp Format policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/TimestampFormatPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/oAuthCimd: + get: + tags: + - policiesManagement + summary: Get OAuth policy for Client ID Metadata Documents (CIMD) authentication. + description: If disabled then authentication with Client ID Metadata Documents (CIMD) is disabled and no new CIMD clients can be created. If set to "enabled" then authentication with CIMD clients is enabled and new CIMD clients can be created automatically as part of authentication. If set to "enabled-pre-registered-only" then authentication with CIMD clients is enabled but new CIMD clients can only be created manually on the OAuth Clients page in the UI. + operationId: getOAuthCimdPolicy + responses: + '200': + description: The OAuth policy for Client ID Metadata Documents (CIMD) authentication. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthCimdPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set OAuth policy for Client ID Metadata Documents (CIMD) authentication. + description: If disabled then authentication with Client ID Metadata Documents (CIMD) is disabled and no new CIMD clients can be created. If set to "enabled" then authentication with CIMD clients is enabled and new CIMD clients can be created automatically as part of authentication. If set to "enabled-pre-registered-only" then authentication with CIMD clients is enabled but new CIMD clients can only be created manually on the OAuth Clients page in the UI. + operationId: setOAuthCimdPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthCimdPolicy' + required: true + responses: + '200': + description: The OAuth policy for Client ID Metadata Documents (CIMD) authentication. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthCimdPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: AuditPolicy: @@ -301,30 +486,6 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 SearchAuditPolicy: required: - enabled @@ -385,485 +546,430 @@ components: example: 1d x-pattern-message: 'must be one of the following: `5m`, `15m`, `30m`, `1h`, `2h`, `6h`, `12h`, `1d`, `2d`, `3d`, `5d`, or `7d`' description: Max User Session Timeout policy. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + AccessKeysLifetimePolicy: + required: + - accessKeysLifetimeInDays + type: object + properties: + accessKeysLifetimeInDays: + pattern: ^(0|30|45|60|90|180|365)$ + type: string + description: 'The number of days it will take for an access key to expire without being rotated/copied. Setting it to 0 (never) means that access keys will never expire. Valid values are: `0`, `30`, `45`, `60`, `90`, `180`, or `365`' + example: '60' + x-pattern-message: 'must be one of the following: `0`, `30`, `45`, `60`, `90`, `180`, or `365`' + description: Access Keys Lifetime policy. + DataDeletionPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the Data Deletion policy is enabled. + example: true + description: Whether the Data Deletion policy is enabled. + TimestampFormatPolicy: + required: + - timestampFormat + type: object + properties: + timestampFormat: + type: string + description: 'The timestamp format used in alert notification payloads. Valid values: `ISO`, `LEGACY`. ISO format: yyyy-MM-dd HH:mm:ss z. LEGACY format: MM/dd/yyyy hh:mm:ss a z.' + example: LEGACY + description: Alert Timestamp Format policy. + OAuthCimdPolicy: + required: + - oAuthCimdPolicy + type: object + properties: + oAuthCimdPolicy: + pattern: ^(disabled|enabled|enabled-pre-registered-only)$ + type: string + description: 'OAuth CIMD policy. Valid values are: `disabled`, `enabled`, ''enabled-pre-registered-only''' + example: disabled + x-pattern-message: 'must be one of the following: `disabled`, `enabled`, ''enabled-pre-registered-only''' + description: The OAuth policy for Client ID Metadata Documents (CIMD) authentication. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 x-stackQL-resources: audit: id: sumologic.policies.audit name: audit title: Audit methods: - getAuditPolicy: + get: operation: $ref: '#/paths/~1v1~1policies~1audit/get' response: mediaType: application/json openAPIDocKey: '200' - setAuditPolicy: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1policies~1audit/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/audit/methods/getAuditPolicy' + - $ref: '#/components/x-stackQL-resources/audit/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/audit/methods/update' delete: [] + replace: [] search_audit: id: sumologic.policies.search_audit name: search_audit - title: Search_audit + title: Search Audit methods: - getSearchAuditPolicy: + get: operation: $ref: '#/paths/~1v1~1policies~1searchAudit/get' response: mediaType: application/json openAPIDocKey: '200' - setSearchAuditPolicy: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1policies~1searchAudit/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/search_audit/methods/getSearchAuditPolicy' + - $ref: '#/components/x-stackQL-resources/search_audit/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/search_audit/methods/update' delete: [] + replace: [] share_dashboards_outside_organization: id: sumologic.policies.share_dashboards_outside_organization name: share_dashboards_outside_organization - title: Share_dashboards_outside_organization + title: Share Dashboards Outside Organization methods: - getShareDashboardsOutsideOrganizationPolicy: + get: operation: $ref: '#/paths/~1v1~1policies~1shareDashboardsOutsideOrganization/get' response: mediaType: application/json openAPIDocKey: '200' - setShareDashboardsOutsideOrganizationPolicy: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1policies~1shareDashboardsOutsideOrganization/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/share_dashboards_outside_organization/methods/getShareDashboardsOutsideOrganizationPolicy' + - $ref: '#/components/x-stackQL-resources/share_dashboards_outside_organization/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/share_dashboards_outside_organization/methods/update' delete: [] + replace: [] data_access_level: id: sumologic.policies.data_access_level name: data_access_level - title: Data_access_level + title: Data Access Level methods: - getDataAccessLevelPolicy: + get: operation: $ref: '#/paths/~1v1~1policies~1dataAccessLevel/get' response: mediaType: application/json openAPIDocKey: '200' - setDataAccessLevelPolicy: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1policies~1dataAccessLevel/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/data_access_level/methods/getDataAccessLevelPolicy' + - $ref: '#/components/x-stackQL-resources/data_access_level/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/data_access_level/methods/update' delete: [] + replace: [] user_concurrent_sessions_limit: id: sumologic.policies.user_concurrent_sessions_limit name: user_concurrent_sessions_limit - title: User_concurrent_sessions_limit + title: User Concurrent Sessions Limit methods: - getUserConcurrentSessionsLimitPolicy: + get: operation: $ref: '#/paths/~1v1~1policies~1userConcurrentSessionsLimit/get' response: mediaType: application/json openAPIDocKey: '200' - setUserConcurrentSessionsLimitPolicy: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1policies~1userConcurrentSessionsLimit/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/user_concurrent_sessions_limit/methods/getUserConcurrentSessionsLimitPolicy' + - $ref: '#/components/x-stackQL-resources/user_concurrent_sessions_limit/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/user_concurrent_sessions_limit/methods/update' delete: [] + replace: [] max_user_session_timeout: id: sumologic.policies.max_user_session_timeout name: max_user_session_timeout - title: Max_user_session_timeout + title: Max User Session Timeout methods: - getMaxUserSessionTimeoutPolicy: + get: operation: $ref: '#/paths/~1v1~1policies~1maxUserSessionTimeout/get' response: mediaType: application/json openAPIDocKey: '200' - setMaxUserSessionTimeoutPolicy: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1policies~1maxUserSessionTimeout/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/max_user_session_timeout/methods/getMaxUserSessionTimeoutPolicy' + - $ref: '#/components/x-stackQL-resources/max_user_session_timeout/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/max_user_session_timeout/methods/update' delete: [] -openapi: 3.0.0 + replace: [] + access_keys_lifetime: + id: sumologic.policies.access_keys_lifetime + name: access_keys_lifetime + title: Access Keys Lifetime + methods: + get: + operation: + $ref: '#/paths/~1v1~1policies~1accessKeysLifetime/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1policies~1accessKeysLifetime/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/access_keys_lifetime/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/access_keys_lifetime/methods/update' + delete: [] + replace: [] + data_deletion: + id: sumologic.policies.data_deletion + name: data_deletion + title: Data Deletion + methods: + get: + operation: + $ref: '#/paths/~1v1~1policies~1dataDeletion/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1policies~1dataDeletion/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/data_deletion/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/data_deletion/methods/update' + delete: [] + replace: [] + timestamp_format: + id: sumologic.policies.timestamp_format + name: timestamp_format + title: Timestamp Format + methods: + get: + operation: + $ref: '#/paths/~1v1~1policies~1timestampFormat/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1policies~1timestampFormat/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/timestamp_format/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/timestamp_format/methods/update' + delete: [] + replace: [] + oauth_cimd: + id: sumologic.policies.oauth_cimd + name: oauth_cimd + title: Oauth Cimd + methods: + get: + operation: + $ref: '#/paths/~1v1~1policies~1oAuthCimd/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1policies~1oAuthCimd/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/oauth_cimd/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/oauth_cimd/methods/update' + delete: [] + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - policies - description: policies - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/roles.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/roles.yaml index 57297d7..a2bc520 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/roles.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/roles.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Roles API + description: Roles (v1 and v2) and role assignment to users. + version: 1.0.0 paths: /v1/roles: get: @@ -223,6 +228,230 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v2/roles: + get: + tags: + - roleManagementV2 + summary: Get a list of roles. + description: Get a list of all the roles in the organization. The response is paginated with a default limit of 100 roles per page. + operationId: listRolesV2 + parameters: + - name: limit + in: query + description: Limit the number of roles returned in the response. The number of roles returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: sortBy + in: query + description: Sort the list of roles by the `name` field. + required: false + schema: + type: string + - name: name + in: query + description: Only return roles matching the given name. + required: false + schema: + minLength: 1 + type: string + responses: + '200': + description: A paginated list of roles in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListRoleModelsResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - roleManagementV2 + summary: Create a new role. + description: Create a new role in the organization. + operationId: createRoleV2 + parameters: [] + requestBody: + description: Information about the new role. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateRoleDefinitionV2' + required: true + responses: + '200': + description: The role has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModelV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createRoleV2 + /v2/roles/{id}: + get: + tags: + - roleManagementV2 + summary: Get a role. + description: Get a role with the given identifier in the organization. + operationId: getRoleV2 + parameters: + - name: id + in: path + description: Identifier of the role to fetch. + required: true + schema: + type: string + responses: + '200': + description: Role object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/GetRoleDefinitionV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getRoleV2 + put: + tags: + - roleManagementV2 + summary: Update a role. + description: Update an existing role in the organization. + operationId: updateRoleV2 + parameters: + - name: id + in: path + description: Identifier of the role to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the role. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateRoleDefinitionV2' + required: true + responses: + '200': + description: The user was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModelV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateRoleV2 + delete: + tags: + - roleManagementV2 + summary: Delete a role. + description: Delete a role with the given identifier from the organization. + operationId: deleteRoleV2 + parameters: + - name: id + in: path + description: Identifier of the role to delete. + required: true + schema: + type: string + responses: + '204': + description: Role was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteRoleV2 + /v2/roles/{roleId}/users/{userId}: + put: + tags: + - roleManagementV2 + summary: Assign a role to a user. + description: Assign a role to a user in the organization. + operationId: assignRoleToUserV2 + parameters: + - name: roleId + in: path + description: Identifier of the role to assign. + required: true + schema: + type: string + - name: userId + in: path + description: Identifier of the user to assign the role to. + required: true + schema: + type: string + responses: + '200': + description: Role was successfully assigned to the user. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModelV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - roleManagementV2 + summary: Remove role from a user. + description: Remove a role from a user in the organization. + operationId: removeRoleFromUserV2 + parameters: + - name: roleId + in: path + description: Identifier of the role to delete. + required: true + schema: + type: string + - name: userId + in: path + description: Identifier of the user to remove the role from. + required: true + schema: + type: string + responses: + '204': + description: Role was successfully removed from the user. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: ListRoleModelsResponse: @@ -259,47 +488,6 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - RoleModel: - allOf: - - $ref: '#/components/schemas/CreateRoleDefinition' - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - properties: - id: - type: string - description: Unique identifier for the role. - example: 0000000000E20FE3 - systemDefined: - type: boolean - description: Role is system or user defined. - example: false - x-tf-generated-properties: id,name,description,filterPredicate,capabilities - x-tf-resource-name: Role - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 CreateRoleDefinition: required: - name @@ -332,7 +520,7 @@ components: capabilities: type: array description: |- - List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are ### Data Management - viewCollectors - manageCollectors @@ -342,6 +530,7 @@ components: - manageFieldExtractionRules - manageS3DataForwarding - manageContent + - manageApps - dataVolumeIndex - manageConnections - viewScheduledViews @@ -353,6 +542,12 @@ components: - viewAccountOverview - manageTokens - downloadSearchResults + - manageIndexes + - manageDataStreams + - viewParsers + - viewDataStreams + - viewPipelines + - managePipelines ### Entity management - manageEntityTypeConfig @@ -365,6 +560,7 @@ components: ### Security - managePasswordPolicy - ipAllowlisting + - ipWhitelisting - createAccessKeys - manageAccessKeys - manageSupportAccountAccess @@ -377,6 +573,7 @@ components: ### Dashboards - shareDashboardWorld - shareDashboardAllowlist + - shareDashboardWhitelist ### UserManagement - manageUsersAndRoles @@ -387,11 +584,132 @@ components: ### Cloud SIEM Enterprise - viewCse + - cseViewAutomations + - cseManageContextActions + - cseViewNetworkBlocks + - cseManageInsightTags + - cseViewRules + - cseViewThreatIntelligence + - cseCommentOnInsights + - cseViewEntityGroups + - cseManageEntityConfiguration + - cseManageNetworkBlocks + - cseManageMatchLists + - cseViewCustomInsights + - cseManageActions + - cseManageAutomations + - cseManageMappings + - cseManageThreatIntelligence + - cseViewActions + - cseCreateInsights + - cseManageTagSchemas + - cseInvokeInsights + - cseManageCustomEntityType + - cseViewTagSchemas + - cseDeleteInsights + - cseManageCustomInsights + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseManageEntityCriticality + - cseViewEntityCriticality + - cseViewEntity + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseViewMappings + - cseViewCustomEntityType + - cseManageEntityGroups + - cseViewCustomInsightStatuses + - cseViewEnrichments + - cseManageInsightSignals + - cseManageRules + - cseManageArtifacts + - cseViewMatchLists + - cseManageInsightPolicy + - cseManageEnrichments + - cseViewEntityConfiguration + - cseManageEntity + - cseExecuteAutomations + - cseManageSuppressedEntities + - cseManageInsightStatus + - cseManageInsightAssignee + - cseManageFavoriteFields + - cseViewSuppressedEntities ### Alerting - viewMonitorsV2 - manageMonitorsV2 - viewAlerts + - viewMutingSchedules + - manageMutingSchedules + - adminMonitorsV2 + + ### SLO + - viewSlos + - manageSlos + + ### CloudSoar + - cloudSoarPlaybooksAccess + - cloudSoarNotificationConfigure + - cloudSoarReportAll + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTaskView + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentNotesEdit + - cloudSoarAPIEmailEdit + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentPlaybooksManage + - cloudSoarGeneralConfigure + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarIncidentAttachmentsAccess + - cloudSoarAppCentralAccess + - cloudSoarBridgeMonitoringAccess + - viewCloudSoar + - cloudSoarIncidentView + - cloudSoarObservabilityAccess + - cloudSoarAPIEmailRead + - cloudSoarAppCentralExport + - cloudSoarWidgetsAll + - cloudSoarIncidentTaskReassign + - cloudSoarIntegrationsAccess + - cloudSoarCustomizationIncidentLabels + - cloudSoarAutomationRulesConfigure + - cloudSoarIncidentTaskAccessAll + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentEdit + - cloudSoarNotificationTriage + - cloudSoarIncidentTriageBulkPhysicalDelete + - cloudSoarIncidentNotesAccess + - cloudSoarAPIUse + - cloudSoarIncidentPlaybooksEdit + - cloudSoarDashboardAll + - cloudSoarEntitiesManage + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccessAll + - cloudSoarPlaybooksConfigure + - cloudSoarIncidentAccessAll + - cloudSoarCustomizationLogo + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTriageView + - cloudSoarIntegrationsConfigure + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentAccess + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarIncidentBulkOperations + - cloudSoarCustomizationFields + - cloudSoarIncidentTaskEdit + - cloudSoarDashboardAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarUserManagementGroups + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentWarRoomUse + - cloudSoarReportAccess + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAutomationRulesAccess + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarObservabilityManagement example: - manageContent - manageDataVolumeFeed @@ -403,38 +721,1105 @@ components: type: boolean description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. default: true - MetadataModel: + RoleModel: + type: object + x-tf-generated-properties: id,name,description,filterPredicate,capabilities + x-tf-resource-name: Role required: + - name - createdAt - createdBy - modifiedAt - modifiedBy - type: object + - id properties: - createdAt: + name: + maxLength: 128 + minLength: 1 type: string - description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. - format: date-time - example: '2018-10-16T09:10:00Z' - createdBy: + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 type: string - description: Identifier of the user who created the resource. - example: 0000000006743FDD - modifiedAt: + description: Description of the role. + example: Manage data of the org. + filterPredicate: type: string - description: Last modification timestamp in UTC. - format: date-time - example: '2018-10-16T09:10:00Z' - modifiedBy: + description: A search filter to restrict access to specific logs. The filter is silently added to the beginning of each query a user runs. For example, using '!_sourceCategory=billing' as a filter predicate will prevent users assigned to the role from viewing logs from the source category named 'billing'. + example: '!_sourceCategory=billing' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - manageIndexes + - manageDataStreams + - viewParsers + - viewDataStreams + - viewPipelines + - managePipelines + + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - ipWhitelisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + - shareDashboardWhitelist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + - cseViewAutomations + - cseManageContextActions + - cseViewNetworkBlocks + - cseManageInsightTags + - cseViewRules + - cseViewThreatIntelligence + - cseCommentOnInsights + - cseViewEntityGroups + - cseManageEntityConfiguration + - cseManageNetworkBlocks + - cseManageMatchLists + - cseViewCustomInsights + - cseManageActions + - cseManageAutomations + - cseManageMappings + - cseManageThreatIntelligence + - cseViewActions + - cseCreateInsights + - cseManageTagSchemas + - cseInvokeInsights + - cseManageCustomEntityType + - cseViewTagSchemas + - cseDeleteInsights + - cseManageCustomInsights + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseManageEntityCriticality + - cseViewEntityCriticality + - cseViewEntity + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseViewMappings + - cseViewCustomEntityType + - cseManageEntityGroups + - cseViewCustomInsightStatuses + - cseViewEnrichments + - cseManageInsightSignals + - cseManageRules + - cseManageArtifacts + - cseViewMatchLists + - cseManageInsightPolicy + - cseManageEnrichments + - cseViewEntityConfiguration + - cseManageEntity + - cseExecuteAutomations + - cseManageSuppressedEntities + - cseManageInsightStatus + - cseManageInsightAssignee + - cseManageFavoriteFields + - cseViewSuppressedEntities + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + - viewMutingSchedules + - manageMutingSchedules + - adminMonitorsV2 + + ### SLO + - viewSlos + - manageSlos + + ### CloudSoar + - cloudSoarPlaybooksAccess + - cloudSoarNotificationConfigure + - cloudSoarReportAll + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTaskView + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentNotesEdit + - cloudSoarAPIEmailEdit + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentPlaybooksManage + - cloudSoarGeneralConfigure + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarIncidentAttachmentsAccess + - cloudSoarAppCentralAccess + - cloudSoarBridgeMonitoringAccess + - viewCloudSoar + - cloudSoarIncidentView + - cloudSoarObservabilityAccess + - cloudSoarAPIEmailRead + - cloudSoarAppCentralExport + - cloudSoarWidgetsAll + - cloudSoarIncidentTaskReassign + - cloudSoarIntegrationsAccess + - cloudSoarCustomizationIncidentLabels + - cloudSoarAutomationRulesConfigure + - cloudSoarIncidentTaskAccessAll + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentEdit + - cloudSoarNotificationTriage + - cloudSoarIncidentTriageBulkPhysicalDelete + - cloudSoarIncidentNotesAccess + - cloudSoarAPIUse + - cloudSoarIncidentPlaybooksEdit + - cloudSoarDashboardAll + - cloudSoarEntitiesManage + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccessAll + - cloudSoarPlaybooksConfigure + - cloudSoarIncidentAccessAll + - cloudSoarCustomizationLogo + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTriageView + - cloudSoarIntegrationsConfigure + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentAccess + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarIncidentBulkOperations + - cloudSoarCustomizationFields + - cloudSoarIncidentTaskEdit + - cloudSoarDashboardAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarUserManagementGroups + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentWarRoomUse + - cloudSoarReportAccess + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAutomationRulesAccess + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarObservabilityManagement + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the role. + example: 0000000000E20FE3 + systemDefined: + type: boolean + description: Role is system or user defined. + example: false + UpdateRoleDefinition: + required: + - capabilities + - description + - filterPredicate + - name + - users + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + filterPredicate: + type: string + description: A search filter to restrict access to specific logs. The filter is silently added to the beginning of each query a user runs. For example, using '!_sourceCategory=billing' as a filter predicate will prevent users assigned to the role from viewing logs from the source category named 'billing'. + example: '!_sourceCategory=billing' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - viewPipelines + - managePipelines + + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + ListRoleModelsResponseV2: + required: + - data + type: object + properties: + data: + type: array + description: List of roles. + items: + $ref: '#/components/schemas/GetRoleDefinitionV2' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + CreateRoleDefinitionV2: + required: + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/ViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - manageIndexes + - manageDataStreams + - viewParsers + - viewDataStreams + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - ipWhitelisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + - shareDashboardWhitelist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + - cseViewAutomations + - cseManageContextActions + - cseViewNetworkBlocks + - cseManageInsightTags + - cseViewRules + - cseViewThreatIntelligence + - cseCommentOnInsights + - cseViewEntityGroups + - cseManageEntityConfiguration + - cseManageNetworkBlocks + - cseManageMatchLists + - cseViewCustomInsights + - cseManageActions + - cseManageAutomations + - cseManageMappings + - cseManageThreatIntelligence + - cseViewActions + - cseCreateInsights + - cseManageTagSchemas + - cseInvokeInsights + - cseManageCustomEntityType + - cseViewTagSchemas + - cseDeleteInsights + - cseManageCustomInsights + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseManageEntityCriticality + - cseViewEntityCriticality + - cseViewEntity + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseViewMappings + - cseViewCustomEntityType + - cseManageEntityGroups + - cseViewCustomInsightStatuses + - cseViewEnrichments + - cseManageInsightSignals + - cseManageRules + - cseManageArtifacts + - cseViewMatchLists + - cseManageInsightPolicy + - cseManageEnrichments + - cseViewEntityConfiguration + - cseManageEntity + - cseExecuteAutomations + - cseManageSuppressedEntities + - cseManageInsightStatus + - cseManageInsightAssignee + - cseManageFavoriteFields + - cseViewSuppressedEntities + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + - viewMutingSchedules + - manageMutingSchedules + - adminMonitorsV2 + + ### SLO + - viewSlos + - manageSlos + + ### CloudSoar + - cloudSoarPlaybooksAccess + - cloudSoarNotificationConfigure + - cloudSoarReportAll + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTaskView + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentNotesEdit + - cloudSoarAPIEmailEdit + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentPlaybooksManage + - cloudSoarGeneralConfigure + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarIncidentAttachmentsAccess + - cloudSoarAppCentralAccess + - cloudSoarBridgeMonitoringAccess + - viewCloudSoar + - cloudSoarIncidentView + - cloudSoarObservabilityAccess + - cloudSoarAPIEmailRead + - cloudSoarAppCentralExport + - cloudSoarWidgetsAll + - cloudSoarIncidentTaskReassign + - cloudSoarIntegrationsAccess + - cloudSoarCustomizationIncidentLabels + - cloudSoarAutomationRulesConfigure + - cloudSoarIncidentTaskAccessAll + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentEdit + - cloudSoarNotificationTriage + - cloudSoarIncidentTriageBulkPhysicalDelete + - cloudSoarIncidentNotesAccess + - cloudSoarAPIUse + - cloudSoarIncidentPlaybooksEdit + - cloudSoarDashboardAll + - cloudSoarEntitiesManage + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccessAll + - cloudSoarPlaybooksConfigure + - cloudSoarIncidentAccessAll + - cloudSoarCustomizationLogo + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTriageView + - cloudSoarIntegrationsConfigure + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentAccess + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarIncidentBulkOperations + - cloudSoarCustomizationFields + - cloudSoarIncidentTaskEdit + - cloudSoarDashboardAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarUserManagementGroups + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentWarRoomUse + - cloudSoarReportAccess + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAutomationRulesAccess + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarObservabilityManagement + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + RoleModelV2: + type: object + x-tf-generated-properties: id,name,description,logAnalyticsFilter,auditDataFilter,securityDataFilter,selectionType,selectedViews,capabilities + x-tf-resource-name: RoleV2 + required: + - name + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/ViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - manageIndexes + - manageDataStreams + - viewParsers + - viewDataStreams + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - ipWhitelisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + - shareDashboardWhitelist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + - cseViewAutomations + - cseManageContextActions + - cseViewNetworkBlocks + - cseManageInsightTags + - cseViewRules + - cseViewThreatIntelligence + - cseCommentOnInsights + - cseViewEntityGroups + - cseManageEntityConfiguration + - cseManageNetworkBlocks + - cseManageMatchLists + - cseViewCustomInsights + - cseManageActions + - cseManageAutomations + - cseManageMappings + - cseManageThreatIntelligence + - cseViewActions + - cseCreateInsights + - cseManageTagSchemas + - cseInvokeInsights + - cseManageCustomEntityType + - cseViewTagSchemas + - cseDeleteInsights + - cseManageCustomInsights + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseManageEntityCriticality + - cseViewEntityCriticality + - cseViewEntity + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseViewMappings + - cseViewCustomEntityType + - cseManageEntityGroups + - cseViewCustomInsightStatuses + - cseViewEnrichments + - cseManageInsightSignals + - cseManageRules + - cseManageArtifacts + - cseViewMatchLists + - cseManageInsightPolicy + - cseManageEnrichments + - cseViewEntityConfiguration + - cseManageEntity + - cseExecuteAutomations + - cseManageSuppressedEntities + - cseManageInsightStatus + - cseManageInsightAssignee + - cseManageFavoriteFields + - cseViewSuppressedEntities + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + - viewMutingSchedules + - manageMutingSchedules + - adminMonitorsV2 + + ### SLO + - viewSlos + - manageSlos + + ### CloudSoar + - cloudSoarPlaybooksAccess + - cloudSoarNotificationConfigure + - cloudSoarReportAll + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTaskView + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentNotesEdit + - cloudSoarAPIEmailEdit + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentPlaybooksManage + - cloudSoarGeneralConfigure + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarIncidentAttachmentsAccess + - cloudSoarAppCentralAccess + - cloudSoarBridgeMonitoringAccess + - viewCloudSoar + - cloudSoarIncidentView + - cloudSoarObservabilityAccess + - cloudSoarAPIEmailRead + - cloudSoarAppCentralExport + - cloudSoarWidgetsAll + - cloudSoarIncidentTaskReassign + - cloudSoarIntegrationsAccess + - cloudSoarCustomizationIncidentLabels + - cloudSoarAutomationRulesConfigure + - cloudSoarIncidentTaskAccessAll + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentEdit + - cloudSoarNotificationTriage + - cloudSoarIncidentTriageBulkPhysicalDelete + - cloudSoarIncidentNotesAccess + - cloudSoarAPIUse + - cloudSoarIncidentPlaybooksEdit + - cloudSoarDashboardAll + - cloudSoarEntitiesManage + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccessAll + - cloudSoarPlaybooksConfigure + - cloudSoarIncidentAccessAll + - cloudSoarCustomizationLogo + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTriageView + - cloudSoarIntegrationsConfigure + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentAccess + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarIncidentBulkOperations + - cloudSoarCustomizationFields + - cloudSoarIncidentTaskEdit + - cloudSoarDashboardAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarUserManagementGroups + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentWarRoomUse + - cloudSoarReportAccess + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAutomationRulesAccess + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarObservabilityManagement + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the role. + example: 0000000000E20FE3 + systemDefined: + type: boolean + description: Role is system or user defined. + example: false + GetRoleDefinitionV2: + type: object + required: + - name + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/GetViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 - UpdateRoleDefinition: + id: + type: string + description: Unique identifier for the role. + example: 0000000000E20FE3 + systemDefined: + type: boolean + description: Role is system or user defined. + example: false + UpdateRoleDefinitionV2: required: + - auditDataFilter - capabilities - description - - filterPredicate + - logAnalyticsFilter - name + - securityDataFilter + - selectedViews + - selectionType - users type: object properties: @@ -450,10 +1835,32 @@ components: type: string description: Description of the role. example: Manage data of the org. - filterPredicate: + logAnalyticsFilter: type: string - description: A search filter to restrict access to specific logs. The filter is silently added to the beginning of each query a user runs. For example, using '!_sourceCategory=billing' as a filter predicate will prevent users assigned to the role from viewing logs from the source category named 'billing'. - example: '!_sourceCategory=billing' + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/ViewFilterDefinition' users: type: array description: List of user identifiers to assign the role to. @@ -475,6 +1882,7 @@ components: - manageFieldExtractionRules - manageS3DataForwarding - manageContent + - manageApps - dataVolumeIndex - manageConnections - viewScheduledViews @@ -486,7 +1894,194 @@ components: - viewAccountOverview - manageTokens - downloadSearchResults + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + ViewFilterDefinition: + required: + - viewName + type: object + properties: + viewName: + type: string + description: Name of the view. + example: auditData + RoleDefinition: + required: + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/GetViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - viewPipelines + - managePipelines ### Entity management - manageEntityTypeConfig @@ -536,415 +2131,195 @@ components: type: boolean description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. default: true - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + GetViewFilterDefinition: + required: + - viewName + type: object + properties: + viewName: + type: string + description: Name of the view. Help Doc:- (https://help.sumologic.com/docs/manage/partitions-data-tiers/) + example: auditData x-stackQL-resources: roles: id: sumologic.roles.roles name: roles title: Roles methods: - listRoles: + list: operation: $ref: '#/paths/~1v1~1roles/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data - createRole: + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1roles/post' response: mediaType: application/json openAPIDocKey: '200' - getRole: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1roles~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateRole: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1roles~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteRole: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1roles~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + assign_user: + operation: + $ref: '#/paths/~1v1~1roles~1{roleId}~1users~1{userId}/put' response: mediaType: application/json openAPIDocKey: '200' + remove_user: + operation: + $ref: '#/paths/~1v1~1roles~1{roleId}~1users~1{userId}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/roles/methods/getRole' - - $ref: '#/components/x-stackQL-resources/roles/methods/listRoles' + - $ref: '#/components/x-stackQL-resources/roles/methods/get' + - $ref: '#/components/x-stackQL-resources/roles/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/roles/methods/createRole' - update: [] + - $ref: '#/components/x-stackQL-resources/roles/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/roles/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/roles/methods/deleteRole' - users: - id: sumologic.roles.users - name: users - title: Users + - $ref: '#/components/x-stackQL-resources/roles/methods/delete' + replace: [] + roles_v2: + id: sumologic.roles.roles_v2 + name: roles_v2 + title: Roles V2 methods: - assignRoleToUser: + list: operation: - $ref: '#/paths/~1v1~1roles~1{roleId}~1users~1{userId}/put' + $ref: '#/paths/~1v2~1roles/get' response: mediaType: application/json openAPIDocKey: '200' - removeRoleFromUser: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1roles~1{roleId}~1users~1{userId}/delete' + $ref: '#/paths/~1v2~1roles/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1roles~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1roles~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1roles~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + assign_user: + operation: + $ref: '#/paths/~1v2~1roles~1{roleId}~1users~1{userId}/put' response: mediaType: application/json openAPIDocKey: '200' + remove_user: + operation: + $ref: '#/paths/~1v2~1roles~1{roleId}~1users~1{userId}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' sqlVerbs: - select: [] - insert: [] - update: [] + select: + - $ref: '#/components/x-stackQL-resources/roles_v2/methods/get' + - $ref: '#/components/x-stackQL-resources/roles_v2/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/roles_v2/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/roles_v2/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/users/methods/removeRoleFromUser' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/roles_v2/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - roles - description: roles - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/saml.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/saml.yaml index e795773..02e5b56 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/saml.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/saml.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Saml API + description: SAML identity providers, allowlisted users and SAML lockdown. + version: 1.0.0 paths: /v1/saml/identityProviders: get: @@ -12,9 +17,7 @@ paths: content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/SamlIdentityProvider' + $ref: '#/components/schemas/GetIdentityProvidersResponse' default: description: Operation failed with an error. content: @@ -117,9 +120,7 @@ paths: content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/AllowlistedUserResult' + $ref: '#/components/schemas/GetAllowlistedUsersResponse' default: description: Operation failed with an error. content: @@ -207,30 +208,159 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/saml/identityProviders/{id}/metadata: + get: + tags: + - samlConfigurationManagement + summary: Get SAML configuration metadata XML. + description: Get metadata XML for a specific SAML configuration within the organization. + operationId: getSamlMetadata + parameters: + - name: id + in: path + description: Identifier of the SAML configuration for which metadata should be returned. + required: true + schema: + type: string + responses: + '200': + description: A SAML configuration metadata XML within the organization. + content: + application/xml: + schema: + type: string + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: SamlIdentityProvider: - allOf: - - $ref: '#/components/schemas/SamlIdentityProviderRequest' - - $ref: '#/components/schemas/AuthnCertificateResult' - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - properties: - id: - type: string - description: Unique identifier of the SAML Identity Provider. - example: 00000000361130F7 - assertionConsumerUrl: - type: string - description: The URL on Sumo Logic where the IdP will redirect to with its authentication response. - example: https://service.sumologic.com/sumo/saml/consume/9483922 - default: '' - entityId: - type: string - description: A unique identifier that is the intended audience of the SAML assertion. - example: https://service.sumologic.com/sumo/saml/9483922 - default: '' + type: object + required: + - configurationName + - issuer + - x509cert1 + - certificate + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + spInitiatedLoginPath: + type: string + description: This property has been deprecated and is no longer used. + example: http://www.okta.com/abxcseyuiwelflkdjh + deprecated: true + default: '' + configurationName: + type: string + description: Name of the SSO policy or another name used to describe the policy internally. + example: SumoLogic + issuer: + type: string + description: The unique URL assigned to the organization by the SAML Identity Provider. + example: http://www.okta.com/abxcseyuiwelflkdjh + spInitiatedLoginEnabled: + type: boolean + description: True if Sumo Logic redirects users to your identity provider with a SAML AuthnRequest when signing in. + default: false + authnRequestUrl: + type: string + description: The URL that the identity provider has assigned for Sumo Logic to submit SAML authentication requests to the identity provider. + example: https://www.okta.com/app/sumologic/abxcseyuiwelflkdjh/sso/saml + default: '' + x509cert1: + type: string + description: The certificate is used to verify the signature in SAML assertions. + x509cert2: + type: string + description: The backup certificate used to verify the signature in SAML assertions when x509cert1 expires. + default: '' + x509cert3: + type: string + description: The backup certificate used to verify the signature in SAML assertions when x509cert1 expires and x509cert2 is empty. + default: '' + onDemandProvisioningEnabled: + $ref: '#/components/schemas/OnDemandProvisioningInfo' + rolesAttribute: + type: string + description: The role that Sumo Logic will assign to users when they sign in. + example: Sumo_Role + default: '' + logoutEnabled: + type: boolean + description: True if users are redirected to a URL after signing out of Sumo Logic. + default: false + logoutUrl: + type: string + description: The URL that users will be redirected to after signing out of Sumo Logic. + example: https://www.sumologic.com + default: '' + emailAttribute: + type: string + description: The email address of the new user account. + example: attribute/subject + default: '' + debugMode: + type: boolean + description: True if additional details are included when a user fails to sign in. + default: false + signAuthnRequest: + type: boolean + description: True if Sumo Logic will send signed Authn requests to the identity provider. + default: false + disableRequestedAuthnContext: + type: boolean + description: True if Sumo Logic will include the RequestedAuthnContext element of the SAML AuthnRequests it sends to the identity provider. + default: false + isRedirectBinding: + type: boolean + description: True if the SAML binding is of HTTP Redirect type. + default: false + certificate: + type: string + description: Authentication Request Signing Certificate for the user. + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier of the SAML Identity Provider. + example: 00000000361130F7 + assertionConsumerUrl: + type: string + description: The URL on Sumo Logic where the IdP will redirect to with its authentication response. + example: https://service.sumologic.com/sumo/saml/consume/9483922 + default: '' + entityId: + type: string + description: A unique identifier that is the intended audience of the SAML assertion. + example: https://service.sumologic.com/sumo/saml/9483922 + default: '' + metadataUrl: + type: string + description: The URL to fetch SAML metadata XML. + example: https://api.sumologic.com/api/v1/saml/identityProviders/00000000361130F7/metadata + default: '' ErrorResponse: required: - errors @@ -329,6 +459,40 @@ components: type: boolean description: True if the SAML binding is of HTTP Redirect type. default: false + AllowlistedUserResult: + required: + - canManageSaml + - email + - firstName + - isActive + - lastLogin + - lastName + - userId + type: object + properties: + userId: + type: string + description: Unique identifier of the user. + firstName: + type: string + description: First name of the user. + lastName: + type: string + description: Last name of the user. + email: + type: string + description: Email of the user. + example: john@sumologic.com + canManageSaml: + type: boolean + description: If the user can manage SAML Configurations. + isActive: + type: boolean + description: Checks if the user is active. + lastLogin: + type: string + description: Timestamp of the last login of the user. + format: date-time AuthnCertificateResult: required: - certificate @@ -349,7 +513,7 @@ components: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -358,7 +522,7 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. @@ -382,8 +546,8 @@ components: description: An optional fuller English-language description of the error. example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. meta: - type: object - description: An optional list of metadata about the error. + type: string + description: An optional list of metadata about the error. (opaque JSON object) example: minLength: 12 actualLength: 5 @@ -409,481 +573,197 @@ components: items: type: string default: [] - AllowlistedUserResult: - required: - - canManageSaml - - email - - firstName - - isActive - - lastLogin - - lastName - - userId + GetIdentityProvidersResponse: type: object properties: - userId: - type: string - description: Unique identifier of the user. - firstName: - type: string - description: First name of the user. - lastName: - type: string - description: Last name of the user. - email: - type: string - description: Email of the user. - example: john@sumologic.com - canManageSaml: - type: boolean - description: If the user can manage SAML Configurations. - isActive: - type: boolean - description: Checks if the user is active. - lastLogin: - type: string - description: Timestamp of the last login of the user. - format: date-time - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + identity_providers: + type: array + items: + $ref: '#/components/schemas/SamlIdentityProvider' + GetAllowlistedUsersResponse: + type: object + properties: + allowlisted_users: + type: array + items: + $ref: '#/components/schemas/AllowlistedUserResult' x-stackQL-resources: identity_providers: id: sumologic.saml.identity_providers name: identity_providers - title: Identity_providers + title: Identity Providers methods: - getIdentityProviders: + list: operation: $ref: '#/paths/~1v1~1saml~1identityProviders/get' response: mediaType: application/json openAPIDocKey: '200' - createIdentityProvider: + objectKey: $.identity_providers + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetIdentityProvidersResponse' + transform: + body: |- + {{- $wrapped := printf "{\"identity_providers\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1saml~1identityProviders/post' response: mediaType: application/json openAPIDocKey: '200' - updateIdentityProvider: + request: + mediaType: application/json + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1saml~1identityProviders~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteIdentityProvider: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1saml~1identityProviders~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/identity_providers/methods/getIdentityProviders' + - $ref: '#/components/x-stackQL-resources/identity_providers/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/identity_providers/methods/createIdentityProvider' - update: [] + - $ref: '#/components/x-stackQL-resources/identity_providers/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/identity_providers/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/identity_providers/methods/deleteIdentityProvider' + - $ref: '#/components/x-stackQL-resources/identity_providers/methods/delete' + replace: [] allowlisted_users: id: sumologic.saml.allowlisted_users name: allowlisted_users - title: Allowlisted_users + title: Allowlisted Users methods: - getAllowlistedUsers: + list: operation: $ref: '#/paths/~1v1~1saml~1allowlistedUsers/get' response: mediaType: application/json openAPIDocKey: '200' - createAllowlistedUser: + objectKey: $.allowlisted_users + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetAllowlistedUsersResponse' + transform: + body: |- + {{- $wrapped := printf "{\"allowlisted_users\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + add: operation: $ref: '#/paths/~1v1~1saml~1allowlistedUsers~1{userId}/post' response: mediaType: application/json openAPIDocKey: '200' - deleteAllowlistedUser: + delete: operation: $ref: '#/paths/~1v1~1saml~1allowlistedUsers~1{userId}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/allowlisted_users/methods/getAllowlistedUsers' - insert: - - $ref: '#/components/x-stackQL-resources/allowlisted_users/methods/createAllowlistedUser' + - $ref: '#/components/x-stackQL-resources/allowlisted_users/methods/list' + insert: [] update: [] delete: - - $ref: '#/components/x-stackQL-resources/allowlisted_users/methods/deleteAllowlistedUser' - lockdown_enable: - id: sumologic.saml.lockdown_enable - name: lockdown_enable - title: Lockdown_enable + - $ref: '#/components/x-stackQL-resources/allowlisted_users/methods/delete' + replace: [] + lockdown: + id: sumologic.saml.lockdown + name: lockdown + title: Lockdown methods: - enableSamlLockdown: + enable: operation: $ref: '#/paths/~1v1~1saml~1lockdown~1enable/post' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + disable: + operation: + $ref: '#/paths/~1v1~1saml~1lockdown~1disable/post' + response: + mediaType: application/json + openAPIDocKey: '204' sqlVerbs: select: [] insert: [] update: [] delete: [] - lockdown_disable: - id: sumologic.saml.lockdown_disable - name: lockdown_disable - title: Lockdown_disable + replace: [] + identity_provider_metadata: + id: sumologic.saml.identity_provider_metadata + name: identity_provider_metadata + title: Identity Provider Metadata methods: - disableSamlLockdown: + get: operation: - $ref: '#/paths/~1v1~1saml~1lockdown~1disable/post' + $ref: '#/paths/~1v1~1saml~1identityProviders~1{id}~1metadata/get' response: - mediaType: application/json + mediaType: application/xml openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/identity_provider_metadata/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - saml - description: saml - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/scheduled_views.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/scheduled_views.yaml index 59833ab..5278166 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/scheduled_views.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/scheduled_views.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Scheduled Views API + description: Scheduled views and their quota. + version: 1.0.0 paths: /v1/scheduledViews: get: @@ -204,6 +209,26 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/scheduledViews/quota: + get: + tags: + - scheduledViewManagement + summary: Provides information about scheduled views quota. + description: Every customer can use a limited number of scheduled views. This endpoint allows learning about these limitations and remaining quota. + operationId: getScheduledViewsQuota + responses: + '200': + description: Current state of scheduled views quota usage (limit and remaining). + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledViewsQuotaUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: ListScheduledViewsResponse: @@ -239,89 +264,68 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - ScheduledView: - allOf: - - $ref: '#/components/schemas/CreateScheduledViewDefinition' - - $ref: '#/components/schemas/ViewRetentionProperties' - - required: - - id - properties: - id: - type: string - description: Identifier for the scheduled view. - indexId: - type: string - description: The `id` of the Index where the output from Scheduled view is stored. - example: '1' - createdAt: - type: string - description: Creation timestamp in UTC. - format: date-time - modifiedAt: - type: string - description: Last modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. - format: date-time - createdByOptimizeIt: - type: boolean - description: If the scheduled view is created by OptimizeIt. - error: - type: string - description: Errors related to the scheduled view. - status: - type: string - description: Status of the scheduled view. - totalBytes: - type: integer - description: Total storage consumed by the scheduled view. - format: int64 - totalMessageCount: - type: integer - description: Total number of messages for the scheduled view. - format: int64 - createdBy: - type: string - description: Identifier of the user who created the scheduled view. - example: 0000000006743FE8 - modifiedBy: - type: string - description: Identifier of the user who last modified the resource. - example: 0000000006743FE8 - filledRanges: - type: array - description: List of the different units of filled ranges since the autoview has been created. - items: - $ref: '#/components/schemas/FilledRange' - x-tf-generated-properties: id,query,indexName,startTime,retentionPeriod,parsingMode - ErrorDescription: + CreateScheduledViewDefinition: required: - - code - - message + - indexName + - query + - startTime type: object properties: - code: + query: + maxLength: 16384 + minLength: 1 type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + description: The query that defines the data to be included in the scheduled view. + example: _sourceCategory=*/Apache + indexName: + maxLength: 255 + minLength: 0 type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: Name of the index for the scheduled view. + example: TestScheduledView + startTime: type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - CreateScheduledViewDefinition: + description: Start timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + retentionPeriod: + type: integer + description: The number of days to retain data in the scheduled view, or -1 to use the default value for your account. Only relevant if your account has multi-retention enabled. + format: int32 + example: 60 + default: -1 + dataForwardingId: + type: string + description: An optional ID of a data forwarding configuration to be used by the scheduled view. + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + x-pattern-message: should be either AutoParse or Manual + timeZone: + type: string + description: Time zone for ingesting data in scheduled view. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + default: UTC + description: + maxLength: 65535 + type: string + description: Description of the scheduled view. + default: '' + ScheduledView: + type: object + x-tf-generated-properties: id,query,indexName,startTime,retentionPeriod,parsingMode + x-tf-resource-name: ScheduledView required: - indexName - query - startTime - type: object + - id properties: query: maxLength: 16384 @@ -359,9 +363,16 @@ components: example: AutoParse default: Manual x-pattern-message: should be either AutoParse or Manual - ViewRetentionProperties: - type: object - properties: + timeZone: + type: string + description: Time zone for ingesting data in scheduled view. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + default: UTC + description: + maxLength: 65535 + type: string + description: Description of the scheduled view. + default: '' newRetentionPeriod: type: integer description: If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. @@ -371,21 +382,62 @@ components: type: string description: When the newRetentionPeriod will become effective in UTC format. format: date-time - FilledRange: - required: - - endTime - - startTime - type: object - properties: - startTime: + id: type: string - description: Start of the timestamp for each unit of filled ranges, expressed in UTC. + description: Identifier for the scheduled view. + indexId: + type: string + description: The `id` of the Index where the output from Scheduled view is stored. + example: '1' + createdAt: + type: string + description: Creation timestamp in UTC. format: date-time - endTime: + modifiedAt: type: string - description: End of the timestamp for each unit of filled ranges, expressed in UTC. + description: Last modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdByOptimizeIt: + type: boolean + description: If the scheduled view is created by OptimizeIt. + error: + type: string + description: Errors related to the scheduled view. + status: + type: string + description: |- + Status of the scheduled view. Possible values are: + 1. `NOT_STARTED` + 2. `FILLING` + 3. `STOPPED` + 4. `COMPLETE` + 5. `FAILED` + 6. `PAUSED` + totalBytes: + type: integer + description: Total storage consumed by the scheduled view. + format: int64 + totalMessageCount: + type: integer + description: Total number of messages for the scheduled view. + format: int64 + createdBy: + type: string + description: Identifier of the user who created the scheduled view. + example: 0000000006743FE8 + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + filledRanges: + type: array + description: List of the different units of filled ranges since the autoview has been created. + items: + $ref: '#/components/schemas/FilledRange' + lastAccessedAt: + type: string + description: Last accessed timestamp in UTC format: date-time - description: Range of timestamps already filled since the autoview has been created. UpdateScheduledViewDefinition: type: object properties: @@ -402,432 +454,201 @@ components: type: boolean description: This is required if the newly specified `retentionPeriod` is less than the existing retention period. In such a situation, a value of `true` says that data between the existing retention period and the new retention period should be deleted immediately; if `false`, such data will be deleted after seven days. This property is optional and ignored if the specified `retentionPeriod` is greater than or equal to the current retention period. default: false - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + timeZone: + type: string + description: Updates the time zone for ingesting data in scheduled view to the specified timezone ( does nothing if not specified ). Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + description: + maxLength: 65535 + type: string + description: Description of the scheduled view. + ScheduledViewsQuotaUsage: + required: + - quota + - remaining + type: object + properties: + quota: + type: integer + description: Maximum number of Scheduled Views allowed. + format: int32 + example: 200 + remaining: + type: integer + description: Remaining number of Scheduled Views allowed. + format: int32 + example: 121 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ViewRetentionProperties: + type: object + properties: + newRetentionPeriod: + type: integer + description: If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. + format: int32 + example: 300 + retentionEffectiveAt: + type: string + description: When the newRetentionPeriod will become effective in UTC format. + format: date-time + FilledRange: + required: + - endTime + - startTime + type: object + properties: + startTime: + type: string + description: Start of the timestamp for each unit of filled ranges, expressed in UTC. + format: date-time + endTime: + type: string + description: End of the timestamp for each unit of filled ranges, expressed in UTC. + format: date-time + description: Range of timestamps already filled since the autoview has been created. x-stackQL-resources: scheduled_views: id: sumologic.scheduled_views.scheduled_views name: scheduled_views - title: Scheduled_views + title: Scheduled Views methods: - listScheduledViews: + list: operation: $ref: '#/paths/~1v1~1scheduledViews/get' response: mediaType: application/json openAPIDocKey: '200' - createScheduledView: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1scheduledViews/post' response: mediaType: application/json openAPIDocKey: '200' - getScheduledView: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1scheduledViews~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateScheduledView: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1scheduledViews~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/scheduled_views/methods/getScheduledView' - - $ref: '#/components/x-stackQL-resources/scheduled_views/methods/listScheduledViews' - insert: - - $ref: '#/components/x-stackQL-resources/scheduled_views/methods/createScheduledView' - update: [] - delete: [] - disable: - id: sumologic.scheduled_views.disable - name: disable - title: Disable - methods: - disableScheduledView: + request: + mediaType: application/json + nativeCasing: camel + disable: operation: $ref: '#/paths/~1v1~1scheduledViews~1{id}~1disable/delete' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - pause: - id: sumologic.scheduled_views.pause - name: pause - title: Pause - methods: - pauseScheduledView: + openAPIDocKey: '204' + pause: operation: $ref: '#/paths/~1v1~1scheduledViews~1{id}~1pause/post' response: mediaType: application/json openAPIDocKey: '200' + start: + operation: + $ref: '#/paths/~1v1~1scheduledViews~1{id}~1start/post' + response: + mediaType: application/json + openAPIDocKey: '200' sqlVerbs: - select: [] - insert: [] - update: [] + select: + - $ref: '#/components/x-stackQL-resources/scheduled_views/methods/get' + - $ref: '#/components/x-stackQL-resources/scheduled_views/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/scheduled_views/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/scheduled_views/methods/update' delete: [] - start: - id: sumologic.scheduled_views.start - name: start - title: Start + replace: [] + quota: + id: sumologic.scheduled_views.quota + name: quota + title: Quota methods: - startScheduledView: + get: operation: - $ref: '#/paths/~1v1~1scheduledViews~1{id}~1start/post' + $ref: '#/paths/~1v1~1scheduledViews~1quota/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/quota/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - scheduled_views - description: scheduledViews - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/schemas.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/schemas.yaml new file mode 100644 index 0000000..2259fdc --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/schemas.yaml @@ -0,0 +1,323 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Schemas API + description: Schema identities grouped by product (Schema Base Management). + version: 1.0.0 +paths: + /v1/schemaIdentitiesGrouped: + get: + tags: + - schemaBaseManagement + summary: Get schema base identities grouped by type and sorted by version. + description: Get a summary of all available schema bases grouped by type and their versions sorted by latest. + operationId: getSchemaIdentitiesGrouped + responses: + '200': + description: A summary of all available schema bases grouped by type and their versions sorted by latest. + content: + application/json: + schema: + $ref: '#/components/schemas/ListSchemaBaseTypeToVersionsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListSchemaBaseTypeToVersionsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of maps containing the mappings schema type -> versions. + items: + $ref: '#/components/schemas/SchemaBaseTypeToVersionsResponse' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + SchemaBaseTypeToVersionsResponse: + required: + - type + - versions + type: object + properties: + type: + type: string + description: The type of the schema. + example: Okta + versions: + type: array + description: List of schema base identities sorted by latest version for a specific schema type. + items: + $ref: '#/components/schemas/SchemaBaseComplete' + description: Map of the schema base type to its list of schema base identities. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + SchemaBaseComplete: + type: object + required: + - family + - schema + - type + - version + - id + properties: + type: + maxLength: 128 + minLength: 1 + type: string + description: The type of the integration. + example: Okta + version: + maxLength: 128 + minLength: 5 + pattern: ^([0-9]+)\.([0-9]+)\.([0-9]+)$ + type: string + description: The version (or image tag) of the integration. Follows the Major.Minor.Patch semantic versioning format. + example: 1.0.0 + x-pattern-message: 'must follow semantic versioning: https://semver.org/' + description: + maxLength: 1024 + minLength: 0 + type: string + description: The description of the integration. + example: An Okta integration that collects Okta event logs into Sumo Logic. + manifest: + maxProperties: 1000 + type: object + additionalProperties: true + description: The manifest of the integration. + schema: + maxProperties: 1000 + type: object + additionalProperties: true + description: The schema in JSON Schema specification. + family: + type: string + description: The family to which schema belong. + enum: + - OTC_Source_Template + - OTEL_Component + id: + type: string + description: Unique identifier of the schema. + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + templateYaml: + maxLength: 10960 + minLength: 1 + type: string + description: The template yaml of schema. + example: example templateYaml + SchemaBaseIdentityWithMetadata: + type: object + required: + - family + - schema + - type + - version + - id + properties: + type: + maxLength: 128 + minLength: 1 + type: string + description: The type of the integration. + example: Okta + version: + maxLength: 128 + minLength: 5 + pattern: ^([0-9]+)\.([0-9]+)\.([0-9]+)$ + type: string + description: The version (or image tag) of the integration. Follows the Major.Minor.Patch semantic versioning format. + example: 1.0.0 + x-pattern-message: 'must follow semantic versioning: https://semver.org/' + description: + maxLength: 1024 + minLength: 0 + type: string + description: The description of the integration. + example: An Okta integration that collects Okta event logs into Sumo Logic. + manifest: + maxProperties: 1000 + type: object + additionalProperties: true + description: The manifest of the integration. + schema: + maxProperties: 1000 + type: object + additionalProperties: true + description: The schema in JSON Schema specification. + family: + type: string + description: The family to which schema belong. + enum: + - OTC_Source_Template + - OTEL_Component + id: + type: string + description: Unique identifier of the schema. + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + SchemaBaseTemplateYaml: + type: object + properties: + templateYaml: + maxLength: 10960 + minLength: 1 + type: string + description: The template yaml of schema. + example: example templateYaml + SchemaBaseIdentity: + required: + - family + - schema + - type + - version + type: object + properties: + type: + maxLength: 128 + minLength: 1 + type: string + description: The type of the integration. + example: Okta + version: + maxLength: 128 + minLength: 5 + pattern: ^([0-9]+)\.([0-9]+)\.([0-9]+)$ + type: string + description: The version (or image tag) of the integration. Follows the Major.Minor.Patch semantic versioning format. + example: 1.0.0 + x-pattern-message: 'must follow semantic versioning: https://semver.org/' + description: + maxLength: 1024 + minLength: 0 + type: string + description: The description of the integration. + example: An Okta integration that collects Okta event logs into Sumo Logic. + manifest: + maxProperties: 1000 + type: object + additionalProperties: true + description: The manifest of the integration. + schema: + maxProperties: 1000 + type: object + additionalProperties: true + description: The schema in JSON Schema specification. + family: + type: string + description: The family to which schema belong. + enum: + - OTC_Source_Template + - OTEL_Component + x-stackQL-resources: + schema_identities: + id: sumologic.schemas.schema_identities + name: schema_identities + title: Schema Identities + methods: + list: + operation: + $ref: '#/paths/~1v1~1schemaIdentitiesGrouped/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/schema_identities/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/scim.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/scim.yaml new file mode 100644 index 0000000..9be2269 --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/scim.yaml @@ -0,0 +1,636 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Scim API + description: SCIM 2.0 user provisioning. + version: 1.0.0 +paths: + /v1/scim/Users: + get: + tags: + - scimUserManagement + summary: List SCIM Users + description: Retrieves a list of users in the SCIM system, with optional pagination + operationId: listSCIMUsers + parameters: + - name: startIndex + in: query + description: The index of the first result to return. Defaults to 1 if not specified, a value less than 1 SHALL be interpreted as 1 + required: false + schema: + minimum: 1 + type: integer + format: int32 + default: 1 + - name: count + in: query + description: The maximum number of results to return. Defaults to 100 + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + default: 100 + - name: filter + in: query + description: Find user with the given email address + required: false + schema: + minLength: 1 + type: string + example: emails.value eq "john@doe.com" + - name: sortOrder + in: query + description: The sort order. Use "ascending" or "descending" + required: false + schema: + type: string + example: descending + enum: + - ascending + - descending + - name: sortBy + in: query + description: Sort the list of users by the `givenName`, `familyName`, or `emails` field + required: false + schema: + type: string + example: givenName + responses: + '200': + description: A paginated list of users in the organization + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + post: + tags: + - scimUserManagement + summary: Create SCIM User + description: Creates a new user in the SCIM system + operationId: createSCIMUser + requestBody: + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMCreateUserDefinition' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + required: true + responses: + '201': + description: The user has been created successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + /v1/scim/Users/{id}: + get: + tags: + - scimUserManagement + summary: Get a SCIM User + description: Fetches the details of a SCIM user by their unique identifier + operationId: getSCIMUserById + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user + required: true + schema: + type: string + responses: + '200': + description: User details retrieved successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + put: + tags: + - scimUserManagement + summary: Update SCIM User + description: Updates an existing user's attributes in the SCIM system + operationId: updateSCIMUser + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user + required: true + schema: + type: string + requestBody: + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUpdateUserDefinition' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + required: true + responses: + '200': + description: The user has been updated successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + delete: + tags: + - scimUserManagement + summary: Delete SCIM User + description: Deletes a SCIM user by their unique identifier + operationId: deleteSCIMUserById + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user to delete + required: true + schema: + type: string + responses: + '204': + description: User was deleted successfully + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + patch: + tags: + - scimUserManagement + summary: Update SCIM User Attributes + description: Updates specific attributes of an existing user in the SCIM system + operationId: patchSCIMUser + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user + required: true + schema: + type: string + requestBody: + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMPatchUserDefinition' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + required: true + responses: + '200': + description: The user attributes updated successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' +components: + schemas: + ListSCIMUserModelsResponse: + type: object + properties: + totalResults: + type: integer + description: Total number of users that match the filter criteria + example: 100 + startIndex: + minimum: 0 + type: integer + description: The index of the first returned result + format: int32 + example: 0 + default: 0 + itemsPerPage: + type: integer + description: The number of results returned in this page + example: 10 + Resources: + type: array + description: List of SCIM user resources + items: + $ref: '#/components/schemas/SCIMUserModel' + ErrorResponseScim: + required: + - schemas + - status + type: object + properties: + status: + type: integer + description: The HTTP status code. + example: 409 + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + scimType: + type: string + description: A SCIM detail error keyword. + example: uniqueness + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + SCIMCreateUserDefinition: + required: + - emails + - name + - roles + - schemas + - userName + type: object + properties: + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + userName: + maxLength: 64 + type: string + description: Unique identifier for the user (email) + example: jdoe@example.com + name: + $ref: '#/components/schemas/NameInfo' + emails: + type: array + description: Sumo logic accepts only one email address + items: + type: object + properties: + value: + type: string + format: email + example: jdoe@example.com + type: + type: string + example: work + primary: + type: boolean + example: true + default: true + roles: + type: array + description: roles should exactly match with role names within sumologic. `roles` can be either `Array of strings` or `Array of objects` as shown in the payload. `primary` always set to 'true' as sumologic doesn't have a concept of primary/secondary roles + example: + - - role1 + - role2 + - - value: role1 + primary: true + - value: role2 + primary: true + items: {} + SCIMUserModel: + type: object + required: + - emails + - name + - roles + - schemas + - userName + - id + properties: + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + userName: + maxLength: 64 + type: string + description: Unique identifier for the user (email) + example: jdoe@example.com + name: + $ref: '#/components/schemas/NameInfo' + emails: + type: array + description: Sumo logic accepts only one email address + items: + type: object + properties: + value: + type: string + format: email + example: jdoe@example.com + type: + type: string + example: work + primary: + type: boolean + example: true + default: true + roles: + type: array + description: roles should exactly match with role names within sumologic. `roles` can be either `Array of strings` or `Array of objects` as shown in the payload. `primary` always set to 'true' as sumologic doesn't have a concept of primary/secondary roles + example: + - - role1 + - role2 + - - value: role1 + primary: true + - value: role2 + primary: true + items: {} + id: + type: string + description: Unique SCIM identifier for the user + example: 000000000FE20FE2 + active: + type: boolean + description: True if the user is active + example: true + meta: + $ref: '#/components/schemas/ResourceData' + SCIMUpdateUserDefinition: + required: + - active + - emails + - name + - roles + - schemas + type: object + properties: + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + name: + $ref: '#/components/schemas/NameInfo' + active: + type: boolean + description: Indicates if the user is active + example: true + emails: + type: array + description: Sumo logic accepts only one email address + items: + type: object + properties: + value: + type: string + format: email + example: jdoe@example.com + type: + type: string + example: work + primary: + type: boolean + example: true + default: true + roles: + type: array + description: roles should exactly match with role names within sumologic. `roles` can be either `Array of strings` or `Array of objects` as shown in the payload. `primary` always set to 'true' as sumologic doesn't have a concept of primary/secondary roles + example: + - - role1 + - role2 + - - value: role1 + primary: true + - value: role2 + primary: true + items: {} + SCIMPatchUserDefinition: + required: + - Operations + - schemas + type: object + properties: + schemas: + type: array + description: Defines the SCIM schemas for the patch operation + example: + - urn:ietf:params:scim:api:messages:2.0:PatchOp + items: + type: string + Operations: + type: array + description: Updates one or more attributes of a SCIM resource using a sequence of operations + items: + type: object + properties: + op: + pattern: (?i)^(replace|add|remove)$ + type: string + description: Supports 'add', 'replace' and 'remove' operations + example: replace + x-pattern-message: '`replace`, `add`, `remove`' + path: + type: string + description: Attribute path to modify + example: name.familyName + value: + type: object + properties: + value: + type: string + NameInfo: + required: + - familyName + - givenName + type: object + properties: + givenName: + type: string + description: Given name of the user (firstName) + example: John + familyName: + type: string + description: Family name of the user (lastName) + example: Doe + ResourceData: + type: object + properties: + resourceType: + type: string + description: The name of the resource type of the resource + example: User + created: + type: string + description: Creation timestamp in date-time format + format: date-time + example: '2024-01-01T12:00:00.000Z' + lastModified: + type: string + description: Last modification timestamp in date-time format + format: date-time + example: '2024-01-01T12:00:00.000Z' + description: Resource meta data of a user + x-stackQL-resources: + users: + id: sumologic.scim.users + name: users + title: Users + methods: + list: + operation: + $ref: '#/paths/~1v1~1scim~1Users/get' + response: + mediaType: application/scim+json + openAPIDocKey: '200' + objectKey: $.Resources + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1scim~1Users/post' + response: + mediaType: application/scim+json + openAPIDocKey: '201' + request: + mediaType: application/scim+json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1scim~1Users~1{id}/get' + response: + mediaType: application/scim+json + openAPIDocKey: '200' + request: + nativeCasing: camel + replace: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1scim~1Users~1{id}/put' + response: + mediaType: application/scim+json + openAPIDocKey: '200' + request: + mediaType: application/scim+json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1scim~1Users~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1scim~1Users~1{id}/patch' + response: + mediaType: application/scim+json + openAPIDocKey: '200' + request: + mediaType: application/scim+json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/users/methods/get' + - $ref: '#/components/x-stackQL-resources/users/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/users/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/users/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/users/methods/delete' + replace: + - $ref: '#/components/x-stackQL-resources/users/methods/replace' +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/search_jobs.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/search_jobs.yaml new file mode 100644 index 0000000..7cccd42 --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/search_jobs.yaml @@ -0,0 +1,741 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Search Jobs API + description: Search jobs (v2) - create a log search job, poll its status and page through its messages and records. + version: 1.0.0 +paths: + /v2/search/jobs: + post: + tags: + - searchJobManagement + summary: Create a search job. + description: Create a new search job. + operationId: createSearchJob + parameters: [] + requestBody: + description: Information about the new search job to be created. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateJobRequest' + required: true + responses: + '202': + description: The search job has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateJobResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/search/jobs/{jobId}: + get: + tags: + - searchJobManagement + summary: Get a search job's status. + description: Use the search job identifier to obtain the current status of a search job. + operationId: getSearchJobStatus + parameters: + - name: jobId + in: path + description: The identifier of the search job. + required: true + schema: + type: string + responses: + '200': + description: The search job's status. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchJobStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - searchJobManagement + summary: Delete a search job. + description: Use the search job identifier to delete the search job. + operationId: deleteSearchJob + parameters: + - name: jobId + in: path + description: The identifier of the search job to be deleted. + required: true + schema: + type: string + responses: + '200': + description: The search job was deleted successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchJobDeleteResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/search/jobs/{jobId}/messages: + get: + tags: + - searchJobManagement + summary: Get paginated messages from an offset. + description: Use the search job identifier to obtain the paginated messages from an offset. + operationId: getSearchJobPaginatedMessages + parameters: + - name: jobId + in: path + description: The identifier of the search job. + required: true + schema: + type: string + - name: offset + in: query + description: Return messages starting at this offset. + required: true + schema: + type: integer + - name: limit + in: query + description: | + Limit the number of messages returned in the response. The number of messages returned may be less than the `limit`. + required: true + schema: + maximum: 10000 + type: integer + responses: + '200': + description: A paginated list of messages. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchQueryPaginatedMessages' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/search/jobs/{jobId}/records: + get: + tags: + - searchJobManagement + summary: Get aggregated records. + description: Use the search job identifier to obtain the aggregated records from an offset. + operationId: getSearchJobPaginatedRecords + parameters: + - name: jobId + in: path + description: The identifier of the search job. + required: true + schema: + type: string + - name: offset + in: query + description: Return aggregated records starting at this offset. + required: true + schema: + type: integer + - name: limit + in: query + description: | + Limit the number of records returned in the response. + required: true + schema: + maximum: 10000 + type: integer + responses: + '200': + description: A paginated list of records. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchQueryPaginatedRecords' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + CreateJobRequest: + required: + - from + - query + - timezone + - to + type: object + properties: + query: + maxLength: 15000 + type: string + description: | + The actual search expression. Ensure your query follows [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259) and is valid JSON format, you may need to escape certain characters to follow the [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259). + example: _sourceCategory=service + from: + maxLength: 24 + type: string + description: | + The start date and time of the search. This follows the [ISO 8601](https://www.w3.org/TR/NOTE-datetime) date and time format. + example: '2017-07-26T00:00:00.000Z' + to: + maxLength: 24 + type: string + description: | + The end date and time of the search. This follows the [ISO 8601](https://www.w3.org/TR/NOTE-datetime) date and time format. + example: '2017-07-26T00:00:00.000Z' + timezone: + type: string + description: The time zone if from/to is not in milliseconds. See this [Wikipedia article](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for a list of time zone codes. + default: UTC + autoParsingMode: + pattern: ^(Manual|AutoParse)$ + type: string + description: | + Define the parsing mode to scan the JSON format log messages. Possible values are: + + AutoParse - System automatically figures out the fields to parse based on the search query. + + Manual - No fields are parsed out automatically. For more information, refer to the [Dynamic Parsing](https://help.sumologic.com/docs/manage/field-extractions/create-field-extraction-rule/). + example: Manual + default: Manual + x-pattern-message: should be either 'Manual' or 'AutoParse' + requiresRawMessages: + pattern: ^(true|false)$ + type: string + description: | + On enabling this field, the log messages applicable to the search are returned. Maximum value is 100,000. This is only applicable for aggregate queries. + default: 'false' + x-pattern-message: should be either 'true' or 'false' + maxRawRecords: + type: string + description: Maximum number of raw records to finish the search. + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime or searchableTime. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + childOrgIds: + type: array + description: | + List of child organization ids to run the search on. + example: + - '0000000000000001' + - '0000000000000002' + items: + type: string + includeAllChildOrgs: + type: boolean + description: | + When true, automatically resolves all child orgs of the authenticated parent and fans the search out across all of them. If this is set, it takes precedence over childOrgIds field. Default value is false. + default: false + CreateJobResponse: + type: object + properties: + warning: + type: string + description: Warnings value contains the detailed information about the warning while creating the search job. + id: + type: string + description: The search job identifier. + link: + $ref: '#/components/schemas/Link' + isAggregation: + type: boolean + description: Whether the query has aggregation operators. + isSummary: + type: boolean + description: Whether the query is a summary query. + isSortable: + type: boolean + description: Whether the results are sortable. + runnableQuery: + type: string + description: | + The final query string after parameterized variables are substituted, macros are expanded. + userReferencedFieldsSortable: + type: boolean + description: | + Whether the user's explicitly referenced fields can be re-sorted by clicking column headers. + operators: + type: array + description: | + List of special operators present in the query. + items: + type: string + tiersInQuery: + type: array + description: Analytics tiers referenced in the query. + items: + type: string + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + SearchJobStatusResponse: + type: object + properties: + warning: + type: string + description: Warnings value contains the detailed information about the warning while obtaining the current status of a search job. + state: + type: string + description: Search job state. In case you are checking status for a multi child org query, you might see another status as 'Done Gathering Partial Results' which means that the query failed for some of the child orgs. You can check their reasons in audit logs with the query Id. + example: DONE GATHERING RESULTS + histogramBuckets: + type: array + description: Histogram buckets for the query. + items: + $ref: '#/components/schemas/HistogramBucket' + messageCount: + type: integer + description: Number of messages found or produced so far. + format: int64 + recordCount: + type: integer + description: Number of records found or produced so far. + format: int64 + pendingWarnings: + type: array + description: Pending warnings that have accumulated since the last time the status was requested. + items: + type: string + pendingErrors: + type: array + description: Pending errors that have accumulated since the last time the status was requested. + items: + type: string + usageDetails: + type: object + properties: + dataScannedInBytes: + type: integer + description: Data Scanned in Bytes. + format: int64 + description: Usage details about the search job api. It includes data scanned in bytes during the search. + usageDetailsByMeteringType: + type: array + description: Usage details broken down by metering type. Each element contains dataScannedInBytes, meteringType, tier, and isChargeable. + items: + $ref: '#/components/schemas/UsageDetailsByMeteringType' + usageDetailsByTier: + type: array + description: Usage details broken down by analytics tier. Each element contains dataScannedInBytes and tier. + items: + $ref: '#/components/schemas/UsageDetailsByTier' + timeElapsed: + type: integer + description: Time elapsed in milliseconds since the search job started. + format: int64 + searchedTimeRange: + $ref: '#/components/schemas/SearchedTimeRange' + showLogLevels: + type: boolean + description: Whether log level distribution data is available for this search job. + pendingMessageLocatorsAndOffsets: + type: array + description: Pending message locators and offsets accumulated since the last status request. + items: + $ref: '#/components/schemas/PendingMessageLocatorsAndOffset' + jobId: + type: string + description: The job identifier for this search job. + userMessages: + type: array + description: Informational user messages generated during the search. Each element contains type, key, and data. + items: + $ref: '#/components/schemas/UserMessage' + performance: + $ref: '#/components/schemas/Performance' + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + SearchJobDeleteResponse: + type: object + properties: + warning: + type: string + description: Warnings value contains the detailed information about the warning while deleting a search job. + x-field-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + jobId: + type: string + description: The Id of the search job which is deleted. + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + SearchQueryPaginatedMessages: + required: + - fields + - messages + type: object + properties: + warning: + type: string + description: Detailed information about the warning while paging through the messages found by a search job. + fields: + type: array + description: List of all the fields defined for each of the messages returned. + items: + $ref: '#/components/schemas/Field' + messages: + type: array + description: Map of the field names to the field values. + items: + $ref: '#/components/schemas/Message' + autoPauseLimitReached: + type: boolean + description: Whether the auto-pause limit has been reached for this query. + SearchQueryPaginatedRecords: + required: + - fields + - records + type: object + properties: + warning: + type: string + description: Detailed information about the warning while paging through the records found by a search job. + fields: + type: array + description: List of all the fields defined for each of the records returned. + items: + $ref: '#/components/schemas/Field' + records: + type: array + description: Map of the field names to the field values. + items: + $ref: '#/components/schemas/Record' + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + Link: + type: object + properties: + rel: + type: string + description: Relation. + href: + type: string + description: URL of the search job. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + HistogramBucket: + required: + - count + - length + - startTimestamp + type: object + properties: + startTimestamp: + type: integer + description: Start time of the bucket. + format: int64 + length: + type: integer + description: Length is in milliseconds, tells the width of the bucket. + format: int64 + count: + type: integer + description: Count of messages in this bucket. + logLevel: + type: string + description: Log level of messages in this bucket. + UsageDetailsByMeteringType: + required: + - dataScannedInBytes + - isChargeable + - meteringType + - tier + type: object + properties: + dataScannedInBytes: + type: integer + description: Data scanned in bytes for this metering type. + format: int64 + meteringType: + type: string + description: The metering type. + tier: + type: string + description: The analytics tier. + isChargeable: + type: boolean + description: Whether this metering type is chargeable. + UsageDetailsByTier: + required: + - dataScannedInBytes + - tier + type: object + properties: + dataScannedInBytes: + type: integer + description: Data scanned in bytes for this tier. + format: int64 + tier: + type: string + description: The analytics tier. + SearchedTimeRange: + type: object + properties: + startMillis: + type: integer + description: Start of the searched time range in epoch milliseconds. + format: int64 + endMillis: + type: integer + description: End of the searched time range in epoch milliseconds. + format: int64 + description: The time range that has been searched so far. + PendingMessageLocatorsAndOffset: + required: + - messageLocator + - offset + type: object + properties: + messageLocator: + $ref: '#/components/schemas/MessageLocator' + offset: + type: integer + description: The offset of the message. + format: int64 + UserMessage: + required: + - key + - type + type: object + properties: + type: + type: string + description: The message type. + key: + type: string + description: The message key. + data: + type: string + description: The message data as a JSON string. + Performance: + type: object + properties: + difficulty: + type: string + description: The difficulty level of the search query. + enum: + - CALCULATION_DISABLED + - Unknown + - Easy + - Medium + - Hard + reasons: + type: array + description: Reasons explaining the difficulty classification. + items: + type: string + description: Performance characteristics of this search job. + Field: + required: + - fieldType + - keyField + - name + type: object + properties: + name: + type: string + description: Name of the field. + fieldType: + type: string + description: Type of the field. + example: long + keyField: + type: boolean + description: Flag if the field is a key field. + userReferenced: + type: boolean + description: Flag if the field is referenced by the user in the query. + autoParseUnreferenced: + type: boolean + description: Flag if the field was auto-parsed but not referenced in the query. + Message: + type: object + properties: + map: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map message values. + Record: + type: object + properties: + map: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map Records values. + MessageLocator: + type: object + properties: + blockId: + type: string + description: The block identifier. + messageId: + type: string + description: The message identifier. + x-stackQL-resources: + search_jobs: + id: sumologic.search_jobs.search_jobs + name: search_jobs + title: Search Jobs + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1search~1jobs/post' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1search~1jobs~1{jobId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1search~1jobs~1{jobId}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/search_jobs/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/search_jobs/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/search_jobs/methods/delete' + replace: [] + messages: + id: sumologic.search_jobs.messages + name: messages + title: Messages + methods: + list: + operation: + $ref: '#/paths/~1v2~1search~1jobs~1{jobId}~1messages/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.messages + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/messages/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + records: + id: sumologic.search_jobs.records + name: records + title: Records + methods: + list: + operation: + $ref: '#/paths/~1v2~1search~1jobs~1{jobId}~1records/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.records + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/records/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/service_accounts.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/service_accounts.yaml new file mode 100644 index 0000000..560e2d1 --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/service_accounts.yaml @@ -0,0 +1,1070 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Service Accounts API + description: Service accounts and their access keys. + version: 1.0.0 +paths: + /v1/serviceAccounts: + get: + tags: + - serviceAccountManagement + summary: Get a list of service accounts. + description: Get a list of all service accounts in the organization. + operationId: listServiceAccounts + responses: + '200': + description: A list of service accounts in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListServiceAccountModelsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - serviceAccountManagement + summary: Create a new service account. + description: Create a new service account in the organization. + operationId: createServiceAccount + parameters: [] + requestBody: + description: Information about the new service account. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateServiceAccountDefinition' + required: true + responses: + '200': + description: A service account has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAccountModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAccounts/{id}: + get: + tags: + - serviceAccountManagement + summary: Get a service account. + description: Get a service account with the given identifier from the organization. + operationId: getServiceAccount + parameters: + - name: id + in: path + description: Identifier of service account to return. + required: true + schema: + type: string + responses: + '200': + description: Service account object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAccountModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - serviceAccountManagement + summary: Update a service account. + description: Update an existing service account in the organization. + operationId: updateServiceAccount + parameters: + - name: id + in: path + description: Identifier of the service account to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the service account. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateServiceAccountDefinition' + required: true + responses: + '200': + description: The service account was successfully updated. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAccountModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - serviceAccountManagement + summary: Delete a service account. + description: Delete a service account with the given identifier from the organization and transfer its content to a user or a service account with the identifier specified in "transferTo". + operationId: deleteServiceAccount + parameters: + - name: id + in: path + description: Identifier of the service account to delete. + required: true + schema: + type: string + - name: transferTo + in: query + description: Identifier of a user/service account to receive the transfer of content from the deleted service account.
**Note:** If `deleteContent` is not set to `true`, and no user identifier is specified in `transferTo`, content from the deleted service account is transferred to the executing user. + required: false + schema: + type: string + - name: deleteContent + in: query + description: Whether to delete content from the deleted service account or not.
**Warning:** If `deleteContent` is set to `true`, all of the content for the service account being deleted is permanently deleted and cannot be recovered. + required: false + schema: + type: boolean + responses: + '204': + description: Service account was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAccounts/{serviceAccountId}/accessKeys: + get: + tags: + - serviceAccountManagement + summary: List access keys for a service account. + description: List all access keys of a service account. + operationId: listAccessKeysForServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + responses: + '200': + description: A list of all access keys within the organization of a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/ListAccessKeysResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - serviceAccountManagement + summary: Create a new access key for a service account. + description: Creates a new access ID and key pair for a service account. + operationId: createAccessKeyForServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + requestBody: + description: Information about the new access key of a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyCreateRequest' + required: true + responses: + '200': + description: The access key has been created for a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKey' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAccounts/{serviceAccountId}/accessKeys/{accessId}: + get: + tags: + - serviceAccountManagement + summary: Get an access key of a service account. + description: Get an access key with the given identifier from the organization of a service account. + operationId: getAccessKeyByIdOfAServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + - name: accessId + in: path + description: Identifier of an access key to return. + required: true + schema: + type: string + responses: + '200': + description: Access key object that was requested of a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyPublic' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - serviceAccountManagement + summary: Update an access key of a service account. + description: Updates the properties of existing accessKey by Id of a service account. + operationId: updateAccessKeyOfAServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + - name: accessId + in: path + description: The id of an access key to update of a service account. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyUpdateRequest' + required: true + responses: + '200': + description: Access key of a service account updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyPublic' + default: + description: Access key updation of a service account failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - serviceAccountManagement + summary: Delete an access key of a service account. + description: Deletes the access key with the given Id of a service account. + operationId: deleteAccessKeyOfAServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + - name: accessId + in: path + description: The Id of the access key to delete of a service account. + required: true + schema: + type: string + responses: + '204': + description: Access key deletion of a service account completed successfully. + default: + description: Access key deletion of a service account failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListServiceAccountModelsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of service accounts. + items: + $ref: '#/components/schemas/ServiceAccountModel' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreateServiceAccountDefinition: + required: + - email + - name + - roleIds + type: object + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the service account. + example: Service Account + email: + maxLength: 255 + type: string + description: Email address of the service account. + format: email + example: johndoe@acme.com + roleIds: + type: array + description: List of roleIds associated with the service account. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + ServiceAccountModel: + type: object + required: + - email + - name + - roleIds + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the service account. + example: Service Account + email: + maxLength: 255 + type: string + description: Email address of the service account. + format: email + example: johndoe@acme.com + roleIds: + type: array + description: List of roleIds associated with the service account. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the service account. + example: 000000000FE20FE2 + isActive: + type: boolean + description: True if the service account is active. + example: true + UpdateServiceAccountDefinition: + type: object + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the service account. + example: Service Account + isActive: + type: boolean + description: This has the value `true` if the service account is active and `false` if it has been deactivated. + example: true + roleIds: + type: array + description: List of role identifiers associated with the service account. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + email: + maxLength: 255 + type: string + description: New email address of the service account. + format: email + example: johndoe@acme.com + ListAccessKeysResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of access keys. + items: + $ref: '#/components/schemas/AccessKeyPublic' + description: List of access keys. + AccessKeyCreateRequest: + required: + - label + type: object + properties: + label: + maxLength: 128 + type: string + description: A name for the access key to be created. + example: automation access key + corsHeaders: + maxItems: 20 + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request + depends on whether it contains an ORIGIN header and the entries in the allowlist. + Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + AccessKey: + required: + - createdAt + - createdBy + - disabled + - id + - label + - modifiedAt + - modifiedBy + - key + type: object + properties: + id: + type: string + description: Identifier of the access key. + example: su0w3Q37CBzHUM + label: + type: string + description: The name of the access key. + example: collector access key + corsHeaders: + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: false + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the access key. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the access key. + example: 0000000006743FDD + serviceAccountId: + type: string + description: Identifier of the service account who owns the access key. + example: 0000000006743FDA + lastUsed: + type: string + description: Last used timestamp in UTC.
**Note:** Property not in use, it is part of an upcoming feature. + format: date-time + example: '2018-10-16T09:10:00.000Z' + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + key: + type: string + description: The key for the created access key. This field will have values only in the response for an access key create request. The value will be an empty string while listing all keys. + example: F9GZvb4fISxUZHM7pqHCsGXGWf4OArgmt9Tz8ewZ + AccessKeyPublic: + required: + - createdAt + - createdBy + - disabled + - id + - label + - modifiedAt + - modifiedBy + type: object + properties: + id: + type: string + description: Identifier of the access key. + example: su0w3Q37CBzHUM + label: + type: string + description: The name of the access key. + example: collector access key + corsHeaders: + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: false + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the access key. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the access key. + example: 0000000006743FDD + serviceAccountId: + type: string + description: Identifier of the service account who owns the access key. + example: 0000000006743FDA + lastUsed: + type: string + description: Last used timestamp in UTC.
**Note:** Property not in use, it is part of an upcoming feature. + format: date-time + example: '2018-10-16T09:10:00.000Z' + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + AccessKeyUpdateRequest: + required: + - disabled + type: object + properties: + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: true + corsHeaders: + maxItems: 20 + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + scopes: + type: array + description: |- + Scopes assigned to the key.

Note: Updates to scopes will take up to 5m to reflect due to caching in the system. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + x-stackQL-resources: + service_accounts: + id: sumologic.service_accounts.service_accounts + name: service_accounts + title: Service Accounts + methods: + list: + operation: + $ref: '#/paths/~1v1~1serviceAccounts/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1serviceAccounts/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/service_accounts/methods/get' + - $ref: '#/components/x-stackQL-resources/service_accounts/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/service_accounts/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/service_accounts/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/service_accounts/methods/delete' + replace: [] + access_keys: + id: sumologic.service_accounts.access_keys + name: access_keys + title: Access Keys + methods: + list: + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{serviceAccountId}~1accessKeys/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{serviceAccountId}~1accessKeys/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{serviceAccountId}~1accessKeys~1{accessId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{serviceAccountId}~1accessKeys~1{accessId}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{serviceAccountId}~1accessKeys~1{accessId}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/access_keys/methods/get' + - $ref: '#/components/x-stackQL-resources/access_keys/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/access_keys/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/access_keys/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/access_keys/methods/delete' + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/service_allowlist.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/service_allowlist.yaml index aafce30..41e8106 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/service_allowlist.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/service_allowlist.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Service Allowlist API + description: The service allowlist of CIDR addresses for login and content access. + version: 1.0.0 paths: /v1/serviceAllowlist/addresses: get: @@ -183,6 +188,19 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' + AllowlistingStatus: + required: + - contentEnabled + - loginEnabled + type: object + properties: + contentEnabled: + type: boolean + description: Whether service allowlisting is enabled for Content. + loginEnabled: + type: boolean + description: Whether service allowlisting is enabled for Login. + description: The status of service allowlisting for Content and Login. Cidr: required: - cidr @@ -218,465 +236,114 @@ components: description: An optional fuller English-language description of the error. example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. meta: - type: object - description: An optional list of metadata about the error. + type: string + description: An optional list of metadata about the error. (opaque JSON object) example: minLength: 12 actualLength: 5 - AllowlistingStatus: - required: - - contentEnabled - - loginEnabled - type: object - properties: - contentEnabled: - type: boolean - description: Whether service allowlisting is enabled for Content. - loginEnabled: - type: boolean - description: Whether service allowlisting is enabled for Login. - description: The status of service allowlisting for Content and Login. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: addresses: id: sumologic.service_allowlist.addresses name: addresses title: Addresses methods: - listAllowlistedCidrs: + list: operation: $ref: '#/paths/~1v1~1serviceAllowlist~1addresses/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/addresses/methods/listAllowlistedCidrs' - insert: [] - update: [] - delete: [] - addresses_add: - id: sumologic.service_allowlist.addresses_add - name: addresses_add - title: Addresses_add - methods: - addAllowlistedCidrs: + request: + nativeCasing: camel + add: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1serviceAllowlist~1addresses~1add/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: '#/components/x-stackQL-resources/addresses_add/methods/addAllowlistedCidrs' - update: [] - delete: [] - addresses_remove: - id: sumologic.service_allowlist.addresses_remove - name: addresses_remove - title: Addresses_remove - methods: - deleteAllowlistedCidrs: + request: + mediaType: application/json + nativeCasing: camel + remove: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1serviceAllowlist~1addresses~1remove/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/addresses/methods/list' insert: [] update: [] delete: [] - enable: - id: sumologic.service_allowlist.enable - name: enable - title: Enable + replace: [] + status: + id: sumologic.service_allowlist.status + name: status + title: Status methods: - enableAllowlisting: + enable: operation: $ref: '#/paths/~1v1~1serviceAllowlist~1enable/post' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - disable: - id: sumologic.service_allowlist.disable - name: disable - title: Disable - methods: - disableAllowlisting: + openAPIDocKey: '204' + disable: operation: $ref: '#/paths/~1v1~1serviceAllowlist~1disable/post' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - status: - id: sumologic.service_allowlist.status - name: status - title: Status - methods: - getAllowlistingStatus: + openAPIDocKey: '204' + get: operation: $ref: '#/paths/~1v1~1serviceAllowlist~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/status/methods/getAllowlistingStatus' + - $ref: '#/components/x-stackQL-resources/status/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - service_allowlist - description: serviceAllowlist - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/slos.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/slos.yaml index cbb9ff1..e1d601c 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/slos.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/slos.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Slos API + description: SLOs and SLO folders in the SLO library, service level indicators and usage. + version: 1.0.0 paths: /v1/slos/sli: get: @@ -42,7 +47,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SloUsageInfo' + $ref: '#/components/schemas/GetSloUsageInfoResponse' default: description: Operation failed with an error. content: @@ -66,6 +71,12 @@ paths: items: type: string example: 0000000000000001,0000000000000002,0000000000000003 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean responses: '200': description: A map between an identifier and its definition (slo or folder). @@ -221,9 +232,10 @@ paths: description: Maximum number of items you want in the response. required: false schema: + maximum: 5000 type: integer format: int32 - default: 100 + default: 1000 example: 10 - name: offset in: query @@ -234,13 +246,19 @@ paths: format: int32 default: 0 example: 5 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean responses: '200': description: List of folders and slos matching the search query. content: application/json: schema: - $ref: '#/components/schemas/ListSlosLibraryItemWithPath' + $ref: '#/components/schemas/SlosSearchResponse' default: description: Operation failed with an error. content: @@ -494,6 +512,7 @@ paths: components: schemas: IdToSliStatusMap: + maxProperties: 1000 type: object additionalProperties: $ref: '#/components/schemas/SliStatus' @@ -518,84 +537,37 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - SliStatus: - required: - - status - type: object - properties: - status: - pattern: ^(Success|Error|InProgress)$ - type: string - description: Whether the SLI computation is complete / had an error / is in progress. - example: Success - sliPercentage: - type: number - description: SLI percentage for the compliance period. Available if `status` is `Success`. - format: double - example: 95.14 - errorBudgetRemainingPercentage: - type: number - description: Percentage of error budget remaining for the compliance period. Available if `status` is `Success`. - format: double - absoluteErrorBudgetRemaining: - type: string - description: Formatted string for the absolute error budget remaining (time duration for window-based SLIs, request count for request-based SLIs). Available if `status` is `Success`. - example: 1h56m, -3h45m, -241.3k req, 1.5k req - progressPercentage: - type: number - description: SLI computation progress. - format: double - description: Status of the SLI computation. If the status is successful, also contains the SLI value and error budget remaining for the current compliance period. - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 SloUsageInfo: type: array description: The usage info of logs and metrics SLOs. items: $ref: '#/components/schemas/SloUsage' - SloUsage: - properties: - sliType: - pattern: ^(Logs|Metrics|Monitors)$ - type: string - description: The type of SLO usage info (Logs/Metrics/Monitor based). - example: Logs - x-pattern-message: Either `Logs` or `Metrics` or `Monitors`. - usage: - type: integer - description: Current number of active Logs/Metrics/Monitors SLOs. - example: 100 - limit: - type: integer - description: The limit of active Logs/Metrics/Monitors SLOs. - example: 100 - description: The usage info of SLOs. IdToSlosLibraryBaseResponseMap: + maxProperties: 1000 type: object additionalProperties: $ref: '#/components/schemas/SlosLibraryBaseResponse' + SlosLibraryBase: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the slo or folder. + description: + type: string + description: Description of the slo or folder. + default: '' + type: + type: string + description: |- + Type of the object model. Valid values: + 1) SlosLibrarySlo + 2) SlosLibraryFolder + discriminator: + propertyName: type SlosLibraryBaseResponse: required: - contentType @@ -668,65 +640,90 @@ components: type: string discriminator: propertyName: type - SlosLibraryBase: + SlosLibraryFolderResponse: required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy - name + - parentId - type + - version + - children + - permissions type: object properties: + id: + type: string + description: Identifier of the slo or folder. name: type: string - description: Name of the slo or folder. + description: Identifier of the slo or folder. description: type: string description: Description of the slo or folder. - default: '' - type: + version: + type: integer + description: Version of the slo or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: type: string description: |- - Type of the object model. Valid values: - 1) SlosLibrarySlo - 2) SlosLibraryFolder + Type of the content. Valid values: + 1) Slo + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + children: + type: array + description: 'Children of the folder. NOTE: Permissions field will not be filled (empty list) for children.' + items: + $ref: '#/components/schemas/SlosLibraryBaseResponse' discriminator: propertyName: type - SlosLibraryFolderResponse: - allOf: - - $ref: '#/components/schemas/SlosLibraryBaseResponse' - - required: - - children - - permissions - type: object - properties: - permissions: - type: array - description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. - example: - - Read - - Delete - items: - type: string - children: - type: array - description: 'Children of the folder. NOTE: Permissions field will not be filled (empty list) for children.' - items: - $ref: '#/components/schemas/SlosLibraryBaseResponse' ListSlosLibraryItemWithPath: type: array description: Multi-type list of types slo or folder. items: $ref: '#/components/schemas/SlosLibraryItemWithPath' - SlosLibraryItemWithPath: - required: - - item - - path - type: object - properties: - item: - $ref: '#/components/schemas/SlosLibraryBaseResponse' - path: - type: string - description: Path of the slo or folder. - example: /Slos/SampleFolder/TestSlo SlosLibraryBaseUpdate: required: - name @@ -764,18 +761,6 @@ components: path: type: string description: String representation of the path. - PathItem: - required: - - id - - name - type: object - properties: - id: - type: string - description: Identifier of the path element. - name: - type: string - description: Name of the path element. ContentCopyParams: required: - parentId @@ -807,546 +792,359 @@ components: description: Type of the object model. discriminator: propertyName: type - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + SliStatus: + required: + - status + type: object + properties: + status: + pattern: ^(Success|Error|InProgress)$ + type: string + description: Whether the SLI computation is complete / had an error / is in progress. + example: Success + sliPercentage: + type: number + description: SLI percentage for the compliance period. Available if `status` is `Success`. + format: double + example: 95.14 + errorBudgetRemainingPercentage: + type: number + description: Percentage of error budget remaining for the compliance period. Available if `status` is `Success`. + format: double + absoluteErrorBudgetRemaining: + type: string + description: Formatted string for the absolute error budget remaining (time duration for window-based SLIs, request count for request-based SLIs). Available if `status` is `Success`. + example: 1h56m, -3h45m, -241.3k req, 1.5k req + progressPercentage: + type: number + description: SLI computation progress. + format: double + description: Status of the SLI computation. If the status is successful, also contains the SLI value and error budget remaining for the current compliance period. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + SloUsage: + properties: + sliType: + pattern: ^(Logs|Metrics|Monitors)$ + type: string + description: The type of SLO usage info (Logs/Metrics/Monitor based). + example: Logs + x-pattern-message: Either `Logs` or `Metrics` or `Monitors`. + usage: + type: integer + description: Current number of active Logs/Metrics/Monitors SLOs. + example: 100 + limit: + type: integer + description: The limit of active Logs/Metrics/Monitors SLOs. + example: 100 + description: The usage info of SLOs. + type: object + SlosLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + path: + type: string + description: Path of the slo or folder. + example: /Slos/SampleFolder/TestSlo + PathItem: + required: + - id + - name + type: object + properties: + id: + type: string + description: Identifier of the path element. + name: + type: string + description: Name of the path element. + description: + type: string + description: Description of the path element. + GetSloUsageInfoResponse: + type: object + properties: + slo_usage_info: + type: array + items: + $ref: '#/components/schemas/SloUsage' + SlosSearchResponse: + type: object + properties: + slos_search: + type: array + items: + $ref: '#/components/schemas/SlosLibraryItemWithPath' x-stackQL-resources: - sli: - id: sumologic.slos.sli - name: sli - title: Sli + slos: + id: sumologic.slos.slos + name: slos + title: Slos methods: - sli: + get_sli: operation: $ref: '#/paths/~1v1~1slos~1sli/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - usage_info: - id: sumologic.slos.usage_info - name: usage_info - title: Usage_info - methods: - getSloUsageInfo: + read_by_ids: operation: - $ref: '#/paths/~1v1~1slos~1usageInfo/get' + $ref: '#/paths/~1v1~1slos/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/usage_info/methods/getSloUsageInfo' - insert: [] - update: [] - delete: [] - slos: - id: sumologic.slos.slos - name: slos - title: Slos - methods: - slosReadByIds: + create: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1slos/get' + $ref: '#/paths/~1v1~1slos/post' response: mediaType: application/json openAPIDocKey: '200' - slosCreate: + request: + mediaType: application/json + nativeCasing: camel + delete_by_ids: operation: - $ref: '#/paths/~1v1~1slos/post' + $ref: '#/paths/~1v1~1slos/delete' response: mediaType: application/json openAPIDocKey: '200' - slosDeleteByIds: + get_by_path: operation: - $ref: '#/paths/~1v1~1slos/delete' + $ref: '#/paths/~1v1~1slos~1path/get' response: mediaType: application/json openAPIDocKey: '200' - slosReadById: + request: + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1slos~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - slosUpdateById: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1slos~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - slosDeleteById: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1slos~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - root: - id: sumologic.slos.root - name: root - title: Root - methods: - getSlosLibraryRoot: + openAPIDocKey: '204' + request: + nativeCasing: camel + move: operation: - $ref: '#/paths/~1v1~1slos~1root/get' + $ref: '#/paths/~1v1~1slos~1{id}~1move/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/root/methods/getSlosLibraryRoot' - insert: [] - update: [] - delete: [] - path: - id: sumologic.slos.path - name: path - title: Path - methods: - slosGetByPath: + copy: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1slos~1path/get' + $ref: '#/paths/~1v1~1slos~1{id}~1copy/post' response: mediaType: application/json openAPIDocKey: '200' - getSlosFullPath: + request: + mediaType: application/json + nativeCasing: camel + export: operation: - $ref: '#/paths/~1v1~1slos~1{id}~1path/get' + $ref: '#/paths/~1v1~1slos~1{id}~1export/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/path/methods/getSlosFullPath' - insert: [] - update: [] - delete: [] - search: - id: sumologic.slos.search - name: search - title: Search - methods: - slosSearch: + import: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1slos~1search/get' + $ref: '#/paths/~1v1~1slos~1{parentId}~1import/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - move: - id: sumologic.slos.move - name: move - title: Move + select: + - $ref: '#/components/x-stackQL-resources/slos/methods/get' + - $ref: '#/components/x-stackQL-resources/slos/methods/get_by_path' + insert: + - $ref: '#/components/x-stackQL-resources/slos/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/slos/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/slos/methods/delete' + replace: [] + usage_info: + id: sumologic.slos.usage_info + name: usage_info + title: Usage Info methods: - slosMove: + list: operation: - $ref: '#/paths/~1v1~1slos~1{id}~1move/post' + $ref: '#/paths/~1v1~1slos~1usageInfo/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.slo_usage_info + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetSloUsageInfoResponse' + transform: + body: |- + {{- $wrapped := printf "{\"slo_usage_info\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/usage_info/methods/list' insert: [] update: [] delete: [] - copy: - id: sumologic.slos.copy - name: copy - title: Copy + replace: [] + root: + id: sumologic.slos.root + name: root + title: Root methods: - slosCopy: + get: operation: - $ref: '#/paths/~1v1~1slos~1{id}~1copy/post' + $ref: '#/paths/~1v1~1slos~1root/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/root/methods/get' insert: [] update: [] delete: [] - export: - id: sumologic.slos.export - name: export - title: Export + replace: [] + search: + id: sumologic.slos.search + name: search + title: Search methods: - slosExportItem: + list: operation: - $ref: '#/paths/~1v1~1slos~1{id}~1export/get' + $ref: '#/paths/~1v1~1slos~1search/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.slos_search + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/SlosSearchResponse' + transform: + body: |- + {{- $wrapped := printf "{\"slos_search\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/search/methods/list' insert: [] update: [] delete: [] - import: - id: sumologic.slos.import - name: import - title: Import + replace: [] + paths: + id: sumologic.slos.paths + name: paths + title: Paths methods: - slosImportItem: + get: operation: - $ref: '#/paths/~1v1~1slos~1{parentId}~1import/post' + $ref: '#/paths/~1v1~1slos~1{id}~1path/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/paths/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - slos - description: slos - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/source_templates.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/source_templates.yaml new file mode 100644 index 0000000..a295946 --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/source_templates.yaml @@ -0,0 +1,1061 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Source Templates API + description: Source templates for OpenTelemetry collectors (v1 deprecated and v2). + version: 1.0.0 +paths: + /v1/sourceTemplates: + get: + tags: + - sourceTemplateManagementExternal + summary: List all source templates. + description: Get a list of all source templates. + operationId: getSourceTemplatesV2 + parameters: + - name: showDisabled + in: query + description: A boolean parameter to get all, including disabled source templates. + required: false + schema: + type: boolean + default: false + - name: name + in: query + description: Only return source template matching the given name (exact match). + required: false + schema: + minLength: 1 + type: string + nullable: true + - name: fleetIds + in: query + description: Comma-separated list of fleet IDs (hex-encoded). + required: false + explode: false + schema: + type: array + items: + type: string + responses: + '200': + description: A list of source templates. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateListResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - sourceTemplateManagementExternal + summary: Create source template. + description: Create source template. + operationId: createSourceTemplateV2 + parameters: + - name: dryRun + in: query + description: Whether this creation request is a dry run. With dryRun set to true, the source template will not be created but the request will be validated. + required: false + schema: + type: boolean + example: true + default: false + requestBody: + description: Create source template details + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateRequest' + required: true + responses: + '200': + description: Create source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/{id}: + get: + tags: + - sourceTemplateManagementExternal + summary: Get a source template by Id. + description: Get a source template with the given identifier. + operationId: getSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to get. + required: true + schema: + type: string + responses: + '200': + description: Get source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - sourceTemplateManagementExternal + summary: Update source template. + description: Update a source template with the given identifier. + operationId: updateSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Request details of update source template. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateUpdateRequest' + required: true + responses: + '200': + description: Update source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - sourceTemplateManagementExternal + summary: Delete a source template. + description: Delete a source template with the given identifier. + operationId: deleteSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to delete. + required: true + schema: + type: string + responses: + '204': + description: The source template was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/{id}/status: + put: + tags: + - sourceTemplateManagementExternal + summary: Update status of source template + description: Update the status (enable or disable) of a source template. + operationId: updateSourceTemplateStatusV2 + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Status of source template + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateStatusUpdateRequest' + required: true + responses: + '200': + description: Update source template status response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/{id}/upgrade: + post: + tags: + - sourceTemplateManagementExternal + summary: Upgrade source template. + description: Upgrade a source template with the given identifier. + operationId: upgradeSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to upgrade. + required: true + schema: + type: string + requestBody: + description: Source template upgrade request details. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateUpgradeRequest' + required: true + responses: + '200': + description: Upgrade source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/getLinkedSourceTemplatesImpact: + post: + tags: + - sourceTemplateManagementExternal + summary: Preview source template linking changes. + description: Given the set of tags user wants to update, display the list of source templates that will be linked/unlinked to the otCollector. + operationId: getLinkedSourceTemplatesImpact + requestBody: + description: Request body containing otCollector id and set of tags. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateRequest' + required: true + responses: + '200': + description: A list of source templates whose linking to the otCollector will be impacted. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplate: + get: + tags: + - sourceTemplateManagementExternal + summary: Return all source templates of a customer (deprecated). + description: | + Get a list of source template. + + **DEPRECATED**: This endpoint will be removed soon. Please use GET /v1/sourceTemplates instead. + operationId: getSourceTemplates + parameters: + - name: showDisabled + in: query + description: A boolean parameter to get all, including disabled source templates. + required: false + schema: + type: boolean + default: false + - name: name + in: query + description: Only return source template matching the given name (exact match). + required: false + schema: + minLength: 1 + type: string + nullable: true + - name: fleetIds + in: query + description: Comma-separated list of fleet IDs (hex-encoded). + required: false + explode: false + schema: + type: array + items: + type: string + responses: + '200': + description: A list of source templates. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateListResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + post: + tags: + - sourceTemplateManagementExternal + summary: Create source template (deprecated). + description: | + Create source template. + + **DEPRECATED**: This endpoint will be removed soon. Please use POST /v1/sourceTemplates instead. + operationId: createSourceTemplate + parameters: + - name: dryRun + in: query + description: Whether this creation request is a dry run. With dryRun set to true, the source template will not be created but the request will be validated. + required: false + schema: + type: boolean + example: true + default: false + requestBody: + description: Create source template details + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateRequest' + required: true + responses: + '200': + description: Create source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + /v1/sourceTemplate/{id}: + get: + tags: + - sourceTemplateManagementExternal + summary: Get a source template by Id (deprecated). + description: | + Get a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use GET /v1/sourceTemplates/{id} instead. + operationId: getSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to get. + required: true + schema: + type: string + responses: + '200': + description: Get source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + post: + tags: + - sourceTemplateManagementExternal + summary: Update source template (deprecated). + description: | + Update a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use POST /v1/sourceTemplates/{id} instead. + operationId: updateSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Source template request details. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateRequest' + required: true + responses: + '200': + description: Update source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + delete: + tags: + - sourceTemplateManagementExternal + summary: Delete a source template (deprecated). + description: | + Delete a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use DELETE /v1/sourceTemplates/{id} instead. + operationId: deleteSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to delete. + required: true + schema: + type: string + responses: + '204': + description: The source template was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + /v1/upgrade/sourceTemplate/{id}: + post: + tags: + - sourceTemplateManagementExternal + summary: Upgrade source template (deprecated). + description: | + Upgrade a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use POST /v1/sourceTemplates/{id}/upgrade instead. + operationId: upgradeSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to upgrade. + required: true + schema: + type: string + requestBody: + description: Source template upgrade request details. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateUpgradeRequest' + required: true + responses: + '200': + description: Upgrade source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + /v1/sourceTemplate/getLinkedSourceTemplatesImpact: + post: + tags: + - sourceTemplateManagementExternal + summary: Get linked source templates update based on the ot-collector tags user is wants to update. + description: Given the set of tags user wants to update, display the list of source templates that will be linked/unlinked to the otCollector. + operationId: getLinkedSourceTemplatesUpdate + requestBody: + description: Request body containing otCollector id and set of tags. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateRequest' + required: true + responses: + '200': + description: A list of source templates whose linking to the otCollector will be impacted. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplate/{id}/status: + put: + tags: + - sourceTemplateManagementExternal + summary: Update status of source template (deprecated) + description: | + Update the status (enable or disable) of a source template. + + **DEPRECATED**: This endpoint will be removed soon. Please use PUT /v1/sourceTemplates/{id}/status instead. + operationId: updateSourceTemplateStatus + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Status of source template + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateStatusUpdateRequest' + required: true + responses: + '200': + description: Update source template status response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true +components: + schemas: + SourceTemplateListResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of source templates. + items: + $ref: '#/components/schemas/SourceTemplateDefinition' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + SourceTemplateRequest: + required: + - inputJson + - schemaRef + type: object + properties: + schemaRef: + $ref: '#/components/schemas/SchemaRef' + inputJson: + maxProperties: 1000 + required: + - name + - receivers + type: object + properties: + name: + type: string + description: name of source template. + example: apache_test_source_template + receivers: + type: string + description: receiver information of source template (opaque JSON object) + example: {} + description: + type: string + description: description of source template + example: Demo Description for Source Template + processors: + type: string + description: processors for source template (opaque JSON object) + example: {} + additionalProperties: true + description: inputJson of source template + selector: + $ref: '#/components/schemas/Selector' + isEnabled: + type: boolean + description: Indicates whether the source template is enabled - **Create operation:** Defaults to `true` (the template is enabled when created). - **Update operation:** If omitted, the existing status is preserved. + example: true + description: request body for creating source template. + SourceTemplateDefinition: + type: object + properties: + schemaRef: + $ref: '#/components/schemas/SchemaRef' + id: + type: string + description: id of source template. + example: 0000000003343FDD + inputJson: + maxProperties: 1000 + type: object + additionalProperties: true + description: inputJson of source template + example: {} + config: + type: string + description: configuration of source template + example: apache.yaml.example + selector: + $ref: '#/components/schemas/Selector' + totalCollectorLinked: + type: integer + description: count of total collector linked with this source template. + format: int32 + default: 0 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedAt: + type: string + description: Modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Id of the user who created source template + example: 0000000006743FDD + modifiedBy: + type: string + description: Id of the user who last modified the source template + example: 0000000006243FDD + status: + type: string + description: Status of Source template + enum: + - enable + - disable + isEnabled: + type: boolean + description: A boolean parameter to get if the source template is enabled. + example: true + default: true + description: response definition of source template. + SourceTemplateUpdateRequest: + required: + - inputJson + - schemaRef + type: object + properties: + schemaRef: + $ref: '#/components/schemas/SchemaRef' + inputJson: + maxProperties: 1000 + required: + - name + - receivers + type: object + properties: + name: + type: string + description: Name of source template. + example: apache_test_source_template + receivers: + type: string + description: Receiver information of source template (opaque JSON object) + example: {} + description: + type: string + description: Description of source template + example: Demo Description for source template + processors: + type: string + description: Processors for source template (opaque JSON object) + example: {} + additionalProperties: true + description: InputJson of source template + selector: + $ref: '#/components/schemas/Selector' + isEnabled: + type: boolean + description: Indicates whether the source template is enabled. If omitted, the existing status is preserved. + example: true + description: Request body for updating source template. + SourceTemplateStatusUpdateRequest: + required: + - status + type: object + properties: + status: + type: string + description: status to set for the source template (enable or disable). + enum: + - enable + - disable + example: + status: enable + SourceTemplateUpgradeRequest: + required: + - inputJson + - schemaRef + type: object + properties: + schemaRef: + $ref: '#/components/schemas/UpgradeSchemaRef' + inputJson: + maxProperties: 1000 + required: + - name + - receivers + type: object + properties: + name: + type: string + description: name of source template. + example: apache_test_source_template + receivers: + type: string + description: receiver information of source template (opaque JSON object) + example: + hostmetrics: + receiverType: hostmetrics + collection_interval: 5m + description: + type: string + description: description of source template + example: Demo Description for source template + processors: + type: string + description: processors for source template (opaque JSON object) + example: + resource: + processorType: resource + additionalProperties: true + description: inputJson of source template + description: request body for creating source template. + LinkedSourceTemplatesUpdateRequest: + required: + - collectorId + type: object + properties: + collectorId: + type: string + description: otCollector id for which tags are edited. + example: 00005AF3107BF0D6 + tags: + maxProperties: 50 + type: object + additionalProperties: + type: string + description: JSON map of key-value metadata to apply to the otCollector. + example: + environment: production + location: us-west-2 + default: {} + updatedName: + type: string + description: Updated Name of the otCollector. + example: demo_macOS + LinkedSourceTemplatesUpdateResponse: + required: + - collectorId + type: object + properties: + collectorId: + type: string + description: otCollector id for which tags are edited. + example: 00005AF3107BF0D6 + addedSourceTemplates: + type: array + description: list of sourceTemplates which are linked to otCollector. + items: + $ref: '#/components/schemas/LinkingUpdatedSourceTemplateDetails' + removedSourceTemplates: + type: array + description: list of sourceTemplates which are removed from otCollector linking. + items: + $ref: '#/components/schemas/LinkingUpdatedSourceTemplateDetails' + description: linked source template details based on the ot-collector tags user wants to update. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + SchemaRef: + required: + - type + type: object + properties: + type: + type: string + description: type of source template. + example: Apache + description: schema reference for source template. + Selector: + type: object + properties: + tags: + type: array + description: tags filter for agents + items: + type: array + items: + $ref: '#/components/schemas/OtTag' + names: + type: array + description: names to select custom agents + items: + type: string + example: demo_macOS + fleetIds: + type: array + description: IDs of the fleets the source template is associated with + items: + maxLength: 16 + minLength: 16 + type: string + example: 0000000006243FDD + description: Agent selector conditions + UpgradeSchemaRef: + required: + - type + - version + type: object + properties: + type: + type: string + description: type of source template. + example: Apache + version: + type: string + description: version of source template. + example: 1.0.0 + description: schema reference for upgrade source template request. + LinkingUpdatedSourceTemplateDetails: + required: + - reasonTags + - sourceTemplateDefinition + type: object + properties: + sourceTemplateDefinition: + $ref: '#/components/schemas/SourceTemplateDefinition' + reasonTags: + type: array + description: tags which are responsible for source template and collector linking impact. + items: + type: array + items: + $ref: '#/components/schemas/CollectorTag' + description: source template details with tags responsible for otCollector Linking update. + OtTag: + required: + - key + - values + type: object + properties: + key: + type: string + description: key of the given tag. + example: key1 + values: + type: array + description: values of the given tag. + items: + type: string + example: value1 + CollectorTag: + required: + - key + - values + type: object + properties: + key: + type: string + description: Key of the given tag. + example: key1 + value: + type: string + description: Values of the given tag. + example: value1 + x-stackQL-resources: + source_templates: + id: sumologic.source_templates.source_templates + name: source_templates + title: Source Templates + methods: + list: + operation: + $ref: '#/paths/~1v1~1sourceTemplates/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1sourceTemplates/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1sourceTemplates~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1sourceTemplates~1{id}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1sourceTemplates~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + update_status: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1sourceTemplates~1{id}~1status/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + upgrade: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1sourceTemplates~1{id}~1upgrade/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get_linked_impact: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1sourceTemplates~1getLinkedSourceTemplatesImpact/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/source_templates/methods/get' + - $ref: '#/components/x-stackQL-resources/source_templates/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/source_templates/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/source_templates/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/source_templates/methods/delete' + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/threat_intel.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/threat_intel.yaml new file mode 100644 index 0000000..1fae178 --- /dev/null +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/threat_intel.yaml @@ -0,0 +1,884 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Threat Intel API + description: Threat intelligence datastore, data sources, retention and indicator ingestion. + version: 1.0.0 +paths: + /v1/threatIntel/datastore/db: + get: + tags: + - threatIntelIngest + summary: Get threat intel indicators DB information + description: Get threat intel indicators DB information, such as storage utilization and indicator counts + operationId: datastoreGet + responses: + '200': + description: Threat intel ingest DB information. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - threatIntelIngest + summary: Remove the threat intel indicators DB + description: Removes the entire database and all indicators associated with this tenant + operationId: removeDatastore + responses: + '204': + description: Removing the indicator database succeeded + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/retentionPeriod: + get: + tags: + - threatIntelIngest + summary: Get threat intel indicators store retention period in terms of days. + description: Get the threat intel indicators store retention period in terms of days. + operationId: retentionPeriod + responses: + '200': + description: Threat intel indicators store retention period. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreRetentionPeriod' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - threatIntelIngest + summary: Set the threat intel indicators store retention period in terms of days. + description: Sets the threat intel indicators store retention period in terms of days. + operationId: setRetentionPeriod + parameters: [] + requestBody: + description: The threat intel indicators store retention period in terms of days. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreRetentionPeriod' + required: true + responses: + '200': + description: Threat intel indicators store retention period. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreRetentionPeriod' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/indicators/normalized: + post: + tags: + - threatIntelIngestProducer + summary: Uploads indicators in a Sumo normalized format. + description: Uploads a list indicators in a Sumo normalized format. + operationId: uploadNormalizedIndicators + parameters: [] + requestBody: + description: The list of normalized threat intel indicators to upload. + content: + application/json: + schema: + $ref: '#/components/schemas/UploadNormalizedIndicatorRequest' + required: true + responses: + '204': + description: Normalized indicators successfully uploaded. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/indicators/stix: + post: + tags: + - threatIntelIngestProducer + summary: Uploads indicators in a STIX 2.x json format. + description: Uploads a list indicators in in a STIX 2.x json format. + operationId: uploadStixIndicators + parameters: [] + requestBody: + description: Upload stix indicators request body. + content: + application/json: + schema: + $ref: '#/components/schemas/UploadStixIndicatorsRequest' + required: true + responses: + '200': + description: Stix indicators successfully uploaded. + content: + application/json: + schema: + $ref: '#/components/schemas/UploadStixIndicatorsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/indicators: + delete: + tags: + - threatIntelIngestProducer + summary: Removes indicators by their IDS + description: Removes indicators by specifying a list of indicator IDs + operationId: removeIndicators + parameters: [] + requestBody: + description: The list of indicator IDs to remove + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveIndicatorsRequest' + required: true + responses: + '204': + description: Indicators successfully removed + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/dataSource/{dataSourceName}: + put: + tags: + - threatIntelIngest + summary: Updates source properties + description: Updates source properties + operationId: dataSourcePropertiesUpdate + parameters: + - name: dataSourceName + in: path + description: Source name + required: true + schema: + type: string + requestBody: + description: Source properties + content: + application/json: + schema: + $ref: '#/components/schemas/DataSourceProperties' + required: true + responses: + '204': + description: Data source properties successfuly updated. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + DatastoreStatusResponse: + required: + - diskSize + - indicatorCount + - indicatorLimit + - sourceStatus + type: object + properties: + diskSize: + type: integer + description: Total DB size in terms of disk bytes + format: int64 + example: 1024 + indicatorCount: + type: integer + description: Total number of indicators in the DB + format: int64 + example: 100 + indicatorLimit: + type: integer + description: Limit number of indicators supported in the DB + format: int64 + example: 10000000 + sourceStatus: + type: array + description: A list of sources and their individual DB sizes and indicator counts + items: + $ref: '#/components/schemas/DatastoreSourceStatusResponse' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + DatastoreRetentionPeriod: + required: + - retentionPeriod + type: object + properties: + retentionPeriod: + type: integer + description: Retention period in days. + format: int64 + example: 120 + UploadNormalizedIndicatorRequest: + required: + - indicators + type: object + properties: + indicators: + type: array + description: The list of normalized threat intel indicators to upload. + items: + $ref: '#/components/schemas/NormalizedIndicator' + UploadStixIndicatorsRequest: + required: + - indicators + - source + type: object + properties: + source: + type: string + description: User-provided text to identify the source of the indicator + example: FreeTAXII + indicators: + type: array + description: The list of stix threat intel indicators to upload. + items: + $ref: '#/components/schemas/StixIndicator' + UploadStixIndicatorsResponse: + required: + - invalidIndicators + type: object + properties: + invalidIndicators: + type: array + description: A list of invalid indicator IDs that were not ingested + example: + - indicator--foo + - indicator--bar + items: + type: string + RemoveIndicatorsRequest: + required: + - indicatorIds + - source + type: object + properties: + source: + type: string + description: The source of the indicator ID to match against + example: Crowdstrike + indicatorIds: + type: array + description: The list of indicator IDs to match against + example: + - indicator--abcd + - indicator--ef012 + items: + type: string + DataSourceProperties: + type: object + properties: + enabled: + type: boolean + description: True if enabled. + example: true + description: + type: string + description: The data source description. + example: This is a stix1.2 data source. + DatastoreSourceStatusResponse: + required: + - source + type: object + properties: + source: + type: string + description: The source name + example: unit42_source + description: + type: string + description: The source description + example: This is a stix1.2 indicators source + diskSize: + type: integer + description: Disk utilization in bytes estimate for the indicator source + format: int64 + example: 1024 + indicatorCount: + type: integer + description: Number of indicators for the indicator source + format: int64 + example: 1024 + sumoProvided: + type: boolean + description: True if sumo provided source + example: false + supportsCat: + type: boolean + description: True if can be used in cat operator + example: false + enabled: + type: boolean + description: True if enabled + example: true + description: DB sizes and indicator counts for an individual source + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + NormalizedIndicator: + required: + - confidence + - id + - indicator + - source + - threatType + - type + - validFrom + type: object + properties: + id: + type: string + description: ID of the indicator + example: indicator--d81f86b9-975b-4c0b-875e-810c5ad45a4f + indicator: + type: string + description: Value of the indicator + example: 182.158.1.1 + type: + type: string + description: Type of indicator + example: ipv4-addr + source: + type: string + description: User-provided text to identify the source of the indicator + example: FreeTAXII + updated: + type: string + description: When this indicator was most recently updated in Sumo. Timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2023-03-21T12:00:00.000Z' + validFrom: + type: string + description: Beginning time this indicator is valid. Timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2023-03-21T12:00:00.000Z' + validUntil: + type: string + description: 'Time at which this indicator expires. If not set, a default TTL is applied based on indicator type and confidence. File hash indicators (type prefix `file:hashes`): 30/365/730 days for low/medium/high confidence. All other indicator types: 30/90/180 days for low/medium/high confidence. Confidence bands: low 0-49, medium 50-74, high 75-100. Timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format.' + format: date-time + example: '2023-03-21T12:00:00.000Z' + confidence: + maximum: 100 + minimum: 1 + type: integer + description: Confidence that the creator has in the correctness of their data, where 100 is highest + threatType: + type: string + description: Type of indicator ( https://docs.oasis-open.org/cti/stix/v2.1/os/stix-v2.1-os.html#_cvhfwe3t9vuo ) + example: benign + actors: + type: string + description: Actors as a comma separated list. + example: actor1,actor2 + killChain: + type: string + description: Kill Chain as a comma separated list. + example: KC1,KC2 + fields: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Flattened fields from the original indicator object (e.g. flattened STIX fields) + StixIndicator: + required: + - created + - id + - modified + - pattern + - pattern_type + - spec_version + - type + - valid_from + type: object + properties: + type: + type: string + description: The type property identifies the type of STIX Object. + example: indicator + spec_version: + type: string + description: The STIX version + example: '2.1' + id: + type: string + description: The ID of the indicator + example: acme:indicator-bf8bc5d5-c7e6-46b0-8d22-7500fea77196 + created: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + modified: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + created_by_ref: + type: string + description: Identifier of type identity + example: identity--f431f809-377b-45e0-aa1c-6a4751cae5ff + revoked: + type: boolean + description: The revoked property is only used by STIX Objects that support versioning and indicates whether the object has been revoked. + labels: + type: array + description: The labels property specifies a set of terms used to describe this object. The terms are user-defined or trust-group defined and their meaning is outside the scope of this specification and MAY be ignored. + example: + - heartbleed + - has-logo + items: + type: string + confidence: + maximum: 100 + minimum: 1 + type: integer + description: Confidence that the creator has in the correctness of their data, where 100 is highest + lang: + type: string + description: The lang property identifies the language of the text content in this object. When present, it MUST be a language code conformant to [RFC5646]. If the property is not present, then the language of the content is en (English) + example: en + external_references: + type: array + description: A list of external references which refer to non-STIX information. This property MAY be used to provide one or more Vulnerability identifiers, such as a CVE ID + items: + $ref: '#/components/schemas/ExternalReference' + object_marking_refs: + type: array + description: The object_marking_refs property specifies a list of id properties of marking-definition objects that apply to this object. + example: + - marking-definition--089a6ecb-cc15-43cc-9494-767639779123 + items: + type: string + granular_markings: + type: array + description: The granular_markings property specifies a list of granular markings applied to this object + items: + $ref: '#/components/schemas/GranularMarkingType' + extensions: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/Extension' + description: Specifies any extensions of the object, as a dictionary + name: + type: string + description: The name of the object + description: + type: string + description: A human readable description + indicator_types: + type: array + description: A set of categorizations for this indicator. + example: + - malicious-activity + items: + type: string + pattern: + type: string + description: The detection pattern for this Indicator expressed as a STIX patter. + example: '[ipv4-addr:value = ''1.2.3.4'']' + pattern_type: + type: string + description: The type of pattern + example: stix + pattern_version: + type: string + description: The version of the pattern language that is used for the data in the pattern property which MUST match the type of pattern data included in the pattern property. + valid_from: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + valid_until: + type: string + description: 'The time at which this Indicator should no longer be considered a valid indicator of the behaviors it is related to or represents. If not set, a default TTL is applied based on indicator type and confidence. File hash indicators (type prefix `file:hashes`): 30/365/730 days for low/medium/high confidence. All other indicator types: 30/90/180 days for low/medium/high confidence. Confidence bands: low 0-49, medium 50-74, high 75-100.' + format: date-time + example: '2023-03-21T12:00:00.000Z' + kill_chain_phases: + type: array + description: The list of Kill Chain Phases for which this Attack Pattern is used + items: + $ref: '#/components/schemas/KillChainPhase' + ExternalReference: + required: + - source_name + type: object + properties: + source_name: + type: string + description: The name of the source that the external-reference is defined within + example: system + description: + type: string + description: A human readable description + url: + type: string + description: A URL reference to an external resource + example: https://github.com/vz-risk/0001AA7F-C601-424A-B2B8-BE6C9F5164E7.json + hashes: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Specifies a dictionary of hashes for the contents of the url + example: + SHA-256: 6db12788c37247f2316052e142f42f4b259d6561751e5f401a1ae2a6df9c674b + external_id: + type: string + description: An identifier for the external reference content + example: 0001AA7F-C601-424A-B2B8-BE6C9F5164E7 + GranularMarkingType: + required: + - selectors + type: object + properties: + lang: + type: string + description: The lang property identifies the language of the text identified by this marking + example: en + marking_ref: + type: string + description: The marking_ref property specifies the ID of the marking-definition object that describes the marking + example: marking-definition--089a6ecb-cc15-43cc-9494-767639779123 + selectors: + type: array + description: The selectors property specifies a list of selectors for content contained within the STIX Object in which this property appears + example: + - description + - labels + items: + type: string + Extension: + required: + - created + - created_by_ref + - extension_types + - id + - modified + - name + - schema + - spec_version + - type + - version + type: object + properties: + type: + type: string + description: The type property identifies the type of object + example: indicator + spec_version: + type: string + description: The STIX version + example: '2.1' + id: + type: string + description: The ID of the indicator + example: acme:indicator-bf8bc5d5-c7e6-46b0-8d22-7500fea77196 + created: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + modified: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + created_by_ref: + type: string + description: Identifier of type identity + example: identity--f431f809-377b-45e0-aa1c-6a4751cae5ff + revoked: + type: boolean + description: The revoked property is only used by STIX Objects that support versioning and indicates whether the object has been revoked. + labels: + type: array + description: The labels property specifies a set of terms used to describe this object. The terms are user-defined or trust-group defined and their meaning is outside the scope of this specification and MAY be ignored. + example: + - heartbleed + - has-logo + items: + type: string + external_references: + type: array + description: A list of external references which refer to non-STIX information. This property MAY be used to provide one or more Vulnerability identifiers, such as a CVE ID + items: + $ref: '#/components/schemas/ExternalReference' + object_marking_refs: + type: array + description: The object_marking_refs property specifies a list of id properties of marking-definition objects that apply to this object. + example: + - marking-definition--089a6ecb-cc15-43cc-9494-767639779123 + items: + type: string + granular_markings: + type: array + description: The granular_markings property specifies a list of granular markings applied to this object + items: + $ref: '#/components/schemas/GranularMarkingType' + name: + type: string + description: The name of the object + description: + type: string + description: A human readable description + schema: + type: string + description: The normative definition of the extension, either as a URL or as plain text explaining the definition + example: https://www.example.com/schema-my-favorite-sdo-1/v1 + version: + type: string + description: The version of this extension + extension_types: + type: array + description: This property specifies one or more extension types contained within this extension + items: + type: string + enum: + - new-sdo + - new-sco + - new-sro + - property-extension + - toplevel-property-extension + extension_properties: + type: array + description: This property contains the list of new property names that are added to an object by an extension + items: + type: string + KillChainPhase: + required: + - kill_chain_name + type: object + properties: + kill_chain_name: + type: string + description: The name of the kill chain. The value of this property SHOULD be all lowercase and SHOULD use hyphens instead of spaces or underscores as word separators + example: lockheed-martin-cyber-kill-chain + phase_name: + type: string + description: The name of the phase in the kill chain. The value of this property SHOULD be all lowercase and SHOULD use hyphens instead of spaces or underscores as word separators + example: reconnaissance + x-stackQL-resources: + datastore: + id: sumologic.threat_intel.datastore + name: datastore + title: Datastore + methods: + get: + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1db/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1db/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/datastore/methods/get' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/datastore/methods/delete' + replace: [] + retention_period: + id: sumologic.threat_intel.retention_period + name: retention_period + title: Retention Period + methods: + get: + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1retentionPeriod/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1retentionPeriod/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/retention_period/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/retention_period/methods/update' + delete: [] + replace: [] + indicators: + id: sumologic.threat_intel.indicators + name: indicators + title: Indicators + methods: + upload_normalized: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1indicators~1normalized/post' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel + upload_stix: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1indicators~1stix/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + remove: + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1indicators/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + data_sources: + id: sumologic.threat_intel.data_sources + name: data_sources + title: Data Sources + methods: + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1dataSource~1{dataSourceName}/put' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/data_sources/methods/update' + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/tokens.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/tokens.yaml index 86496c7..594e2a2 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/tokens.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/tokens.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Tokens API + description: Installation tokens (tokens library). + version: 1.0.0 paths: /v1/tokens: get: @@ -159,6 +164,37 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' + TokenBaseDefinition: + required: + - name + - status + - type + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the token. + example: token-name + description: + maxLength: 4096 + minLength: 0 + type: string + description: Description of the token. + example: 'token description: for test.' + status: + pattern: ^(Active|Inactive)$ + type: string + description: Status of the token. Can be `Active`, or `Inactive`. + example: Active + x-pattern-message: must be either `Active` or `Inactive` + type: + pattern: ^(CollectorRegistration)$ + type: string + description: 'Type of the token. Valid values: 1) CollectorRegistration' + example: CollectorRegistration + x-pattern-message: must be `CollectorRegistration` TokenBaseResponse: required: - createdAt @@ -220,35 +256,12 @@ components: description: Identifier of the user who last modified the resource. discriminator: propertyName: type - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - TokenBaseDefinition: + TokenBaseDefinitionUpdate: required: - name - status - type + - version type: object properties: name: @@ -275,427 +288,125 @@ components: description: 'Type of the token. Valid values: 1) CollectorRegistration' example: CollectorRegistration x-pattern-message: must be `CollectorRegistration` - TokenBaseDefinitionUpdate: + version: + type: integer + description: Version of the token. + format: int64 + ErrorDescription: required: - - name - - status - - type - - version + - code + - message type: object properties: - name: - maxLength: 255 - minLength: 1 + code: type: string - description: Name of the token. - example: token-name - description: - maxLength: 4096 - minLength: 0 + description: An error code describing the type of error. + example: auth:password_too_short + message: type: string - description: Description of the token. - example: 'token description: for test.' - status: - pattern: ^(Active|Inactive)$ + description: A short English-language description of the error. + example: Your password was too short. + detail: type: string - description: Status of the token. Can be `Active`, or `Inactive`. - example: Active - x-pattern-message: must be either `Active` or `Inactive` - type: - pattern: ^(CollectorRegistration)$ + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: type: string - description: 'Type of the token. Valid values: 1) CollectorRegistration' - example: CollectorRegistration - x-pattern-message: must be `CollectorRegistration` - version: - type: integer - description: Version of the token. - format: int64 - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 x-stackQL-resources: tokens: id: sumologic.tokens.tokens name: tokens title: Tokens methods: - listTokens: + list: operation: $ref: '#/paths/~1v1~1tokens/get' response: mediaType: application/json openAPIDocKey: '200' - createToken: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1tokens/post' response: mediaType: application/json openAPIDocKey: '200' - getToken: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1tokens~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateToken: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1tokens~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteToken: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1tokens~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/tokens/methods/getToken' - - $ref: '#/components/x-stackQL-resources/tokens/methods/listTokens' + - $ref: '#/components/x-stackQL-resources/tokens/methods/get' + - $ref: '#/components/x-stackQL-resources/tokens/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/tokens/methods/createToken' - update: [] + - $ref: '#/components/x-stackQL-resources/tokens/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/tokens/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/tokens/methods/deleteToken' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/tokens/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - tokens - description: tokens - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/tracing.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/tracing.yaml index 97f7422..9d68b78 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/tracing.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/tracing.yaml @@ -1,10 +1,15 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Tracing API + description: Traces, spans, trace and span queries, tracing metrics and the service map. + version: 1.0.0 paths: /v1/tracing/tracequery: post: tags: - traces summary: Run a trace search query asynchronously. - description: Execute a trace search query and get the id to fetch its status and results. Use the [Trace Query Status] endpoint to check a query status. When the query has been completed, use the [Trace Query Result] endpoint to get the result of the asynchronous query. + description: Execute a trace search query and get the id to fetch its status and results. Use the Trace Query Status endpoint to check a query status. When the query has been completed, use the Trace Query Result endpoint to get the result of the asynchronous query. operationId: createTraceQuery parameters: [] requestBody: @@ -56,7 +61,7 @@ paths: tags: - traces summary: Get a trace search query status. - description: Get a status of a trace query with the given id. When the query has been completed, use the [Trace Query Result] endpoint to get the result of the asynchronous query. + description: Get a status of a trace query with the given id. When the query has been completed, use the Trace Query Result endpoint to get the result of the asynchronous query. operationId: getTraceQueryStatus parameters: - name: queryId @@ -210,6 +215,15 @@ paths: required: false schema: type: string + - name: fieldType + in: query + description: 'Indicates the kind of a field. Possible values: `SpanAttribute`, `SpanEventAttribute`.' + required: false + schema: + pattern: ^(SpanAttribute|SpanEventAttribute)$ + type: string + example: SpanEventAttribute + x-pattern-message: 'Should be one of: `SpanAttribute`, `SpanEventAttribute`.' responses: '200': description: List of available filter values for the given field. @@ -508,7 +522,7 @@ paths: tags: - spanAnalytics summary: Run a span analytics query asynchronously. - description: Execute a span analytics query and get the id to fetch its status and results. Use the [Span Query Status] endpoint to check a query status. When the query has been completed, use the [Span Query Result] endpoint to get the result of the asynchronous query. + description: Execute a span analytics query and get the id to fetch its status and results. Use the Span Query Status endpoint to check a query status. When the query has been completed, use the Span Query Result endpoint to get the result of the asynchronous query. operationId: createSpanQuery parameters: [] requestBody: @@ -560,7 +574,7 @@ paths: tags: - spanAnalytics summary: Get a span analytics query status. - description: Get a status of a span analytics query with the given id. When the query has been completed, use the [Span Query Result] endpoint to get the result of the asynchronous query. + description: Get a status of a span analytics query with the given id. When the query has been completed, use the Span Query Result endpoint to get the result of the asynchronous query. operationId: getSpanQueryStatus parameters: - name: queryId @@ -882,90 +896,6 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - AsyncTraceQueryRow: - required: - - query - - rowId - type: object - properties: - query: - $ref: '#/components/schemas/TraceQueryExpression' - rowId: - maxLength: 16 - type: string - description: An identifier used to reference this particular row of the query request while fetching a query result. Within a query, row ids must have distinct values. - example: '#A' - orderBy: - $ref: '#/components/schemas/OrderBy' - ResolvableTimeRange: - required: - - type - type: object - properties: - type: - type: string - description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. - example: - type: BeginBoundedTimeRange - from: - type: RelativeTimeRangeBoundary - relativeTime: '-15m' - discriminator: - propertyName: type - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - TraceQueryExpression: - required: - - type - type: object - properties: - type: - type: string - description: Expression type of the object model. - description: Base query expression object. - discriminator: - propertyName: type - OrderBy: - required: - - fieldName - - order - type: object - properties: - fieldName: - maxLength: 32 - minLength: 1 - type: string - description: 'Field based on which results should be sorted. When not provided, the default behavior is to sort by timestamp descending. Sortable fields values: `trace_id`, `start_timestamp`, `duration`, `spans_number`, `errors`, `status_code`.' - example: start_timestamp - order: - pattern: ^(Asc|Desc)$ - type: string - description: Type of sorting values - descending or ascending. - example: Asc - default: Desc - x-pattern-message: should be either 'Asc' or 'Desc' TraceQueryStatusResponse: required: - queryRows @@ -983,33 +913,6 @@ components: description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Canceled`.' example: Processing x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Canceled`. - TraceQueryRowStatus: - required: - - count - - rowId - - status - type: object - properties: - rowId: - type: string - description: A unique identifier of the query. - example: A - status: - pattern: ^(Processing|Finished|Error|Canceled)$ - type: string - description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Canceled`.' - example: Processing - x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Canceled`. - statusMessage: - type: string - description: Descriptive message of the status - example: Finished successfully - count: - minimum: 0 - type: integer - description: Number of results matching the query - format: int64 - example: 3215 TraceQueryResultResponse: required: - results @@ -1024,6 +927,46 @@ components: type: string description: Next continuation token. example: '10001' + TraceMetricsResponse: + required: + - metrics + type: object + properties: + metrics: + type: array + description: List of trace metrics. + items: + $ref: '#/components/schemas/TraceMetricDetail' + TraceFieldsResponse: + required: + - fields + type: object + properties: + fields: + type: array + description: List of filter fields. + items: + $ref: '#/components/schemas/TraceFieldDetail' + TraceFieldValuesResponse: + required: + - fieldValues + - totalCount + type: object + properties: + fieldValues: + type: array + description: List of filter field values. + items: + type: string + totalCount: + type: integer + description: Total number of values for a field matching the query. Can be approximated when it's above 3000. + format: int64 + example: 1234 + next: + type: string + description: Next continuation token. + example: Mi93V0ZqTTBzaW89 TraceDetail: required: - id @@ -1048,6 +991,7 @@ components: description: The name of the operation given to the root span. example: retrieveAccount metrics: + maxProperties: 1000 type: object additionalProperties: $ref: '#/components/schemas/DoubleTracingValue' @@ -1058,91 +1002,409 @@ components: type: string description: Date and time the trace was started in [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2019-11-22T09:00:00Z' + example: '2019-11-22T09:00:00.000Z' criticalPathServiceBreakdownSummary: $ref: '#/components/schemas/CriticalPathServiceBreakdownSummary' - TraceSpanStatus: + TraceExistsResponse: required: - - code + - exists type: object properties: - code: + exists: + type: boolean + description: Indicates whether the trace with the given trace id exists. + example: true + url: type: string - description: 'Status code of the span. Possible values: `OK`, `ERROR`, `UNKNOWN`.' - example: OK - message: + description: A path to the trace view page in Sumo Logic UI. + example: '#/trace/00000000000120CB' + TraceSpansResponse: + required: + - spans + - totalCount + type: object + properties: + spanPage: + type: array + description: List of trace spans. + items: + $ref: '#/components/schemas/TraceSpan' + totalCount: + type: integer + description: Total count of spans for this trace. + format: int64 + example: 1234 + next: type: string - description: Optional descriptive message about the status, could be an http status code or the kind of an error, e.g. OSError. - example: '404' - DoubleTracingValue: - allOf: - - $ref: '#/components/schemas/TracingValue' - - required: - - value + description: Next continuation token. + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + TraceLightEventsResponse: + type: object + properties: + spanEvents: + maxProperties: 1000 type: object - properties: - value: - type: number - format: double - CriticalPathServiceBreakdownSummary: + additionalProperties: + type: array + items: + $ref: '#/components/schemas/LightSpanEvent' + description: Map of span ids to lists of their events, without their attributes. + next: + type: string + description: Next continuation token. + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + CriticalPathResponse: + required: + - segments + type: object + properties: + segments: + type: array + description: List of span segments from the critical path. + items: + $ref: '#/components/schemas/SpanPathSegment' + next: + type: string + description: Next continuation token. + example: Mi93V0ZqTTBzaW89 + CriticalPathServiceBreakdownResponse: required: - elements - idleTime - - otherServicesDuration type: object properties: elements: type: array - description: List of the elements representing the critical path service duration breakdown - contains the first few services with the longest overall duration of the spans contributing to the critical path. + description: List of elements representing the critical path service breakdown. items: - $ref: '#/components/schemas/CriticalPathServiceBreakdownElementBase' - otherServicesDuration: - type: integer - description: Overall processing time in nanoseconds consumed by the rest of the spans in the critical path (a sum of the duration times of the spans' critical path segments). - format: int64 - example: 12957153 + $ref: '#/components/schemas/CriticalPathServiceBreakdownElementDetail' idleTime: type: integer description: Overall time in nanoseconds when no particular operation was in progress. format: int64 example: 60000000 - TracingValue: - required: - - type - properties: - type: - type: string - description: Type of the value model. - discriminator: - propertyName: type - CriticalPathServiceBreakdownElementBase: + TraceSpanDetail: required: - duration + - id + - operationName + - startedAt + - status type: object properties: - service: + id: type: string - description: The name of the service. - example: user-service - serviceColor: + description: Identifier of the span. + example: 00000000002317A9 + parentId: + type: string + description: Identifier of the parent span, if any. If the span has no parent it's considered a root span. + example: 000000000003C7BE + operationName: + type: string + description: The name of the operation given to the span. + example: retrieveAccount + resource: + type: string + description: The name of the resource attached to the span. + example: http.request + service: + type: string + description: The name of the service this span is part of. + example: user-service + serviceColor: type: string description: Color hex code assigned to the service. example: '#fa41c6' + serviceType: + $ref: '#/components/schemas/ServiceType' duration: type: integer - description: Overall processing time in nanoseconds consumed by the spans belonging to this service in the critical path (a sum of the duration times of the spans' critical path segments). + description: Number of nanoseconds the span lasted. format: int64 - example: 12957153 - TraceMetricsResponse: + example: 212957153 + startedAt: + type: string + description: Date and time the span was started in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2019-11-22T09:00:00.000Z' + status: + $ref: '#/components/schemas/TraceSpanStatus' + kind: + pattern: ^(CLIENT|SERVER|PRODUCER|CONSUMER|INTERNAL)$ + type: string + description: 'Span kind describes the relationship between the Span, its parents, and its children in a Trace. Possible values: `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER`, `INTERNAL`.' + example: SERVER + x-pattern-message: Should be either `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER` or `INTERNAL`. + remoteService: + type: string + description: Name of the possible remote span's service. + example: external-service + remoteServiceColor: + type: string + description: Color hex code assigned to the remote service. + example: '#fa41c6' + remoteServiceType: + $ref: '#/components/schemas/ServiceType' + info: + $ref: '#/components/schemas/TraceSpanInfo' + numberOfLinks: + type: integer + description: Number of span links in this span. + format: int32 + example: 2 + errorMessage: + type: string + description: Produced error message (could be a stack trace, database error code, ..) + example: | + Exception in thread "local[9]" java.lang.OutOfMemoryError: Java heap space + at my.app.force.fields.SpaceShipForceField.main(SpaceShipForceField.java:17) + fields: + type: object + additionalProperties: + $ref: '#/components/schemas/TracingValue' + description: Fields attached to this span. + example: + component: + type: StringTracingValue + value: http + http.request.method: + type: StringTracingValue + value: GET + url.full: + type: StringTracingValue + value: https://example.com/v1/users/123 + http.response.status_code: + type: StringTracingValue + value: '200' + criticalPathContribution: + $ref: '#/components/schemas/TraceSpanCriticalPathContribution' + logs: + type: array + description: Logs attached to this span. + example: + - '[19/Dec/2019:10:58:21 +0000] ''GET /v1/users/123 HTTP/1.1'' 200 8215 ''http://111.111.11.1/'' ''Mozilla/5.0 (Macintosh; Intel Mac OS X 11_11_1) AppleWebKit/111.11 (KHTML, like Gecko) Chrome/11.1.1111.11 Safari/111.11''' + - '[19/Dec/2019:10:58:24 +0000] ''GET /logo.png HTTP/1.1'' 404 555 ''http://111.111.11.1/'' ''Mozilla/5.0 (Macintosh; Intel Mac OS X 11_11_1) AppleWebKit/111.11 (KHTML, like Gecko) Chrome/11.1.1111.11 Safari/111.11''' + items: + type: string + events: + type: array + description: Events attached to this span. + items: + $ref: '#/components/schemas/SpanEvent' + links: + type: array + description: List of casually related spans. + items: + $ref: '#/components/schemas/SpanLink' + TraceSpanBillingInfo: required: - - metrics + - billedBytes + - billedFormat type: object properties: - metrics: + billedBytes: + type: integer + description: Number of bytes that were charged for the span. + example: 529 + billedFormat: + type: string + description: Billing format of the span. Number of bytes of this representation of the span is equal to `billedBytes`. + example: traceId=2ff9c457b1aa00f4;spanId=97872e33215c4275;parentSpanId=98bcdfc5da874c40;operation=spanId-97872e33215c4275;startTimestamp=1603283111874000000;endTimestamp=1603283112268000000;service=ServiceA;status.code=ERROR;status.message=ERROR;kind=SERVER;custom-tag-2=value2;_sourcehost=127.0.0.1;url.full=https://example.com/api/operation-x;message=Some error message;_sourcecategory=Http Input;custom-tag-1=value1;error=true;_sourcename=Http Input;error.kind=InvalidInput;_collector=trace-generator-collector;http.request.method=GET; + SpanQueryRequest: + required: + - queryRows + - timeRange + type: object + properties: + queryRows: type: array - description: List of trace metrics. + description: A list of span analytics queries. items: - $ref: '#/components/schemas/TraceMetricDetail' + $ref: '#/components/schemas/SpanQueryRow' + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + timeZone: + type: string + description: Time zone for the query time ranges. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + default: UTC + SpanQueryResponse: + required: + - queryId + - queryRows + type: object + properties: + queryId: + type: string + description: Id of the created query + queryRows: + type: array + description: A list of row responses with details about individual queries. + items: + $ref: '#/components/schemas/SpanQueryRowResponse' + hasErrors: + type: boolean + description: Indicates whether there was an error while executing the query. + example: true + default: false + timeRange: + $ref: '#/components/schemas/BeginBoundedTimeRange' + SpanQueryStatusResponse: + required: + - queryRows + - status + type: object + properties: + queryRows: + type: array + description: A list of span analytics queries. + items: + $ref: '#/components/schemas/SpanQueryRowStatus' + status: + pattern: ^(Processing|Finished|Error|Paused)$ + type: string + description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Paused`' + example: Processing + x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Paused`. + SpanQueryResultSpansResponse: + required: + - spanPage + type: object + properties: + spanPage: + type: array + description: List of trace spans. + items: + $ref: '#/components/schemas/SpanQuerySpanData' + next: + type: string + description: Next continuation token. + example: Mi93V0ZqTTBzaW89 + SpanQueryResultFacetsResponse: + required: + - facets + type: object + properties: + facets: + type: array + description: List of facets. + items: + $ref: '#/components/schemas/SpanQueryRowFacet' + SpanQueryAggregateResponse: + required: + - result + type: object + properties: + result: + $ref: '#/components/schemas/SpanQueryAggregateResult' + SpanQueryFieldsResponse: + required: + - fields + type: object + properties: + fields: + type: array + description: List of span fields. + items: + $ref: '#/components/schemas/SpanQueryFieldDetail' + ServiceMapResponse: + required: + - edges + - nodes + type: object + properties: + nodes: + type: array + description: List of service map nodes. + items: + $ref: '#/components/schemas/ServiceMapNode' + edges: + type: array + description: List of service map edges. + items: + $ref: '#/components/schemas/ServiceMapEdge' + AsyncTraceQueryRow: + required: + - query + - rowId + type: object + properties: + query: + $ref: '#/components/schemas/TraceQueryExpression' + rowId: + maxLength: 16 + type: string + description: An identifier used to reference this particular row of the query request while fetching a query result. Within a query, row ids must have distinct values. + example: '#A' + orderBy: + $ref: '#/components/schemas/OrderBy' + ResolvableTimeRange: + required: + - type + type: object + properties: + type: + type: string + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. + example: + type: BeginBoundedTimeRange + from: + type: RelativeTimeRangeBoundary + relativeTime: '-15m' + discriminator: + propertyName: type + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + TraceQueryRowStatus: + required: + - count + - rowId + - status + type: object + properties: + rowId: + type: string + description: A unique identifier of the query. + example: A + status: + pattern: ^(Processing|Finished|Error|Canceled)$ + type: string + description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Canceled`.' + example: Processing + x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Canceled`. + statusMessage: + type: string + description: Descriptive message of the status + example: Finished successfully + count: + minimum: 0 + type: integer + description: Number of results matching the query + format: int64 + example: 3215 TraceMetricDetail: required: - metric @@ -1161,16 +1423,6 @@ components: type: string description: 'The type the values of this field will have. Possible values: `DoubleTracingValue`, `IntegerTracingValue`.' example: IntegerTracingValue - TraceFieldsResponse: - required: - - fields - type: object - properties: - fields: - type: array - description: List of filter fields. - items: - $ref: '#/components/schemas/TraceFieldDetail' TraceFieldDetail: required: - field @@ -1183,12 +1435,12 @@ components: description: Filter field name. example: operation fieldType: - pattern: ^(TraceField|SpanEventField)$ + pattern: ^(SpanAttribute|SpanEventAttribute)$ type: string - description: 'Indicates the kind of a field. Possible values: `TraceField`, `SpanEventField`.' - example: SpanEventField - default: TraceField - x-pattern-message: 'Should be one of: `TraceField`, `SpanEventField`.' + description: 'Indicates the kind of a field. Possible values: `SpanAttribute`, `SpanEventAttribute`.' + example: SpanEventAttribute + default: SpanAttribute + x-pattern-message: 'Should be one of: `SpanAttribute`, `SpanEventAttribute`.' valueListing: type: boolean description: Indicates whether values for this field can be listed. @@ -1203,75 +1455,55 @@ components: example: StringTracingValue noValuesReason: $ref: '#/components/schemas/NoTraceFieldValuesReason' - NoTraceFieldValuesReason: + TraceSpanStatus: required: - code - - message type: object properties: code: - pattern: ^(HighCardinalityField|AutocompleteDisabled)$ type: string - description: 'A code uniquely identifying the reason for the lack of trace field values. Possible values: `HighCardinalityField`, `AutocompleteDisabled`.' - example: HighCardinalityField - x-pattern-message: Should be either `HighCardinalityField`, `AutocompleteDisabled`. + description: 'Status code of the span. Possible values: `OK`, `ERROR`, `UNKNOWN`.' + example: OK message: type: string - description: A short English-language description of the reason. - example: Autocomplete has been disabled for this field due to high cardinality. - TraceFieldValuesResponse: + description: Optional descriptive message about the status, could be an http status code or the kind of an error, e.g. OSError. + example: '404' + DoubleTracingValue: required: - - fieldValues - - totalCount - type: object + - type + - value properties: - fieldValues: - type: array - description: List of filter field values. - items: - type: string - totalCount: - type: integer - description: Total number of values for a field matching the query. Can be approximated when it's above 3000. - format: int64 - example: 1234 - next: + type: type: string - description: Next continuation token. - example: Mi93V0ZqTTBzaW89 - TraceExistsResponse: - required: - - exists + description: Type of the value model. + value: + type: number + format: double + discriminator: + propertyName: type type: object - properties: - exists: - type: boolean - description: Indicates whether the trace with the given trace id exists. - example: true - url: - type: string - description: A path to the trace view page in Sumo Logic UI. - example: '#/trace/00000000000120CB' - TraceSpansResponse: + CriticalPathServiceBreakdownSummary: required: - - spans - - totalCount + - elements + - idleTime + - otherServicesDuration type: object properties: - spanPage: + elements: type: array - description: List of trace spans. + description: List of the elements representing the critical path service duration breakdown - contains the first few services with the longest overall duration of the spans contributing to the critical path. items: - $ref: '#/components/schemas/TraceSpan' - totalCount: + $ref: '#/components/schemas/CriticalPathServiceBreakdownElementBase' + otherServicesDuration: type: integer - description: Total count of spans for this trace. + description: Overall processing time in nanoseconds consumed by the rest of the spans in the critical path (a sum of the duration times of the spans' critical path segments). format: int64 - example: 1234 - next: - type: string - description: Next continuation token. - example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + example: 12957153 + idleTime: + type: integer + description: Overall time in nanoseconds when no particular operation was in progress. + format: int64 + example: 60000000 TraceSpan: required: - duration @@ -1316,7 +1548,7 @@ components: type: string description: Date and time the span was started in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2019-11-22T09:00:00Z' + example: '2019-11-22T09:00:00.000Z' status: $ref: '#/components/schemas/TraceSpanStatus' kind: @@ -1342,37 +1574,6 @@ components: description: Number of span links in this span. format: int32 example: 2 - ServiceType: - pattern: ^(Db|HTTP|MQ|Web|Mixed|Unknown|Cpp|DotNET|Erlang|Go|Java|NodeJS|Php|Python|Ruby|WebJS|Swift|MSSQL|MySQL|Oracle|Db2|PostgreSQL|Redshift|Hive|Cloudscape|HSQLDB|Progress|MaxDB|HANADB|Ingres|FirstSQL|EnterpriseDB|Cache|Adabas|Firebird|ApacheDerby|FileMaker|Informix|InstantDB|InterBase|MariaDB|Netezza|PervasivePSQL|PointBase|SQLite|Sybase|Teradata|Vertica|H2|ColdFusion|Cassandra|HBase|MongoDB|Redis|Couchbase|CouchDB|CosmosDB|DynamoDB|Neo4j|Geode|Elasticsearch|Memcached|CockroachDB)$ - type: string - description: Defines type of service. - example: HTTP - x-pattern-message: Should be either `Db`, `HTTP`, `MQ`, `Web`, `Mixed`, `Unknown`, `Cpp`, `DotNET`, `Erlang`, `Go`, `Java`, `NodeJS`, `Php`, `Python`, `Ruby`, `WebJS`, `Swift`, `MSSQL`, `MySQL`, `Oracle`, `Db2`, `PostgreSQL`, `Redshift`, `Hive`, `Cloudscape`, `HSQLDB`, `Progress`, `MaxDB`, `HANADB`, `Ingres`, `FirstSQL`, `EnterpriseDB`, `Cache`, `Adabas`, `Firebird`, `ApacheDerby`, `FileMaker`, `Informix`, `InstantDB`, `InterBase`, `MariaDB`, `Netezza`, `PervasivePSQL`, `PointBase`, `SQLite`, `Sybase`, `Teradata`, `Vertica`, `H2`, `ColdFusion`, `Cassandra`, `HBase`, `MongoDB`, `Redis`, `Couchbase`, `CouchDB`, `CosmosDB`, `DynamoDB`, `Neo4j`, `Geode`, `Elasticsearch`, `Memcached` or `CockroachDB` - TraceSpanInfo: - required: - - type - type: object - properties: - type: - type: string - description: 'Type of this span. Possible values: `TraceHttpSpanInfo`, `TraceDbSpanInfo`, `TraceMessageBusSpanInfo`.' - example: TraceHttpSpanInfo - discriminator: - propertyName: type - TraceLightEventsResponse: - type: object - properties: - spanEvents: - type: object - additionalProperties: - type: array - items: - $ref: '#/components/schemas/LightSpanEvent' - description: Map of span ids to lists of their events, without their attributes. - next: - type: string - description: Next continuation token. - example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI LightSpanEvent: required: - name @@ -1383,26 +1584,12 @@ components: type: string description: Time when an event happened in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2021-04-19T17:36:57.47623Z' + example: '2021-04-19T17:36:57.476Z' name: type: string description: Name of the event. example: domContentLoadedEventStart description: Light version of Span Event, without the attributes. - CriticalPathResponse: - required: - - segments - type: object - properties: - segments: - type: array - description: List of span segments from the critical path. - items: - $ref: '#/components/schemas/SpanPathSegment' - next: - type: string - description: Next continuation token. - example: Mi93V0ZqTTBzaW89 SpanPathSegment: required: - duration @@ -1438,89 +1625,46 @@ components: description: The fraction (value between 0.0 and 1.0) from the trace duration time this segment took. format: double example: 0.4 - CriticalPathServiceBreakdownResponse: + CriticalPathServiceBreakdownElementDetail: required: - - elements - - idleTime + - duration + - longestSegmentDuration + - numSpans type: object properties: - elements: - type: array - description: List of elements representing the critical path service breakdown. - items: - $ref: '#/components/schemas/CriticalPathServiceBreakdownElementDetail' - idleTime: + service: + type: string + description: The name of the service. + example: user-service + serviceColor: + type: string + description: Color hex code assigned to the service. + example: '#fa41c6' + duration: type: integer - description: Overall time in nanoseconds when no particular operation was in progress. + description: Overall processing time in nanoseconds consumed by the spans belonging to this service in the critical path (a sum of the duration times of the spans' critical path segments). format: int64 - example: 60000000 - CriticalPathServiceBreakdownElementDetail: - allOf: - - $ref: '#/components/schemas/CriticalPathServiceBreakdownElementBase' - - required: - - longestSegmentDuration - - numSpans - type: object - properties: - numSpans: - type: integer - description: Number of spans that are part of this service. - format: int32 - example: 12957153 - longestSegmentDuration: - type: integer - description: Number of nanoseconds the longest span segment in the critical path lasted. - format: int64 - example: 12957153 - TraceSpanDetail: - allOf: - - $ref: '#/components/schemas/TraceSpan' - - type: object - properties: - errorMessage: - type: string - description: Produced error message (could be a stack trace, database error code, ..) - example: | - Exception in thread "local[9]" java.lang.OutOfMemoryError: Java heap space - at my.app.force.fields.SpaceShipForceField.main(SpaceShipForceField.java:17) - fields: - type: object - additionalProperties: - $ref: '#/components/schemas/TracingValue' - description: Fields attached to this span. - example: - component: - type: StringTracingValue - value: http - http.method: - type: StringTracingValue - value: GET - http.url: - type: StringTracingValue - value: /v1/users/123 - http.status_code: - type: StringTracingValue - value: '200' - criticalPathContribution: - $ref: '#/components/schemas/TraceSpanCriticalPathContribution' - logs: - type: array - description: Logs attached to this span. - example: - - '[19/Dec/2019:10:58:21 +0000] ''GET /v1/users/123 HTTP/1.1'' 200 8215 ''http://111.111.11.1/'' ''Mozilla/5.0 (Macintosh; Intel Mac OS X 11_11_1) AppleWebKit/111.11 (KHTML, like Gecko) Chrome/11.1.1111.11 Safari/111.11''' - - '[19/Dec/2019:10:58:24 +0000] ''GET /logo.png HTTP/1.1'' 404 555 ''http://111.111.11.1/'' ''Mozilla/5.0 (Macintosh; Intel Mac OS X 11_11_1) AppleWebKit/111.11 (KHTML, like Gecko) Chrome/11.1.1111.11 Safari/111.11''' - items: - type: string - events: - type: array - description: Events attached to this span. - items: - $ref: '#/components/schemas/SpanEvent' - links: - type: array - description: List of casually related spans. - items: - $ref: '#/components/schemas/SpanLink' + example: 12957153 + numSpans: + type: integer + description: Number of spans that are part of this service. + format: int32 + example: 12957153 + longestSegmentDuration: + type: integer + description: Number of nanoseconds the longest span segment in the critical path lasted. + format: int64 + example: 12957153 + TracingValue: + required: + - type + properties: + type: + type: string + description: Type of the value model. + discriminator: + propertyName: type + type: object TraceSpanCriticalPathContribution: required: - duration @@ -1538,104 +1682,41 @@ components: format: double example: 0.4 SpanEvent: - description: Span event containing all information (in particular attributes). - allOf: - - $ref: '#/components/schemas/LightSpanEvent' - - type: object - properties: - attributes: - type: array - description: Span event attributes. - items: - $ref: '#/components/schemas/SpanEventAttribute' - SpanLink: - required: - - spanId - - traceId - type: object - properties: - traceId: - type: string - description: Trace identifier of the linked span. - example: 00000000002317A9 - spanId: - type: string - description: Span identifier of the linked span. - example: 000000000003C7BE - description: Details of the linked span. - SpanEventAttribute: - type: object - properties: - attributeName: - type: string - description: Name of the attribute. - example: message_details - attributeValue: - $ref: '#/components/schemas/EventAttributeValue' - EventAttributeValue: - required: - - type - properties: - type: - pattern: ^(BooleanEventAttributeValue|StringEventAttributeValue|DoubleEventAttributeValue|IntegerEventAttributeValue|BooleanArrayEventAttributeValue|StringArrayEventAttributeValue|DoubleArrayEventAttributeValue|IntegerArrayEventAttributeValue)$ - type: string - description: Type of the event attribute value. - example: BooleanAttributeValue - discriminator: - propertyName: type - TraceSpanBillingInfo: - required: - - billedBytes - - billedFormat - type: object - properties: - billedBytes: - type: integer - description: Number of bytes that were charged for the span. - example: 502 - billedFormat: - type: string - description: Billing format of the span. Number of bytes of this representation of the span is equal to `billedBytes`. - example: traceId=2ff9c457b1aa00f4;spanId=97872e33215c4275;parentSpanId=98bcdfc5da874c40;operation=spanId-97872e33215c4275;startTimestamp=1603283111874000000;endTimestamp=1603283112268000000;service=ServiceA;status.code=ERROR;status.message=ERROR;kind=SERVER;custom-tag-2=value2;_sourcehost=127.0.0.1;http.url=/api/operation-x;message=Some error message;_sourcecategory=Http Input;custom-tag-1=value1;error=true;_sourcename=Http Input;error.kind=InvalidInput;_collector=trace-generator-collector;http.method=GET; - SpanQueryRequest: - required: - - queryRows - - timeRange - type: object - properties: - queryRows: - type: array - description: A list of span analytics queries. - items: - $ref: '#/components/schemas/SpanQueryRow' - timeRange: - $ref: '#/components/schemas/ResolvableTimeRange' - timeZone: - type: string - description: Time zone for the query time ranges. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). - example: America/Los_Angeles - default: UTC - SpanQueryResponse: + description: Span event containing all information (in particular attributes). required: - - queryId - - queryRows + - name + - timestamp type: object properties: - queryId: + timestamp: type: string - description: Id of the created query - queryRows: + description: Time when an event happened in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2021-04-19T17:36:57.476Z' + name: + type: string + description: Name of the event. + example: domContentLoadedEventStart + attributes: type: array - description: A list of row responses with details about individual queries. + description: Span event attributes. items: - $ref: '#/components/schemas/SpanQueryRowResponse' - hasErrors: - type: boolean - description: Indicates whether there was an error while executing the query. - example: true - default: false - timeRange: - $ref: '#/components/schemas/BeginBoundedTimeRange' + $ref: '#/components/schemas/SpanEventAttribute' + SpanLink: + required: + - spanId + - traceId + type: object + properties: + traceId: + type: string + description: Trace identifier of the linked span. + example: 00000000002317A9 + spanId: + type: string + description: Span identifier of the linked span. + example: 000000000003C7BE + description: Details of the linked span. SpanQueryRow: required: - queryString @@ -1675,62 +1756,25 @@ components: description: The executed query after rewriting example: _index=_trace_spans traceId=00000000002317A9 BeginBoundedTimeRange: - allOf: - - $ref: '#/components/schemas/ResolvableTimeRange' - - required: - - from - type: object - properties: - from: - $ref: '#/components/schemas/TimeRangeBoundary' - to: - $ref: '#/components/schemas/TimeRangeBoundary' - SpanQueryRowError: - required: - - code - - message - type: object - properties: - code: - type: string - description: The error code. - example: spanquery:query_validation_error - message: - type: string - description: Short description of the occured error. - example: Query A was invalid - details: - type: string - description: Details about the occured error. - example: '[1.78] failure: ''('' expected but '')'' found.' - TimeRangeBoundary: required: - type + - from type: object properties: type: type: string - description: 'Type of the time range boundary. Value must be from list: - `RelativeTimeRangeBoundary`, - `EpochTimeRangeBoundary`, - `Iso8601TimeRangeBoundary`, - `LiteralTimeRangeBoundary`.' - example: RelativeTimeRangeBoundary + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. + from: + $ref: '#/components/schemas/TimeRangeBoundary' + to: + $ref: '#/components/schemas/TimeRangeBoundary' + example: + type: BeginBoundedTimeRange + from: + type: RelativeTimeRangeBoundary + relativeTime: '-15m' discriminator: propertyName: type - SpanQueryStatusResponse: - required: - - queryRows - - status - type: object - properties: - queryRows: - type: array - description: A list of span analytics queries. - items: - $ref: '#/components/schemas/SpanQueryRowStatus' - status: - pattern: ^(Processing|Finished|Error|Paused)$ - type: string - description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Paused`' - example: Processing - x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Paused`. SpanQueryRowStatus: required: - count @@ -1766,20 +1810,6 @@ components: type: boolean description: Indicates whether facets calculation has completed. example: false - SpanQueryResultSpansResponse: - required: - - spanPage - type: object - properties: - spanPage: - type: array - description: List of trace spans. - items: - $ref: '#/components/schemas/SpanQuerySpanData' - next: - type: string - description: Next continuation token. - example: Mi93V0ZqTTBzaW89 SpanQuerySpanData: required: - duration @@ -1819,7 +1849,7 @@ components: type: string description: Date and time the span was started in [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2019-11-22T09:00:00Z' + example: '2019-11-22T09:00:00.000Z' status: $ref: '#/components/schemas/TraceSpanStatus' kind: @@ -1834,87 +1864,275 @@ components: example: |- { "http.host":"http://example.com", - "http.method":"GET" + "http.request.method":"GET" } metadata: + maxProperties: 1000 type: object additionalProperties: type: string description: Metadata attached to the span. example: _sourceCategory: account-backend - SpanQueryResultFacetsResponse: + SpanQueryRowFacet: + required: + - cardinality + - dataType + - name + type: object + properties: + name: + type: string + description: Name of the field facet. + example: _sourceHost + cardinality: + type: integer + description: The number of unique values this field occured. + format: int32 + example: 3 + dataType: + pattern: ^(String|Int|Long|Double|Boolean)$ + type: string + description: Data type of the field. + example: String + x-pattern-message: Should be either `String`, `Int`, `Long`, `Double` or `Boolean`. + inSchema: + type: boolean + description: Indicates whether the field is available in the span schema. + example: false + valueFrequency: + maxProperties: 1000 + type: object + additionalProperties: + type: integer + format: int64 + description: Map of field value frequencies. + example: + _sourceHost: 34099 + SpanQueryAggregateResult: + required: + - series + - status + type: object + properties: + status: + pattern: ^(Processing|Finished|Error|Paused)$ + type: string + description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Paused`.' + example: Processing + x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Paused`. + statusMessage: + type: string + description: Descriptive message of the status + example: Finished successfully + series: + type: array + description: The series returned from a search. + items: + $ref: '#/components/schemas/SpanQueryAggregateDataSeries' + SpanQueryFieldDetail: + required: + - field + - fieldType + - type + - inSchema + type: object + properties: + field: + type: string + description: Filter field name. + example: operation + fieldType: + pattern: ^(SpanAttribute|SpanEventAttribute)$ + type: string + description: 'Indicates the kind of a field. Possible values: `SpanAttribute`, `SpanEventAttribute`.' + example: SpanEventAttribute + default: SpanAttribute + x-pattern-message: 'Should be one of: `SpanAttribute`, `SpanEventAttribute`.' + valueListing: + type: boolean + description: Indicates whether values for this field can be listed. + example: false + description: + type: string + description: Short description of the field. + example: A piece of the workflow represented by a span + type: + type: string + description: 'The type the values of this field will have. Possible values: `DoubleTracingValue`, `IntegerTracingValue`, `StringTracingValue`, `DateTimeTracingValue`.' + example: StringTracingValue + noValuesReason: + $ref: '#/components/schemas/NoTraceFieldValuesReason' + inSchema: + type: boolean + description: Indicates whether the field is available in the schema. + example: false + ServiceMapNode: + required: + - isRemote + - lastSeenAt + - serviceName + - serviceType + type: object + properties: + serviceName: + type: string + description: Name of a service in a service map. + example: service_name_1 + serviceColor: + type: string + description: Color hex code assigned to the service. + example: '#fa41c6' + lastSeenAt: + type: string + description: The last time in UTC a service has been seen. Formatted as defined by date-time - RFC3339. + format: date-time + example: '2019-11-22T09:00:00.000Z' + isRemote: + type: boolean + description: Indicates whether node comes from inferred remote service or instrumented one. + example: true + serviceType: + $ref: '#/components/schemas/ServiceType' + ServiceMapEdge: + required: + - lastSeenAt + - source + - target + type: object + properties: + source: + type: string + description: Name of a source service. Edge is directed from source to target. + example: service_name_1 + target: + type: string + description: Name of a target service. Edge is directed from source to target. + example: service_name_2 + lastSeenAt: + type: string + description: The last time in UTC an edge has been seen. Formatted as defined by date-time - RFC3339. + format: date-time + example: '2019-11-22T09:00:00.000Z' + TraceQueryExpression: + required: + - type + type: object + properties: + type: + type: string + description: Expression type of the object model. + description: Base query expression object. + discriminator: + propertyName: type + OrderBy: + required: + - fieldName + - order + type: object + properties: + fieldName: + maxLength: 32 + minLength: 1 + type: string + description: 'Field based on which results should be sorted. When not provided, the default behavior is to sort by timestamp descending. Sortable fields values: `trace_id`, `start_timestamp`, `duration`, `spans_number`, `errors`, `status_code`.' + example: start_timestamp + order: + pattern: ^(Asc|Desc)$ + type: string + description: Type of sorting values - descending or ascending. + example: Asc + default: Desc + x-pattern-message: should be either 'Asc' or 'Desc' + NoTraceFieldValuesReason: required: - - facets + - code + - message type: object properties: - facets: - type: array - description: List of facets. - items: - $ref: '#/components/schemas/SpanQueryRowFacet' - SpanQueryRowFacet: + code: + pattern: ^(HighCardinalityField|AutocompleteDisabled)$ + type: string + description: 'A code uniquely identifying the reason for the lack of trace field values. Possible values: `HighCardinalityField`, `AutocompleteDisabled`.' + example: HighCardinalityField + x-pattern-message: Should be either `HighCardinalityField`, `AutocompleteDisabled`. + message: + type: string + description: A short English-language description of the reason. + example: Autocomplete has been disabled for this field due to high cardinality. + CriticalPathServiceBreakdownElementBase: required: - - cardinality - - dataType - - name + - duration type: object properties: - name: + service: type: string - description: Name of the field facet. - example: _sourceHost - cardinality: - type: integer - description: The number of unique values this field occured. - format: int32 - example: 3 - dataType: - pattern: ^(String|Int|Long|Double|Boolean)$ + description: The name of the service. + example: user-service + serviceColor: type: string - description: Data type of the field. - example: String - x-pattern-message: Should be either `String`, `Int`, `Long`, `Double` or `Boolean`. - inSchema: - type: boolean - description: Indicates whether the field is available in the span schema. - example: false - valueFrequency: - type: object - additionalProperties: - type: integer - format: int64 - description: Map of field value frequencies. - example: - _sourceHost: 34099 - SpanQueryAggregateResponse: + description: Color hex code assigned to the service. + example: '#fa41c6' + duration: + type: integer + description: Overall processing time in nanoseconds consumed by the spans belonging to this service in the critical path (a sum of the duration times of the spans' critical path segments). + format: int64 + example: 12957153 + ServiceType: + pattern: ^(Db|HTTP|MQ|Web|Mixed|Unknown|Cpp|DotNET|Erlang|Go|Java|NodeJS|Php|Python|Ruby|WebJS|Swift|MSSQL|MySQL|Oracle|Db2|PostgreSQL|Redshift|Hive|Cloudscape|HSQLDB|Progress|MaxDB|HANADB|Ingres|FirstSQL|EnterpriseDB|Cache|Adabas|Firebird|ApacheDerby|FileMaker|Informix|InstantDB|InterBase|MariaDB|Netezza|PervasivePSQL|PointBase|SQLite|Sybase|Teradata|Vertica|H2|ColdFusion|Cassandra|HBase|MongoDB|Redis|Couchbase|CouchDB|CosmosDB|DynamoDB|Neo4j|Geode|Elasticsearch|Memcached|CockroachDB|RPC|gRPC|JavaRMI|DotNETWCF|ApacheDubbo)$ + type: string + description: Defines type of service. + example: HTTP + x-pattern-message: Should be either `Db`, `HTTP`, `MQ`, `Web`, `Mixed`, `Unknown`, `Cpp`, `DotNET`, `Erlang`, `Go`, `Java`, `NodeJS`, `Php`, `Python`, `Ruby`, `WebJS`, `Swift`, `MSSQL`, `MySQL`, `Oracle`, `Db2`, `PostgreSQL`, `Redshift`, `Hive`, `Cloudscape`, `HSQLDB`, `Progress`, `MaxDB`, `HANADB`, `Ingres`, `FirstSQL`, `EnterpriseDB`, `Cache`, `Adabas`, `Firebird`, `ApacheDerby`, `FileMaker`, `Informix`, `InstantDB`, `InterBase`, `MariaDB`, `Netezza`, `PervasivePSQL`, `PointBase`, `SQLite`, `Sybase`, `Teradata`, `Vertica`, `H2`, `ColdFusion`, `Cassandra`, `HBase`, `MongoDB`, `Redis`, `Couchbase`, `CouchDB`, `CosmosDB`, `DynamoDB`, `Neo4j`, `Geode`, `Elasticsearch`, `Memcached`, `CockroachDB`, `RPC`, `gRPC`, `JavaRMI`, `DotNETWCF` or `ApacheDubbo` + TraceSpanInfo: required: - - result + - type type: object properties: - result: - $ref: '#/components/schemas/SpanQueryAggregateResult' - SpanQueryAggregateResult: + type: + type: string + description: 'Type of this span. Possible values: `TraceHttpSpanInfo`, `TraceDbSpanInfo`, `TraceMessageBusSpanInfo`.' + example: TraceHttpSpanInfo + discriminator: + propertyName: type + SpanEventAttribute: + type: object + properties: + attributeName: + type: string + description: Name of the attribute. + example: message_details + attributeValue: + $ref: '#/components/schemas/EventAttributeValue' + SpanQueryRowError: required: - - series - - status + - code + - message type: object properties: - status: - pattern: ^(Processing|Finished|Error|Paused)$ + code: type: string - description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Paused`.' - example: Processing - x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Paused`. - statusMessage: + description: The error code. + example: spanquery:query_validation_error + message: type: string - description: Descriptive message of the status - example: Finished successfully - series: - type: array - description: The series returned from a search. - items: - $ref: '#/components/schemas/SpanQueryAggregateDataSeries' + description: Short description of the occured error. + example: Query A was invalid + details: + type: string + description: Details about the occured error. + example: '[1.78] failure: ''('' expected but '')'' found.' + TimeRangeBoundary: + required: + - type + type: object + properties: + type: + type: string + description: 'Type of the time range boundary. Value must be from list: - `RelativeTimeRangeBoundary`, - `EpochTimeRangeBoundary`, - `Iso8601TimeRangeBoundary`, - `LiteralTimeRangeBoundary`.' + example: RelativeTimeRangeBoundary + discriminator: + propertyName: type SpanQueryAggregateDataSeries: required: - dataPoints @@ -1963,6 +2181,18 @@ components: description: Type of the values in the series. example: DOUBLE x-pattern-message: Should be either `STRING`, `DOUBLE`. + EventAttributeValue: + required: + - type + properties: + type: + pattern: ^(BooleanEventAttributeValue|StringEventAttributeValue|DoubleEventAttributeValue|IntegerEventAttributeValue|BooleanArrayEventAttributeValue|StringArrayEventAttributeValue|DoubleArrayEventAttributeValue|IntegerArrayEventAttributeValue)$ + type: string + description: Type of the event attribute value. + example: BooleanAttributeValue + discriminator: + propertyName: type + type: object SpanQueryAggregatePointData: required: - 'y' @@ -1978,6 +2208,7 @@ components: description: Value that represents a point on the y axis. example: '12.3' xAxisValues: + maxProperties: 1000 type: object additionalProperties: type: string @@ -2031,6 +2262,7 @@ components: type: object properties: data: + maxProperties: 1000 type: object additionalProperties: type: string @@ -2040,838 +2272,488 @@ components: cluster: frontend instance: frontend-12 default: {} - SpanQueryFieldsResponse: - required: - - fields - type: object - properties: - fields: - type: array - description: List of span fields. - items: - $ref: '#/components/schemas/SpanQueryFieldDetail' - SpanQueryFieldDetail: - allOf: - - $ref: '#/components/schemas/TraceFieldDetail' - - required: - - inSchema - type: object - properties: - inSchema: - type: boolean - description: Indicates whether the field is available in the schema. - example: false - ServiceMapResponse: - required: - - edges - - nodes - type: object - properties: - nodes: - type: array - description: List of service map nodes. - items: - $ref: '#/components/schemas/ServiceMapNode' - edges: - type: array - description: List of service map edges. - items: - $ref: '#/components/schemas/ServiceMapEdge' - ServiceMapNode: - required: - - isRemote - - lastSeenAt - - serviceName - - serviceType - type: object - properties: - serviceName: - type: string - description: Name of a service in a service map. - example: service_name_1 - serviceColor: - type: string - description: Color hex code assigned to the service. - example: '#fa41c6' - lastSeenAt: - type: string - description: The last time in UTC a service has been seen. Formatted as defined by date-time - RFC3339. - format: date-time - example: '2019-11-22T09:00:00Z' - isRemote: - type: boolean - description: Indicates whether node comes from inferred remote service or instrumented one. - example: true - serviceType: - $ref: '#/components/schemas/ServiceType' - ServiceMapEdge: - required: - - lastSeenAt - - source - - target - type: object - properties: - source: - type: string - description: Name of a source service. Edge is directed from source to target. - example: service_name_1 - target: - type: string - description: Name of a target service. Edge is directed from source to target. - example: service_name_2 - lastSeenAt: - type: string - description: The last time in UTC an edge has been seen. Formatted as defined by date-time - RFC3339. - format: date-time - example: '2019-11-22T09:00:00Z' - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: - tracequery: - id: sumologic.tracing.tracequery - name: tracequery - title: Tracequery + trace_queries: + id: sumologic.tracing.trace_queries + name: trace_queries + title: Trace Queries methods: - createTraceQuery: + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1tracing~1tracequery/post' response: mediaType: application/json openAPIDocKey: '200' - cancelTraceQuery: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1tracing~1tracequery~1{queryId}/delete' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: '#/components/x-stackQL-resources/tracequery/methods/createTraceQuery' - update: [] - delete: [] - tracequery_status: - id: sumologic.tracing.tracequery_status - name: tracequery_status - title: Tracequery_status - methods: - getTraceQueryStatus: + openAPIDocKey: '204' + request: + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1tracing~1tracequery~1{queryId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/tracequery_status/methods/getTraceQueryStatus' - insert: [] + - $ref: '#/components/x-stackQL-resources/trace_queries/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/trace_queries/methods/create' update: [] - delete: [] - tracequery_rows_traces: - id: sumologic.tracing.tracequery_rows_traces - name: tracequery_rows_traces - title: Tracequery_rows_traces + delete: + - $ref: '#/components/x-stackQL-resources/trace_queries/methods/delete' + replace: [] + trace_query_results: + id: sumologic.tracing.trace_query_results + name: trace_query_results + title: Trace Query Results methods: - getTraceQueryResult: + list: operation: $ref: '#/paths/~1v1~1tracing~1tracequery~1{queryId}~1rows~1{rowId}~1traces/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.results + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/tracequery_rows_traces/methods/getTraceQueryResult' + - $ref: '#/components/x-stackQL-resources/trace_query_results/methods/list' insert: [] update: [] delete: [] + replace: [] metrics: id: sumologic.tracing.metrics name: metrics title: Metrics methods: - getMetrics: + list: operation: $ref: '#/paths/~1v1~1tracing~1metrics/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.metrics + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/metrics/methods/getMetrics' + - $ref: '#/components/x-stackQL-resources/metrics/methods/list' insert: [] update: [] delete: [] - tracequery_fields: - id: sumologic.tracing.tracequery_fields - name: tracequery_fields - title: Tracequery_fields + replace: [] + trace_query_fields: + id: sumologic.tracing.trace_query_fields + name: trace_query_fields + title: Trace Query Fields methods: - getTraceQueryFields: + list: operation: $ref: '#/paths/~1v1~1tracing~1tracequery~1fields/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.fields + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/tracequery_fields/methods/getTraceQueryFields' + - $ref: '#/components/x-stackQL-resources/trace_query_fields/methods/list' insert: [] update: [] delete: [] - tracequery_fields_values: - id: sumologic.tracing.tracequery_fields_values - name: tracequery_fields_values - title: Tracequery_fields_values + replace: [] + trace_query_field_values: + id: sumologic.tracing.trace_query_field_values + name: trace_query_field_values + title: Trace Query Field Values methods: - getTraceQueryFieldValues: + list: operation: $ref: '#/paths/~1v1~1tracing~1tracequery~1fields~1{field}~1values/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.fieldValues + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/tracequery_fields_values/methods/getTraceQueryFieldValues' + - $ref: '#/components/x-stackQL-resources/trace_query_field_values/methods/list' insert: [] update: [] delete: [] + replace: [] traces: id: sumologic.tracing.traces name: traces title: Traces methods: - getTrace: + get: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/traces/methods/getTrace' + - $ref: '#/components/x-stackQL-resources/traces/methods/get' insert: [] update: [] delete: [] - traces_exists: - id: sumologic.tracing.traces_exists - name: traces_exists - title: Traces_exists + replace: [] + trace_existence: + id: sumologic.tracing.trace_existence + name: trace_existence + title: Trace Existence methods: - traceExists: + get: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}~1exists/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/trace_existence/methods/get' insert: [] update: [] delete: [] - traces_spans: - id: sumologic.tracing.traces_spans - name: traces_spans - title: Traces_spans + replace: [] + spans: + id: sumologic.tracing.spans + name: spans + title: Spans methods: - getSpans: + list: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}~1spans/get' response: mediaType: application/json openAPIDocKey: '200' - getSpan: + objectKey: $.spanPage + request: + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}~1spans~1{spanId}/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/traces_spans/methods/getSpan' - - $ref: '#/components/x-stackQL-resources/traces_spans/methods/getSpans' + - $ref: '#/components/x-stackQL-resources/spans/methods/get' + - $ref: '#/components/x-stackQL-resources/spans/methods/list' insert: [] update: [] delete: [] - traces_trace_events: - id: sumologic.tracing.traces_trace_events - name: traces_trace_events - title: Traces_trace_events + replace: [] + trace_events: + id: sumologic.tracing.trace_events + name: trace_events + title: Trace Events methods: - getTraceLightEvents: + get: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}~1traceEvents/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/traces_trace_events/methods/getTraceLightEvents' + - $ref: '#/components/x-stackQL-resources/trace_events/methods/get' insert: [] update: [] delete: [] - traces_critical_path: - id: sumologic.tracing.traces_critical_path - name: traces_critical_path - title: Traces_critical_path + replace: [] + critical_paths: + id: sumologic.tracing.critical_paths + name: critical_paths + title: Critical Paths methods: - getCriticalPath: + list: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}~1criticalPath/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.segments + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/traces_critical_path/methods/getCriticalPath' + - $ref: '#/components/x-stackQL-resources/critical_paths/methods/list' insert: [] update: [] delete: [] - traces_critical_path_breakdown_service: - id: sumologic.tracing.traces_critical_path_breakdown_service - name: traces_critical_path_breakdown_service - title: Traces_critical_path_breakdown_service + replace: [] + critical_path_service_breakdowns: + id: sumologic.tracing.critical_path_service_breakdowns + name: critical_path_service_breakdowns + title: Critical Path Service Breakdowns methods: - getCriticalPathServiceBreakdown: + list: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}~1criticalPath~1breakdown~1service/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.elements + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/traces_critical_path_breakdown_service/methods/getCriticalPathServiceBreakdown' + - $ref: '#/components/x-stackQL-resources/critical_path_service_breakdowns/methods/list' insert: [] update: [] delete: [] - traces_spans_billing_info: - id: sumologic.tracing.traces_spans_billing_info - name: traces_spans_billing_info - title: Traces_spans_billing_info + replace: [] + span_billing_info: + id: sumologic.tracing.span_billing_info + name: span_billing_info + title: Span Billing Info methods: - getSpanBillingInfo: + get: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}~1spans~1{spanId}~1billingInfo/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/traces_spans_billing_info/methods/getSpanBillingInfo' + - $ref: '#/components/x-stackQL-resources/span_billing_info/methods/get' insert: [] update: [] delete: [] - spanquery: - id: sumologic.tracing.spanquery - name: spanquery - title: Spanquery + replace: [] + span_queries: + id: sumologic.tracing.span_queries + name: span_queries + title: Span Queries methods: - createSpanQuery: + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1tracing~1spanquery/post' response: mediaType: application/json openAPIDocKey: '200' - cancelSpanQuery: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1{queryId}/delete' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: '#/components/x-stackQL-resources/spanquery/methods/createSpanQuery' - update: [] - delete: [] - spanquery_status: - id: sumologic.tracing.spanquery_status - name: spanquery_status - title: Spanquery_status - methods: - getSpanQueryStatus: + openAPIDocKey: '204' + request: + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1{queryId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/spanquery_status/methods/getSpanQueryStatus' - insert: [] - update: [] - delete: [] - spanquery_pause: - id: sumologic.tracing.spanquery_pause - name: spanquery_pause - title: Spanquery_pause - methods: - pauseSpanQuery: + request: + nativeCasing: camel + pause: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1{queryId}~1pause/put' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - spanquery_resume: - id: sumologic.tracing.spanquery_resume - name: spanquery_resume - title: Spanquery_resume - methods: - resumeSpanQuery: + openAPIDocKey: '204' + resume: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1{queryId}~1resume/put' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' sqlVerbs: - select: [] - insert: [] + select: + - $ref: '#/components/x-stackQL-resources/span_queries/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/span_queries/methods/create' update: [] - delete: [] - spanquery_rows_spans: - id: sumologic.tracing.spanquery_rows_spans - name: spanquery_rows_spans - title: Spanquery_rows_spans + delete: + - $ref: '#/components/x-stackQL-resources/span_queries/methods/delete' + replace: [] + span_query_results: + id: sumologic.tracing.span_query_results + name: span_query_results + title: Span Query Results methods: - getSpanQueryResult: + list: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1{queryId}~1rows~1{rowId}~1spans/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.spanPage + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/spanquery_rows_spans/methods/getSpanQueryResult' + - $ref: '#/components/x-stackQL-resources/span_query_results/methods/list' insert: [] update: [] delete: [] - spanquery_rows_facets: - id: sumologic.tracing.spanquery_rows_facets - name: spanquery_rows_facets - title: Spanquery_rows_facets + replace: [] + span_query_facets: + id: sumologic.tracing.span_query_facets + name: span_query_facets + title: Span Query Facets methods: - getSpanQueryFacets: + list: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1{queryId}~1rows~1{rowId}~1facets/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.facets + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/spanquery_rows_facets/methods/getSpanQueryFacets' + - $ref: '#/components/x-stackQL-resources/span_query_facets/methods/list' insert: [] update: [] delete: [] - spanquery_aggregates: - id: sumologic.tracing.spanquery_aggregates - name: spanquery_aggregates - title: Spanquery_aggregates + replace: [] + span_query_aggregates: + id: sumologic.tracing.span_query_aggregates + name: span_query_aggregates + title: Span Query Aggregates methods: - getSpanQueryAggregates: + get: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1{queryId}~1aggregates/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/spanquery_aggregates/methods/getSpanQueryAggregates' + - $ref: '#/components/x-stackQL-resources/span_query_aggregates/methods/get' insert: [] update: [] delete: [] - spanquery_fields: - id: sumologic.tracing.spanquery_fields - name: spanquery_fields - title: Spanquery_fields + replace: [] + span_query_fields: + id: sumologic.tracing.span_query_fields + name: span_query_fields + title: Span Query Fields methods: - getSpanQueryFields: + list: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1fields/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.fields + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/spanquery_fields/methods/getSpanQueryFields' + - $ref: '#/components/x-stackQL-resources/span_query_fields/methods/list' insert: [] update: [] delete: [] - spanquery_fields_values: - id: sumologic.tracing.spanquery_fields_values - name: spanquery_fields_values - title: Spanquery_fields_values + replace: [] + span_query_field_values: + id: sumologic.tracing.span_query_field_values + name: span_query_field_values + title: Span Query Field Values methods: - getSpanQueryFieldValues: + list: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1fields~1{field}~1values/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.fieldValues + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/spanquery_fields_values/methods/getSpanQueryFieldValues' + - $ref: '#/components/x-stackQL-resources/span_query_field_values/methods/list' insert: [] update: [] delete: [] + replace: [] service_map: id: sumologic.tracing.service_map name: service_map - title: Service_map + title: Service Map methods: - getServiceMap: + get: operation: $ref: '#/paths/~1v1~1tracing~1serviceMap/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/service_map/methods/getServiceMap' + - $ref: '#/components/x-stackQL-resources/service_map/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - tracing - description: tracing - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/transformation_rules.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/transformation_rules.yaml index da2fe70..f23de1b 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/transformation_rules.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/transformation_rules.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Transformation Rules API + description: Metrics transformation rules. + version: 1.0.0 paths: /v1/transformationRules: get: @@ -183,41 +188,6 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - TransformationRuleResponse: - description: A generic response for transformation rule. - allOf: - - $ref: '#/components/schemas/TransformationRuleRequest' - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - properties: - id: - type: string - description: Unique identifier for the transformation rule. - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 TransformationRuleRequest: required: - enabled @@ -231,19 +201,29 @@ components: description: True if the rule is enabled. example: true description: A request for creating or updating a transformation rule. - MetadataModel: + TransformationRuleResponse: + type: object + description: A generic response for transformation rule. required: + - enabled + - ruleDefinition - createdAt - createdBy - modifiedAt - modifiedBy - type: object + - id properties: + ruleDefinition: + $ref: '#/components/schemas/TransformationRuleDefinition' + enabled: + type: boolean + description: True if the rule is enabled. + example: true createdAt: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -252,11 +232,38 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the transformation rule. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 TransformationRuleDefinition: required: - name @@ -298,6 +305,32 @@ components: example: 8 default: 400 description: The properties that define a transformation rule. + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 DimensionTransformation: required: - transformationType @@ -309,391 +342,97 @@ components: description: Base class of all transformation types. discriminator: propertyName: transformationType - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: transformation_rules: id: sumologic.transformation_rules.transformation_rules name: transformation_rules - title: Transformation_rules + title: Transformation Rules methods: - getTransformationRules: + list: operation: $ref: '#/paths/~1v1~1transformationRules/get' response: mediaType: application/json openAPIDocKey: '200' - createRule: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1transformationRules/post' response: mediaType: application/json openAPIDocKey: '200' - getTransformationRule: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1transformationRules~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateTransformationRule: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1transformationRules~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteRule: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1transformationRules~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/getTransformationRule' - - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/getTransformationRules' + - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/createRule' - update: [] + - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/deleteRule' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - transformation_rules - description: transformationRules - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/services/users.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/services/users.yaml index b9b7bb9..a5fb679 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/services/users.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/services/users.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Users API + description: Users and their lifecycle actions - unlock, password reset, email change, welcome email, MFA. + version: 1.0.0 paths: /v1/users: get: @@ -36,6 +41,12 @@ paths: schema: minLength: 1 type: string + - name: includeServiceAccounts + in: query + description: Include service accounts while listing users within the organization. + required: false + schema: + type: boolean responses: '200': description: A paginated list of users in the organization. @@ -276,6 +287,29 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/users/{id}/resendWelcomeEmail: + post: + tags: + - userManagement + summary: Resend verification email. + description: Resend the welcome email to a user. + operationId: resendWelcomeEmail + parameters: + - name: id + in: path + description: Identifier of the user to resend the welcome email. + required: true + schema: + type: string + responses: + '204': + description: Welcome email was resent successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: ListUserModelsResponse: @@ -312,57 +346,6 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - UserModel: - allOf: - - $ref: '#/components/schemas/CreateUserDefinition' - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - properties: - id: - type: string - description: Unique identifier for the user. - example: 000000000FE20FE2 - isActive: - type: boolean - description: True if the user is active. - example: true - isLocked: - type: boolean - description: This has the value `true` if the user's account has been locked. If a user tries to log into their account several times and fails, his or her account will be locked for security reasons. - example: false - isMfaEnabled: - type: boolean - description: True if multi factor authentication is enabled for the user. - example: false - lastLoginTimestamp: - type: string - description: Timestamp of the last login for the user in UTC. Will be null if the user has never logged in. - format: date-time - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 CreateUserDefinition: required: - email @@ -397,19 +380,50 @@ components: - 00000000000002D2 items: type: string - MetadataModel: + UserModel: + type: object required: + - email + - firstName + - lastName + - roleIds - createdAt - createdBy - modifiedAt - modifiedBy - type: object + - id properties: + firstName: + maxLength: 128 + minLength: 1 + type: string + description: First name of the user. + example: John + lastName: + maxLength: 128 + minLength: 0 + type: string + description: Last name of the user. + example: Doe + email: + maxLength: 255 + type: string + description: Email address of the user. + format: email + example: johndoe@acme.com + roleIds: + type: array + description: List of roleIds associated with the user. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string createdAt: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -418,38 +432,56 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the user. + example: 000000000FE20FE2 + isActive: + type: boolean + description: True if the user is active. + example: true + isLocked: + type: boolean + description: This has the value `true` if the user's account has been locked. If a user tries to log into their account several times and fails, his or her account will be locked for security reasons. + example: false + isMfaEnabled: + type: boolean + description: True if multi factor authentication is enabled for the user. + example: false + lastLoginTimestamp: + type: string + description: Timestamp of the last login for the user in UTC. Will be null if the user has never logged in. + format: date-time UpdateUserDefinition: required: - firstName - - isActive - lastName - - roleIds type: object properties: firstName: maxLength: 128 minLength: 1 type: string - description: First name of the user. + description: First name of the user. If the caller has `manageUsersAndRoles` capability, this field can be updated for any user. If the caller does NOT have `manageUsersAndRoles` capability, then only the calling user's firstName can be updated. example: John lastName: maxLength: 128 minLength: 0 type: string - description: Last name of the user. + description: Last name of the user. If the caller has `manageUsersAndRoles` capability, this field can be updated for any user. If the caller does NOT have `manageUsersAndRoles` capability, then only the calling user's lastName can be updated. example: Doe isActive: type: boolean - description: This has the value `true` if the user is active and `false` if they have been deactivated. + description: This has the value `true` if the user is active and `false` if they have been deactivated. To modify this field you must have the `manageUserAndRoles` capability. example: true roleIds: type: array - description: List of role identifiers associated with the user. + description: List of role identifiers associated with the user. To modify this field you must have the `manageUserAndRoles` capability. example: - 00000000000001DF - 00000000000002D2 @@ -481,456 +513,189 @@ components: password: type: string description: Password of user whose mfa is being disabled. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 x-stackQL-resources: users: id: sumologic.users.users name: users title: Users methods: - listUsers: + list: operation: $ref: '#/paths/~1v1~1users/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data - createUser: + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1users/post' response: mediaType: application/json openAPIDocKey: '200' - getUser: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1users~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateUser: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1users~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteUser: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1users~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/users/methods/getUser' - - $ref: '#/components/x-stackQL-resources/users/methods/listUsers' - insert: - - $ref: '#/components/x-stackQL-resources/users/methods/createUser' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/users/methods/deleteUser' - email_request_change: - id: sumologic.users.email_request_change - name: email_request_change - title: Email_request_change - methods: - requestChangeEmail: + openAPIDocKey: '204' + request: + nativeCasing: camel + request_change_email: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1users~1{id}~1email~1requestChange/post' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - password_reset: - id: sumologic.users.password_reset - name: password_reset - title: Password_reset - methods: - resetPassword: + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel + reset_password: operation: $ref: '#/paths/~1v1~1users~1{id}~1password~1reset/post' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - unlock: - id: sumologic.users.unlock - name: unlock - title: Unlock - methods: - unlockUser: + openAPIDocKey: '204' + unlock: operation: $ref: '#/paths/~1v1~1users~1{id}~1unlock/post' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - mfa_disable: - id: sumologic.users.mfa_disable - name: mfa_disable - title: Mfa_disable - methods: - disableMfa: + openAPIDocKey: '204' + disable_mfa: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1users~1{id}~1mfa~1disable/put' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel + resend_welcome_email: + operation: + $ref: '#/paths/~1v1~1users~1{id}~1resendWelcomeEmail/post' + response: + mediaType: application/json + openAPIDocKey: '204' sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] -openapi: 3.0.0 + select: + - $ref: '#/components/x-stackQL-resources/users/methods/get' + - $ref: '#/components/x-stackQL-resources/users/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/users/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/users/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/users/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API] can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder], [getAdminRecommededFolder], - or [getGlobalFolder] endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API] to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status] of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - users - description: users - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/provider-dev/scripts/compare_predecessor.mjs b/provider-dev/scripts/compare_predecessor.mjs new file mode 100644 index 0000000..134e971 --- /dev/null +++ b/provider-dev/scripts/compare_predecessor.mjs @@ -0,0 +1,100 @@ +#!/usr/bin/env node + +// Diffs the current operation mapping (provider-dev/config/all_services.csv) +// against the predecessor provider's method inventory +// (provider-dev/config/predecessor_methods.csv, written once by +// snapshot_predecessor.mjs from the last v1 commit) by (path, verb), and +// writes the Breaking Changes section of the README between the +// BEGIN:BREAKING-CHANGES / END:BREAKING-CHANGES markers. Deterministic; +// run after every mapping change (`make compare`). +// +// Dispositions: +// carried - same service.resource, method renamed or not +// moved - same operation now lives on a different service.resource +// retired - the predecessor method's operation is no longer in the spec, +// or is reason-coded skip in the new mapping +// added - new operations with no predecessor (counted only) +// +// Usage: node provider-dev/scripts/compare_predecessor.mjs [--check] + +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import { parseCsv } from './lib/spec_helpers.mjs'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const currentPath = path.join(repoRoot, 'provider-dev', 'config', 'all_services.csv'); +const predecessorPath = path.join(repoRoot, 'provider-dev', 'config', 'predecessor_methods.csv'); +const readmePath = path.join(repoRoot, 'README.md'); +const checkOnly = process.argv.includes('--check'); + +const cur = parseCsv(fs.readFileSync(currentPath, 'utf8')); +const cc = Object.fromEntries(cur[0].map((h, i) => [h, i])); +const current = new Map(); +for (const r of cur.slice(1)) { + current.set(`${r[cc.path]}::${r[cc.verb]}`, { + service: r[cc.filename].replace(/\.yaml$/, ''), resource: r[cc.stackql_resource_name], method: r[cc.stackql_method_name], sqlVerb: r[cc.stackql_verb] + }); +} +const pred = parseCsv(fs.readFileSync(predecessorPath, 'utf8')); +const pc = Object.fromEntries(pred[0].map((h, i) => [h, i])); + +const carried = [], moved = [], retired = []; +const resourceMap = new Map(); // old service.resource -> Set(new service.resource) +for (const r of pred.slice(1)) { + const key = `${r[pc.path]}::${r[pc.verb]}`; + const oldFq = `${r[pc.service]}.${r[pc.resource]}`; + const now = current.get(key); + const row = { old: `${oldFq}.${r[pc.method]}`, oldVerb: r[pc.sql_verb], path: `${r[pc.verb].toUpperCase()} ${r[pc.path]}` }; + if (!now || now.resource === 'skip_this_resource') { + retired.push({ ...row, reason: !now ? 'operation no longer in the vendor spec' : 'skipped in this build (see all_services.csv)' }); + continue; + } + const newFq = `${now.service}.${now.resource}`; + row.new = `${newFq}.${now.method}`; + row.newVerb = now.sqlVerb; + if (!resourceMap.has(oldFq)) resourceMap.set(oldFq, new Set()); + resourceMap.get(oldFq).add(newFq); + if (newFq === oldFq) carried.push(row); else moved.push(row); +} +const added = [...current.values()].filter((v) => v.resource !== 'skip_this_resource').length - carried.length - moved.length; + +const renamedResources = [...resourceMap.entries()].filter(([o, n]) => !(n.size === 1 && n.has(o))).sort(); +const lines = []; +lines.push(''); +lines.push(''); +lines.push('### Breaking changes from the previous provider release'); +lines.push(''); +lines.push(`Every method of the previous release (${pred.length - 1} methods across ${new Set(pred.slice(1).map((r) => r[pc.service])).size} services) is dispositioned against this build by operation (path and HTTP verb): ${carried.length} carried on the same resource, ${moved.length} moved to a renamed or restructured resource, ${retired.length} retired; ${added} operations are new to this release. The previous provider version stays available in the registry for pinning.`); +lines.push(''); +lines.push('**Method names.** Operation-derived method names (`listUsers`, `getUser`, `createUser`) become resource-scoped names (`list`, `get`, `create`, `update`, `delete`) on every carried resource, and lifecycle operations become `EXEC` methods on the resource they act on (`users.unlock`, `partitions.decommission`, `scheduled_views.pause`) instead of separate non-selectable resources. Columns and `WHERE` / `INSERT` keys are now `snake_case` (`firstName` -> `first_name`); nested JSON values keep the wire casing.'); +lines.push(''); +lines.push('**Renamed or restructured resources** (previous -> this release):'); +lines.push(''); +lines.push('| Previous resource | This release |'); +lines.push('|---|---|'); +for (const [o, n] of renamedResources) lines.push(`| \`${o}\` | ${[...n].sort().map((x) => `\`${x}\``).join(', ')} |`); +lines.push(''); +if (retired.length > 0) { + lines.push('**Retired methods** (reason-coded):'); + lines.push(''); + for (const r of retired.sort((a, b) => a.old.localeCompare(b.old))) lines.push(`- \`${r.old}\` (${r.path}) - ${r.reason}`); + lines.push(''); +} +lines.push(''); +const block = lines.join('\n'); + +const readme = fs.existsSync(readmePath) ? fs.readFileSync(readmePath, 'utf8') : ''; +const re = //; +if (!re.test(readme)) { + console.error('README.md has no BEGIN:BREAKING-CHANGES / END:BREAKING-CHANGES markers'); + process.exit(1); +} +const updated = readme.replace(re, block); +if (checkOnly) { + if (updated !== readme) { console.error('README Breaking Changes section is out of date - run npm run compare-predecessor'); process.exit(1); } + console.log('compare_predecessor: README Breaking Changes section is current'); +} else { + fs.writeFileSync(readmePath, updated); + console.log(`compare_predecessor: ${carried.length} carried, ${moved.length} moved, ${retired.length} retired, ${added} added; ${renamedResources.length} resource renames written to README.md`); +} diff --git a/provider-dev/scripts/fix_broken_links.sh b/provider-dev/scripts/fix_broken_links.sh deleted file mode 100644 index cecd2bc..0000000 --- a/provider-dev/scripts/fix_broken_links.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -# Find all YAML files in the specified directory -find provider-dev/openapi/src/sumologic/v00.00.00000/services/ -name "*.yaml" | while read file; do - # Remove broken anchors using sed - sed -i \ - -e 's|(#operation/[^)]*)||g' \ - -e 's|(#section/[^)]*)||g' \ - -e 's|(#tag/[^)]*)||g' \ - "$file" - - echo "Processed: $file" -done - -echo "All files processed. Broken anchors have been removed." \ No newline at end of file diff --git a/provider-dev/scripts/lib/spec_helpers.mjs b/provider-dev/scripts/lib/spec_helpers.mjs new file mode 100644 index 0000000..15820d3 --- /dev/null +++ b/provider-dev/scripts/lib/spec_helpers.mjs @@ -0,0 +1,163 @@ +// Shared helpers for the sumologic provider scripts (map_operations.mjs, +// post_process.mjs, compare_predecessor.mjs): spec walking, $ref +// resolution, response envelope classification and naming utilities. + +import fs from 'fs'; +import path from 'path'; + +export const HTTP_VERBS = ['get', 'post', 'put', 'patch', 'delete']; + +export function camelToSnake(s) { + return String(s) + .replace(/([a-z0-9])([A-Z])/g, '$1_$2') + .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2') + .replace(/[-. ]/g, '_') + .toLowerCase(); +} + +export function pathParams(pathKey) { + return (pathKey.match(/\{[^}]+\}/g) || []).map((s) => s.slice(1, -1)); +} + +// version-stripped path with every {param} collapsed to {} +export function normalizePath(pathKey) { + return pathKey.replace(/^\/v\d+/, '').replace(/\{[^}]+\}/g, '{}'); +} + +export function apiVersion(pathKey) { + const m = pathKey.match(/^\/(v\d+)\//); + return m ? m[1] : ''; +} + +// Resolves local $refs against the containing spec document +export function makeResolver(spec) { + return function resolve(schema, depth = 0) { + if (!schema || depth > 10) return schema; + if (schema.$ref) { + const parts = schema.$ref.replace(/^#\//, '').split('/'); + let node = spec; + for (const p of parts) node = node?.[p.replace(/~1/g, '/').replace(/~0/g, '~')]; + return resolve(node, depth + 1); + } + return schema; + }; +} + +export function success2xx(op) { + const codes = Object.keys(op.responses || {}).filter((c) => /^2/.test(c)).sort(); + for (const code of codes) { + const content = op.responses[code].content || {}; + const jsonType = Object.keys(content).find((m) => /json/.test(m)); + if (jsonType && content[jsonType].schema) return { code, schema: content[jsonType].schema, mediaTypes: Object.keys(content) }; + if (Object.keys(content).length > 0) return { code, schema: null, mediaTypes: Object.keys(content) }; + } + return { code: codes[0] || null, schema: null, mediaTypes: [] }; +} + +// Response envelope classification for the Sumo Logic API: +// list - an object with an array property (data[] + next on the +// paginated lists; apps[], dashboards[], collectors[] ... on +// the others); key = the array property to project +// wrapped - an object with exactly one object-valued property +// (collector, source, upgrade) - key = that property +// object - a plain object (single reads, singletons, writes) +// bare-array - a top-level array (wrapped by the normalize pass) +// scalar - a bare string / number +// non-json - application/pdf, application/xml ... +// none - no 2xx content +const PAGINATION_PROPS = new Set(['next', 'nextToken', 'token', 'totalCount', 'count', 'warnings', 'warning', 'startIndex', 'itemsPerPage', 'totalResults', 'idleTime', 'autoPauseLimitReached']); + +export function classifyEnvelope(op, resolve, hint = '') { + const { schema, mediaTypes } = success2xx(op); + if (!schema) { + if (mediaTypes.length > 0) return { envelope: 'non-json', key: '', mediaTypes }; + return { envelope: 'none', key: '', mediaTypes }; + } + const s = resolve(schema); + if (!s) return { envelope: 'none', key: '', mediaTypes }; + if (s.type === 'array') return { envelope: 'bare-array', key: '', mediaTypes }; + if (s.type && s.type !== 'object' && !s.properties) return { envelope: 'scalar', key: '', mediaTypes }; + const props = s.properties || {}; + const arrays = Object.entries(props).filter(([, p]) => { const r = resolve(p); return r && r.type === 'array'; }).map(([k]) => k); + // a list envelope is an array property plus, at most, pagination / count / + // warning scalars; an object that merely contains an array among real + // attributes (threat intel datastore: diskSize, indicatorCount, sourceStatus[]) + // is a single object + const nonArrays = Object.keys(props).filter((k) => !arrays.includes(k)); + const isListEnvelope = arrays.length > 0 && (arrays.includes('data') || nonArrays.every((k) => PAGINATION_PROPS.has(k))); + if (isListEnvelope) { + let key = arrays.includes('data') ? 'data' : null; + if (!key && hint) { + const h = hint.toLowerCase().replace(/_/g, ''); + key = arrays.find((a) => a.toLowerCase() === h) || arrays.find((a) => h.endsWith(a.toLowerCase()) || a.toLowerCase().endsWith(h)) || null; + } + if (!key) key = arrays[0]; + return { envelope: 'list', key: `$.${key}`, mediaTypes, arrays }; + } + const keys = Object.keys(props); + if (keys.length === 1) { + const only = resolve(props[keys[0]]); + if (only && (only.type === 'object' || only.properties)) return { envelope: 'wrapped', key: `$.${keys[0]}`, mediaTypes }; + } + return { envelope: 'object', key: '', mediaTypes }; +} + +export function hasRequestBody(op) { + return !!(op.requestBody && Object.keys(op.requestBody.content || {}).length > 0); +} + +export function requestBodyMediaType(op) { + return Object.keys(op.requestBody?.content || {})[0] || ''; +} + +// Index every operation of every split service spec in a directory +export function indexOperations(sourceDir, yaml) { + const ops = new Map(); // `${filename}::${path}::${verb}` -> { op, pathItem, resolve, service, filename } + const files = fs.readdirSync(sourceDir).filter((f) => f.endsWith('.yaml')).sort(); + for (const filename of files) { + const spec = yaml.load(fs.readFileSync(path.join(sourceDir, filename), 'utf8')); + const resolve = makeResolver(spec); + const service = filename.replace(/\.yaml$/, ''); + for (const [pathKey, pathItem] of Object.entries(spec.paths || {})) { + for (const verb of HTTP_VERBS) { + if (!pathItem[verb]) continue; + ops.set(`${filename}::${pathKey}::${verb}`, { op: pathItem[verb], pathItem, resolve, service, filename, pathKey, verb }); + } + } + } + return { ops, files }; +} + +// RFC 4180 CSV helpers (column order preserved) +export function parseCsv(text) { + const rows = []; + let row = [], field = '', inQuotes = false; + for (let i = 0; i < text.length; i++) { + const c = text[i]; + if (inQuotes) { + if (c === '"') { + if (text[i + 1] === '"') { field += '"'; i++; } else { inQuotes = false; } + } else { field += c; } + } else if (c === '"') { + inQuotes = true; + } else if (c === ',') { + row.push(field); field = ''; + } else if (c === '\n' || c === '\r') { + if (c === '\r' && text[i + 1] === '\n') i++; + row.push(field); field = ''; + if (row.length > 1 || row[0] !== '') rows.push(row); + row = []; + } else { field += c; } + } + if (field !== '' || row.length > 0) { row.push(field); rows.push(row); } + return rows; +} + +export function csvField(v) { + v = v == null ? '' : String(v); + return /[",\n\r]/.test(v) ? `"${v.replace(/"/g, '""')}"` : v; +} + +export function writeCsv(rows) { + return rows.map((r) => r.map(csvField).join(',')).join('\n') + '\n'; +} diff --git a/provider-dev/scripts/map_operations.mjs b/provider-dev/scripts/map_operations.mjs new file mode 100644 index 0000000..2d45f86 --- /dev/null +++ b/provider-dev/scripts/map_operations.mjs @@ -0,0 +1,573 @@ +#!/usr/bin/env node + +// Populates stackql_resource_name, stackql_method_name, stackql_verb and +// stackql_object_key in provider-dev/config/all_services.csv from the split +// service specs in provider-dev/source. +// +// provider-dev/config/all_services.csv is the durable record of every +// operation mapping - the contract that keeps resource and method names +// stable between provider versions. So this script is FILL-ONLY by default: +// rows that already carry a mapping are left exactly as committed, only rows +// with an empty stackql_resource_name (operations added by a spec refresh) +// are derived, and rows whose operation has disappeared from the spec are +// pruned with a warning. `--rebuild` re-derives every row (used for the +// initial build and for deliberate, reviewed renames); `--check` derives +// without writing and reports rows whose committed mapping differs from what +// the rules would produce today (informational - the committed mapping wins). +// +// Derivation = generic CRUD heuristics (below) + the explicit RULES table +// (path-regex, first match wins). Manual mapping decisions are rules here, +// never hand-edits to the CSV. +// +// Conventions: +// GET collection -> SELECT .list objectKey $.data / $. +// GET /{id} -> SELECT .get (objectKey $. where the +// Collector API wraps the object) +// GET singleton -> SELECT .get +// POST collection (with body) -> INSERT .create +// PUT /{id}, PUT singleton -> UPDATE .update (Sumo Logic PUTs replace the +// object: all required fields must be supplied) +// PATCH -> UPDATE, PUT alongside a PATCH -> REPLACE (SCIM) +// DELETE -> DELETE .delete +// lifecycle / action operations -> EXEC on the parent resource (users.unlock, +// partitions.decommission, scheduled_views.pause ...) +// async job triads -> _jobs (start EXEC + get = status) and +// _results (get) +// POST without a request body -> EXEC (the registry tests require an INSERT +// method to carry a request schema) +// skipped (reason-coded) -> stackql_resource_name = skip_this_resource +// +// Validates before writing: every row mapped or skipped with a reason, every +// spec operation present in the CSV, (resource, method) unique per service, +// unique required-parameter signatures per (resource, sqlVerb), and no INSERT +// without a request body. Fails without writing on any violation. +// +// Usage: npm run map-operations [-- --rebuild | --check] [-- --out other.csv] + +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import yaml from 'js-yaml'; +import pluralize from 'pluralize'; +import { + camelToSnake, pathParams, normalizePath, apiVersion, classifyEnvelope, hasRequestBody, + requestBodyMediaType, indexOperations, parseCsv, writeCsv +} from './lib/spec_helpers.mjs'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const sourceDir = path.join(repoRoot, 'provider-dev', 'source'); +const csvPath = path.join(repoRoot, 'provider-dev', 'config', 'all_services.csv'); +const args = process.argv.slice(2); +const rebuild = args.includes('--rebuild'); +const checkOnly = args.includes('--check'); + +// --------------------------------------------------------------------------- +// Explicit rules: { service?, verb?, re (on the version-stripped path with +// params collapsed to {}), resource, method, sqlVerb, objectKey?, skip? } +// First match wins. `re` matches against normalizePath(pathKey); use the +// `v` field to pin an API version where v1 and v2 share a path shape. +// --------------------------------------------------------------------------- +const SKIP = (reason) => ({ resource: 'skip_this_resource', skip: reason }); + +const RULES = [ + // ---- access_keys + { service: 'access_keys', verb: 'put', re: /^\/accessKeys\/\{\}\/rotate$/, resource: 'access_keys', method: 'rotate_secret', sqlVerb: 'exec' }, + { service: 'access_keys', re: /^\/accessKeys\/personal$/, resource: 'personal_access_keys', method: 'list', sqlVerb: 'select', objectKey: '$.data' }, + { service: 'access_keys', re: /^\/accessKeys\/scopes$/, resource: 'scopes', method: 'list', sqlVerb: 'select', objectKey: '$.data' }, + // ---- account + { service: 'account', re: /^\/account\/accountOwner$/, resource: 'account_owner', method: 'get', sqlVerb: 'select' }, + { service: 'account', re: /^\/account\/status$/, resource: 'status', method: 'get', sqlVerb: 'select' }, + { service: 'account', verb: 'post', re: /^\/account\/subdomain\/recover$/, resource: 'subdomain', method: 'recover', sqlVerb: 'exec' }, + { service: 'account', re: /^\/account\/subdomain$/, resource: 'subdomain' }, + { service: 'account', verb: 'post', re: /^\/account\/usage\/report$/, resource: 'usage_reports', method: 'create', sqlVerb: 'insert' }, + { service: 'account', re: /^\/account\/usage\/report\/\{\}\/status$/, resource: 'usage_reports', method: 'get', sqlVerb: 'select' }, + { service: 'account', re: /^\/account\/usageForecast$/, resource: 'usage_forecast', method: 'get', sqlVerb: 'select' }, + { service: 'account', re: /^\/plan\/pendingUpdateRequest$/, resource: 'pending_update_request' }, + // ---- apps (v1 + v2) + { service: 'apps', v: 'v1', re: /^\/apps$/, resource: 'apps', method: 'list', sqlVerb: 'select', objectKey: '$.apps' }, + { service: 'apps', v: 'v1', re: /^\/apps\/\{\}$/, resource: 'apps', method: 'get', sqlVerb: 'select' }, + { service: 'apps', v: 'v1', re: /^\/apps\/\{\}\/install$/, resource: 'apps', method: 'install', sqlVerb: 'exec' }, + { service: 'apps', v: 'v1', re: /^\/apps\/install\/\{\}\/status$/, resource: 'install_jobs', method: 'get', sqlVerb: 'select' }, + { service: 'apps', v: 'v2', re: /^\/apps$/, resource: 'apps_v2', method: 'list', sqlVerb: 'select', objectKey: '$.apps' }, + { service: 'apps', v: 'v2', re: /^\/apps\/\{\}\/details$/, resource: 'apps_v2', method: 'get', sqlVerb: 'select' }, + { service: 'apps', v: 'v2', re: /^\/apps\/\{\}\/install$/, resource: 'apps_v2', method: 'install', sqlVerb: 'exec' }, + { service: 'apps', v: 'v2', re: /^\/apps\/\{\}\/uninstall$/, resource: 'apps_v2', method: 'uninstall', sqlVerb: 'exec' }, + { service: 'apps', v: 'v2', re: /^\/apps\/\{\}\/upgrade$/, resource: 'apps_v2', method: 'upgrade', sqlVerb: 'exec' }, + { service: 'apps', v: 'v2', verb: 'get', re: /^\/apps\/\{\}\/subscription$/, resource: 'app_subscriptions', method: 'get', sqlVerb: 'select' }, + { service: 'apps', v: 'v2', verb: 'post', re: /^\/apps\/\{\}\/subscription$/, resource: 'app_subscriptions', method: 'subscribe', sqlVerb: 'exec' }, + { service: 'apps', v: 'v2', verb: 'delete', re: /^\/apps\/\{\}\/subscription$/, resource: 'app_subscriptions', method: 'delete', sqlVerb: 'delete' }, + { service: 'apps', v: 'v2', re: /^\/apps\/install\/\{\}\/status$/, resource: 'install_jobs_v2', method: 'get', sqlVerb: 'select' }, + { service: 'apps', v: 'v2', re: /^\/apps\/uninstall\/\{\}\/status$/, resource: 'uninstall_jobs', method: 'get', sqlVerb: 'select' }, + { service: 'apps', v: 'v2', re: /^\/apps\/upgrade\/\{\}\/status$/, resource: 'upgrade_jobs', method: 'get', sqlVerb: 'select' }, + // ---- archive + { service: 'archive', re: /^\/archive\/jobs\/count$/, resource: 'job_counts', method: 'list', sqlVerb: 'select', objectKey: '$.data' }, + { service: 'archive', re: /^\/archive\/\{\}\/jobs(\/\{\})?$/, resource: 'jobs' }, + // ---- budgets + { service: 'budgets', re: /^\/budgets\/usage$/, resource: 'usages', method: 'list', sqlVerb: 'select', objectKey: '$.data' }, + { service: 'budgets', re: /^\/budgets\/\{\}\/usage$/, resource: 'usages', method: 'get', sqlVerb: 'select' }, + // ---- collectors (hand-authored Collector Management API) + { service: 'collectors', re: /^\/collectors\/name\/\{\}$/, resource: 'collectors', method: 'get_by_name', sqlVerb: 'select', objectKey: '$.collector' }, + { service: 'collectors', verb: 'get', re: /^\/collectors\/offline$/, resource: 'offline_collectors', method: 'list', sqlVerb: 'select', objectKey: '$.collectors' }, + { service: 'collectors', verb: 'delete', re: /^\/collectors\/offline$/, resource: 'offline_collectors', method: 'delete', sqlVerb: 'delete' }, + { service: 'collectors', re: /^\/collectors\/overview$/, resource: 'overview', method: 'get', sqlVerb: 'select' }, + { service: 'collectors', re: /^\/collectors\/upgrades\/targets$/, resource: 'upgrade_targets', method: 'list', sqlVerb: 'select', objectKey: '$.targets' }, + { service: 'collectors', re: /^\/collectors\/upgrades\/collectors$/, resource: 'upgradable_collectors', method: 'list', sqlVerb: 'select', objectKey: '$.collectors' }, + { service: 'collectors', verb: 'post', re: /^\/collectors\/upgrades$/, resource: 'upgrades', method: 'create', sqlVerb: 'insert' }, + { service: 'collectors', re: /^\/collectors\/upgrades\/\{\}$/, resource: 'upgrades', method: 'get', sqlVerb: 'select', objectKey: '$.upgrade' }, + { service: 'collectors', re: /^\/collectors\/\{\}\/sources(\/\{\})?$/, resource: 'sources' }, + { service: 'collectors', re: /^\/collectors(\/\{\})?$/, resource: 'collectors' }, + // ---- connections + { service: 'connections', re: /^\/connections\/incidentTemplates$/, resource: 'connections', method: 'get_incident_templates', sqlVerb: 'exec' }, + { service: 'connections', re: /^\/connections\/test$/, resource: 'connections', method: 'test', sqlVerb: 'exec' }, + // ---- content (folders, content items, permissions, async jobs) + { service: 'content', re: /^\/content\/folders\/personal$/, resource: 'personal_folder', method: 'get', sqlVerb: 'select' }, + { service: 'content', re: /^\/content\/folders\/global$/, resource: 'global_folder_jobs', method: 'start', sqlVerb: 'exec' }, + { service: 'content', re: /^\/content\/folders\/global\/\{\}\/status$/, resource: 'global_folder_jobs', method: 'get', sqlVerb: 'select' }, + { service: 'content', re: /^\/content\/folders\/global\/\{\}\/result$/, resource: 'global_folder_results', method: 'list', sqlVerb: 'select', objectKey: '$.data' }, + { service: 'content', re: /^\/content\/folders\/adminRecommended$/, resource: 'admin_recommended_folder_jobs', method: 'start', sqlVerb: 'exec' }, + { service: 'content', re: /^\/content\/folders\/adminRecommended\/\{\}\/status$/, resource: 'admin_recommended_folder_jobs', method: 'get', sqlVerb: 'select' }, + { service: 'content', re: /^\/content\/folders\/adminRecommended\/\{\}\/result$/, resource: 'admin_recommended_folder_results', method: 'get', sqlVerb: 'select' }, + { service: 'content', re: /^\/content\/folders\/installedApps$/, resource: 'installed_apps_folder_jobs', method: 'start', sqlVerb: 'exec' }, + { service: 'content', re: /^\/content\/folders\/installedApps\/\{\}\/status$/, resource: 'installed_apps_folder_jobs', method: 'get', sqlVerb: 'select' }, + { service: 'content', re: /^\/content\/folders\/installedApps\/\{\}\/result$/, resource: 'installed_apps_folder_results', method: 'get', sqlVerb: 'select' }, + { service: 'content', verb: 'post', re: /^\/content\/folders\/\{\}\/import$/, resource: 'import_jobs', method: 'start', sqlVerb: 'exec' }, + { service: 'content', re: /^\/content\/folders\/\{\}\/import\/\{\}\/status$/, resource: 'import_jobs', method: 'get', sqlVerb: 'select' }, + { service: 'content', re: /^\/content\/folders\/\{\}\/import\/\{\}\/result$/, resource: 'import_results', method: 'get', sqlVerb: 'select' }, + { service: 'content', re: /^\/content\/folders(\/\{\})?$/, resource: 'folders' }, + { service: 'content', verb: 'post', re: /^\/content\/\{\}\/export$/, resource: 'export_jobs', method: 'start', sqlVerb: 'exec' }, + { service: 'content', re: /^\/content\/\{\}\/export\/\{\}\/status$/, resource: 'export_jobs', method: 'get', sqlVerb: 'select' }, + { service: 'content', re: /^\/content\/\{\}\/export\/\{\}\/result$/, resource: 'export_results', method: 'get', sqlVerb: 'select' }, + { service: 'content', verb: 'post', re: /^\/content\/\{\}\/copy$/, resource: 'copy_jobs', method: 'start', sqlVerb: 'exec' }, + { service: 'content', re: /^\/content\/\{\}\/copy\/\{\}\/status$/, resource: 'copy_jobs', method: 'get', sqlVerb: 'select' }, + { service: 'content', verb: 'delete', re: /^\/content\/\{\}\/delete$/, resource: 'delete_jobs', method: 'start', sqlVerb: 'exec' }, + { service: 'content', re: /^\/content\/\{\}\/delete\/\{\}\/status$/, resource: 'delete_jobs', method: 'get', sqlVerb: 'select' }, + { service: 'content', verb: 'post', re: /^\/content\/\{\}\/move$/, resource: 'items', method: 'move', sqlVerb: 'exec' }, + { service: 'content', re: /^\/content\/path$/, resource: 'items', method: 'get_by_path', sqlVerb: 'select' }, + { service: 'content', re: /^\/content\/\{\}\/path$/, resource: 'paths', method: 'get', sqlVerb: 'select' }, + { service: 'content', verb: 'get', re: /^\/content\/\{\}\/permissions$/, resource: 'permissions', method: 'get', sqlVerb: 'select' }, + { service: 'content', re: /^\/content\/\{\}\/permissions\/add$/, resource: 'permissions', method: 'add', sqlVerb: 'exec' }, + { service: 'content', re: /^\/content\/\{\}\/permissions\/remove$/, resource: 'permissions', method: 'remove', sqlVerb: 'exec' }, + // ---- content_sync (multi-account content sync jobs) + { service: 'content_sync', verb: 'get', re: /^\/multi-account-management\/content\/sync$/, resource: 'sync_jobs', method: 'get_current', sqlVerb: 'select' }, + { service: 'content_sync', verb: 'post', re: /^\/multi-account-management\/content\/sync$/, resource: 'sync_jobs', method: 'create', sqlVerb: 'insert' }, + { service: 'content_sync', re: /^\/multi-account-management\/content\/sync\/\{\}\/cancel$/, resource: 'sync_jobs', method: 'cancel', sqlVerb: 'exec' }, + { service: 'content_sync', re: /^\/multi-account-management\/content\/sync\/\{\}\/retry$/, resource: 'sync_jobs', method: 'retry', sqlVerb: 'exec' }, + { service: 'content_sync', re: /^\/multi-account-management\/content\/sync\/\{\}\/status$/, resource: 'sync_jobs', method: 'get', sqlVerb: 'select' }, + { service: 'content_sync', re: /^\/multi-account-management\/content\/sync\/\{\}\/info$/, resource: 'sync_job_info', method: 'get', sqlVerb: 'select' }, + { service: 'content_sync', re: /^\/multi-account-management\/content\/sync\/\{\}\/result$/, resource: 'sync_job_results', method: 'list', sqlVerb: 'select', objectKey: '$.contentList' }, + // ---- dashboards + { service: 'dashboards', re: /^\/dashboards\/reportSchedules(\/\{\})?$/, resource: 'report_schedules', listKey: '$.reportSchedules' }, + { service: 'dashboards', verb: 'post', re: /^\/dashboards\/migrate$/, resource: 'migrations', method: 'create', sqlVerb: 'insert' }, + { service: 'dashboards', re: /^\/dashboards\/migrate\/preview$/, resource: 'migrations', method: 'preview', sqlVerb: 'exec' }, + { service: 'dashboards', re: /^\/dashboards\/migrate\/\{\}\/status$/, resource: 'migrations', method: 'get', sqlVerb: 'select' }, + { service: 'dashboards', re: /^\/dashboards\/migrate\/\{\}\/result$/, resource: 'migration_results', method: 'get', sqlVerb: 'select' }, + { service: 'dashboards', verb: 'post', re: /^\/dashboards\/reportJobs$/, resource: 'report_jobs', method: 'create', sqlVerb: 'insert' }, + { service: 'dashboards', re: /^\/dashboards\/reportJobs\/\{\}\/status$/, resource: 'report_jobs', method: 'get', sqlVerb: 'select' }, + { service: 'dashboards', re: /^\/dashboards\/reportJobs\/\{\}\/result$/, ...SKIP('binary_pdf_response') }, + { service: 'dashboards', re: /^\/dashboards(\/\{\})?$/, resource: 'dashboards', listKey: '$.dashboards' }, + // ---- data_deletion_rules + { service: 'data_deletion_rules', re: /^\/dataDeletionRules\/\{\}\/cancel$/, resource: 'data_deletion_rules', method: 'cancel', sqlVerb: 'exec' }, + { service: 'data_deletion_rules', re: /^\/dataDeletionRules\/\{\}\/delete$/, resource: 'data_deletion_rules', method: 'delete', sqlVerb: 'delete' }, + { service: 'data_deletion_rules', re: /^\/dataDeletionRules(\/\{\})?$/, resource: 'data_deletion_rules', listKey: '$.deletionRulesList' }, + // ---- data_masking_rules + { service: 'data_masking_rules', re: /^\/dataMaskingRules\/evaluate$/, resource: 'data_masking_rules', method: 'evaluate', sqlVerb: 'exec' }, + // ---- event_extraction_rules / extraction_rules / fields / partitions / scheduled_views quotas + { re: /\/quota$/, resource: 'quota', method: 'get', sqlVerb: 'select' }, + // ---- fields + { service: 'fields', re: /^\/fields\/\{\}\/disable$/, resource: 'fields', method: 'disable', sqlVerb: 'exec' }, + { service: 'fields', re: /^\/fields\/\{\}\/enable$/, resource: 'fields', method: 'enable', sqlVerb: 'exec' }, + { service: 'fields', re: /^\/fields\/builtin(\/\{\})?$/, resource: 'builtin_fields' }, + { service: 'fields', re: /^\/fields\/dropped$/, resource: 'dropped_fields', method: 'list', sqlVerb: 'select', objectKey: '$.data' }, + { service: 'fields', re: /^\/fields(\/\{\})?$/, resource: 'fields' }, + // ---- feature_settings (singleton list + update) + { service: 'feature_settings', verb: 'get', re: /^\/featureSettings$/, resource: 'feature_settings', method: 'list', sqlVerb: 'select', objectKey: '$.featureSettings' }, + { service: 'feature_settings', verb: 'put', re: /^\/featureSettings$/, resource: 'feature_settings', method: 'update', sqlVerb: 'update' }, + // ---- health_events + { service: 'health_events', verb: 'post', re: /^\/healthEvents\/resources$/, resource: 'health_events', method: 'list_for_resources', sqlVerb: 'exec' }, + // ---- ingest_budgets + { service: 'ingest_budgets', re: /^\/ingestBudgets\/\{\}\/usage\/reset$/, resource: 'ingest_budgets', method: 'reset_usage', sqlVerb: 'exec' }, + // ---- log_searches + { service: 'log_searches', re: /^\/logSearches\/estimatedUsage$/, resource: 'estimated_usage', method: 'estimate', sqlVerb: 'exec' }, + { service: 'log_searches', re: /^\/logSearches\/estimatedUsageByMeteringType$/, resource: 'estimated_usage', method: 'estimate_by_metering_type', sqlVerb: 'exec' }, + { service: 'log_searches', re: /^\/logSearches\/estimatedUsageByTier$/, resource: 'estimated_usage', method: 'estimate_by_tier', sqlVerb: 'exec' }, + { service: 'log_searches', re: /^\/logSearches\/estimatedUsageByView$/, resource: 'estimated_usage', method: 'estimate_by_view', sqlVerb: 'exec' }, + { service: 'log_searches', re: /^\/logSearches(\/\{\})?$/, resource: 'log_searches', listKey: '$.logSearches' }, + // ---- logs_data_forwarding + { service: 'logs_data_forwarding', re: /^\/logsDataForwarding\/destinations(\/\{\})?$/, resource: 'destinations' }, + { service: 'logs_data_forwarding', re: /^\/logsDataForwarding\/rules(\/\{\})?$/, resource: 'rules' }, + // ---- lookup_tables + { service: 'lookup_tables', re: /^\/lookupTables\/\{\}\/deleteTableRow$/, resource: 'lookup_tables', method: 'delete_row', sqlVerb: 'exec' }, + { service: 'lookup_tables', re: /^\/lookupTables\/\{\}\/row$/, resource: 'lookup_tables', method: 'upsert_row', sqlVerb: 'exec' }, + { service: 'lookup_tables', re: /^\/lookupTables\/\{\}\/truncate$/, resource: 'lookup_tables', method: 'truncate', sqlVerb: 'exec' }, + { service: 'lookup_tables', re: /^\/lookupTables\/\{\}\/upload$/, ...SKIP('multipart_file_upload') }, + { service: 'lookup_tables', re: /^\/lookupTables\/jobs\/\{\}\/status$/, resource: 'jobs', method: 'get', sqlVerb: 'select' }, + { service: 'lookup_tables', re: /^\/lookupTables(\/\{\})?$/, resource: 'lookup_tables' }, + // ---- metrics_queries + { service: 'metrics_queries', re: /^\/metricsQueries$/, resource: 'metrics_queries', method: 'run', sqlVerb: 'exec' }, + // ---- metrics_searches (v1 + v2) + { service: 'metrics_searches', v: 'v1', re: /^\/metricsSearches(\/\{\})?$/, resource: 'metrics_searches' }, + { service: 'metrics_searches', v: 'v2', re: /^\/metricsSearches(\/\{\})?$/, resource: 'metrics_searches_v2', listKey: '$.metricsSearches' }, + // ---- library-style services: monitors, muting_schedules, parsers, slos + { re: /^\/(monitors|mutingSchedules|parsers|slos)\/root$/, resource: 'root', method: 'get', sqlVerb: 'select' }, + { re: /^\/(monitors|mutingSchedules|parsers|slos)\/path$/, resource: '@library', method: 'get_by_path', sqlVerb: 'select' }, + { re: /^\/(monitors|mutingSchedules|parsers|slos)\/search$/, resource: 'search', method: 'list', sqlVerb: 'select' }, + { verb: 'get', re: /^\/(monitors|mutingSchedules|parsers|slos)$/, resource: '@library', method: 'read_by_ids', sqlVerb: 'exec' }, + { verb: 'delete', re: /^\/(monitors|mutingSchedules|parsers|slos)$/, resource: '@library', method: 'delete_by_ids', sqlVerb: 'exec' }, + { verb: 'post', re: /^\/(monitors|mutingSchedules|parsers|slos)$/, resource: '@library', method: 'create', sqlVerb: 'insert' }, + { re: /^\/(monitors|mutingSchedules|parsers|slos)\/\{\}\/copy$/, resource: '@library', method: 'copy', sqlVerb: 'exec' }, + { re: /^\/(monitors|mutingSchedules|parsers|slos)\/\{\}\/move$/, resource: '@library', method: 'move', sqlVerb: 'exec' }, + { re: /^\/(monitors|mutingSchedules|parsers|slos)\/\{\}\/export$/, resource: '@library', method: 'export', sqlVerb: 'exec' }, + { re: /^\/(monitors|mutingSchedules|parsers|slos)\/\{\}\/import$/, resource: '@library', method: 'import', sqlVerb: 'exec' }, + { re: /^\/(monitors|mutingSchedules|parsers|slos)\/\{\}\/lock$/, resource: '@library', method: 'lock', sqlVerb: 'exec' }, + { re: /^\/(monitors|mutingSchedules|parsers|slos)\/\{\}\/unlock$/, resource: '@library', method: 'unlock', sqlVerb: 'exec' }, + { re: /^\/(monitors|mutingSchedules|parsers|slos)\/\{\}\/path$/, resource: 'paths', method: 'get', sqlVerb: 'select' }, + { re: /^\/(monitors|mutingSchedules|parsers|slos)\/\{\}$/, resource: '@library' }, + { service: 'monitors', re: /^\/monitors\/disable$/, resource: 'monitors', method: 'disable_by_ids', sqlVerb: 'exec' }, + { service: 'monitors', verb: 'get', re: /^\/monitors\/\{\}\/permissions$/, resource: 'permissions', method: 'list', sqlVerb: 'select', objectKey: '$.permissionStatements' }, + { service: 'monitors', re: /^\/monitors\/\{\}\/permissionSummariesBySubjects$/, resource: 'permission_summaries', method: 'list', sqlVerb: 'select', objectKey: '$.permissionSummariesBySubjects' }, + { service: 'monitors', re: /^\/monitors\/permissions\/set$/, resource: 'permissions', method: 'set', sqlVerb: 'exec' }, + { service: 'monitors', re: /^\/monitors\/permissions\/revoke$/, resource: 'permissions', method: 'revoke', sqlVerb: 'exec' }, + { service: 'monitors', re: /^\/monitors\/playbooks$/, resource: 'playbooks', method: 'list', sqlVerb: 'select' }, + { service: 'monitors', re: /^\/monitors\/playbooksDetails$/, resource: 'playbook_details', method: 'list', sqlVerb: 'select' }, + { service: 'monitors', re: /^\/monitors\/usageInfo$/, resource: 'usage_info', method: 'list', sqlVerb: 'select' }, + { service: 'slos', re: /^\/slos\/sli$/, resource: 'slos', method: 'get_sli', sqlVerb: 'exec' }, + { service: 'slos', re: /^\/slos\/usageInfo$/, resource: 'usage_info', method: 'list', sqlVerb: 'select' }, + { service: 'parsers', re: /^\/system\/parsers\/\{\}\/lock$/, resource: 'system_parsers', method: 'lock', sqlVerb: 'exec' }, + { service: 'parsers', re: /^\/system\/parsers\/\{\}\/unlock$/, resource: 'system_parsers', method: 'unlock', sqlVerb: 'exec' }, + // ---- oauth + { service: 'oauth', re: /^\/oauth\/clients\/\{\}\/rotate$/, resource: 'clients', method: 'rotate_secret', sqlVerb: 'exec' }, + { service: 'oauth', re: /^\/oauth\/clients(\/\{\})?$/, resource: 'clients' }, + { service: 'oauth', re: /^\/oauth\/consents(\/\{\})?$/, resource: 'consents' }, + { service: 'oauth', re: /^\/oauth\/scopes$/, resource: 'scopes', method: 'list', sqlVerb: 'select', objectKey: '$.data' }, + // ---- organizations + // EXEC-only resource: the method must not be named get/list (any-sdk infers + // SELECT from those names when a resource declares no SQL verbs) + { service: 'organizations', re: /^\/organizations\/usages$/, resource: 'child_usages', method: 'get_usages', sqlVerb: 'exec' }, + // ---- ot_collectors + { service: 'ot_collectors', verb: 'post', re: /^\/otCollectors$/, resource: 'ot_collectors', method: 'list', sqlVerb: 'select', objectKey: '$.data' }, + { service: 'ot_collectors', re: /^\/otCollectors\/offline$/, resource: 'ot_collectors', method: 'delete_offline', sqlVerb: 'exec' }, + { service: 'ot_collectors', re: /^\/otCollectors\/otCollectorsByName$/, resource: 'ot_collectors', method: 'get_by_names', sqlVerb: 'select', objectKey: '$.data' }, + { service: 'ot_collectors', re: /^\/otCollectors\/totalCount$/, resource: 'total_count', method: 'get', sqlVerb: 'select' }, + { service: 'ot_collectors', re: /^\/otCollectors\/\{\}$/, resource: 'ot_collectors' }, + // ---- partitions + { service: 'partitions', re: /^\/partitions\/\{\}\/cancelRetentionUpdate$/, resource: 'partitions', method: 'cancel_retention_update', sqlVerb: 'exec' }, + { service: 'partitions', re: /^\/partitions\/\{\}\/decommission$/, resource: 'partitions', method: 'decommission', sqlVerb: 'exec' }, + // ---- password_policy / policies (singletons) + { service: 'password_policy', re: /^\/passwordPolicy$/, resource: 'password_policy' }, + { service: 'policies', re: /^\/policies\/oAuthCimd$/, resource: 'oauth_cimd', singleton: true }, + { service: 'policies', re: /^\/policies\/([A-Za-z]+)$/, resource: '@last', singleton: true }, + // ---- roles (v1 + v2) + { service: 'roles', v: 'v1', re: /^\/roles\/\{\}\/users\/\{\}$/, verb: 'put', resource: 'roles', method: 'assign_user', sqlVerb: 'exec' }, + { service: 'roles', v: 'v1', re: /^\/roles\/\{\}\/users\/\{\}$/, verb: 'delete', resource: 'roles', method: 'remove_user', sqlVerb: 'exec' }, + { service: 'roles', v: 'v1', re: /^\/roles(\/\{\})?$/, resource: 'roles' }, + { service: 'roles', v: 'v2', re: /^\/roles\/\{\}\/users\/\{\}$/, verb: 'put', resource: 'roles_v2', method: 'assign_user', sqlVerb: 'exec' }, + { service: 'roles', v: 'v2', re: /^\/roles\/\{\}\/users\/\{\}$/, verb: 'delete', resource: 'roles_v2', method: 'remove_user', sqlVerb: 'exec' }, + { service: 'roles', v: 'v2', re: /^\/roles(\/\{\})?$/, resource: 'roles_v2' }, + // ---- saml + { service: 'saml', verb: 'post', re: /^\/saml\/allowlistedUsers\/\{\}$/, resource: 'allowlisted_users', method: 'add', sqlVerb: 'exec' }, + { service: 'saml', re: /^\/saml\/allowlistedUsers(\/\{\})?$/, resource: 'allowlisted_users' }, + { service: 'saml', re: /^\/saml\/identityProviders\/\{\}\/metadata$/, resource: 'identity_provider_metadata', method: 'get', sqlVerb: 'select' }, + { service: 'saml', re: /^\/saml\/identityProviders(\/\{\})?$/, resource: 'identity_providers' }, + { service: 'saml', re: /^\/saml\/lockdown\/enable$/, resource: 'lockdown', method: 'enable', sqlVerb: 'exec' }, + { service: 'saml', re: /^\/saml\/lockdown\/disable$/, resource: 'lockdown', method: 'disable', sqlVerb: 'exec' }, + // ---- scheduled_views + { service: 'scheduled_views', re: /^\/scheduledViews\/\{\}\/disable$/, resource: 'scheduled_views', method: 'disable', sqlVerb: 'exec' }, + { service: 'scheduled_views', re: /^\/scheduledViews\/\{\}\/pause$/, resource: 'scheduled_views', method: 'pause', sqlVerb: 'exec' }, + { service: 'scheduled_views', re: /^\/scheduledViews\/\{\}\/start$/, resource: 'scheduled_views', method: 'start', sqlVerb: 'exec' }, + // ---- schemas + { service: 'schemas', re: /^\/schemaIdentitiesGrouped$/, resource: 'schema_identities', method: 'list', sqlVerb: 'select', objectKey: '$.data' }, + // ---- scim + { service: 'scim', verb: 'get', re: /^\/scim\/Users$/, resource: 'users', method: 'list', sqlVerb: 'select', objectKey: '$.Resources' }, + { service: 'scim', verb: 'patch', re: /^\/scim\/Users\/\{\}$/, resource: 'users', method: 'update', sqlVerb: 'update' }, + { service: 'scim', verb: 'put', re: /^\/scim\/Users\/\{\}$/, resource: 'users', method: 'replace', sqlVerb: 'replace' }, + { service: 'scim', re: /^\/scim\/Users(\/\{\})?$/, resource: 'users' }, + // ---- search_jobs + { service: 'search_jobs', re: /^\/search\/jobs\/\{\}\/messages$/, resource: 'messages', method: 'list', sqlVerb: 'select', objectKey: '$.messages' }, + { service: 'search_jobs', re: /^\/search\/jobs\/\{\}\/records$/, resource: 'records', method: 'list', sqlVerb: 'select', objectKey: '$.records' }, + { service: 'search_jobs', re: /^\/search\/jobs(\/\{\})?$/, resource: 'search_jobs' }, + // ---- service_accounts + { service: 'service_accounts', re: /^\/serviceAccounts\/\{\}\/accessKeys(\/\{\})?$/, resource: 'access_keys' }, + { service: 'service_accounts', re: /^\/serviceAccounts(\/\{\})?$/, resource: 'service_accounts' }, + // ---- service_allowlist + { service: 'service_allowlist', re: /^\/serviceAllowlist\/addresses\/add$/, resource: 'addresses', method: 'add', sqlVerb: 'exec' }, + { service: 'service_allowlist', re: /^\/serviceAllowlist\/addresses\/remove$/, resource: 'addresses', method: 'remove', sqlVerb: 'exec' }, + { service: 'service_allowlist', re: /^\/serviceAllowlist\/addresses$/, resource: 'addresses', method: 'list', sqlVerb: 'select', objectKey: '$.data' }, + { service: 'service_allowlist', re: /^\/serviceAllowlist\/status$/, resource: 'status', method: 'get', sqlVerb: 'select' }, + { service: 'service_allowlist', re: /^\/serviceAllowlist\/enable$/, resource: 'status', method: 'enable', sqlVerb: 'exec' }, + { service: 'service_allowlist', re: /^\/serviceAllowlist\/disable$/, resource: 'status', method: 'disable', sqlVerb: 'exec' }, + // ---- source_templates (v1 deprecated surface skipped, v2 mapped) + { service: 'source_templates', re: /^\/sourceTemplate(\/|$)/, ...SKIP('deprecated_superseded_by_v2') }, + { service: 'source_templates', re: /^\/upgrade\/sourceTemplate\/\{\}$/, ...SKIP('deprecated_superseded_by_v2') }, + { service: 'source_templates', re: /^\/sourceTemplates\/getLinkedSourceTemplatesImpact$/, resource: 'source_templates', method: 'get_linked_impact', sqlVerb: 'exec' }, + { service: 'source_templates', re: /^\/sourceTemplates\/\{\}\/status$/, resource: 'source_templates', method: 'update_status', sqlVerb: 'exec' }, + { service: 'source_templates', re: /^\/sourceTemplates\/\{\}\/upgrade$/, resource: 'source_templates', method: 'upgrade', sqlVerb: 'exec' }, + { service: 'source_templates', verb: 'post', re: /^\/sourceTemplates\/\{\}$/, resource: 'source_templates', method: 'update', sqlVerb: 'update' }, + { service: 'source_templates', re: /^\/sourceTemplates(\/\{\})?$/, resource: 'source_templates' }, + // ---- threat_intel + { service: 'threat_intel', re: /^\/threatIntel\/datastore\/dataSource\/\{\}$/, resource: 'data_sources', method: 'update', sqlVerb: 'update' }, + { service: 'threat_intel', re: /^\/threatIntel\/datastore\/db$/, resource: 'datastore', singleton: true }, + { service: 'threat_intel', verb: 'get', re: /^\/threatIntel\/datastore\/retentionPeriod$/, resource: 'retention_period', method: 'get', sqlVerb: 'select' }, + { service: 'threat_intel', verb: 'post', re: /^\/threatIntel\/datastore\/retentionPeriod$/, resource: 'retention_period', method: 'update', sqlVerb: 'update' }, + { service: 'threat_intel', verb: 'delete', re: /^\/threatIntel\/datastore\/indicators$/, resource: 'indicators', method: 'remove', sqlVerb: 'exec' }, + { service: 'threat_intel', re: /^\/threatIntel\/datastore\/indicators\/normalized$/, resource: 'indicators', method: 'upload_normalized', sqlVerb: 'exec' }, + { service: 'threat_intel', re: /^\/threatIntel\/datastore\/indicators\/stix$/, resource: 'indicators', method: 'upload_stix', sqlVerb: 'exec' }, + // ---- tracing + { service: 'tracing', re: /^\/tracing\/serviceMap$/, resource: 'service_map', method: 'get', sqlVerb: 'select' }, + { service: 'tracing', re: /^\/tracing\/metrics$/, resource: 'metrics', method: 'list', sqlVerb: 'select', objectKey: '$.metrics' }, + { service: 'tracing', verb: 'post', re: /^\/tracing\/tracequery$/, resource: 'trace_queries', method: 'create', sqlVerb: 'insert' }, + { service: 'tracing', verb: 'delete', re: /^\/tracing\/tracequery\/\{\}$/, resource: 'trace_queries', method: 'delete', sqlVerb: 'delete' }, + { service: 'tracing', re: /^\/tracing\/tracequery\/\{\}\/status$/, resource: 'trace_queries', method: 'get', sqlVerb: 'select' }, + { service: 'tracing', re: /^\/tracing\/tracequery\/\{\}\/rows\/\{\}\/traces$/, resource: 'trace_query_results', method: 'list', sqlVerb: 'select', objectKey: '$.results' }, + { service: 'tracing', re: /^\/tracing\/tracequery\/fields$/, resource: 'trace_query_fields', method: 'list', sqlVerb: 'select', objectKey: '$.fields' }, + { service: 'tracing', re: /^\/tracing\/tracequery\/fields\/\{\}\/values$/, resource: 'trace_query_field_values', method: 'list', sqlVerb: 'select', objectKey: '$.fieldValues' }, + { service: 'tracing', verb: 'post', re: /^\/tracing\/spanquery$/, resource: 'span_queries', method: 'create', sqlVerb: 'insert' }, + { service: 'tracing', verb: 'delete', re: /^\/tracing\/spanquery\/\{\}$/, resource: 'span_queries', method: 'delete', sqlVerb: 'delete' }, + { service: 'tracing', re: /^\/tracing\/spanquery\/\{\}\/status$/, resource: 'span_queries', method: 'get', sqlVerb: 'select' }, + { service: 'tracing', re: /^\/tracing\/spanquery\/\{\}\/pause$/, resource: 'span_queries', method: 'pause', sqlVerb: 'exec' }, + { service: 'tracing', re: /^\/tracing\/spanquery\/\{\}\/resume$/, resource: 'span_queries', method: 'resume', sqlVerb: 'exec' }, + { service: 'tracing', re: /^\/tracing\/spanquery\/\{\}\/aggregates$/, resource: 'span_query_aggregates', method: 'get', sqlVerb: 'select' }, + { service: 'tracing', re: /^\/tracing\/spanquery\/\{\}\/rows\/\{\}\/facets$/, resource: 'span_query_facets', method: 'list', sqlVerb: 'select', objectKey: '$.facets' }, + { service: 'tracing', re: /^\/tracing\/spanquery\/\{\}\/rows\/\{\}\/spans$/, resource: 'span_query_results', method: 'list', sqlVerb: 'select', objectKey: '$.spanPage' }, + { service: 'tracing', re: /^\/tracing\/spanquery\/fields$/, resource: 'span_query_fields', method: 'list', sqlVerb: 'select', objectKey: '$.fields' }, + { service: 'tracing', re: /^\/tracing\/spanquery\/fields\/\{\}\/values$/, resource: 'span_query_field_values', method: 'list', sqlVerb: 'select', objectKey: '$.fieldValues' }, + { service: 'tracing', re: /^\/tracing\/traces\/\{\}$/, resource: 'traces', method: 'get', sqlVerb: 'select' }, + { service: 'tracing', re: /^\/tracing\/traces\/\{\}\/exists$/, resource: 'trace_existence', method: 'get', sqlVerb: 'select' }, + { service: 'tracing', re: /^\/tracing\/traces\/\{\}\/spans$/, resource: 'spans', method: 'list', sqlVerb: 'select', objectKey: '$.spanPage' }, + { service: 'tracing', re: /^\/tracing\/traces\/\{\}\/spans\/\{\}$/, resource: 'spans', method: 'get', sqlVerb: 'select' }, + { service: 'tracing', re: /^\/tracing\/traces\/\{\}\/spans\/\{\}\/billingInfo$/, resource: 'span_billing_info', method: 'get', sqlVerb: 'select' }, + { service: 'tracing', re: /^\/tracing\/traces\/\{\}\/traceEvents$/, resource: 'trace_events', method: 'get', sqlVerb: 'select' }, + { service: 'tracing', re: /^\/tracing\/traces\/\{\}\/criticalPath$/, resource: 'critical_paths', method: 'list', sqlVerb: 'select', objectKey: '$.segments' }, + { service: 'tracing', re: /^\/tracing\/traces\/\{\}\/criticalPath\/breakdown\/service$/, resource: 'critical_path_service_breakdowns', method: 'list', sqlVerb: 'select', objectKey: '$.elements' }, + // ---- users lifecycle + { service: 'users', re: /^\/users\/\{\}\/email\/requestChange$/, resource: 'users', method: 'request_change_email', sqlVerb: 'exec' }, + { service: 'users', re: /^\/users\/\{\}\/mfa\/disable$/, resource: 'users', method: 'disable_mfa', sqlVerb: 'exec' }, + { service: 'users', re: /^\/users\/\{\}\/password\/reset$/, resource: 'users', method: 'reset_password', sqlVerb: 'exec' }, + { service: 'users', re: /^\/users\/\{\}\/resendWelcomeEmail$/, resource: 'users', method: 'resend_welcome_email', sqlVerb: 'exec' }, + { service: 'users', re: /^\/users\/\{\}\/unlock$/, resource: 'users', method: 'unlock', sqlVerb: 'exec' } +]; + +// The library-style services (monitors, muting_schedules, parsers, slos) +// name their main resource after the service. +function libraryResource(service) { + return service; +} + +// --------------------------------------------------------------------------- +// Generic derivation for standard CRUD shapes: +// / GET list / POST create +// //{id} GET get / PUT update / PATCH update / DELETE delete +// singleton paths GET get / PUT update / DELETE delete +// --------------------------------------------------------------------------- +function genericVerb(entry, rule) { + const { op, verb, pathKey, resolve } = entry; + const norm = normalizePath(pathKey); + const lastIsParam = /\{\}$/.test(norm); + const hint = rule?.resource && !rule.resource.startsWith('@') ? rule.resource : ''; + const env = classifyEnvelope(op, resolve, hint); + const singleton = !!rule?.singleton || (!lastIsParam && verb !== 'post' && env.envelope !== 'list' && env.envelope !== 'bare-array'); + if (verb === 'get') { + if (lastIsParam) return { method: 'get', sqlVerb: 'select', objectKey: env.envelope === 'wrapped' ? env.key : '' }; + if (env.envelope === 'list') return { method: 'list', sqlVerb: 'select', objectKey: rule?.listKey || env.key }; + if (env.envelope === 'bare-array') return { method: 'list', sqlVerb: 'select', objectKey: '' }; + return { method: 'get', sqlVerb: 'select', objectKey: env.envelope === 'wrapped' ? env.key : '' }; + } + if (verb === 'post') { + if (!hasRequestBody(op)) return { error: 'POST without a request body has no generic mapping (needs an explicit EXEC rule)' }; + if (lastIsParam) return { error: 'POST on an id path has no generic mapping (needs an explicit rule)' }; + return { method: 'create', sqlVerb: 'insert', objectKey: '' }; + } + if (verb === 'put' || verb === 'patch') { + if (lastIsParam || singleton) return { method: 'update', sqlVerb: 'update', objectKey: '' }; + return { error: `${verb.toUpperCase()} on a collection path has no generic mapping (needs an explicit rule)` }; + } + if (verb === 'delete') { + if (lastIsParam || singleton) return { method: 'delete', sqlVerb: 'delete', objectKey: '' }; + return { error: 'DELETE on a collection path has no generic mapping (needs an explicit rule)' }; + } + return { error: `unhandled verb ${verb}` }; +} + +function genericResource(entry) { + const norm = normalizePath(entry.pathKey); + const statics = norm.split('/').filter((s) => s && s !== '{}'); + const last = statics[statics.length - 1]; + const lastIsParam = /\{\}$/.test(norm); + const env = classifyEnvelope(entry.op, entry.resolve); + const name = camelToSnake(last); + if (lastIsParam || env.envelope === 'list' || entry.verb === 'post') return pluralize(name); + return name; +} + +function mapOperation(entry) { + const { service, pathKey, verb, op } = entry; + const norm = normalizePath(pathKey); + const version = apiVersion(pathKey); + const rule = RULES.find((r) => + (!r.service || r.service === service) && + (!r.verb || r.verb === verb) && + (!r.v || r.v === version) && + r.re.test(norm)); + if (rule?.skip) return { resource: 'skip_this_resource', method: '', sqlVerb: '', objectKey: '', skip: rule.skip }; + let resource = rule?.resource; + if (resource === '@library') resource = libraryResource(service); + else if (resource === '@last') resource = camelToSnake(norm.split('/').filter((s) => s && s !== '{}').pop()); + else if (!resource) resource = genericResource(entry); + if (rule?.method) { + return { resource, method: rule.method, sqlVerb: rule.sqlVerb, objectKey: rule.objectKey || '' }; + } + const g = genericVerb(entry, rule); + if (g.error) return { error: g.error }; + return { resource, method: g.method, sqlVerb: g.sqlVerb, objectKey: g.objectKey || '' }; +} + +// --------------------------------------------------------------------------- +// Load spec operations and the CSV +// --------------------------------------------------------------------------- +const { ops } = indexOperations(sourceDir, yaml); +if (ops.size === 0) { + console.error(`Error: no operations found in ${sourceDir} - run npm run split first`); + process.exit(1); +} +if (!fs.existsSync(csvPath)) { + console.error(`Error: ${csvPath} not found - run npm run generate-mappings first`); + process.exit(1); +} +let rows = parseCsv(fs.readFileSync(csvPath, 'utf8')); +const header = rows[0]; +const col = Object.fromEntries(header.map((h, i) => [h, i])); +for (const required of ['filename', 'path', 'verb', 'operationId', 'stackql_resource_name', 'stackql_method_name', 'stackql_verb', 'stackql_object_key']) { + if (!(required in col)) { + console.error(`Missing expected CSV column: ${required}`); + process.exit(1); + } +} + +const errors = []; +const stats = { select: 0, insert: 0, update: 0, replace: 0, delete: 0, exec: 0, skipped: 0, kept: 0, derived: 0, pruned: 0, drift: 0, deduped: 0 }; +const skipsByReason = {}; +const driftReport = []; +const seenKeys = new Set(); +const keptRows = []; + +// provider-utils analyze treats a row whose method / verb is empty as +// unmapped and appends it again on every refresh, which is exactly the shape +// of a reason-coded skip row - keep the first row per operation key and drop +// the later duplicates +const firstRowByKey = new Map(); +const dedupedRows = []; +for (const row of rows.slice(1)) { + const key = `${row[col.filename]}::${row[col.path]}::${row[col.verb]}`; + if (firstRowByKey.has(key)) { stats.deduped++; continue; } + firstRowByKey.set(key, row); + dedupedRows.push(row); +} + +for (const row of dedupedRows) { + const key = `${row[col.filename]}::${row[col.path]}::${row[col.verb]}`; + const entry = ops.get(key); + if (!entry) { + console.warn(`pruned retired operation: ${row[col.filename]} ${row[col.verb].toUpperCase()} ${row[col.path]} (${row[col.operationId]})`); + stats.pruned++; + continue; + } + seenKeys.add(key); + const committed = row[col.stackql_resource_name]; + const derived = mapOperation(entry); + if (derived.error) { + if (!committed || rebuild) errors.push(`${entry.filename} ${entry.verb.toUpperCase()} ${entry.pathKey} (${entry.op.operationId}): ${derived.error}`); + } + if (committed && !rebuild) { + stats.kept++; + if (!derived.error && (derived.resource !== committed || derived.method !== row[col.stackql_method_name] || derived.sqlVerb !== row[col.stackql_verb] || (derived.objectKey || '') !== (row[col.stackql_object_key] || ''))) { + stats.drift++; + driftReport.push(`${entry.filename} ${entry.verb.toUpperCase()} ${entry.pathKey}: committed ${committed}.${row[col.stackql_method_name]} [${row[col.stackql_verb]}${row[col.stackql_object_key] ? ' ' + row[col.stackql_object_key] : ''}] vs rules ${derived.resource}.${derived.method} [${derived.sqlVerb}${derived.objectKey ? ' ' + derived.objectKey : ''}]`); + } + } else if (!derived.error) { + stats.derived++; + row[col.stackql_resource_name] = derived.resource; + row[col.stackql_method_name] = derived.method; + row[col.stackql_verb] = derived.sqlVerb; + row[col.stackql_object_key] = derived.objectKey || ''; + } + keptRows.push(row); +} +rows = [header, ...keptRows]; + +// every spec operation must have a CSV row (else generate-provider misses it) +for (const key of ops.keys()) { + if (!seenKeys.has(key)) errors.push(`in spec but not in CSV (run npm run generate-mappings): ${key}`); +} + +// --------------------------------------------------------------------------- +// Consistency checks over the final rows +// --------------------------------------------------------------------------- +const methodSeen = new Map(); +const sigSeen = new Map(); +for (const row of rows.slice(1)) { + const resource = row[col.stackql_resource_name]; + const key = `${row[col.filename]}::${row[col.path]}::${row[col.verb]}`; + const entry = ops.get(key); + if (!resource) { errors.push(`unmapped: ${key}`); continue; } + if (resource === 'skip_this_resource') { + stats.skipped++; + const reason = (RULES.find((r) => r.skip && (!r.service || r.service === entry.service) && r.re.test(normalizePath(entry.pathKey))) || {}).skip || 'unspecified'; + skipsByReason[reason] = (skipsByReason[reason] || 0) + 1; + continue; + } + const method = row[col.stackql_method_name]; + const sqlVerb = row[col.stackql_verb]; + if (!method || !sqlVerb) { errors.push(`${key}: mapped to ${resource} but method/verb empty`); continue; } + if (!/^[a-z][a-z0-9_]*$/.test(resource) || !/^[a-z][a-z0-9_]*$/.test(method)) errors.push(`${key}: resource/method must be snake_case (${resource}.${method})`); + if (!['select', 'insert', 'update', 'replace', 'delete', 'exec'].includes(sqlVerb)) errors.push(`${key}: unknown sql verb ${sqlVerb}`); + stats[sqlVerb] = (stats[sqlVerb] || 0) + 1; + if (sqlVerb === 'insert' && !hasRequestBody(entry.op)) errors.push(`${key}: INSERT method ${resource}.${method} has no request body (registry tests require a request schema)`); + // any-sdk infers SELECT from the method names select / list / aggregatedList / get + // when a resource declares no SQL verbs (resource.go), so an EXEC method may not use them + if (sqlVerb === 'exec' && ['select', 'list', 'aggregatedList', 'get'].includes(method)) errors.push(`${key}: EXEC method ${resource}.${method} uses a name any-sdk infers as SELECT`); + if (['insert', 'update', 'replace'].includes(sqlVerb) && hasRequestBody(entry.op) && !/json/.test(requestBodyMediaType(entry.op))) { + errors.push(`${key}: ${sqlVerb.toUpperCase()} method ${resource}.${method} has a non-JSON request body (${requestBodyMediaType(entry.op)})`); + } + const service = entry.service; + const methodKey = `${service}.${resource}.${method}`; + if (methodSeen.has(methodKey)) errors.push(`duplicate method ${methodKey} (${methodSeen.get(methodKey)} and ${entry.pathKey}:${entry.verb})`); + methodSeen.set(methodKey, `${entry.pathKey}:${entry.verb}`); + if (sqlVerb === 'exec') continue; + // signature = required inputs: path params plus required query/header params + const requiredExtra = [...(entry.pathItem?.parameters || []), ...(entry.op.parameters || [])] + .map((p) => entry.resolve(p)) + .filter((p) => p && (p.in === 'query' || p.in === 'header') && p.required) + .map((p) => p.name); + const sig = [...pathParams(entry.pathKey), ...requiredExtra].sort().join(','); + const sigKey = `${service}.${resource}.${sqlVerb}::${sig}`; + if (sigSeen.has(sigKey)) errors.push(`signature clash on ${service}.${resource} ${sqlVerb} [${sig}] (${sigSeen.get(sigKey)} and ${method})`); + sigSeen.set(sigKey, method); +} + +if (driftReport.length > 0) { + console.log(`note: ${driftReport.length} committed mapping(s) differ from what the rules derive today (the committed CSV wins; use --rebuild to re-derive everything):`); + for (const d of driftReport) console.log(` ${d}`); +} +if (errors.length > 0) { + console.error(`FAILED with ${errors.length} error(s), nothing written:`); + for (const e of errors) console.error(` ${e}`); + process.exit(1); +} + +const outArgIdx = args.indexOf('--out'); +const outPath = outArgIdx !== -1 ? path.resolve(args[outArgIdx + 1]) : csvPath; +if (!checkOnly) fs.writeFileSync(outPath, writeCsv(rows)); + +const resourcesByService = new Map(); +for (const row of rows.slice(1)) { + const resource = row[col.stackql_resource_name]; + if (!resource || resource === 'skip_this_resource') continue; + const service = row[col.filename].replace(/\.yaml$/, ''); + if (!resourcesByService.has(service)) resourcesByService.set(service, new Set()); + resourcesByService.get(service).add(resource); +} +let resourceCount = 0; +for (const s of resourcesByService.values()) resourceCount += s.size; +console.log(`${checkOnly ? 'check' : rebuild ? 'rebuild' : 'fill'}: ${stats.kept} kept, ${stats.derived} derived, ${stats.pruned} pruned, ${stats.deduped} duplicate row(s) dropped; select ${stats.select}, insert ${stats.insert}, update ${stats.update}, replace ${stats.replace}, delete ${stats.delete}, exec ${stats.exec}; skipped ${stats.skipped} (${Object.entries(skipsByReason).map(([k, v]) => `${k}: ${v}`).join(', ') || 'none'}); ${resourceCount} resources across ${resourcesByService.size} services`); +if (args.includes('--summary')) { + for (const [service, resources] of [...resourcesByService.entries()].sort()) console.log(` ${service}: ${[...resources].sort().join(', ')}`); +} diff --git a/provider-dev/scripts/post_process.mjs b/provider-dev/scripts/post_process.mjs new file mode 100644 index 0000000..2424b3d --- /dev/null +++ b/provider-dev/scripts/post_process.mjs @@ -0,0 +1,165 @@ +#!/usr/bin/env node + +// Post-generation fixes for things the provider-utils generator cannot +// express. Idempotent; re-run after every generate. Validates and fails +// without writing. +// +// 1. snake_case surface. `request.nativeCasing: camel` on every method that +// is not a body-less EXEC (paired with `snake_case_aliases: true` on the +// provider config): snake_case WHERE / INSERT keys resolve to the +// camelCase wire parameters and body attributes, and SELECT / DESCRIBE +// columns present as snake aliases. A body-less EXEC method gets NO +// request block at all - stackql's EXEC analyzer fails on a request block +// without a body schema (`no request body for operation`), the google +// provider finding. Methods with a body also declare the body mediaType +// (application/json, or application/scim+json for the SCIM surface). +// +// 2. Object keys on non-GET SELECT methods. The generator only carries the +// CSV stackql_object_key onto GET operations; the POST-backed collection +// read (ot_collectors.list, POST /v1/otCollectors) needs it too. +// +// 3. Pagination overrides. The service-level config (token query parameter +// in, `next` body token out) is the Sumo Logic convention; a few list +// operations deviate and get a method-level pagination block: +// nextToken body token - data archiving destinations, log data +// forwarding destinations and rules +// token body token - saved log searches +// next in the request BODY - the OpenTelemetry collectors list, a POST +// whose page cursor travels in the body +// +// 4. Scalar JSON responses. GET /v1/account/accountOwner returns a bare JSON +// string, which projects no rows. The response is wrapped into an object +// with a Go-template transform (the same mechanism the provider-utils +// normalize pass uses for bare arrays), with a synthesised wrapper schema +// so DESCRIBE shows the column. +// +// 5. Sanity: every service carries the region server template with the +// SUMOLOGIC_ENVIRONMENT x-stackQL-envVar, and every skip in the CSV is +// absent from the resources. +// +// Usage: node provider-dev/scripts/post_process.mjs + +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import yaml from 'js-yaml'; +import { parseCsv } from './lib/spec_helpers.mjs'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const servicesDir = path.join(repoRoot, 'provider-dev', 'openapi', 'src', 'sumologic', 'v00.00.00000', 'services'); +const csvPath = path.join(repoRoot, 'provider-dev', 'config', 'all_services.csv'); + +const PAGINATION_OVERRIDES = [ + { service: 'data_archiving', path: '/v1/dataarchiving/destinations', verb: 'get', + pagination: { requestToken: { key: 'token', location: 'query' }, responseToken: { key: 'nextToken', location: 'body' } } }, + { service: 'logs_data_forwarding', path: '/v1/logsDataForwarding/destinations', verb: 'get', + pagination: { requestToken: { key: 'token', location: 'query' }, responseToken: { key: 'nextToken', location: 'body' } } }, + { service: 'logs_data_forwarding', path: '/v1/logsDataForwarding/rules', verb: 'get', + pagination: { requestToken: { key: 'token', location: 'query' }, responseToken: { key: 'nextToken', location: 'body' } } }, + { service: 'log_searches', path: '/v1/logSearches', verb: 'get', + pagination: { requestToken: { key: 'token', location: 'query' }, responseToken: { key: 'token', location: 'body' } } }, + { service: 'ot_collectors', path: '/v1/otCollectors', verb: 'post', + pagination: { requestToken: { key: 'next', location: 'body' }, responseToken: { key: 'next', location: 'body' } } } +]; + +const SCALAR_WRAPS = [ + { service: 'account', path: '/v1/account/accountOwner', verb: 'get', key: 'accountOwner', schemaName: 'AccountOwnerResponse', + description: 'Email address of the account owner (the bare JSON string returned by the API, wrapped so it projects as a row).' } +]; + +if (!fs.existsSync(servicesDir)) { + console.error(`Error: ${servicesDir} not found - run the generate step first`); + process.exit(1); +} + +// CSV: (service, path, verb) -> row +const rows = parseCsv(fs.readFileSync(csvPath, 'utf8')); +const col = Object.fromEntries(rows[0].map((h, i) => [h, i])); +const csvByKey = new Map(); +for (const r of rows.slice(1)) csvByKey.set(`${r[col.filename].replace(/\.yaml$/, '')}::${r[col.path]}::${r[col.verb]}`, r); + +function refToPathVerb(ref) { + const parts = ref.replace(/^#\/paths\//, '').split('/'); + const verb = parts.pop(); + return { pathKey: parts.join('/').replace(/~1/g, '/'), verb }; +} + +const errors = []; +const stats = { services: 0, methods: 0, cased: 0, bodyMedia: 0, execNoRequest: 0, objectKeys: 0, pagination: 0 }; +const docs = new Map(); +const overridesApplied = new Set(); + +for (const f of fs.readdirSync(servicesDir).filter((x) => x.endsWith('.yaml')).sort()) { + const service = f.replace(/\.yaml$/, ''); + const doc = yaml.load(fs.readFileSync(path.join(servicesDir, f), 'utf8')); + stats.services++; + const srv = doc.servers?.[0]; + if (!srv || !/\{region\}/.test(srv.url) || srv.variables?.region?.['x-stackQL-envVar'] !== 'SUMOLOGIC_ENVIRONMENT') { + errors.push(`${f}: top-level server is not the region template with x-stackQL-envVar SUMOLOGIC_ENVIRONMENT`); + } + const resources = doc.components?.['x-stackQL-resources'] || {}; + if (Object.keys(resources).length === 0) errors.push(`${f}: no x-stackQL-resources`); + for (const [resName, res] of Object.entries(resources)) { + const verbByRef = new Map(); + for (const [sqlVerb, refs] of Object.entries(res.sqlVerbs || {})) for (const r of refs || []) verbByRef.set(r.$ref, sqlVerb); + for (const [methodName, method] of Object.entries(res.methods || {})) { + stats.methods++; + const { pathKey, verb } = refToPathVerb(method.operation.$ref); + const op = doc.paths?.[pathKey]?.[verb]; + if (!op) { errors.push(`${f}: ${resName}.${methodName} references missing operation ${verb.toUpperCase()} ${pathKey}`); continue; } + const sqlVerb = verbByRef.get(`#/components/x-stackQL-resources/${resName}/methods/${methodName}`) || 'exec'; + const csvRow = csvByKey.get(`${service}::${pathKey}::${verb}`); + if (!csvRow) { errors.push(`${f}: ${resName}.${methodName} (${verb.toUpperCase()} ${pathKey}) has no CSV row`); continue; } + if (csvRow[col.stackql_resource_name] === 'skip_this_resource') errors.push(`${f}: ${resName}.${methodName} is marked skip_this_resource in the CSV but was generated`); + const bodyMediaType = Object.keys(op.requestBody?.content || {})[0] || ''; + // 1. nativeCasing / request block + if (sqlVerb === 'exec' && !bodyMediaType) { + if (method.request) { delete method.request; } + stats.execNoRequest++; + } else { + method.request = { ...(method.request || {}) }; + if (bodyMediaType) { method.request.mediaType = bodyMediaType; stats.bodyMedia++; } + method.request.nativeCasing = 'camel'; + stats.cased++; + } + // 2. objectKey on non-GET select methods + if (sqlVerb === 'select' && verb !== 'get' && csvRow[col.stackql_object_key] && !method.response?.objectKey) { + method.response = { ...(method.response || {}), objectKey: csvRow[col.stackql_object_key] }; + stats.objectKeys++; + } + // 3. pagination overrides + const ov = PAGINATION_OVERRIDES.find((o) => o.service === service && o.path === pathKey && o.verb === verb); + if (ov) { + method.config = { ...(method.config || {}), pagination: ov.pagination }; + overridesApplied.add(`${service}::${pathKey}::${verb}`); + stats.pagination++; + } + // 4. scalar response wrap + const sw = SCALAR_WRAPS.find((o) => o.service === service && o.path === pathKey && o.verb === verb); + if (sw) { + doc.components.schemas = doc.components.schemas || {}; + doc.components.schemas[sw.schemaName] = { type: 'object', properties: { [sw.key]: { type: 'string', description: sw.description } } }; + method.response = { + ...(method.response || {}), + mediaType: 'application/json', + overrideMediaType: 'application/json', + schema_override: { $ref: `#/components/schemas/${sw.schemaName}` }, + transform: { body: [`{{- $wrapped := printf "{\\"${sw.key}\\":%s}" . -}}`, '{{- $wrapped -}}'].join('\n'), type: 'golang_template_text_v0.3.0' } + }; + overridesApplied.add(`${service}::${pathKey}::${verb}`); + stats.scalarWraps = (stats.scalarWraps || 0) + 1; + } + } + } + docs.set(f, doc); +} +for (const o of [...PAGINATION_OVERRIDES, ...SCALAR_WRAPS]) { + if (!overridesApplied.has(`${o.service}::${o.path}::${o.verb}`)) errors.push(`override target not found: ${o.service} ${o.verb.toUpperCase()} ${o.path}`); +} +if (errors.length > 0) { + console.error(`FAILED with ${errors.length} error(s), nothing written:`); + for (const e of errors) console.error(` ${e}`); + process.exit(1); +} +for (const [f, doc] of docs) fs.writeFileSync(path.join(servicesDir, f), yaml.dump(doc, { lineWidth: -1, noRefs: true })); +console.log(`post_process: ${stats.services} services, ${stats.methods} methods; request.nativeCasing: camel on ${stats.cased} (${stats.bodyMedia} with a body mediaType), ${stats.execNoRequest} body-less EXEC methods left without a request block, ${stats.objectKeys} object key(s) added to non-GET SELECT methods, ${stats.pagination} pagination override(s), ${stats.scalarWraps || 0} scalar response wrap(s)`); diff --git a/provider-dev/scripts/pre_normalize.mjs b/provider-dev/scripts/pre_normalize.mjs new file mode 100644 index 0000000..6781b7c --- /dev/null +++ b/provider-dev/scripts/pre_normalize.mjs @@ -0,0 +1,78 @@ +#!/usr/bin/env node + +// Sumo Logic-specific spec adjustments applied to provider-dev/source before +// the generic provider-utils normalize pass. Deterministic and idempotent; +// fails without writing on any unexpected shape. +// +// 1. Redoc-relative anchors. Descriptions link to other operations and +// sections of the vendor's Redoc site as [text](#operation/getFolder), +// [text](#section/API-Endpoints) and [text](#tag/...). Those anchors do +// not exist on the generated docs site (Docusaurus reports them as broken +// anchors), so the link syntax is unwrapped to its plain text. Absolute +// links (https://help.sumologic.com/...) are kept. +// +// 2. Request-body sanity. Every JSON-ish request body must carry a schema so +// the generator can build the DESCRIBE / INSERT surfaces; the SCIM media +// type (application/scim+json) is kept as-is - any-sdk reads and writes +// SCIM JSON as JSON. +// +// Usage: node provider-dev/scripts/pre_normalize.mjs [--dry-run] + +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import yaml from 'js-yaml'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const sourceDir = path.join(repoRoot, 'provider-dev', 'source'); +const dryRun = process.argv.includes('--dry-run'); + +const ANCHOR_LINK = /\[([^\]]+)\]\(#(?:operation|section|tag)\/[^)]*\)/g; + +function unwrapAnchors(node, stats) { + if (Array.isArray(node)) { + for (let i = 0; i < node.length; i++) node[i] = unwrapAnchors(node[i], stats); + return node; + } + if (node && typeof node === 'object') { + for (const [k, v] of Object.entries(node)) node[k] = unwrapAnchors(v, stats); + return node; + } + if (typeof node === 'string' && node.includes('](#')) { + return node.replace(ANCHOR_LINK, (_, text) => { stats.anchors++; return text; }); + } + return node; +} + +const files = fs.readdirSync(sourceDir).filter((f) => f.endsWith('.yaml')).sort(); +if (files.length === 0) { + console.error(`Error: no service specs in ${sourceDir} - run npm run split first`); + process.exit(1); +} +const errors = []; +const pending = []; +const totals = { anchors: 0 }; +for (const f of files) { + const fp = path.join(sourceDir, f); + const doc = yaml.load(fs.readFileSync(fp, 'utf8')); + const stats = { anchors: 0 }; + unwrapAnchors(doc, stats); + totals.anchors += stats.anchors; + for (const [p, item] of Object.entries(doc.paths || {})) { + for (const verb of ['get', 'post', 'put', 'patch', 'delete']) { + const op = item[verb]; + if (!op?.requestBody?.content) continue; + for (const [mt, media] of Object.entries(op.requestBody.content)) { + if (/json/.test(mt) && !media.schema) errors.push(`${f}: ${verb.toUpperCase()} ${p} ${mt} request body has no schema`); + } + } + } + pending.push({ fp, doc }); +} +if (errors.length > 0) { + console.error(`FAILED with ${errors.length} error(s), nothing written:`); + for (const e of errors) console.error(` ${e}`); + process.exit(1); +} +if (!dryRun) for (const { fp, doc } of pending) fs.writeFileSync(fp, yaml.dump(doc, { lineWidth: -1, noRefs: true })); +console.log(`pre_normalize: unwrapped ${totals.anchors} Redoc anchor link(s) across ${files.length} service specs${dryRun ? ' (dry run)' : ''}`); diff --git a/provider-dev/scripts/record_spec_pin.mjs b/provider-dev/scripts/record_spec_pin.mjs new file mode 100644 index 0000000..ddfc2e6 --- /dev/null +++ b/provider-dev/scripts/record_spec_pin.mjs @@ -0,0 +1,75 @@ +#!/usr/bin/env node + +// Validates a freshly downloaded Sumo Logic spec, compares its content hash +// with provider-dev/config/spec_pin.json and, when they agree (or --update / +// UPDATE=true was given), moves the file into provider-dev/downloaded/ and +// (re)writes the pin. Invoked by bin/fetch-spec.sh with the paths in the +// environment. Fails without writing on validation errors or on drift +// without --update. + +import fs from 'fs'; +import path from 'path'; +import crypto from 'crypto'; +import yaml from 'js-yaml'; +import SwaggerParser from '@apidevtools/swagger-parser'; + +const { TMP_DIR, DOWNLOAD_DIR, PIN_FILE, SPEC_URL, SPEC_FILE } = process.env; +const update = process.env.UPDATE === 'true'; +const tmpPath = path.join(TMP_DIR, SPEC_FILE); +const destPath = path.join(DOWNLOAD_DIR, SPEC_FILE); + +const raw = fs.readFileSync(tmpPath, 'utf8'); +const sha256 = crypto.createHash('sha256').update(raw).digest('hex'); +const doc = yaml.load(raw); +if (!doc || !doc.openapi || !doc.paths) { + console.error('Downloaded file is not an OpenAPI document'); + process.exit(1); +} +try { + await SwaggerParser.validate(JSON.parse(JSON.stringify(doc))); +} catch (err) { + console.error(`Spec validation failed: ${err.message}`); + process.exit(1); +} + +let operations = 0; +const tags = new Set(); +for (const item of Object.values(doc.paths)) { + for (const verb of ['get', 'post', 'put', 'patch', 'delete']) { + if (item[verb]) { + operations++; + for (const t of item[verb].tags || []) tags.add(t); + } + } +} +const summary = { + url: SPEC_URL, + filename: SPEC_FILE, + openapi: doc.openapi, + spec_version: doc.info?.version || '', + paths: Object.keys(doc.paths).length, + operations, + tags: tags.size, + sha256, + bytes: Buffer.byteLength(raw), + fetched: new Date().toISOString().slice(0, 10) +}; +console.log(`spec: openapi ${summary.openapi}, version ${summary.spec_version}, ${summary.paths} paths, ${summary.operations} operations, ${summary.tags} tags, sha256 ${sha256.slice(0, 12)}...`); + +let pin = { specs: {} }; +if (fs.existsSync(PIN_FILE)) pin = JSON.parse(fs.readFileSync(PIN_FILE, 'utf8')); +const existing = pin.specs?.['sumologic-api']; +if (existing && existing.sha256 !== sha256 && !update) { + console.error(`Spec drift: upstream sha256 ${sha256} differs from pinned ${existing.sha256} (fetched ${existing.fetched}, ${existing.operations} operations).`); + console.error('Re-run with --update to accept the refresh, then rebuild and review the diff.'); + process.exit(1); +} +if (existing && existing.sha256 === sha256) { + console.log(`Spec matches the pin recorded ${existing.fetched}; download dir refreshed.`); + fs.copyFileSync(tmpPath, destPath); + process.exit(0); +} +fs.copyFileSync(tmpPath, destPath); +pin.specs = { ...(pin.specs || {}), 'sumologic-api': summary }; +fs.writeFileSync(PIN_FILE, JSON.stringify(pin, null, 2) + '\n'); +console.log(existing ? 'Pin updated (drift accepted).' : 'Pin recorded.'); diff --git a/provider-dev/scripts/snapshot_predecessor.mjs b/provider-dev/scripts/snapshot_predecessor.mjs new file mode 100644 index 0000000..7c5311c --- /dev/null +++ b/provider-dev/scripts/snapshot_predecessor.mjs @@ -0,0 +1,59 @@ +#!/usr/bin/env node + +// Snapshots the method inventory of a previously generated provider tree +// (the predecessor) into provider-dev/config/predecessor_methods.csv: +// one row per (service, resource, method) with the operation's path, HTTP +// verb and SQL verb. compare_predecessor.mjs diffs the current +// all_services.csv against this snapshot by (path, verb) to produce the +// Breaking Changes table in the README. +// +// Reads the tree from a git ref so the snapshot is reproducible after the +// generated tree has been overwritten: +// +// node provider-dev/scripts/snapshot_predecessor.mjs --ref b83127f +// +// The default ref is the last commit of the v1 (2025) provider. + +import { execFileSync } from 'child_process'; +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import yaml from 'js-yaml'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const args = process.argv.slice(2); +const refIdx = args.indexOf('--ref'); +const ref = refIdx !== -1 ? args[refIdx + 1] : 'b83127f'; +const treePath = 'provider-dev/openapi/src/sumologic/v00.00.00000/services'; +const outPath = path.join(repoRoot, 'provider-dev', 'config', 'predecessor_methods.csv'); + +const files = execFileSync('git', ['ls-tree', '--name-only', ref, `${treePath}/`], { cwd: repoRoot, encoding: 'utf8' }) + .split('\n').map((s) => s.trim()).filter((s) => s.endsWith('.yaml')); +if (files.length === 0) { + console.error(`no service yamls found at ${ref}:${treePath}`); + process.exit(1); +} + +const rows = [['service', 'resource', 'method', 'sql_verb', 'path', 'verb']]; +for (const f of files) { + const service = path.basename(f, '.yaml'); + const doc = yaml.load(execFileSync('git', ['show', `${ref}:${f}`], { cwd: repoRoot, encoding: 'utf8', maxBuffer: 64 * 1024 * 1024 })); + const resources = doc.components?.['x-stackQL-resources'] || {}; + for (const [resName, res] of Object.entries(resources)) { + const verbByRef = new Map(); + for (const [sqlVerb, refs] of Object.entries(res.sqlVerbs || {})) { + for (const r of refs || []) verbByRef.set(r.$ref, sqlVerb); + } + for (const [methodName, m] of Object.entries(res.methods || {})) { + const opRef = m.operation?.$ref || ''; + const parts = opRef.replace(/^#\/paths\//, '').split('/'); + const verb = parts.pop(); + const p = parts.join('/').replace(/~1/g, '/'); + const sqlVerb = verbByRef.get(`#/components/x-stackQL-resources/${resName}/methods/${methodName}`) || 'exec'; + rows.push([service, resName, methodName, sqlVerb, p, verb]); + } + } +} +const csv = rows.map((r) => r.map((v) => (/[",\n]/.test(v) ? `"${v.replace(/"/g, '""')}"` : v)).join(',')).join('\n') + '\n'; +fs.writeFileSync(outPath, csv); +console.log(`snapshot_predecessor: ${rows.length - 1} methods from ${files.length} services at ${ref} -> ${path.relative(repoRoot, outPath)}`); diff --git a/provider-dev/source/access_keys.yaml b/provider-dev/source/access_keys.yaml new file mode 100644 index 0000000..1db78fa --- /dev/null +++ b/provider-dev/source/access_keys.yaml @@ -0,0 +1,722 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Access Keys API + description: Access keys of the calling user and of the organization, their scopes, CORS headers and secret rotation. + version: 1.0.0 +paths: + /v1/accessKeys: + get: + tags: + - accessKeyManagement + summary: List all access keys. + description: List all access keys in your account. + operationId: listAccessKeys + parameters: + - name: limit + in: query + description: Limit the number of access keys returned in the response. The number of access keys returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: A list of all access keys in your account. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListAccessKeysResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - accessKeyManagement + summary: Create an access key. + description: |- + Creates a new access ID and key pair. The new access key can be used from the domains specified in corsHeaders field. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + operationId: createAccessKey + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyCreateRequest' + required: true + responses: + '200': + description: Access key created successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKey' + default: + description: Access key creation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/accessKeys/personal: + get: + tags: + - accessKeyManagement + summary: List personal keys. + description: List all access keys that belong to your user. + operationId: listPersonalAccessKeys + responses: + '200': + description: A list of all access keys that belong to the user making the request. + content: + application/json: + schema: + $ref: '#/components/schemas/ListAccessKeysResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/accessKeys/scopes: + get: + tags: + - accessKeyManagement + summary: Get all scopes. + description: Get a list of all of the scopes that can be added to an access key. + operationId: listScopes + responses: + '200': + description: A list of scopes that can be added to an access key. + content: + application/json: + schema: + $ref: '#/components/schemas/ScopesList' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/accessKeys/{id}: + put: + tags: + - accessKeyManagement + summary: Update an access key. + description: Updates the properties of existing accessKey by accessId. It can be used to enable or disable the access key and to update the corsHeaders list. + operationId: updateAccessKey + parameters: + - name: id + in: path + description: The accessId of the access key to update. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyUpdateRequest' + required: true + responses: + '200': + description: Access key updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyPublic' + default: + description: Access key update failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - accessKeyManagement + summary: Delete an access key. + description: Deletes the access key with the given accessId. + operationId: deleteAccessKey + parameters: + - name: id + in: path + description: The accessId of the access key to delete. + required: true + schema: + type: string + responses: + '204': + description: Access key deletion completed successfully. + default: + description: Access key deletion failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/accessKeys/{id}/rotate: + put: + tags: + - accessKeyManagement + summary: Rotate the access key secret + description: Generates a new secret for the access key that is passed in the call, keeping the same access ID. + operationId: rotateAccessKeySecret + parameters: + - name: id + in: path + description: The accessId of the access key to rotate the secret for. + required: true + schema: + type: string + responses: + '200': + description: Access key secret rotated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKey' + default: + description: Access key secret rotation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + PaginatedListAccessKeysResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of access keys. + items: + $ref: '#/components/schemas/AccessKeyPublic' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + description: List of access keys. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + AccessKeyCreateRequest: + required: + - label + type: object + properties: + label: + maxLength: 128 + type: string + description: A name for the access key to be created. + example: automation access key + corsHeaders: + maxItems: 20 + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request + depends on whether it contains an ORIGIN header and the entries in the allowlist. + Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + AccessKey: + required: + - createdAt + - createdBy + - disabled + - id + - label + - modifiedAt + - modifiedBy + - key + type: object + properties: + id: + type: string + description: Identifier of the access key. + example: su0w3Q37CBzHUM + label: + type: string + description: The name of the access key. + example: collector access key + corsHeaders: + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: false + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the access key. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the access key. + example: 0000000006743FDD + serviceAccountId: + type: string + description: Identifier of the service account who owns the access key. + example: 0000000006743FDA + lastUsed: + type: string + description: Last used timestamp in UTC.
**Note:** Property not in use, it is part of an upcoming feature. + format: date-time + example: '2018-10-16T09:10:00.000Z' + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + key: + type: string + description: The key for the created access key. This field will have values only in the response for an access key create request. The value will be an empty string while listing all keys. + example: F9GZvb4fISxUZHM7pqHCsGXGWf4OArgmt9Tz8ewZ + ListAccessKeysResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of access keys. + items: + $ref: '#/components/schemas/AccessKeyPublic' + description: List of access keys. + ScopesList: + required: + - data + type: object + properties: + data: + type: array + description: List of scopes + items: + $ref: '#/components/schemas/ScopeDefinition' + AccessKeyUpdateRequest: + required: + - disabled + type: object + properties: + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: true + corsHeaders: + maxItems: 20 + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + scopes: + type: array + description: |- + Scopes assigned to the key.

Note: Updates to scopes will take up to 5m to reflect due to caching in the system. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + AccessKeyPublic: + required: + - createdAt + - createdBy + - disabled + - id + - label + - modifiedAt + - modifiedBy + type: object + properties: + id: + type: string + description: Identifier of the access key. + example: su0w3Q37CBzHUM + label: + type: string + description: The name of the access key. + example: collector access key + corsHeaders: + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: false + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the access key. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the access key. + example: 0000000006743FDD + serviceAccountId: + type: string + description: Identifier of the service account who owns the access key. + example: 0000000006743FDA + lastUsed: + type: string + description: Last used timestamp in UTC.
**Note:** Property not in use, it is part of an upcoming feature. + format: date-time + example: '2018-10-16T09:10:00.000Z' + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ScopeDefinition: + required: + - dependsOn + - group + - id + - label + - type + type: object + properties: + id: + type: string + description: The name of the scope. + example: managePartitions + label: + type: string + description: The UI label for the scope. + example: Manage Partitions + type: + type: string + description: Type of scope. + example: Manage + dependsOn: + type: array + description: Any scopes that are required for this scope to be enabled. + example: + - viewPartitions + items: + type: string + group: + required: + - id + - label + type: object + properties: + id: + type: string + description: The name of the scope group + example: dataManagement + label: + type: string + description: The label for the scope group + example: Data Management + parentId: + type: string + description: The ID of the parent scope group + description: The group that the scope belongs to. diff --git a/provider-dev/source/account.yaml b/provider-dev/source/account.yaml new file mode 100644 index 0000000..6872f02 --- /dev/null +++ b/provider-dev/source/account.yaml @@ -0,0 +1,807 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Account API + description: Account status, owner, subdomain, plan update requests, usage reports and usage forecasts. + version: 1.0.0 +paths: + /v1/account/accountOwner: + get: + tags: + - accountManagement + summary: Get the owner of an account. + description: Returns the user identifier of the account owner. + operationId: getAccountOwner + responses: + '200': + description: User identifier of the account owner. + content: + application/json: + schema: + type: string + example: 10000000 + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/status: + get: + tags: + - accountManagement + summary: Get overview of the account status. + description: Get information related to the account's plan, pricing model, expiration and payment status. + operationId: getStatus + responses: + '200': + description: Overview of the account. + content: + application/json: + schema: + $ref: '#/components/schemas/AccountStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/subdomain: + get: + tags: + - accountManagement + summary: Get the configured subdomain. + description: Get the configured subdomain. + operationId: getSubdomain + responses: + '200': + description: The subdomain's definition. + content: + application/json: + schema: + $ref: '#/components/schemas/SubdomainDefinitionResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - accountManagement + summary: Update account subdomain. + description: Update a subdomain. Only the Account Owner can update the subdomain. + operationId: updateSubdomain + requestBody: + description: The new subdomain. + content: + application/json: + schema: + $ref: '#/components/schemas/ConfigureSubdomainRequest' + required: true + responses: + '200': + description: The updated subdomain's definition. + content: + application/json: + schema: + $ref: '#/components/schemas/SubdomainDefinitionResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - accountManagement + summary: Create account subdomain. + description: Create a subdomain. Only the Account Owner can create a subdomain. + operationId: createSubdomain + requestBody: + description: The new subdomain. + content: + application/json: + schema: + $ref: '#/components/schemas/ConfigureSubdomainRequest' + required: true + responses: + '200': + description: Created a new subdomain. + content: + application/json: + schema: + $ref: '#/components/schemas/SubdomainDefinitionResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - accountManagement + summary: Delete the configured subdomain. + description: Delete the configured subdomain. + operationId: deleteSubdomain + responses: + '204': + description: The subdomain was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/subdomain/recover: + post: + tags: + - accountManagement + summary: Recover subdomains for a user. + description: Send an email with the subdomain information for a user with the given email address. + operationId: recoverSubdomains + parameters: + - name: email + in: query + description: Email address of the user to get subdomain information. + required: true + schema: + type: string + responses: + '204': + description: An email containing information about associated subdomains for the given email was sent. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/usage/report: + post: + tags: + - accountManagement + summary: Export credits usage details as CSV. + description: Export the credit usage details as csv for the specific period of time given as input in the form of a start and end date with a specific grouping according to `day`, `week`, `month`, Note that this API will work only for credits plan customers. + operationId: exportUsageReport + requestBody: + description: Export Usage Report Request. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageReportRequest' + required: true + responses: + '200': + description: Export Response with Job Id. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageReportResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/usage/report/{jobId}/status: + get: + tags: + - accountManagement + summary: Get report generation status. + description: Get the report download URL and status using Job Id. + operationId: getStatusForReport + parameters: + - name: jobId + in: path + description: Job Id for the report to be exported. + required: true + schema: + type: string + responses: + '200': + description: Status response containing status and downloadURL if successful. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageReportStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/usageForecast: + get: + tags: + - accountManagement + summary: Get usage forecast with respect to last number of days specified. + description: Get usage forecast with respect to last number of days specified. If nothing is provided for last number of days, the average of term period will be taken to do the forecast. + operationId: getUsageForecast + parameters: + - name: numberOfDays + in: query + description: Number of days to use for calculating average usage and forecast. + required: false + schema: + type: number + responses: + '200': + description: Usage Forecast. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageForecastResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/plan/pendingUpdateRequest: + get: + tags: + - accountManagement + summary: Get the pending plan update request, if any. + description: Get the pending plan update request which will be applicable from next billing cycle. + operationId: getPendingUpdateRequest + responses: + '200': + description: Pending plan update request. + content: + application/json: + schema: + $ref: '#/components/schemas/PendingUpdateRequest' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - accountManagement + summary: Delete the pending plan update request, if any. + description: Delete the pending plan update request which would be applicable from next billing cycle. + operationId: deletePendingUpdateRequest + responses: + '204': + description: Deleted the pending update request. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + AccountStatusResponse: + required: + - applicationUse + - canUpdatePlan + - planType + - pricingModel + type: object + properties: + pricingModel: + pattern: ^(credits|cloudflex)$ + type: string + description: Whether the account is `cloudflex` or `credits` + example: credits + canUpdatePlan: + type: boolean + description: If the plan can be updated by the given user + example: true + planType: + pattern: ^(Free|Trial|Paid)$ + type: string + description: Whether the account is `Free`/`Trial`/`Paid` + example: Free + planExpirationDays: + type: integer + description: The number of days in which the plan will expire + example: 20 + applicationUse: + pattern: ^(ALLOWED|ALLOWED_WITH_WARNING|THROTTLED|RESTRICTED)$ + type: string + description: The current usage of the application. + example: ALLOWED + accountActivated: + type: boolean + description: If the account is activated or not + example: true + totalCredits: + type: integer + description: Total amount of credits assigned to the account + example: 400 + logModel: + pattern: ^(Flex|Tiered|FlexPlusTiered)$ + type: string + description: The log model of the account + example: Flex + isSubscriptionV2: + type: boolean + description: Indicates whether the account has v2 subscription enabled. + example: false + description: Information about the account's plan and payment. + SubdomainDefinitionResponse: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - subdomain + - url + type: object + properties: + createdAt: + type: string + description: | + Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + subdomain: + type: string + description: The new subdomain. + example: my-company + url: + type: string + description: Login URL corresponding to the subdomain. + example: https://your-company.sumologic.com + ConfigureSubdomainRequest: + required: + - subdomain + type: object + properties: + subdomain: + maxLength: 63 + minLength: 4 + pattern: ^(?!xn--)[a-z0-9]([a-z0-9-]*[a-z0-9])?$ + type: string + description: The new subdomain. + example: my-company + UsageReportRequest: + type: object + properties: + startDate: + type: string + description: Start date, without the time, of the usage data to fetch. If no value is provided startDate is used as the start of the subscription. The start date cannot be before the start of the subscription. + example: '2019-07-20T00:00:00.000Z' + endDate: + type: string + description: End date, without the time, of usage data to fetch. If no value is provided endDate is used as the end of the subscription. The end date cannot be after the end of the subscription. + example: '2019-08-20T00:00:00.000Z' + groupBy: + pattern: ^(day|week|month)$ + type: string + description: 'Perform a groupBy operation on the usage details. If no value is provided data is grouped by `Day` - `day`: Aggregate the data by day - `week`: Aggregate the data by week. Week starts at Monday and ends at sunday night. - `month`: Aggregate the data by calendar month.' + example: day + default: day + reportType: + pattern: ^(standard|detailed|childDetailed)$ + type: string + description: Specifies the type of report to be exported. Available types are `standard` and `detailed`. An additional `childDetailed` type is available for Sumo Orgs parents. Detailed report will have raw consumption along with the credits breakdown. If no value is provided Standard reports will be exported. + example: standard + default: standard + includeDeploymentCharge: + type: boolean + description: Deployment charges will be applied to the returned usages csv if this is set to true and the organization is a part of Sumo Organizations as a child organization. + example: false + default: false + description: Usage Export Report Request + UsageReportResponse: + type: object + properties: + jobId: + type: string + description: Job Id for export + example: '12345678' + description: Export Usage response containing the jobId + UsageReportStatusResponse: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + status: + pattern: ^(Success|InProgress|Failed)$ + type: string + description: Status export + example: Success + statusMessage: + type: string + description: Status message export + example: Successful request + reportDownloadURL: + type: string + description: S3 presigned download URL for the report. It is valid for 10 minutes. + example: www.example.com + description: Status response containing status and downloadURL if successful + UsageForecastResponse: + type: object + properties: + averageUsage: + type: number + description: Average credit usage per day till now. + format: double + example: 4 + usagePercentage: + type: number + description: Percentage of total credits used till date. + format: double + example: 7 + forecastedUsage: + type: number + description: Total expected usage by the end of contract period. + format: double + example: 10 + forecastedUsagePercentage: + type: number + description: Percentage of allocated credits that will be used in the contract period. + format: double + example: 5 + remainingDays: + type: number + description: Days remaining till all the credits are consumed. + format: double + example: 10 + description: Usage forecast for the organization. + PendingUpdateRequest: + required: + - createdOn + - plan + type: object + properties: + createdOn: + type: string + description: The date on which the update request was created. + format: date + plan: + $ref: '#/components/schemas/CurrentPlan' + description: The pending plan update request for the account + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + CurrentPlan: + required: + - billingFrequency + - planCost + - productId + type: object + properties: + productId: + pattern: ^(Essentials|Trial|Free|EnterpriseOps|EnterpriseSec|EnterpriseSuite)$ + type: string + description: | + Unique identifier of the product in current plan. Valid values are: 1. `Free` 2. `Trial` 3. `Essentials` 4. `EnterpriseOps` 5. `EnterpriseSec` 6. `EnterpriseSuite` + example: Essentials + x-pattern-message: 'must be one of the following: `Essentials`, `Trial`, `Free`, `EnterpriseOps`, `EnterpriseSec`, `EnterpriseSuite`' + planCost: + type: number + description: Cost incurred for the current plan. + format: double + example: 725.46 + billingFrequency: + pattern: ^(Monthly|Annually)$ + type: string + description: | + Billing frequency for the current plan. Valid values are: 1. `Monthly` 2. `Annually` + example: Monthly + x-pattern-message: 'must be one of the following: `Monthly` or `Annually`' + consumables: + type: array + description: Consumables in the current plan. + items: + $ref: '#/components/schemas/Consumable' + planType: + pattern: ^(Free|Trial|Paid)$ + type: string + description: Whether the account is `Free`/`Trial`/`Paid` + example: Free + x-pattern-message: 'must be one of the following: `Free`, `Trial` or `Paid`' + planName: + type: string + description: The plan name for the product being used. + discountAmount: + type: integer + description: The discount offered for the given contract period. + contractPeriod: + $ref: '#/components/schemas/ContractPeriod' + currentBillingPeriod: + $ref: '#/components/schemas/CurrentBillingPeriod' + credits: + type: integer + description: Numerical value of the amount of credits + format: int64 + example: 300 + baselines: + $ref: '#/components/schemas/Baselines' + pendingUpdateRequest: + type: boolean + description: True if there is a pending update request + prorationDetails: + $ref: '#/components/schemas/ProrationDetails' + description: Current plan of the account. + Consumable: + required: + - consumableId + - quantity + type: object + properties: + consumableId: + pattern: ^(Storage|Metrics|Continuous|Credits)$ + type: string + description: | + Unique identifier of the consumable. Valid values are: 1. `Storage` 2. `Metrics` 3. `Continuous` 4. `Credits` + example: Metrics + x-pattern-message: 'must be one of the following: `Storage`, `Metrics`, `Continuous`, `Credits`' + quantity: + $ref: '#/components/schemas/Quantity' + description: Details of consumable and its quantity. + ContractPeriod: + required: + - endDate + - startDate + type: object + properties: + startDate: + type: string + description: Start date of the contract. + format: date + endDate: + type: string + description: End date of the contract. + format: date + CurrentBillingPeriod: + required: + - endDate + - startDate + type: object + properties: + startDate: + type: string + description: Start date of the current billing period. + format: date + example: '2012-02-02T00:00:00.000Z' + endDate: + type: string + description: End date of the current billing period. + format: date + example: '2012-02-02T00:00:00.000Z' + Baselines: + type: object + properties: + continuousIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of continuous logs ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + continuousStorage: + maximum: 30 + minimum: 30 + type: integer + description: Number of days of continuous logs storage to allocate to the organization, in Days. + format: int64 + example: 30 + default: 30 + frequentIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of frequent logs ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + frequentStorage: + maximum: 30 + minimum: 30 + type: integer + description: Number of days of frequent logs storage to allocate to the organization, in Days. + format: int64 + example: 30 + default: 30 + infrequentIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of infrequent logs ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + infrequentStorage: + maximum: 30 + minimum: 30 + type: integer + description: The amount of infrequent logs storage to allocate to the organization, in Days. + format: int64 + example: 30 + default: 30 + infrequentScan: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of infrequent logs scan to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + metrics: + maximum: 5000000 + minimum: 0 + type: integer + description: The amount of Metrics usage to allocate to the organization, in DPMs (Data Points per Minute). + format: int64 + example: 50000 + default: 0 + cseIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of CSE ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + cseStorage: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of CSE storage to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + tracingIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of tracing data ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + flexIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of flex logs ingest to allocate to the organization, in GBs. + format: int64 + example: 5 + default: 0 + flexStorage: + maximum: 1000000 + minimum: 0 + type: integer + description: Number of days of flex logs storage to allocate to the organization, in Days. + format: int64 + example: 30 + default: 0 + flexScanRatio: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of flex logs ingest scan ratio. + format: int64 + example: 5 + default: 0 + aiInvestigation: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of AI Investigations needed to allocate to the organization. + format: int64 + example: 5 + default: 0 + socAiAgentDailyLimit: + maximum: 1000000 + minimum: 0 + type: integer + description: The daily investigation limit for SOC AI Agent. + format: int32 + example: 100 + default: 0 + description: Details of consumable and its quantity. + ProrationDetails: + required: + - proratedCost + - proratedCredits + - remainingDays + type: object + properties: + remainingDays: + type: integer + description: Remaining days in the billing cycle for which the new plan is prorated. + format: int32 + proratedCredits: + type: integer + description: Total prorated credits that get added to the bucket based on the remaining billing period. + format: int32 + proratedCost: + type: number + description: Cost of the total prorated credits. + format: double + description: Details about the prorated credits and prorated cost in case of immediate monthly to monthly cycle upgrades. + Quantity: + required: + - unit + - value + type: object + properties: + value: + type: integer + description: The value of the consumable in units. + format: int64 + example: 61425 + unit: + pattern: ^(GB|DPM|Credits|Days)$ + type: string + description: | + The unit of the consumable. Units are provided in: 1. `GB` 2. `DPM`(Data Points Per Minute) 3. `Credits` 4. `Days` + example: GB + x-pattern-message: 'must be one of the following: `GB`, `DPM`, `Credits`, `Days`' + description: Details of unit of consumption and its value. diff --git a/provider-dev/source/apps.yaml b/provider-dev/source/apps.yaml new file mode 100644 index 0000000..b4b24c1 --- /dev/null +++ b/provider-dev/source/apps.yaml @@ -0,0 +1,999 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Apps API + description: The Sumo Logic app catalog (v1 and v2) - browse, install, upgrade, uninstall apps and follow the asynchronous install jobs. + version: 1.0.0 +paths: + /v1/apps: + get: + tags: + - appManagement + summary: List available apps. + description: Lists all available apps from the App Catalog. + operationId: listApps + responses: + '200': + description: List of all available apps. + content: + application/json: + schema: + $ref: '#/components/schemas/ListAppsResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/apps/{uuid}: + get: + tags: + - appManagement + summary: Get an app by UUID. + description: Gets the app with the given universally unique identifier (UUID). + operationId: getApp + parameters: + - name: uuid + in: path + description: The identifier of the app to retrieve. + required: true + schema: + type: string + format: uuid + responses: + '200': + description: The retrieved app. + content: + application/json: + schema: + $ref: '#/components/schemas/App' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/apps/{uuid}/install: + post: + tags: + - appManagement + summary: Install an app by UUID. + description: Installs the app with given UUID in the folder specified using destinationFolderId. + operationId: installApp + parameters: + - name: uuid + in: path + description: UUID of the app to install. + required: true + schema: + type: string + format: uuid + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AppInstallRequest' + required: true + responses: + '200': + description: App install job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: App installation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/apps/install/{jobId}/status: + get: + tags: + - appManagement + summary: App install job status. + description: Get the status of an asynchronous app install request for the given job identifier. + operationId: getAsyncInstallStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous install job. + required: true + schema: + type: string + responses: + '200': + description: The status of the app install job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: App installation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/install: + post: + tags: + - appManagementV2 + summary: Start app install job + description: |- + Schedule an asynchronous job to install the app with the given UUID and version from the App Catalog. The app will be installed in 'Installed Apps' folder in the Content Library. + + _You get back an identifier of asynchronous job in response to this endpoint. You can then use the app install status API to get the status of the installation request. See Asynchronous-Request section for more details on how to work with asynchronous request._ + operationId: asyncInstallApp + parameters: + - name: uuid + in: path + description: UUID of the app to install. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + requestBody: + description: Information about the app to install. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncInstallAppRequest' + required: true + responses: + '200': + description: App installation job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/install/{jobId}/status: + get: + tags: + - appManagementV2 + summary: App install job status + description: Get the status of an asynchronous app install request for the given job identifier. + operationId: getAsyncInstallAppStatus + parameters: + - name: jobId + in: path + description: Identifier of the asynchronous job for installing the app. + required: true + schema: + type: string + example: C03E086C137F38B4 + responses: + '200': + description: Status of the app installation job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncInstallAppJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/uninstall: + post: + tags: + - appManagementV2 + summary: Start app uninstall job + description: |- + Schedule an asynchronous job to uninstall app with the given UUID. + + _You get back an identifier of asynchronous job in response to this endpoint. You can then use the app uninstall status API to get the status of the uninstallation request. See Asynchronous-Request section for more details on how to work with asynchronous request._ + operationId: asyncUninstallApp + parameters: + - name: uuid + in: path + description: UUID of the app to uninstall. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + '200': + description: App uninstall job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/uninstall/{jobId}/status: + get: + tags: + - appManagementV2 + summary: App uninstall job status + description: Get the status of an asynchronous app uninstall request for the given job identifier. + operationId: getAsyncUninstallAppStatus + parameters: + - name: jobId + in: path + description: Identifier of the asynchronous job for uninstalling the app. + required: true + schema: + type: string + example: C03E086C137F38B4 + responses: + '200': + description: Status of the app uninstall job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncUninstallAppJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/upgrade: + post: + tags: + - appManagementV2 + summary: Start app upgrade job + description: |- + Schedule an asynchronous job to upgrade the app with the given UUID and version from the App Catalog. The app will be installed in 'Installed Apps' folder in the Content Library. + + _You get back an identifier of asynchronous job in response to this endpoint. You can then use the app upgrade status API to get the status of the upgrade request. See Asynchronous-Request section for more details on how to work with asynchronous request._ + operationId: asyncUpgradeApp + parameters: + - name: uuid + in: path + description: UUID of the app to upgrade. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + requestBody: + description: Information about the app to upgrade. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncUpgradeAppRequest' + required: true + responses: + '200': + description: App upgrade job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/upgrade/{jobId}/status: + get: + tags: + - appManagementV2 + summary: App upgrade job status + description: Get the status of an asynchronous app upgrade request for the given job identifier. + operationId: getAsyncUpgradeAppStatus + parameters: + - name: jobId + in: path + description: Identifier of the asynchronous job for upgrading the app. + required: true + schema: + type: string + example: C03E086C137F38B4 + responses: + '200': + description: Status of the app upgrade job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncUpgradeAppJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps: + get: + tags: + - appManagementV2 + summary: List apps + description: List all apps from the App Catalog. + operationId: listAppsV2 + parameters: + - name: name + in: query + description: Name of the app. + required: false + schema: + type: string + example: AWS%20CloudTrail + - name: author + in: query + description: Author of the app. + required: false + schema: + type: string + example: Sumo%20Logic + responses: + '200': + description: List of apps. + content: + application/json: + schema: + $ref: '#/components/schemas/ListAppsV2Response' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/details: + get: + tags: + - appManagementV2 + summary: Get details of an app version. + description: |- + Get details about an app with the given UUID and version. The details include: + + 1. The base URL for all the resource for the app. + 2. The app manifest + operationId: getAppDetails + parameters: + - name: uuid + in: path + description: UUID of the app. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + - name: version + in: query + description: Version of the app. The latest version is used if this is omitted or specified as "latest". + required: false + schema: + type: string + example: 1.0.0 + responses: + '200': + description: Information about the requested app. + content: + application/json: + schema: + $ref: '#/components/schemas/GetAppDetailsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/subscription: + get: + tags: + - appManagementV2 + summary: Get subscription status for the user + description: Get Subscription status for the user for a specific app. This will indicate whether the user has subscribed to the app or not. + operationId: getAppNotificationSubscriptionStatus + parameters: + - name: uuid + in: path + description: UUID of the app. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + '200': + description: Information about user's subscription status for the app. + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - appManagementV2 + summary: Subscribe to an app upgrade notification + description: Subscribe to an app upgrade notification. This will allow the user to receive notifications for the app updates. + operationId: subscribeToAppNotification + parameters: + - name: uuid + in: path + description: UUID of the app to subscribe to. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + '204': + description: Successfully subscribed to the app notification. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - appManagementV2 + summary: Unsubscribe from an app upgrade notification + description: Unsubscribe from an app. This will remove the user's subscription to notifications for the app. + operationId: unsubscribeFromAppNotification + parameters: + - name: uuid + in: path + description: UUID of the app to unsubscribe from. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + '204': + description: App Notification unsubscription was successful. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListAppsResult: + required: + - apps + type: object + properties: + apps: + type: array + description: An array of Apps + items: + $ref: '#/components/schemas/App' + description: List of all available apps from the App Catalog. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + App: + required: + - appDefinition + - appManifest + type: object + properties: + appDefinition: + $ref: '#/components/schemas/AppDefinition' + appManifest: + $ref: '#/components/schemas/AppManifest' + AppInstallRequest: + required: + - description + - destinationFolderId + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Preferred name of the app to be installed. This will be the name of the app in the selected installation folder. + example: Sumo Logic Configuration App + description: + maxLength: 255 + minLength: 1 + type: string + description: Preferred description of the app to be installed. This will be displayed as the app description in the selected installation folder. + example: Sumo Logic Configuration App to configure collectors and data sources + destinationFolderId: + type: string + description: Identifier of the folder in which the app will be installed in hexadecimal format. + example: 00000000000001C8 + dataSourceValues: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Dictionary of properties specifying log-source name and value. + example: + logsrc: _sourceCategory = api + description: JSON object containing name, description, destinationFolderId, and dataSourceType. + BeginAsyncJobResponse: + required: + - id + type: object + properties: + id: + type: string + description: Identifier to get the status of an asynchronous job. + example: C03E086C137F38B4 + AsyncJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + statusMessage: + type: string + description: Additional status message generated if the status is not `Failed`. + error: + $ref: '#/components/schemas/ErrorDescription' + example: + status: Success + statusMessage: '' + AsyncInstallAppRequest: + type: object + properties: + version: + type: string + description: | + Version of the app to install. You can either specify a specific version of the app or use `latest` to install the latest version of the app. _If version is not specified, the latest version of the app will be installed_. + example: 1.0.1 + default: latest + parameters: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map of additional parameters for the app installation. + example: + db_system: redis + description: Install app request. + BeginAsyncJobResponseV2: + required: + - jobId + type: object + properties: + jobId: + type: string + description: Identifier of the asynchronous job. Use it to get status of the job. + example: C03E086C137F38B4 + AsyncInstallAppJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + example: Success + instanceId: + type: string + description: Instance identifier of the installed app. This field is not set yet but is a placeholder for future use. + example: 0000000001578BE8 + path: + type: string + description: Path of the folder in which the app was installed. + example: /Library/Installed Apps/AWS CloudTrail + folderId: + type: string + description: Identifier of the folder in which the app was installed. + example: 0000000001578BE8 + error: + $ref: '#/components/schemas/ErrorDescription' + description: Status of the install app async job. + AsyncUninstallAppJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + example: Success + errors: + type: array + description: More information about the failure if the status is `Failed`. + items: + $ref: '#/components/schemas/ErrorDescription' + description: Status of an uninstall app job. + AsyncUpgradeAppRequest: + type: object + properties: + version: + type: string + description: | + Version of the app to upgrade. You can either specify a specific version of the app or use `latest` to install the latest version of the app. _If version is not specified, the latest version of the app will be installed_. + example: 1.0.1 + default: latest + parameters: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map of additional parameters for the app installation. + example: + db_system: redis + description: Upgrade app request. + AsyncUpgradeAppJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + example: Success + instanceId: + type: string + description: Instance identifier of the upgraded app. This field is not set yet but is a placeholder for future use. + example: 0000000001578BE8 + path: + type: string + description: Path of the folder in which the app was upgraded. + example: /Library/Installed Apps/AWS CloudTrail + folderId: + type: string + description: Identifier of the folder in which the app was upgraded. + example: 0000000001578BE8 + error: + $ref: '#/components/schemas/ErrorDescription' + description: Status of the upgrade app async job. + ListAppsV2Response: + required: + - apps + type: object + properties: + apps: + type: array + description: An array of apps. + items: + $ref: '#/components/schemas/AppV2' + description: List of all apps from the apps + GetAppDetailsResponse: + required: + - baseUrl + - manifest + - uuid + - version + type: object + properties: + uuid: + type: string + description: UUID of the app. + format: uuid + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + version: + type: string + description: Version of the app. + example: 1.0.0 + baseUrl: + type: string + description: URL prefix for where the app is stored. + format: url + example: https://some_bucket.s3.amazonaws.com/path/to/app/version/ + manifest: + type: string + description: Content of the manifest YAML file, as Base64-encoded string. + format: byte + config: + type: string + description: Content of the config YAML file, as Base64-encoded string. + format: byte + readme: + type: string + description: Content of the README markdown file, as Base64-encoded string. + format: byte + files: + maxProperties: 100 + type: object + additionalProperties: + type: string + format: byte + description: Content of various files part of app package, as Base64-encoded string. + example: + config: ICAtIGNvbXBvbmVudFR5cGU6IHNjb3BlCiAgICBsYWJlbDog4oCYQXBhY2hlIEVycm9yIExvZyBT b3VyY2XigJkKICAgIHRmVmFyOiBlcnJMb2dTY29wZQogICAgCiAgLSBjb21wb25lbnRUeXBlOiBz Y29wZQogICAgbGFiZWw6IOKAmEFwYWNoZSBBY2Nlc3MgTG9nIFNvdXJjZeKAmQogICAgdGZWYXI6 IGFjY2Vzc0xvZ1Njb3BlCgogIC0gY29tcG9uZW50VHlwZTogY3VzdG9tCiAgICBkYXRhVHlwZTog U3RyaW5nCiAgICBsYWJlbDog4oCYQXBhY2hlIEVuZ2luZSBUeXBl4oCYCiAgICBoZWxwVGV4dDog 4oCYVGhlIGVuZ2luZSB0eXBlIG9mIHlvdXIgQXBhY2hlIEluc3RhbmNl4oCYCiAgICByZXF1aXJl ZDogRmFsc2UKICAgIGRlZmF1bHQ6IOKAmHYxLjDigJkKICAgIHRmVmFyOiBlbmdpbmVUeXBlCg== + readme: IyBPdmVydmlldwoKVGhlIEFwYWNoZSBhcHAgaXMgYSB1bmlmaWVkIGxvZ3MgYW5kIG1ldHJpY3Mg YXBwIHRoYXQgaGVscHMgeW91IG1vbml0b3IgdGhlIGF2YWlsYWJpbGl0eSwgcGVyZm9ybWFuY2Us IGhlYWx0aCBhbmQgcmVzb3VyY2UgdXRpbGl6YXRpb24gb2YgQXBhY2hlIHdlYiBzZXJ2ZXIgZmFy bXMuICBQcmVjb25maWd1cmVkIGRhc2hib2FyZHMgYW5kIHNlYXJjaGVzIHByb3ZpZGUgaW5zaWdo dCBpbnRvIHZpc2l0b3IgbG9jYXRpb25zLCB2aXNpdG9yIGFjY2VzcyB0eXBlcywgdHJhZmZpYyBw YXR0ZXJucywgZXJyb3JzLCB3ZWIgc2VydmVyIG9wZXJhdGlvbnMsIHJlc291cmNlIHV0aWxpemF0 aW9uIGFuZCBhY2Nlc3MgZnJvbSBrbm93biBtYWxpY2lvdXMgc291cmNlcy4KCiMgU2V0dXAKVGhp cyBpcyB0aGUgc2VjdGlvbiBmb3IgQXBhY2hlIC0gT3BlblRlbGVtZXRyeSBjb2xsZWN0aW9uIHNl dHVwLgo= + manifest: CnNjaGVtYVZlcnNpb246ICIxLjAiCgpuYW1lOiBBcGFjaGUKCmRlc2NyaXB0aW9u OiA+LQogIFRoZSBBcGFjaGUgYXBwIGlzIGEgdW5pZmllZCBsb2dzIGFuZCBtZXRy aWNzIGFwcCB0aGF0IGhlbHBzIHlvdSBtb25pdG9yIHRoZSBhdmFpbGFiaWxpdHks IHBlcmZvcm1hbmNlLAogIGhlYWx0aCBhbmQgcmVzb3VyY2UgdXRpbGl6YXRpb24g b2YgQXBhY2hlIHdlYiBzZXJ2ZXIgZmFybXMuICBQcmVjb25maWd1cmVkIGRhc2hi b2FyZHMgYW5kIHNlYXJjaGVzCiAgcHJvdmlkZSBpbnNpZ2h0IGludG8gdmlzaXRv ciBsb2NhdGlvbnMsIHZpc2l0b3IgYWNjZXNzIHR5cGVzLCB0cmFmZmljIHBhdHRl cm5zLCBlcnJvcnMsIHdlYiBzZXJ2ZXIKICBvcGVyYXRpb25zLCByZXNvdXJjZSB1 dGlsaXphdGlvbiBhbmQgYWNjZXNzIGZyb20ga25vd24gbWFsaWNpb3VzIHNvdXJj ZXMuCmF1dGhvcjogU3VtbyBMb2dpYwoKdmVyc2lvbjogMS4wLjAKCgo= + description: Information about an app. + SubscriptionStatusResponse: + required: + - status + type: object + properties: + status: + type: boolean + description: Show if the user has subscribed to the app or not. value is true, if the user has subscribed to the app + example: true + description: Subscription Status + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + AppDefinition: + required: + - appVersion + - contentId + - name + - uuid + type: object + properties: + contentId: + type: string + description: Content identifier of the app in hexadecimal format. + example: 00000000000011AE + uuid: + type: string + description: Unique identifier for the app. + format: uuid + example: 1c57fbc3-3141-4b12-aab3-5f40152bc3d9 + name: + type: string + description: Name of the app. + example: Sumo Config + appVersion: + type: string + description: Version of the app. + example: '1.0' + preview: + type: boolean + description: Indicates whether the app is in preview or not. + example: true + manifestVersion: + type: string + description: Manifest version of the app + example: '0.1' + AppManifest: + required: + - description + - hoverText + - iconURL + type: object + properties: + family: + type: string + description: The app family + example: IIS + description: + type: string + description: Description of the app. + example: A description for Sumo Logic Config App. + categories: + type: array + description: Categories that the app belongs to. + example: + - Sumo Logic + - Configuration + items: + type: string + hoverText: + type: string + description: Text to be displayed when hovered over in UI. + example: Sumo Config App + iconURL: + type: string + description: App icon URL. + example: https://sumologic-app-data.sumologic.com/icons/sumoconfig.png + screenshotURLs: + type: array + description: App screenshot URLs. + example: + - https://sumologic-app-data.sumologic.com/icons/sumoconfig/overview.png + - https://sumologic-app-data.sumologic.com/screenshots/sumoconfig/details.png + items: + type: string + helpURL: + type: string + description: App help page URL. + example: https://help.sumologic.com/ + helpDocIdMap: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: the IDs of the docs pages for this app + communityURL: + type: string + description: App community page URL. + example: https://support.sumologic.com/hc/en-us/community/topics/200263058-Applications-and-Integrations + requirements: + type: array + description: Requirements for the app. + example: [] + items: + type: string + accountTypes: + type: array + description: Account types that are allowed to install the app + example: + - free + items: + type: string + requiresInstallationInstructions: + type: boolean + description: Indicates whether installation instructions are required or not. + example: false + installationInstructions: + type: string + description: Installation instructions for the app. + example: '' + parameters: + type: array + description: Content identifier of the app. + items: + $ref: '#/components/schemas/ServiceManifestDataSourceParameter' + author: + type: string + description: App author. + example: Sumo Logic + authorWebsite: + type: string + description: App author website URL. + example: https://www.sumologic.com + AppV2: + required: + - accountTypes + - attributes + - author + - beta + - description + - family + - icon + - installable + - latestVersion + - name + - showOnMarketplace + - uuid + type: object + properties: + uuid: + type: string + description: UUID of the app. + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + name: + type: string + description: Name of the app. + example: AWS CloudTrail + description: + type: string + description: Description of the app. + example: AWS CloudTrail app description + latestVersion: + type: string + description: Latest version of the app. + example: 1.1.0 + icon: + type: string + description: URL of the icon for the app. + example: https://some-bucket.s3.amazonaws.com/AWSCloudTrail.png + author: + type: string + description: Author of the app. + example: Sumo Logic + accountTypes: + type: array + description: Account types of which the app is available to. + example: + - All + items: + type: string + beta: + type: boolean + description: Whether the app is in beta. + example: false + installs: + type: integer + description: Number of times the app was installed. + format: int32 + example: 3452 + attributes: + maxProperties: 3 + type: object + additionalProperties: + type: array + items: + type: string + description: A map of attributes for this app. Attributes allow to group apps based on different criteria. + example: + category: + - Web Server + - IT Infrastructure + - Amazon Web Services + useCase: + - security + - observability + collection: + - OpenTelemetry + installable: + type: boolean + description: Whether the app is installable or not as not all apps are installable. + example: true + showOnMarketplace: + type: boolean + description: Whether the app should show up on sumologic.com/applications webpage. + example: true + modifiedAt: + type: string + description: The timestamp in UTC of the most recent modification of the app. + format: date-time + example: '2018-10-16T09:10:00.000Z' + description: An app object. + ServiceManifestDataSourceParameter: + required: + - parameterId + - parameterType + type: object + properties: + parameterType: + pattern: ^DATA_SOURCE$ + type: string + description: Parameter type. + example: DATA_SOURCE + x-pattern-message: 'Supported parameter types include: DATA_SOURCE' + parameterId: + type: string + description: Parameter identifier. + example: paramId1 + dataSourceType: + pattern: ^(LOG|METRICS)$ + type: string + description: Data source type. + example: LOG + x-pattern-message: 'Supported data source types include: LOG, METRICS' + label: + type: string + description: Label. + example: Log label + description: + type: string + description: Description. + example: Log data source + example: + type: string + description: Example. + example: '' + hidden: + type: boolean + description: Should the UI display? + default: false diff --git a/provider-dev/source/archive.yaml b/provider-dev/source/archive.yaml new file mode 100644 index 0000000..81c1785 --- /dev/null +++ b/provider-dev/source/archive.yaml @@ -0,0 +1,325 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Archive API + description: Archive ingestion jobs that replay archived logs from an AWS S3 archive source. + version: 1.0.0 +paths: + /v1/archive/{sourceId}/jobs: + get: + tags: + - archiveManagement + summary: Get ingestion jobs for an Archive Source. + description: Get a list of all the ingestion jobs created on an Archive Source. The response is paginated with a default limit of 10 jobs per page. + operationId: listArchiveJobsBySourceId + parameters: + - name: sourceId + in: path + description: The identifier of an Archive Source. + required: true + schema: + type: string + example: 000000000606C009 + - name: limit + in: query + description: Limit the number of jobs returned in the response. The number of jobs returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: A paginated list of ingestion jobs for an Archive Source. + content: + application/json: + schema: + $ref: '#/components/schemas/ListArchiveJobsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - archiveManagement + summary: Create an ingestion job. + description: Create an ingestion job to pull data from your S3 bucket. + operationId: createArchiveJob + parameters: + - name: sourceId + in: path + description: The identifier of the Archive Source for which the job is to be added. + required: true + schema: + type: string + example: 000000000606C009 + requestBody: + description: The definition of the ingestion job to create. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateArchiveJobRequest' + required: true + responses: + '200': + description: The ingestion job was created successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ArchiveJob' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/archive/{sourceId}/jobs/{id}: + delete: + tags: + - archiveManagement + summary: Delete an ingestion job. + description: Delete an ingestion job with the given identifier from the organization. The delete operation is only possible for jobs with a Succeeded or Failed status. + operationId: deleteArchiveJob + parameters: + - name: sourceId + in: path + description: The identifier of the Archive Source. + required: true + schema: + type: string + - name: id + in: path + description: The identifier of the ingestion job to delete. + required: true + schema: + type: string + responses: + '204': + description: The ingestion job was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/archive/jobs/count: + get: + tags: + - archiveManagement + summary: List ingestion jobs for all Archive Sources. + description: Get a list of all Archive Sources with the count and status of ingestion jobs. + operationId: listArchiveJobsCountPerSource + parameters: [] + responses: + '200': + description: A list of Archive Sources with ingestion jobs. + content: + application/json: + schema: + $ref: '#/components/schemas/ListArchiveJobsCount' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListArchiveJobsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of Archive Jobs. + items: + $ref: '#/components/schemas/ArchiveJob' + next: + type: string + description: Next continuation token. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreateArchiveJobRequest: + required: + - endTime + - name + - startTime + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: The name of the ingestion job. + startTime: + type: string + description: The starting timestamp of the ingestion job. + format: date-time + example: '2018-10-16T09:10:00.000Z' + endTime: + type: string + description: The ending timestamp of the ingestion job. + format: date-time + example: '2018-10-16T10:10:00.000Z' + ArchiveJob: + type: object + required: + - endTime + - name + - startTime + - createdAt + - createdBy + - id + - status + - totalBytesIngested + - totalObjectsIngested + - totalObjectsScanned + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: The name of the ingestion job. + startTime: + type: string + description: The starting timestamp of the ingestion job. + format: date-time + example: '2018-10-16T09:10:00.000Z' + endTime: + type: string + description: The ending timestamp of the ingestion job. + format: date-time + example: '2018-10-16T10:10:00.000Z' + id: + type: string + description: The unique identifier of the ingestion job. + example: 4e214571-cf27-4114-93e6-69a98c017f3 + totalObjectsScanned: + type: integer + description: The total number of objects scanned by the ingestion job. + format: int64 + example: 25 + totalObjectsIngested: + type: integer + description: The total number of objects ingested by the ingestion job. + format: int64 + example: 10 + totalBytesIngested: + type: integer + description: The total bytes ingested by the ingestion job. + format: int64 + example: 100 + status: + type: string + description: The status of the ingestion job, either `Pending`,`Scanning`,`Ingesting`,`Failed`, or `Succeeded`. + example: Scanning + createdAt: + type: string + description: The creation timestamp in UTC of the ingestion job. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: The identifier of the user who created the ingestion job. + example: 0000000006743FDD + ListArchiveJobsCount: + required: + - data + type: object + properties: + data: + type: array + description: List of archive sources with count of jobs having various statuses. + items: + $ref: '#/components/schemas/ArchiveJobsCount' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ArchiveJobsCount: + required: + - failed + - ingesting + - pending + - scanning + - sourceId + - succeeded + type: object + properties: + sourceId: + type: string + description: Identifier for the archive source. + example: 000000000606C009 + pending: + type: integer + description: The total number of archive jobs with pending status for the archive source. + format: int64 + example: 4 + scanning: + type: integer + description: The total number of archive jobs with scanning status for the archive source. + format: int64 + example: 1 + ingesting: + type: integer + description: The total number of archive jobs with ingesting status for the archive source. + format: int64 + example: 2 + failed: + type: integer + description: The total number of archive jobs with failed status for the archive source. + format: int64 + example: 5 + succeeded: + type: integer + description: The total number of archive jobs with succeeded status for the archive source. + format: int64 + example: 20 diff --git a/provider-dev/source/budgets.yaml b/provider-dev/source/budgets.yaml new file mode 100644 index 0000000..9ad1bdd --- /dev/null +++ b/provider-dev/source/budgets.yaml @@ -0,0 +1,529 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Budgets API + description: Data volume and search cost budgets and their usage. + version: 1.0.0 +paths: + /v1/budgets: + get: + tags: + - budgetManagement + summary: Get budgets + description: Get budgets + operationId: getBudgets + parameters: + - name: limit + in: query + description: Limit the number of budgets returned in the response. The number of budgets returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. + required: false + schema: + type: string + responses: + '200': + description: Budgets assigned to the org. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetList' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - budgetManagement + summary: Creates a budget definition + description: Create a budget definition + operationId: createBudget + parameters: [] + requestBody: + description: Information about the new budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetDefinition' + required: true + responses: + '200': + description: The created budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudget' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/budgets/{budgetId}: + get: + tags: + - budgetManagement + summary: Get budget + description: Get budget + operationId: getBudget + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + responses: + '200': + description: The requested budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudget' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - budgetManagement + summary: Update budget + description: Update budget + operationId: updateBudget + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + requestBody: + description: Updated budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetDefinition' + required: true + responses: + '200': + description: The updated budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudget' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - budgetManagement + summary: Delete budget + description: Delete budget + operationId: deleteBudget + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + responses: + '204': + description: The budget was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/budgets/usage: + get: + tags: + - budgetManagement + summary: Get budget usages + description: Get budget usages + operationId: getBudgetUsages + parameters: + - name: limit + in: query + description: Limit the number of budget usages returned in the response. The number of budget usages returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. + required: false + schema: + type: string + responses: + '200': + description: Scan budget usages. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetUsageList' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/budgets/{budgetId}/usage: + get: + tags: + - budgetManagement + summary: Get budget usage + description: Get budget usage + operationId: getBudgetUsage + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + responses: + '200': + description: The requested budget usage. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ScanBudgetList: + required: + - data + type: object + properties: + data: + type: array + description: List of scan budgets. + items: + $ref: '#/components/schemas/ScanBudget' + next: + type: string + description: Next continuation token. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ScanBudgetDefinition: + required: + - action + - applicableOn + - budgetType + - capacity + - groupBy + - name + - scope + - unit + - window + type: object + properties: + name: + type: string + description: Name of the budget. + capacity: + type: integer + description: Capacity of the budget. + format: int64 + unit: + pattern: ^(GB|MB|TB|KB)$ + type: string + description: Unit of the budget. + example: GB + budgetType: + $ref: '#/components/schemas/BudgetType' + scope: + $ref: '#/components/schemas/ScanBudgetScope' + window: + pattern: ^(Query|Daily|Weekly|Monthly)$ + type: string + description: Window of the budget. Use Daily/Weekly/Monthly for creating a time based budget (beta) + example: Query + applicableOn: + pattern: ^(PerEntity|Sum)$ + type: string + description: Grouping of the budget. + example: PerEntity + groupBy: + pattern: ^(User)$ + type: string + description: Grouping Entity of the budget. + example: User + action: + pattern: ^(StopScan|StopForeGroundScan|Warn)$ + type: string + description: Action to be taken if the budget is breached + example: Warn + callerModules: + type: array + description: Caller modules this budget applies to. Empty list means budget applies to all callers. + example: + - api + - mcp + items: + type: string + status: + pattern: ^(active|inactive)$ + type: string + description: Signifies the state of the budget. (Active/Inactive) + example: active + ScanBudget: + required: + - action + - applicableOn + - budgetType + - capacity + - groupBy + - name + - scope + - unit + - window + - createdAt + - createdBy + - id + - modifiedAt + - modifiedBy + - orgId + - resetDateOfMonth + - resetDayOfWeek + - resetTime + - resetTimeZone + type: object + properties: + name: + type: string + description: Name of the budget. + capacity: + type: integer + description: Capacity of the budget. + format: int64 + unit: + pattern: ^(GB|MB|TB|KB)$ + type: string + description: Unit of the budget. + example: GB + budgetType: + $ref: '#/components/schemas/BudgetType' + scope: + $ref: '#/components/schemas/ScanBudgetScope' + window: + pattern: ^(Query|Daily|Weekly|Monthly)$ + type: string + description: Window of the budget. Use Daily/Weekly/Monthly for creating a time based budget (beta) + example: Query + applicableOn: + pattern: ^(PerEntity|Sum)$ + type: string + description: Grouping of the budget. + example: PerEntity + groupBy: + pattern: ^(User)$ + type: string + description: Grouping Entity of the budget. + example: User + action: + pattern: ^(StopScan|StopForeGroundScan|Warn)$ + type: string + description: Action to be taken if the budget is breached + example: Warn + callerModules: + type: array + description: Caller modules this budget applies to. Empty list means budget applies to all callers. + example: + - api + - mcp + items: + type: string + status: + pattern: ^(active|inactive)$ + type: string + description: Signifies the state of the budget. (Active/Inactive) + example: active + id: + type: string + description: Id of the budget. + orgId: + type: string + description: Org Id of the org for the budget. + resetTime: + maxLength: 5 + minLength: 5 + type: string + description: Reset time of the time based scan budget in HH:MM format + example: '23:30' + default: '00:00' + resetTimeZone: + type: string + description: Time zone of the reset time for the time based scan budget. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + default: Etc/UTC + resetDayOfWeek: + pattern: ^(MONDAY|TUESDAY|WEDNESDAY|THURSDAY|FRIDAY|SATURDAY|SUNDAY)$ + type: string + description: The day of the week when the budget resets, applicable for time based budgets with a Weekly window. Must be a valid day of the week. + default: MONDAY + resetDateOfMonth: + maximum: 28 + minimum: 1 + type: integer + description: The date of the month when the budget resets, applicable for time based budgets with a Monthly window. Must be a valid day of the month (1-28). + format: int32 + default: 1 + createdAt: + type: string + description: Date & time when budget was created. + format: date-time + createdBy: + type: string + description: Id of the user who created the budget. + modifiedAt: + type: string + description: Date & time when budget was last modified. + format: date-time + modifiedBy: + type: string + description: Id of the user who last modified the budget. + ScanBudgetUsageList: + required: + - data + type: object + properties: + data: + type: array + description: List of budget usages + items: + $ref: '#/components/schemas/ScanBudgetUsage' + next: + type: string + description: Next continuation token. + ScanBudgetUsage: + required: + - budgetId + - usage + - usagePercentage + type: object + properties: + budgetId: + type: string + description: Budget id. + usage: + type: integer + description: Budget usage (in bytes). + format: int64 + usagePercentage: + type: integer + description: Budget usage percentage. + format: int64 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + BudgetType: + pattern: ^(ScanBudget)$ + type: string + description: Type of the budget. + example: ScanBudget + ScanBudgetScope: + required: + - excludedRoles + - excludedUsers + - includedRoles + - includedUsers + type: object + properties: + includedUsers: + type: array + description: List of userIds included in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + excludedUsers: + type: array + description: List of userIds excluded in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + includedRoles: + type: array + description: List of roleIds included in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + excludedRoles: + type: array + description: List of roleIds excluded in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string diff --git a/provider-dev/source/collectors.yaml b/provider-dev/source/collectors.yaml new file mode 100644 index 0000000..285a09d --- /dev/null +++ b/provider-dev/source/collectors.yaml @@ -0,0 +1,727 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Collectors API + description: Collectors, Sources and Collector upgrades (the Collector Management API). + version: 1.0.0 +tags: + - name: collectorManagement + description: Collector Management API - Collectors, Sources and Collector upgrades. +paths: + /v1/collectors: + get: + tags: + - collectorManagement + operationId: listCollectors + summary: List Collectors + description: Get a list of Collectors with an optional limit and offset. + parameters: + - name: filter + in: query + description: 'Filter the Collectors returned using one of the available filter types: installed, hosted, dead, or alive.' + schema: + type: string + enum: + - installed + - hosted + - dead + - alive + - name: limit + in: query + description: Maximum number of Collectors to return (default 1000). + schema: + type: integer + - name: offset + in: query + description: Offset into the list of Collectors (default 0). + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsList' + post: + tags: + - collectorManagement + operationId: createCollector + summary: Create Hosted Collector + description: Create a Hosted Collector. This method can only be used to create Hosted Collectors; an Installed Collector is created by installing the collector software on a host. + requestBody: + description: Definition of the new Hosted Collector, wrapped in a collector object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorDefinition' + responses: + '200': + description: The Collector has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + /v1/collectors/offline: + get: + tags: + - collectorManagement + operationId: listOfflineCollectors + summary: List offline Collectors + description: Get a list of Installed Collectors last seen alive before a specified number of days with an optional limit and offset. + parameters: + - name: aliveBeforeDays + in: query + description: Minimum number of days the Collectors have been offline (default 100, minimum 1). + schema: + type: integer + - name: limit + in: query + description: Maximum number of Collectors to return (default 1000). + schema: + type: integer + - name: offset + in: query + description: Offset into the list of Collectors (default 0). + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsList' + delete: + tags: + - collectorManagement + operationId: deleteOfflineCollectors + summary: Delete offline Collectors + description: Delete Installed Collectors last seen alive before a specified number of days. The delete task is initiated asynchronously. + parameters: + - name: aliveBeforeDays + in: query + description: Minimum number of days the Collectors have been offline (default 100, minimum 1). + schema: + type: integer + responses: + '200': + description: The delete task has been initiated. + /v1/collectors/overview: + get: + tags: + - collectorManagement + operationId: getCollectorsOverview + summary: Collectors overview + description: Summary counts of Installed and Hosted Collectors and Sources, offline Collectors, errors and warnings. + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsOverview' + /v1/collectors/{id}: + get: + tags: + - collectorManagement + operationId: getCollector + summary: Get Collector by ID + description: Get the Collector with the specified identifier. The response carries an ETag header, which must be supplied as If-Match on an update. + parameters: + - $ref: '#/components/parameters/collectorId' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + put: + tags: + - collectorManagement + operationId: updateCollector + summary: Update Collector + description: Update a Collector. The Collector Management API requires the If-Match header to carry the ETag returned by a previous GET of the same Collector; the request body is the full Collector object wrapped in collector. + parameters: + - $ref: '#/components/parameters/collectorId' + - $ref: '#/components/parameters/ifMatch' + requestBody: + description: The updated Collector, wrapped in a collector object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorDefinition' + responses: + '200': + description: The Collector was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + delete: + tags: + - collectorManagement + operationId: deleteCollector + summary: Delete Collector + description: Delete the Collector with the specified identifier. + parameters: + - $ref: '#/components/parameters/collectorId' + responses: + '200': + description: The Collector was deleted successfully. + /v1/collectors/name/{name}: + get: + tags: + - collectorManagement + operationId: getCollectorByName + summary: Get Collector by name + description: Get the Collector with the specified name. + parameters: + - name: name + in: path + description: Name of the Collector. + required: true + schema: + type: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + /v1/collectors/{collectorId}/sources: + get: + tags: + - collectorManagement + operationId: listSources + summary: List Sources + description: Get information about all Sources of a specified Collector. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/download' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SourcesList' + post: + tags: + - collectorManagement + operationId: createSource + summary: Create Source + description: Create a new Source on a Collector. The request body is the Source definition wrapped in a source object; see the vendor documentation (Use JSON to Configure Sources) for the fields required by each sourceType. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + requestBody: + description: Definition of the new Source, wrapped in a source object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SourceDefinition' + responses: + '200': + description: The Source has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/GetSource' + /v1/collectors/{collectorId}/sources/{sourceId}: + get: + tags: + - collectorManagement + operationId: getSource + summary: Get Source + description: Get information about a specified Source of a Collector. The response carries an ETag header, which must be supplied as If-Match on an update. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/sourceId' + - $ref: '#/components/parameters/download' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetSource' + put: + tags: + - collectorManagement + operationId: updateSource + summary: Update Source + description: Update a Source. The Collector Management API requires the If-Match header to carry the ETag returned by a previous GET of the same Source; the request body is the full Source object wrapped in source. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/sourceId' + - $ref: '#/components/parameters/ifMatch' + requestBody: + description: The updated Source, wrapped in a source object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SourceDefinition' + responses: + '200': + description: The Source was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/GetSource' + delete: + tags: + - collectorManagement + operationId: deleteSource + summary: Delete Source + description: Delete the specified Source of a Collector. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/sourceId' + responses: + '200': + description: The Source was deleted successfully. + /v1/collectors/upgrades/targets: + get: + tags: + - collectorManagement + operationId: listUpgradeTargets + summary: List Collector upgrade targets + description: Get the Installed Collector versions available as upgrade (or downgrade) targets. + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/UpgradeTargetsList' + /v1/collectors/upgrades/collectors: + get: + tags: + - collectorManagement + operationId: listUpgradableCollectors + summary: List upgradable Collectors + description: Get the Installed Collectors that can be upgraded (or downgraded) to the specified version. + parameters: + - name: toVersion + in: query + description: Target Collector version. Defaults to the latest version. + schema: + type: string + - name: offset + in: query + description: Offset into the list of Collectors (default 0). + schema: + type: integer + - name: limit + in: query + description: Maximum number of Collectors to return (default 50). + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsList' + /v1/collectors/upgrades: + post: + tags: + - collectorManagement + operationId: createUpgrade + summary: Upgrade a Collector + description: Start an upgrade (or downgrade) task for an Installed Collector. Poll the returned task with the upgrade status method. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpgradeRequest' + responses: + '202': + description: The upgrade task has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/UpgradeTask' + /v1/collectors/upgrades/{upgradeTaskId}: + get: + tags: + - collectorManagement + operationId: getUpgradeStatus + summary: Get Collector upgrade status + description: Get the status of a Collector upgrade task. + parameters: + - name: upgradeTaskId + in: path + description: Identifier of the upgrade task. + required: true + schema: + type: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetUpgrade' +components: + parameters: + collectorId: + name: id + in: path + description: Unique identifier of the Collector. + required: true + schema: + type: string + parentCollectorId: + name: collectorId + in: path + description: Unique identifier of the Collector. + required: true + schema: + type: string + sourceId: + name: sourceId + in: path + description: Unique identifier of the Source. + required: true + schema: + type: string + ifMatch: + name: If-Match + in: header + description: The ETag value returned in the response headers of a previous GET of this object. The Collector Management API requires it on updates. + required: false + schema: + type: string + download: + name: download + in: query + description: When true, the response is the JSON configuration of the Source(s), suitable for registering a new Collector or creating a new Source. + required: false + schema: + type: boolean + schemas: + Collector: + type: object + description: Collector object. + properties: + id: + type: integer + description: Unique identifier of the Collector. + name: + type: string + description: Name of the Collector. It must be unique on your account. + description: + type: string + description: Description of the Collector. + category: + type: string + description: The category of the Collector, used as metadata when searching data. + collectorType: + type: string + description: 'The Collector type: Installable or Hosted.' + collectorVersion: + type: string + description: Version of the Collector software installed. + alive: + type: boolean + description: When a Collector is running it sends a heartbeat every 15 seconds. If no heartbeat is received for 30 minutes this becomes false. + lastSeenAlive: + type: integer + format: int64 + description: The last time the Sumo Logic service received an active heartbeat from the Collector, in milliseconds since epoch. + ephemeral: + type: boolean + description: When true, the Collector is deleted after 12 hours of inactivity. + hostName: + type: string + description: Host name of the Collector. + timeZone: + type: string + description: Time zone of the Collector (TZ database name). + sourceSyncMode: + type: string + description: For Installed Collectors, whether Sources are managed locally from a JSON file (Json) or from the cloud (UI). + cutoffTimestamp: + type: integer + format: int64 + description: Only collect data from files with a modified date more recent than this timestamp, in milliseconds since epoch (0 collects all data). + cutoffRelativeTime: + type: string + description: Can be specified instead of cutoffTimestamp to provide a relative offset with respect to the current time, for example -1h, -1d or -1w. + targetCpu: + type: integer + description: When CPU utilization exceeds this threshold the Collector slows its rate of ingestion. + osName: + type: string + description: Name of the OS the Collector is installed on (Installed Collectors only). + osVersion: + type: string + description: Version of the OS the Collector is installed on (Installed Collectors only). + osArch: + type: string + description: Architecture of the OS the Collector is installed on (Installed Collectors only). + osTime: + type: integer + format: int64 + description: Time that the Collector has been running, in milliseconds (Installed Collectors only). + fields: + type: string + description: JSON map of key-value fields (metadata) applied to the Collector. (opaque JSON object) + links: + type: array + description: Related links. + items: + type: object + properties: + rel: + type: string + href: + type: string + CollectorsList: + type: object + description: List of Collector objects. + properties: + collectors: + type: array + items: + $ref: '#/components/schemas/Collector' + GetCollector: + type: object + description: A single Collector, wrapped in a collector object. + properties: + collector: + $ref: '#/components/schemas/Collector' + CollectorDefinition: + type: object + description: Collector definition for create and update requests, wrapped in a collector object. + required: + - collector + properties: + collector: + $ref: '#/components/schemas/Collector' + CollectorsOverview: + type: object + description: Summary counts of Collectors and Sources. + properties: + installedCollectorsCount: + type: integer + installedSourcesCount: + type: integer + hostedCollectorsCount: + type: integer + hostedSourcesCount: + type: integer + offlineCollectorsCount: + type: integer + errors: + type: integer + warnings: + type: integer + Source: + type: object + description: Source object. The set of properties depends on the sourceType; the properties listed here are the common ones. + properties: + id: + type: integer + description: Unique identifier of the Source. + name: + type: string + description: Name of the Source. + description: + type: string + description: Description of the Source. + category: + type: string + description: Source category (the _sourceCategory metadata field). + hostName: + type: string + description: Host name assigned to data from this Source (the _sourceHost metadata field). + sourceType: + type: string + description: Type of the Source, for example HTTP, LocalFile, RemoteFileV2, Syslog, SystemStats, Polling, Script, and the cloud-to-cloud types. + contentType: + type: string + description: Content type of the data collected (used by some cloud Source types). + alive: + type: boolean + description: Whether the Source is alive. + url: + type: string + description: Unique URL of an HTTP Source endpoint. + encoding: + type: string + description: Character encoding of the data (default UTF-8). + timeZone: + type: string + description: Time zone applied to messages when forceTimeZone is true or the message has no time zone. + forceTimeZone: + type: boolean + description: When true, the timeZone is applied to all messages. + automaticDateParsing: + type: boolean + description: Whether timestamps are parsed automatically. + multilineProcessingEnabled: + type: boolean + description: Whether multiline message processing is enabled. + useAutolineMatching: + type: boolean + description: Whether message boundaries are inferred automatically. + manualPrefixRegexp: + type: string + description: Regular expression that marks the start of a message when useAutolineMatching is false. + messagePerRequest: + type: boolean + description: For HTTP Sources, whether each request is a single message. + defaultDateFormats: + type: array + description: Default date formats used to parse timestamps. + items: + type: string + description: (opaque JSON object) + pathExpression: + type: string + description: Path expression of the files to collect (file Sources). + denylist: + type: array + description: Path expressions to exclude from collection (file Sources). + items: + type: string + filters: + type: array + description: Processing rules (Exclude, Include, Hash, Mask, Forward) applied to the Source. + items: + type: object + properties: + filterType: + type: string + name: + type: string + regexp: + type: string + mask: + type: string + fields: + type: string + description: JSON map of key-value fields (metadata) applied to the Source. (opaque JSON object) + cutoffTimestamp: + type: integer + format: int64 + description: Only collect data more recent than this timestamp, in milliseconds since epoch. + cutoffRelativeTime: + type: string + description: Relative offset instead of cutoffTimestamp, for example -1h, -1d or -1w. + hashAlgorithm: + type: string + description: Hash algorithm used by Hash processing rules. + interval: + type: integer + description: Collection interval in milliseconds (metrics and script Sources). + metrics: + type: array + description: Metrics to collect (SystemStats Sources). + items: + type: string + thirdPartyRef: + type: string + description: Cloud-to-cloud Source configuration. (opaque JSON object) + status: + type: string + description: Source status (cloud Sources). (opaque JSON object) + SourcesList: + type: object + description: List of Sources for a Collector. + properties: + sources: + type: array + items: + $ref: '#/components/schemas/Source' + GetSource: + type: object + description: A single Source, wrapped in a source object. + properties: + source: + $ref: '#/components/schemas/Source' + SourceDefinition: + type: object + description: Source definition for create and update requests, wrapped in a source object. + required: + - source + properties: + source: + $ref: '#/components/schemas/Source' + UpgradeTarget: + type: object + properties: + version: + type: string + description: Collector version. + latest: + type: boolean + description: Whether this is the latest version. + UpgradeTargetsList: + type: object + properties: + targets: + type: array + items: + $ref: '#/components/schemas/UpgradeTarget' + UpgradeRequest: + type: object + required: + - collectorId + properties: + collectorId: + type: integer + description: Identifier of the Installed Collector to upgrade. + toVersion: + type: string + description: Target version. Defaults to the latest version. + UpgradeTask: + type: object + properties: + id: + type: string + description: Identifier of the upgrade task. + link: + type: object + description: Link to the upgrade task status. + properties: + rel: + type: string + href: + type: string + Upgrade: + type: object + properties: + id: + type: string + description: Identifier of the upgrade task. + collectorId: + type: integer + description: Identifier of the Collector being upgraded. + toVersion: + type: string + description: Target version. + requestTime: + type: integer + format: int64 + description: Time the upgrade was requested, in milliseconds since epoch. + status: + type: integer + description: 'Upgrade status: 0 not started, 1 running, 2 succeeded, 3 failed, 6 progressing.' + message: + type: string + description: Status message. + GetUpgrade: + type: object + properties: + upgrade: + $ref: '#/components/schemas/Upgrade' diff --git a/provider-dev/source/connections.yaml b/provider-dev/source/connections.yaml new file mode 100644 index 0000000..553183b --- /dev/null +++ b/provider-dev/source/connections.yaml @@ -0,0 +1,433 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Connections API + description: Webhook, ServiceNow, PagerDuty and other outbound connections used by monitors and scheduled searches. + version: 1.0.0 +paths: + /v1/connections: + get: + tags: + - connectionManagement + summary: Get a list of connections. + description: Get a list of all connections in the organization. The response is paginated with a default limit of 100 connections per page. + operationId: listConnections + parameters: + - name: limit + in: query + description: Limit the number of connections returned in the response. The number of connections returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: A paginated list of connections in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListConnectionsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - connectionManagement + summary: Create a new connection. + description: Create a new connection in the organization. + operationId: createConnection + parameters: [] + requestBody: + description: Information about the new connection. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectionDefinition' + required: true + responses: + '200': + description: The connection has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/Connection' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/connections/test: + post: + tags: + - connectionManagement + summary: Test a new connection url. + description: Test a new connection url is valid and can connect. + operationId: testConnection + parameters: + - name: functionalities + in: query + description: 'A comma-separated functionalities of webhook payload to test. Acceptable values: `alert`, `resolution`.' + style: form + explode: false + schema: + type: array + items: + type: string + default: + - alert + example: alert,resolution + - name: connectionId + in: query + description: Unique identifier of an existing connection to test. It should be provided when the request body of an existing connection contains masked authorization headers. If not provided, the authorization headers will not be correctly unmasked, and the test may fail due to unauthorized access. + required: false + schema: + type: string + example: 0000000000123ABC + requestBody: + description: Information about the new connection. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectionDefinition' + required: true + responses: + '200': + description: The connection url has been tested. + content: + application/json: + schema: + $ref: '#/components/schemas/TestConnectionResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/connections/incidentTemplates: + post: + tags: + - connectionManagement + summary: Get incident templates for CloudSOAR connections. + description: Get incident templates for CloudSOAR connections. + operationId: getIncidentTemplates + parameters: [] + requestBody: + description: Information about the new connection. + content: + application/json: + schema: + $ref: '#/components/schemas/GetIncidentTemplatesRequest' + required: false + responses: + '200': + description: A list of the incident templates for the given CloudSOAR account. + content: + application/json: + schema: + $ref: '#/components/schemas/GetIncidentTemplatesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/connections/{id}: + get: + tags: + - connectionManagement + summary: Get a connection. + description: Get a connection with the given identifier. + operationId: getConnection + parameters: + - name: id + in: path + description: Identifier of connection to return. + required: true + schema: + type: string + - name: type + in: query + description: Type of connection to return. Valid values are `WebhookConnection`, `ServiceNowConnection`. + schema: + type: string + default: WebhookConnection + responses: + '200': + description: Connection object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/Connection' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - connectionManagement + summary: Update a connection. + description: Update an existing connection. + operationId: updateConnection + parameters: + - name: id + in: path + description: Identifier of the connection to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the connection. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectionDefinition' + required: true + responses: + '200': + description: The connection was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/Connection' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - connectionManagement + summary: Delete a connection. + description: Delete a connection with the given identifier. + operationId: deleteConnection + parameters: + - name: id + in: path + description: Identifier of the connection to delete. + required: true + schema: + type: string + - name: type + in: query + description: Type of connection to delete. Valid values are `WebhookConnection`, `ServiceNowConnection`. + required: true + schema: + pattern: ^(WebhookConnection|ServiceNowConnection)$ + type: string + x-pattern-message: must be either `WebhookConnection` or `ServiceNowConnection` + responses: + '204': + description: Connection was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListConnectionsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of connections. + items: + $ref: '#/components/schemas/Connection' + next: + type: string + description: Next continuation token. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ConnectionDefinition: + required: + - name + - type + type: object + properties: + type: + pattern: ^(WebhookDefinition|ServiceNowDefinition)$ + type: string + description: Type of connection. Valid values are `WebhookDefinition`, `ServiceNowDefinition`. + x-pattern-message: must be either `WebhookDefinition` or `ServiceNowDefinition` + name: + maxLength: 127 + minLength: 1 + type: string + description: Name of the connection. + description: + maxLength: 1024 + type: string + description: Description of the connection. + default: '' + discriminator: + propertyName: type + mapping: + ServiceNowDefinition: '#/components/schemas/ServiceNowDefinition' + WebhookDefinition: '#/components/schemas/WebhookDefinition' + Connection: + required: + - createdAt + - createdBy + - description + - id + - modifiedAt + - modifiedBy + - name + - type + type: object + properties: + type: + type: string + description: Type of connection. Valid values are `WebhookConnection`, `ServiceNowConnection`. + id: + type: string + description: Unique identifier for the connection. + name: + type: string + description: Name of the connection. + description: + type: string + description: Description of the connection. + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + discriminator: + propertyName: type + TestConnectionResponse: + required: + - responseContent + - statusCode + type: object + properties: + statusCode: + type: integer + description: Status code of the response of the connection test. + responseContent: + type: string + description: Content of the response of the connection test. + alertStatusCode: + type: integer + description: Status code of the response of alert payload test. + format: int32 + example: 200 + alertResponseContent: + type: string + description: Content of the response of alert payload test. + example: ok + resolutionStatusCode: + type: integer + description: Status code of the response of resolution payload test. + format: int32 + example: 200 + resolutionResponseContent: + type: string + description: Content of the response of resolution payload test. + example: ok + GetIncidentTemplatesRequest: + type: object + properties: + url: + type: string + description: Optional CloudSOAR domain URL to use for the API call to get incident templates. + example: https://staging.soar.sumologic.com/ + authHeader: + type: string + description: Optional CloudSOAR authorization header to use for the API call to get incident templates. + example: SOMEAUTHHEADERSTRING + connectionId: + type: string + description: Optional connectionId to get incident templates for an existing CloudSOAR connection. If provided, the authHeader and url will be taken from the existing connection object. + example: 0000000000123ABC + GetIncidentTemplatesResponse: + required: + - templates + type: object + properties: + templates: + type: array + description: List of incident templates. + items: + $ref: '#/components/schemas/IncidentTemplate' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + IncidentTemplate: + required: + - id + - name + type: object + properties: + id: + type: integer + description: Unique identifier of the incident template. + name: + type: string + description: Name of the incident template. diff --git a/provider-dev/source/content.yaml b/provider-dev/source/content.yaml new file mode 100644 index 0000000..d0ac38e --- /dev/null +++ b/provider-dev/source/content.yaml @@ -0,0 +1,1446 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Content API + description: The content library - folders (personal, global, admin recommended, installed apps), content permissions, paths, and the asynchronous export, import, copy, move and delete jobs. + version: 1.0.0 +paths: + /v2/content/folders: + post: + tags: + - folderManagement + summary: Create a new folder. + description: Creates a new folder under the given parent folder. Set the header parameter `isAdminMode` to `"true"` to create a folder inside "Admin Recommended" folder. + operationId: createFolder + parameters: + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + requestBody: + description: Information about the new folder. + content: + application/json: + schema: + $ref: '#/components/schemas/FolderDefinition' + required: true + responses: + '200': + description: The folder has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/{id}: + get: + tags: + - folderManagement + summary: Get a folder. + description: Get a folder with the given identifier. Set the header parameter `isAdminMode` to `"true"` if fetching a folder inside "Admin Recommended" folder. + operationId: getFolder + parameters: + - name: id + in: path + description: Identifier of the folder to fetch. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: Folder that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - folderManagement + summary: Update a folder. + description: Update an existing folder with the given identifier. Set the header parameter `isAdminMode` to `"true"` if updating a folder inside "Admin Recommended" folder. + operationId: updateFolder + parameters: + - name: id + in: path + description: Identifier of the folder to update. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + requestBody: + description: Information to update about the folder. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFolderRequest' + required: true + responses: + '200': + description: The folder was successfully updated. + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/personal: + get: + tags: + - folderManagement + summary: Get personal folder. + description: Get the personal folder of the current user. + operationId: getPersonalFolder + responses: + '200': + description: | + The personal folder of the current user. + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/global: + get: + tags: + - folderManagement + summary: Schedule Global View job + description: |- + Schedule an asynchronous job to get Global View. Global View contains all top-level content items that a user has permissions to view in the organization. User can traverse the top-level folders using GetFolder API to get rest of the content items. Make sure you set `isAdminMode` header parameter to `true` when traversing top-level items. + + _Global View is not a real folder, therefore there is no folder identifier associated with it_. + + _You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._ + operationId: getGlobalFolderAsync + parameters: + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: An asynchronous job to get a list of all content items been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/global/{jobId}/status: + get: + tags: + - folderManagement + summary: Get Global View job status + description: Get the status of an asynchronous Global View job for the given job identifier. If job succeeds, use Global View Result endpoint to fetch all content items that you have permissions to view. + operationId: getGlobalFolderAsyncStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Global View job. + required: true + schema: + type: string + responses: + '200': + description: Asynchronous Global View job status. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/global/{jobId}/result: + get: + tags: + - folderManagement + summary: Get Global View job result + description: Get result of a Global View job for the given job identifier. The result will be a list of all content items that a user has permissions to view in the organization. + operationId: getGlobalFolderAsyncResult + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Global View job. + required: true + schema: + type: string + responses: + '200': + description: List of all content items with view permission. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentList' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/adminRecommended: + get: + tags: + - folderManagement + summary: Schedule Admin Recommended folder job + description: |- + Schedule an asynchronous job to get the top-level Admin Recommended content items. You can read more about Admin Recommended folder [here](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode#move-important-content-to-admin-recommended). + + _You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._ + operationId: getAdminRecommendedFolderAsync + parameters: + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: An asynchronous job to get the Admin Recommended folder has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/adminRecommended/{jobId}/status: + get: + tags: + - folderManagement + summary: Get Admin Recommended folder job status + description: Get the status of an asynchronous Admin Recommended folder job for the given job identifier. If job succeeds, use Admin Recommended Job Result endpoint to fetch top-level content items in Admin Recommended folder. + operationId: getAdminRecommendedFolderAsyncStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Admin Recommended folder job. + required: true + schema: + type: string + responses: + '200': + description: Asynchronous Admin Recommended folder job status. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/adminRecommended/{jobId}/result: + get: + tags: + - folderManagement + summary: Get Admin Recommended folder job result + description: Get result of an Admin Recommended job for the given job identifier. The result will be "Admin Recommended" folder with a list of top-level Admin Recommended content items in `children` field. + operationId: getAdminRecommendedFolderAsyncResult + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Admin Recommended folder job. + required: true + schema: + type: string + responses: + '200': + description: Admin Recommended folder. + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/installedApps: + get: + tags: + - folderManagement + summary: Schedule Installed Apps folder job + description: |- + Schedule an asynchronous job to get the top-level Installed Apps content items. + + _You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._ + operationId: getInstalledAppsFolderAsync + parameters: + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: An asynchronous job to get the Installed Apps folder has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/installedApps/{jobId}/status: + get: + tags: + - folderManagement + summary: Get Installed Apps folder job status + description: Get the status of an asynchronous Installed Apps folder job for the given job identifier. If job succeeds, use Installed Apps Job Result endpoint to fetch top-level content items in Installed Apps folder. + operationId: getInstalledAppsFolderAsyncStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Installed Apps folder job. + required: true + schema: + type: string + responses: + '200': + description: Asynchronous Installed Apps folder job status. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/installedApps/{jobId}/result: + get: + tags: + - folderManagement + summary: Get Installed Apps folder job result + description: Get result of an Installed Apps job for the given job identifier. The result will be "Installed Apps" folder with a list of top-level Installed Apps content items in `children` field. + operationId: getInstalledAppsFolderAsyncResult + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Installed Apps folder job. + required: true + schema: + type: string + responses: + '200': + description: Installed Apps folder. + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/permissions: + get: + tags: + - contentPermissions + summary: Get permissions of a content item + description: Returns content permissions of a content item with the given identifier. + operationId: getContentPermissions + parameters: + - name: id + in: path + description: The identifier of the content item. + required: true + schema: + type: string + - name: explicitOnly + in: query + description: 'There are two permission types: explicit and implicit. Permissions specifically assigned to the content item are explicit. Permissions derived from a parent content item, like a folder are implicit. To return only explicit permissions set this to true.' + schema: + type: boolean + default: false + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: A list of permissions for the requested content item. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPermissionResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/permissions/add: + put: + tags: + - contentPermissions + summary: Add permissions to a content item. + description: Add permissions to a content item with the given identifier. + operationId: addContentPermissions + parameters: + - name: id + in: path + description: The identifier of the content item. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + requestBody: + description: New permissions to add to the content item with the given identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPermissionUpdateRequest' + required: true + responses: + '200': + description: Updated permission object for the requested content item. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPermissionResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/permissions/remove: + put: + tags: + - contentPermissions + summary: Remove permissions from a content item. + description: Remove permissions from a content item with the given identifier. + operationId: removeContentPermissions + parameters: + - name: id + in: path + description: The identifier of the content item. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + requestBody: + description: Permissions to remove from a content item with the given identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPermissionUpdateRequest' + required: true + responses: + '200': + description: Updated permissions for the requested content item. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPermissionResult' + default: + description: Operation failed with an error. Check that your request is valid. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/path: + get: + tags: + - contentManagement + summary: Get content item by path. + description: |- + Get a content item corresponding to the given path. + + _Path is specified in the required query parameter `path`. The path should be URL encoded._ For example, to get "Acme Corp" folder of a user "user@sumo.com" you can use the following curl command: + ```bash + curl https://api.sumologic.com/api/v2/content/path?path=/Library/Users/user%40sumo.com/Acme%20Corp + ``` + + + The absolute path to a content item should be specified to get the item. The content library has "Library" folder at the root level. For items in "Personal" folder, the base path is "/Library/Users/user@sumo.com" where "user@sumo.com" is the email address of the user. For example if a user with email address `wile@acme.com` has `Rockets` folder inside Personal folder, the path of Rockets folder will be `/Library/Users/wile@acme.com/Rockets`. + + For items in "Admin Recommended" folder, the base path is "/Library/Admin Recommended". For example, given a folder `Acme` in Admin Recommended folder, the path will be `/Library/Admin Recommended/Acme`. + operationId: getItemByPath + parameters: + - name: path + in: query + description: Path of the content item to retrieve. + required: true + schema: + type: string + example: /Library/Users/user@sumo.com/SampleFolder + responses: + '200': + description: Content item corresponding to the given path. + content: + application/json: + schema: + $ref: '#/components/schemas/Content' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{contentId}/path: + get: + tags: + - contentManagement + summary: Get path of an item. + description: | + Get full path of a content item with the given identifier. + operationId: getPathById + parameters: + - name: contentId + in: path + description: Identifier of the content item to get the path. + required: true + schema: + type: string + responses: + '200': + description: Full path of the content item. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentPath' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/export: + post: + tags: + - contentManagement + summary: Start a content export job. + description: |- + Schedule an _asynchronous_ export of content with the given identifier. You will get back an asynchronous job identifier on success. Use the getAsyncExportStatus endpoint and the job identifier you got back in the response to track the status of an asynchronous export job. + If the content item is a folder, everything under the folder is exported recursively. Keep in mind when exporting large folders that there is a limit of 1000 content objects that can be exported at once. If you want to import more than 1000 content objects, then be sure to split the import into batches of 1000 objects or less. + The results from the export are compatible with the Library import feature in the Sumo Logic user interface as well as the API content import job. + operationId: beginAsyncExport + parameters: + - name: id + in: path + description: The identifier of the content item to export. Identifiers from the Library in the Sumo user interface are provided in decimal format which is incompatible with this API. The identifier needs to be in hexadecimal format. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: Export job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{contentId}/export/{jobId}/status: + get: + tags: + - contentManagement + summary: Content export job status. + description: Get the status of an asynchronous content export request for the given job identifier. On success, use the getExportResult endpoint to get the result of the export job. + operationId: getAsyncExportStatus + parameters: + - name: contentId + in: path + description: The identifier of the exported content item. + required: true + schema: + type: string + - name: jobId + in: path + description: The identifier of the asynchronous export job. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: The status of the export job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{contentId}/export/{jobId}/result: + get: + tags: + - contentManagement + summary: Content export job result. + description: Get results from content export job for the given job identifier. The results from this export are incompatible with the Library import feature in the Sumo user interface. + operationId: getAsyncExportResult + parameters: + - name: contentId + in: path + description: The identifier of the exported content item. + required: true + schema: + type: string + - name: jobId + in: path + description: The identifier of the asynchronous job. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: The result of export job. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/{folderId}/import: + post: + tags: + - contentManagement + summary: Start a content import job. + description: Schedule an asynchronous import of content inside an existing folder with the given identifier. Import requests can be used to create or update content within a folder. Content items need to have a unique name within their folder. If there is already a content item with the same name in the folder, you can set the `overwrite` parameter to `true` to overwrite existing content items. By default, the `overwrite` parameter is set to `false`, where the import will fail if a content item with the same name already exist. Keep in mind when importing large folders that there is a limit of 1000 content objects that can be imported at once. If you want to import more than 1000 content objects, then be sure to split the import into batches of 1000 objects or less. + operationId: beginAsyncImport + parameters: + - name: folderId + in: path + description: The identifier of the folder to import into. Identifiers from the Library in the Sumo user interface are provided in decimal format which is incompatible with this API. The identifier needs to be in hexadecimal format. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + - name: overwrite + in: query + description: Set this to "true" to overwrite a content item if the name already exists. + required: false + schema: + type: boolean + default: false + requestBody: + description: The content to import. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncDefinition' + required: true + responses: + '200': + description: Import job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/{folderId}/import/{jobId}/status: + get: + tags: + - contentManagement + summary: Content import job status. + description: Get the status of a content import job for the given job identifier. + operationId: getAsyncImportStatus + parameters: + - name: folderId + in: path + description: The identifier of the folder to import into. + required: true + schema: + type: string + - name: jobId + in: path + description: The identifier of the import request. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: The status of the import job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/{folderId}/import/{jobId}/result: + get: + tags: + - contentManagement + summary: Content import job result. + description: Get the complete summary of content import job for the given job identifier. + operationId: getAsyncImportResult + parameters: + - name: folderId + in: path + description: The identifier of the folder to import into. + required: true + schema: + type: string + - name: jobId + in: path + description: The identifier of the import request. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: The result of the import job. + content: + application/json: + schema: + $ref: '#/components/schemas/ImportResult' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/delete: + delete: + tags: + - contentManagement + summary: Start a content deletion job. + description: Start an asynchronous content deletion job with the given identifier. + operationId: beginAsyncDelete + parameters: + - name: id + in: path + description: Identifier of the content to delete. Identifiers from the Library in the Sumo user interface are provided in decimal format which is incompatible with this API. The identifier needs to be in hexadecimal format. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: Deletion job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/delete/{jobId}/status: + get: + tags: + - contentManagement + summary: Content deletion job status. + description: Get the status of an asynchronous content deletion job request for the given job identifier. + operationId: getAsyncDeleteStatus + parameters: + - name: id + in: path + description: Identifier of the content to delete. + required: true + schema: + type: string + - name: jobId + in: path + description: The identifier of the asynchronous job. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: The status of the content deletion job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/copy: + post: + tags: + - contentManagement + summary: Start a content copy job. + description: Start an asynchronous content copy job with the given identifier to the destination folder. If the content item is a folder, everything under the folder is copied recursively. + operationId: beginAsyncCopy + parameters: + - name: id + in: path + description: The identifier of the content item to copy. Identifiers from the Library in the Sumo user interface are provided in decimal format which is incompatible with this API. The identifier needs to be in hexadecimal format. + required: true + schema: + type: string + - name: destinationFolder + in: query + description: The identifier of the destination folder. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: Content copy job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/copy/{jobId}/status: + get: + tags: + - contentManagement + summary: Content copy job status. + description: | + Get the status of the copy request with the given job identifier. On success, field `statusMessage` will contain identifier of the newly copied content in format: `id: {hexIdentifier}`. + operationId: asyncCopyStatus + parameters: + - name: id + in: path + description: The identifier of the content which was copied. + required: true + schema: + type: string + - name: jobId + in: path + description: The identifier of the asynchronous copy request job. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: The status of the content copy job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + example: + status: Success + statusMessage: 'id: 0000000000000197' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/{id}/move: + post: + tags: + - contentManagement + summary: Move an item. + description: | + Moves an item from its current location to another folder. + operationId: moveItem + parameters: + - name: destinationFolderId + in: query + description: Identifier of the destination folder. + required: true + schema: + type: string + - name: id + in: path + description: Identifier of the item the user wants to move. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: Content was moved successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + FolderDefinition: + required: + - name + - parentId + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: The name of the folder. + example: SampleFolder + description: + maxLength: 255 + minLength: 0 + type: string + description: The description of the folder. + example: This is a sample folder. + parentId: + type: string + description: The identifier of the parent folder. + Folder: + type: object + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + - itemType + - name + - parentId + - permissions + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Identifier of the content item. + example: 000000000C1C17C6 + name: + type: string + description: The name of the content item. + example: Personal + itemType: + type: string + description: |- + Type of the content item. Supported values are: + 1. Folder + 2. Search + 3. Report (for old dashboards) + 4. Dashboard (for new dashboards) + 5. Lookups + example: Folder + parentId: + type: string + description: Identifier of the parent content item. + example: 0000000001C41EF2 + permissions: + type: array + description: List of permissions the user has on the content item. + example: + - View + - GrantView + - Edit + items: + type: string + description: + type: string + description: Description of the content item. + example: Personal folder for John Doe + isScheduled: + type: boolean + description: Indicates whether the content item refers to scheduled search. This field is only relevant to `Search` content type. + example: false + default: false + children: + type: array + description: A list of the content items. + items: + $ref: '#/components/schemas/Content' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + UpdateFolderRequest: + required: + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: The name of the folder. + example: SampleFolder + description: + maxLength: 255 + minLength: 0 + type: string + description: The description of the folder. + example: This is a sample folder. + BeginAsyncJobResponse: + required: + - id + type: object + properties: + id: + type: string + description: Identifier to get the status of an asynchronous job. + example: C03E086C137F38B4 + AsyncJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + statusMessage: + type: string + description: Additional status message generated if the status is not `Failed`. + error: + $ref: '#/components/schemas/ErrorDescription' + example: + status: Success + statusMessage: '' + ContentList: + required: + - data + type: object + properties: + data: + type: array + description: A list of the content items. + items: + $ref: '#/components/schemas/Content' + ContentPermissionResult: + required: + - explicitPermissions + type: object + properties: + explicitPermissions: + type: array + description: Explicitly assigned content permissions. + items: + $ref: '#/components/schemas/ContentPermissionAssignment' + implicitPermissions: + type: array + description: Implicitly inherited content permissions. + items: + $ref: '#/components/schemas/ContentPermissionAssignment' + ContentPermissionUpdateRequest: + required: + - contentPermissionAssignments + - notificationMessage + - notifyRecipients + type: object + properties: + contentPermissionAssignments: + type: array + description: Content permissions to be updated. + items: + $ref: '#/components/schemas/ContentPermissionAssignment' + notifyRecipients: + type: boolean + description: Set this to "true" to notify the users who had a permission update. + notificationMessage: + type: string + description: The notification message sent to the users who had a permission update. + Content: + type: object + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + - itemType + - name + - parentId + - permissions + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Identifier of the content item. + example: 000000000C1C17C6 + name: + type: string + description: The name of the content item. + example: Personal + itemType: + type: string + description: |- + Type of the content item. Supported values are: + 1. Folder + 2. Search + 3. Report (for old dashboards) + 4. Dashboard (for new dashboards) + 5. Lookups + example: Folder + parentId: + type: string + description: Identifier of the parent content item. + example: 0000000001C41EF2 + permissions: + type: array + description: List of permissions the user has on the content item. + example: + - View + - GrantView + - Edit + items: + type: string + description: + type: string + description: Description of the content item. + example: Personal folder for John Doe + isScheduled: + type: boolean + description: Indicates whether the content item refers to scheduled search. This field is only relevant to `Search` content type. + example: false + default: false + ContentPath: + required: + - path + type: object + properties: + path: + type: string + description: Path of the content item. + example: /Library/Users/user@test.com/SampleFolder + pathItems: + type: array + description: The items in the path of the content. + items: + $ref: '#/components/schemas/PathSegment' + ContentSyncDefinition: + required: + - name + - type + type: object + properties: + type: + type: string + description: |- + The content item type. + **Note:** + - `MewboardSyncDefinition` _is depreciated, and will soon be removed. Please use_ `DashboardV2SyncDefinition` + _instead_. + - Dashboard links are not supported for dashboards. + name: + type: string + description: The name of the item. + discriminator: + propertyName: type + ImportResult: + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + summary: + type: object + properties: + totalItems: + type: integer + description: Total content items attempted in the import. + example: 15 + successCount: + type: integer + description: Number of content items successfully imported. + example: 12 + failureCount: + type: integer + description: Number of content items that failed to import. + example: 3 + description: Summary about the import job indicating total, success and failure count. + failures: + type: array + description: Detailed listing of failed import items. + items: + $ref: '#/components/schemas/ImportErrorResultItem' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ContentPermissionAssignment: + required: + - contentId + - permissionName + - sourceId + - sourceType + type: object + properties: + permissionName: + pattern: ^(View|GrantView|Edit|GrantEdit|Manage|GrantManage)$ + type: string + description: 'Content permission name. Valid values are: `View`, `GrantView`, `Edit`, `GrantEdit`, `Manage`, and `GrantManage`.' + x-pattern-message: 'must be one of the following: `View`, `GrantView`, `Edit`, `GrantEdit`, `Manage`, `GrantManage`' + sourceType: + pattern: ^(user|role|org)$ + type: string + description: 'Type of source for the permission. Valid values are: `user`, `role`, and `org`.' + example: role + x-pattern-message: 'must be one of the following: `user`, `role`, `org`' + sourceId: + type: string + description: An identifier that belongs to the source type chosen above. For e.g. if the sourceType is set to "user", sourceId should be identifier of a user (same goes for `role` and `org` sourceType) + contentId: + type: string + description: Unique identifier for the content item. + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + PathSegment: + required: + - id + - name + type: object + properties: + id: + type: string + description: The identifier of the path segment. + example: 0000000013D98A2A + name: + type: string + description: The name of the path segment. + example: Test Folder + description: + type: string + description: An optional description of the path segment. + example: This is a test folder + description: A segment of a path. + ImportErrorResultItem: + type: object + properties: + path: + type: string + description: Full folder path to the failed item. + example: /Marketing/Website Analytics/Daily Traffic Report + type: + type: string + description: The type of the content item (e.g., Folder, Search, Dashboard). + example: Dashboard + error: + type: string + description: Reason why the item failed to import. + example: Invalid JSON format in widget configuration. diff --git a/provider-dev/source/content_sync.yaml b/provider-dev/source/content_sync.yaml new file mode 100644 index 0000000..0a54d73 --- /dev/null +++ b/provider-dev/source/content_sync.yaml @@ -0,0 +1,399 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Content Sync API + description: Multi-account content synchronisation jobs between child organizations. + version: 1.0.0 +paths: + /v1/multi-account-management/content/sync: + get: + tags: + - contentConfigManagement + summary: Get Content Sync Job Id. + description: Get Content Sync Job Id of last triggered job. + operationId: getContentSyncJobDetails + responses: + '200': + description: Last triggered Content Sync Job Details. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResponse' + default: + description: Error occurred while getting Content Sync Job Id. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - contentConfigManagement + summary: Sync Content and Configuration across Organization. + description: Sync Content and Configuration across Organization. + operationId: contentSync + requestBody: + description: Content and Organisation Information for Syncing. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncRequest' + required: true + responses: + '200': + description: Content Sync Job created successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResponse' + default: + description: Failed to created Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/status: + get: + tags: + - contentConfigManagement + summary: Get Status of Content Sync Job. + description: Get Status of Content Sync Job. + operationId: contentSyncStatus + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + responses: + '200': + description: Content Sync Job Status + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncStatusResponse' + default: + description: Error occurred while getting Content Sync Job Status. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/retry: + post: + tags: + - contentConfigManagement + summary: Retry Content Sync Job by ID + description: Retry Content Sync Job by ID to re-execute job. + operationId: contentSyncRetry + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + - name: retryOptions + in: query + description: Controls which contents to retry + required: false + schema: + $ref: '#/components/schemas/RetryOptions' + responses: + '200': + description: Content Sync Job restarted successfully + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResponse' + default: + description: Error occurred while restarting Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/cancel: + post: + tags: + - contentConfigManagement + summary: Cancel Content Sync Job by ID + description: Cancel In Progress Sync Job by ID.. + operationId: contentSyncCancel + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + responses: + '202': + description: Content Sync Job Cancellation started successfully + content: {} + default: + description: Error occurred while cancelling Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/result: + get: + tags: + - contentConfigManagement + summary: Get Result of Content Sync Job by ID. + description: Get Result Of Content Sync Job by ID. + operationId: contentSyncResult + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + - name: status + in: query + description: Specific Status of Content Sync Job Result to be fetched. Possible values are "SUCCESS", "FAILED", "WARNING", "CANCELLED". + required: true + schema: + type: string + responses: + '200': + description: Result of Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResult' + default: + description: Error occurred while getting Result for Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/info: + get: + tags: + - contentConfigManagement + summary: Get Information of Content Sync Job by ID. + description: Information Of Content Sync Job by ID. + operationId: contentSyncJobInfo + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + responses: + '200': + description: Information of Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncJobInfo' + default: + description: Error occurred while getting Result for Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ContentSyncResponse: + required: + - jobId + type: object + properties: + jobId: + type: string + description: Content Sync Job Id. + example: 68B6D772B616DC06 + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ContentSyncRequest: + required: + - contentList + - destinationChildOrgInfo + - sourceChildOrgInfo + type: object + properties: + sourceChildOrgInfo: + $ref: '#/components/schemas/ChildOrgInfo' + destinationChildOrgInfo: + $ref: '#/components/schemas/DestinationChildOrgInfo' + contentList: + type: array + description: List of Content and Configuration Information. + items: + $ref: '#/components/schemas/Content_1' + ContentSyncStatusResponse: + required: + - progress + - status + type: object + properties: + status: + type: string + description: Content Sync Job status. + example: Success + progress: + type: integer + description: Content Sync Job progress percentage. + example: 100 + RetryOptions: + type: string + description: Determines retry scope -> "ALL_CONTENTS" (default) retries all, "NON_SUCCESS_CONTENTS" retries only failed ones. + enum: + - ALL_CONTENTS + - NON_SUCCESS_CONTENTS + default: ALL_CONTENTS + ContentSyncResult: + required: + - contentList + type: object + properties: + contentList: + type: array + description: List of content sync items with details. + items: + $ref: '#/components/schemas/ContentSyncItemResult' + ContentSyncJobInfo: + required: + - contentList + - destinationChildOrgInfo + - sourceChildOrgInfo + type: object + properties: + sourceChildOrgInfo: + $ref: '#/components/schemas/ChildOrgInfo' + destinationChildOrgInfo: + $ref: '#/components/schemas/DestinationChildOrgInfo' + contentList: + type: array + description: List of Content and Configuration Information. + items: + $ref: '#/components/schemas/Content_1' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ChildOrgInfo: + required: + - orgId + type: object + properties: + orgId: + type: string + description: Organization Identifier. + example: us2-0000000000000006 + orgName: + type: string + description: Organization Name. + example: Test Org Name + DestinationChildOrgInfo: + required: + - excluded + - included + type: object + properties: + included: + type: array + description: Organization Info which needs to be included in Destination Organisation List. + items: + $ref: '#/components/schemas/ChildOrgInfo' + excluded: + type: array + description: Organization Info which needs to be excluded from Destination Organisation List. + items: + $ref: '#/components/schemas/ChildOrgInfo' + Content_1: + required: + - id + - options + - type + type: object + properties: + id: + type: string + description: Identifier of Content or Configuration + example: MATCH-S00574 + type: + type: string + description: Type Of Content. + example: CSE_RULE + enum: + - CSE_RULE + - CSE_TUNING_EXPRESSION + - LIBRARY_FOLDER + - DASHBOARD + - SEARCH + - SCHEDULED_SEARCH + - MONITOR + - MONITOR_FOLDER + - SOURCE_TEMPLATE + - LOOKUP_TABLE + name: + type: string + description: Name of Content or Configuration + example: Test CSE Rule + options: + maxProperties: 100 + type: object + additionalProperties: + type: string + description: Advance Settings required for syncing content or configuration. + example: + includeCSERule: true + default: {} + ContentSyncItemResult: + required: + - childOrganization + - contentId + - message + type: object + properties: + contentId: + type: string + description: Identifier of Content or Configuration + example: MATCH-S00574 + message: + type: string + description: Message Passed while processing content or configuration sync. + example: Sync Failed due to an Internal Error, Please check with support team for more details. + childOrganization: + $ref: '#/components/schemas/ChildOrgInfo' diff --git a/provider-dev/source/dashboards.yaml b/provider-dev/source/dashboards.yaml new file mode 100644 index 0000000..2a333d3 --- /dev/null +++ b/provider-dev/source/dashboards.yaml @@ -0,0 +1,1421 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Dashboards API + description: Dashboards (New), dashboard report schedules, report generation jobs and legacy report migration. + version: 1.0.0 +paths: + /v2/dashboards: + get: + tags: + - dashboardManagement + summary: List all dashboards. + description: List all dashboards under the Personal folder created by the user or under folders viewable by user. + operationId: listDashboards + parameters: + - name: limit + in: query + description: Limit the number of dashboard returned in the response. The number of dashboards returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + - name: mode + in: query + description: whether to list all viewable dashboards under the folders + required: false + schema: + pattern: ^(createdByUser|allViewableByUser)$ + type: string + example: createdByUser + x-pattern-message: Must be `createdByUser` or `allViewableByUser` + example: createdByUser + responses: + '200': + description: Paginated list of dashboards under the Personal folder created by the user. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedDashboards' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dashboardManagement + summary: Create a new dashboard. + description: Creates a new dashboard. + operationId: createDashboard + requestBody: + description: Information to create the new dashboard. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardRequest' + required: true + responses: + '200': + description: The dashboard has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/Dashboard' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/{id}: + get: + tags: + - dashboardManagement + summary: Get a dashboard. + description: Get a dashboard by the given identifier. + operationId: getDashboard + parameters: + - name: id + in: path + description: UUID of the dashboard to return. + required: true + schema: + type: string + responses: + '200': + description: Dashboard object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/Dashboard' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - dashboardManagement + summary: Update a dashboard. + description: Update a dashboard by the given identifier. + operationId: updateDashboard + parameters: + - name: id + in: path + description: Identifier of the dashboard to update. + required: true + schema: + type: string + requestBody: + description: Information to update on the dashboard. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardRequest' + required: true + responses: + '200': + description: The dashboard was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/Dashboard' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - dashboardManagement + summary: Delete a dashboard. + description: Delete a dashboard by the given identifier. + operationId: deleteDashboard + parameters: + - name: id + in: path + description: Identifier of the dashboard to delete. + required: true + schema: + type: string + responses: + '204': + description: Dashboard was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/reportJobs: + post: + tags: + - dashboardManagement + summary: Start a report job + description: | + Schedule an asynchronous job to generate a report from a template. All items in the template will be included unless specified. See template section for more details on individual templates. Reports can be generated in Pdf or Png format and exported in various methods (ex. direct download). You will get back an asynchronous job identifier on success. Use the getAsyncReportGenerationStatus endpoint and the job identifier you got back in the response to track the status of an asynchronous report generation job. + operationId: generateDashboardReport + requestBody: + description: Request for a report. + content: + application/json: + schema: + $ref: '#/components/schemas/GenerateReportRequest' + required: true + responses: + '200': + description: Export job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/reportJobs/{jobId}/status: + get: + tags: + - dashboardManagement + summary: Get report generation job status + description: Get the status of an asynchronous report generation request for the given job identifier. On success, use the getReportGenerationResult endpoint to get the result of the report generation job. + operationId: getAsyncReportGenerationStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous report generation job. + required: true + schema: + type: string + responses: + '200': + description: The status of the report generation job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/reportJobs/{jobId}/result: + get: + tags: + - dashboardManagement + summary: Get report generation job result + description: Get the result of an asynchronous report generation request for the given job identifier. + operationId: getAsyncReportGenerationResult + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous report generation job. + required: true + schema: + type: string + responses: + '200': + description: The result of export job. + content: + application/pdf: + schema: + type: string + format: binary + image/png: + schema: + type: string + format: binary + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate: + post: + tags: + - dashboardManagement + summary: Migrate Legacy Dashboards to Dashboards(New) + description: | + Schedule an asynchronous job to migrate a list of legacy Dashboards to Dashboard(New). Once migration is finished, the migrated dashboards will be in the same folder as the corresponding legacy Dashboard. + Note: This feature is in beta and may not support all existing features of legacy dashboards. + operationId: migrateReportToDashboard + requestBody: + description: List of legacy dashboard content identifiers. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardMigrationRequest' + required: true + responses: + '200': + description: Async job identifier to get the status and result of the dashboard migration job. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate/preview: + post: + tags: + - dashboardManagement + summary: Preview of Migrating Legacy Dashboards to Dashboards(New) + description: Get a preview of migrating Legacy Dashboards to Dashboard(New) + operationId: previewMigrateReportToDashboard + requestBody: + description: List of content identifiers. Can be folders or classic dashboard. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardMigrationRequest' + required: true + responses: + '200': + description: Preview of the dashboard migration job. + content: + application/json: + schema: + $ref: '#/components/schemas/MigrationPreviewResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate/{jobId}/status: + get: + tags: + - dashboardManagement + summary: Get dashboard migration status. + description: Get the status of an asynchronous Dashboard Migration job for the given job identifier. If job succeeds, use Dashboard Migration Result endpoint to see results of the migration. + operationId: getDashboardMigrationStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Dashboard Migration job. + required: true + schema: + type: string + responses: + '200': + description: Dashboard migration job status. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate/{jobId}/result: + get: + tags: + - dashboardManagement + summary: Get dashboard migration result. + description: Get the result of an asynchronous Dashboard Migration request for the given job identifier. + operationId: getDashboardMigrationResult + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Dashboard Migration job. + required: true + schema: + type: string + responses: + '200': + description: Dashboard migration job result. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardMigrationResult' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dashboards/reportSchedules: + get: + tags: + - dashboardManagement + summary: List all dashboard report schedules. + description: List all dashboard report schedules created by the user. + operationId: listReportSchedules + parameters: + - name: dashboardId + in: query + description: UUID of the dashboard that the report shedules are associated with. + required: false + schema: + type: string + - name: limit + in: query + description: Limit the number of dashboard report schedules returned in the response. The number of dashboard report schedules returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + responses: + '200': + description: Paginated list of dashboard report schedules created by the user. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReportSchedules' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dashboardManagement + summary: Schedule dashboard report + description: 'Schedule dashboard report to send at a specific date and time. The report should be sent as attachment or downloadable URL in one of the following notification types: ''Email'', ''AWSLambda'', ''AzureFunctions'', ''Datadog'', ''HipChat'', ''Jira'', ''NewRelic'', ''Opsgenie'', ''PagerDuty'', ''Slack'', ''MicrosoftTeams'', ''ServiceNow'', ''SumoCloudSOAR'' and ''Webhook''.' + operationId: createScheduleReport + requestBody: + description: Request for scheduling dashboard report. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportScheduleRequest' + required: true + responses: + '200': + description: Dashboard report has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSchedule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dashboards/reportSchedules/{scheduleId}: + get: + tags: + - dashboardManagement + summary: Get dashboard report schedule. + description: Get the schedule of a scheduled dashboard report by the given identifier. + operationId: getReportSchedule + parameters: + - name: scheduleId + in: path + description: Identifier of the dashboard report schedule to return. + required: true + schema: + type: string + responses: + '200': + description: Dashboard report schedule object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSchedule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - dashboardManagement + summary: Update dashboard report schedule. + description: Update the schedule of a scheduled dashboard report by the given identifier. + operationId: updateReportSchedule + parameters: + - name: scheduleId + in: path + description: identifier of the dashboard report schedule to update. + required: true + schema: + type: string + requestBody: + description: Request to update on the dashboard report schedule. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportScheduleRequest' + required: true + responses: + '200': + description: The dashboard report schedule was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSchedule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - dashboardManagement + summary: Delete dashboard report schedule. + description: Delete the schedule of a scheduled dashboard report by the given identifier. The scheduled dashboard report will no longer be generated and sent. + operationId: deleteReportSchedule + parameters: + - name: scheduleId + in: path + description: UUID of the dashboard report schedule to delete. + required: true + schema: + type: string + responses: + '204': + description: Dashboard report schedule was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + PaginatedDashboards: + required: + - dashboards + type: object + properties: + dashboards: + type: array + description: List of dashboards. + items: + $ref: '#/components/schemas/Dashboard' + next: + type: string + description: Next continuation token. `next` is set to null when no more pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + DashboardRequest: + required: + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + type: string + description: Title of the dashboard. + example: Kubernetes Dashboard + description: + type: string + description: Description of the dashboard. + example: A view of pods, namespaces and nodes of your cluster. + folderId: + type: string + description: | + The identifier of the folder to save the dashboard in. By default it is saved in your personal folder. + example: 000000000C1C17C6 + topologyLabelMap: + $ref: '#/components/schemas/TopologyLabelMap' + domain: + type: string + description: If set denotes that the dashboard concerns a given domain (e.g. `aws`, `k8s`, `app`). + example: aws + default: '' + hierarchies: + maxItems: 20 + type: array + description: If set to non-empty array denotes that the dashboard concerns given hierarchies. + example: + - Kubernetes Node View + items: + type: string + default: [] + refreshInterval: + type: integer + description: | + Interval of time (in seconds) to automatically refresh the dashboard. A value of 0 means we never automatically refresh the dashboard. Allowed values are `0`, `30`, `60`, `120`, `300`, `900`, `1800`, `3600`, `7200`, `86400`. + format: int32 + example: 30 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + panels: + type: array + description: Panels in the dashboard. + items: + $ref: '#/components/schemas/Panel' + layout: + $ref: '#/components/schemas/Layout' + variables: + type: array + description: Variables to apply to the panels. + items: + $ref: '#/components/schemas/Variable' + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the dashboard. Either `Light` or `Dark`. + example: light + default: Light + x-pattern-message: Must be `Light`, or `Dark` + isPublic: + type: boolean + description: Is the dashboard public + default: false + highlightViolations: + type: boolean + description: Whether to highlight threshold violations. + default: false + organizations: + $ref: '#/components/schemas/Organizations' + Dashboard: + required: + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + type: string + description: Title of the dashboard. + example: Kubernetes Dashboard + description: + type: string + description: Description of the dashboard. + example: A view of pods, namespaces and nodes of your cluster. + folderId: + type: string + description: | + The identifier of the folder to save the dashboard in. By default it is saved in your personal folder. + example: 000000000C1C17C6 + topologyLabelMap: + $ref: '#/components/schemas/TopologyLabelMap' + domain: + type: string + description: If set denotes that the dashboard concerns a given domain (e.g. `aws`, `k8s`, `app`). + example: aws + default: '' + hierarchies: + maxItems: 20 + type: array + description: If set to non-empty array denotes that the dashboard concerns given hierarchies. + example: + - Kubernetes Node View + items: + type: string + default: [] + refreshInterval: + type: integer + description: | + Interval of time (in seconds) to automatically refresh the dashboard. A value of 0 means we never automatically refresh the dashboard. Allowed values are `0`, `30`, `60`, `120`, `300`, `900`, `1800`, `3600`, `7200`, `86400`. + format: int32 + example: 30 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + panels: + type: array + description: Panels in the dashboard. + items: + $ref: '#/components/schemas/Panel' + layout: + $ref: '#/components/schemas/Layout' + variables: + type: array + description: Variables to apply to the panels. + items: + $ref: '#/components/schemas/Variable' + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the dashboard. Either `Light` or `Dark`. + example: light + default: Light + x-pattern-message: Must be `Light`, or `Dark` + isPublic: + type: boolean + description: Is the dashboard public + default: false + highlightViolations: + type: boolean + description: Whether to highlight threshold violations. + default: false + organizations: + $ref: '#/components/schemas/Organizations' + id: + type: string + description: | + Unique identifier for the dashboard. This id is used to get detailed information about the dashboard, such as panels, variables and the layout. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + contentId: + type: string + description: | + Content identifier for the dashboard. This id is used to connect to the Sumo Content Library and get general metadata about the dashboard. Use this id if you want to search for dashboards in Sumo folders. + example: '1' + scheduleId: + type: string + description: | + Scheduled report identifier for the dashboard. Only most recently modified report schedule is rerun per dashboard. This id is used to manage the schedule details through the scheduled report API. + example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd + scheduleCount: + type: integer + description: Count of report schedules for the dashboard. + format: int32 + example: 10 + GenerateReportRequest: + required: + - action + - exportFormat + - template + - timezone + type: object + properties: + action: + $ref: '#/components/schemas/ReportAction' + exportFormat: + pattern: ^(Pdf|Png)$ + type: string + description: File format of the report. Can be `Pdf` or `Png`. `Pdf` is portable document format. `Png` is portable graphics image format. + example: Pdf + x-pattern-message: 'should be one of the following: ''Pdf'', ''Png''' + timezone: + type: string + description: Time zone for the query time ranges. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + template: + $ref: '#/components/schemas/Template' + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the report rendering. If absent, the default theme of the dashboard is used. + example: Light + x-pattern-message: Must be `Light`, 'light, `Dark`, 'dark' + exportWidth: + maximum: 6000 + minimum: 1500 + type: integer + description: Pixel width of the exported PDF or PNG. If absent, the default width is used. + example: 1500 + BeginAsyncJobResponse: + required: + - id + type: object + properties: + id: + type: string + description: Identifier to get the status of an asynchronous job. + example: C03E086C137F38B4 + AsyncJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + statusMessage: + type: string + description: Additional status message generated if the status is not `Failed`. + error: + $ref: '#/components/schemas/ErrorDescription' + example: + status: Success + statusMessage: '' + DashboardMigrationRequest: + required: + - contentIds + type: object + properties: + contentIds: + maxItems: 50 + type: array + description: Content identifiers of the Legacy dashboards. + items: + type: string + description: Content identifier of the Legacy dashboard. + example: 00000000000001C8 + BeginAsyncJobResponseV2: + required: + - jobId + type: object + properties: + jobId: + type: string + description: Identifier of the asynchronous job. Use it to get status of the job. + example: C03E086C137F38B4 + MigrationPreviewResponse: + required: + - count + type: object + properties: + count: + type: integer + description: Count of dashboards to be migrated. + example: 5 + description: Preview of the dashboard migration. + DashboardMigrationResult: + required: + - data + - status + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: | + A mapping of Legacy Dashboard Content Ids to migrated Dashboard(New) Content Ids. Only successful migration are shown here, see errors field for failed migrations and the failure reason. + example: + '1': 64 + richData: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MigratedDashboardInfo' + description: | + A mapping of Legacy Dashboard Content Ids to migrated Dashboard(New) info. Only successful migration are shown here, see errors field for failed migrations and the failure reason. + status: + $ref: '#/components/schemas/DashboardMigrationStatus' + errors: + maxProperties: 1000 + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/ErrorDescription' + description: A mapping of Legacy Dashboards Content Identifiers that failed validation to the failure reason(s). + warnings: + maxProperties: 1000 + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/ErrorDescription' + description: A mapping of Legacy Dashboards Content Identifiers to warnings. + PaginatedReportSchedules: + required: + - reportSchedules + type: object + properties: + reportSchedules: + type: array + description: List of dashboard report schedules. + items: + $ref: '#/components/schemas/ReportSchedule' + next: + type: string + description: Next continuation token. `token` is set to null when no more pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + ReportScheduleRequest: + required: + - dashboardId + - emailNotification + - reportFormat + - scheduleType + - timeZone + type: object + properties: + dashboardId: + type: string + description: Identifier of dashboard the schedule will generate report for. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + variableValues: + $ref: '#/components/schemas/VariablesValuesData' + reportFormat: + pattern: ^(Pdf|Png)$ + type: string + description: File format of the report. Can be `Pdf` or `Png`. `Pdf` is portable document format. `Png` is portable graphics image format. + example: Pdf + x-pattern-message: 'should be one of the following: ''Pdf'', ''Png''' + scheduleType: + type: string + description: |- + Run schedule of the scheduled report. Set to "Custom" to specify the schedule with a CRON expression. Possible schedule types are: + - `RealTime` + - `15Minutes` + - `1Hour` + - `2Hours` + - `4Hours` + - `6Hours` + - `8Hours` + - `12Hours` + - `1Day` + - `1Week` + - `Custom` + example: 1Day + cronExpression: + type: string + description: Cron-like expression specifying the report's schedule. Field scheduleType must be set to "Custom", otherwise, scheduleType takes precedence over cronExpression. + example: 0 0/15 * * * ? * + timeZone: + maxLength: 1024 + minLength: 1 + type: string + description: Time zone identifier for time specification. Either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used. + example: America/Los_Angeles + emailNotification: + $ref: '#/components/schemas/Email' + isActive: + type: boolean + description: Is the dashboard report schedule active + default: true + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the report rendering. Must be `Light` or `Dark`. If absent, the dashboard's own theme is used. + example: Light + x-pattern-message: Must be `Light`, `light`, `dark` or `Dark` + exportWidth: + maximum: 6000 + minimum: 1500 + type: integer + description: Pixel width of the exported PDF or PNG. If absent, the default width is used. + example: 1500 + ReportSchedule: + required: + - dashboardId + - emailNotification + - reportFormat + - scheduleType + - timeZone + type: object + properties: + dashboardId: + type: string + description: Identifier of dashboard the schedule will generate report for. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + variableValues: + $ref: '#/components/schemas/VariablesValuesData' + reportFormat: + pattern: ^(Pdf|Png)$ + type: string + description: File format of the report. Can be `Pdf` or `Png`. `Pdf` is portable document format. `Png` is portable graphics image format. + example: Pdf + x-pattern-message: 'should be one of the following: ''Pdf'', ''Png''' + scheduleType: + type: string + description: |- + Run schedule of the scheduled report. Set to "Custom" to specify the schedule with a CRON expression. Possible schedule types are: + - `RealTime` + - `15Minutes` + - `1Hour` + - `2Hours` + - `4Hours` + - `6Hours` + - `8Hours` + - `12Hours` + - `1Day` + - `1Week` + - `Custom` + example: 1Day + cronExpression: + type: string + description: Cron-like expression specifying the report's schedule. Field scheduleType must be set to "Custom", otherwise, scheduleType takes precedence over cronExpression. + example: 0 0/15 * * * ? * + timeZone: + maxLength: 1024 + minLength: 1 + type: string + description: Time zone identifier for time specification. Either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used. + example: America/Los_Angeles + emailNotification: + $ref: '#/components/schemas/Email' + isActive: + type: boolean + description: Is the dashboard report schedule active + default: true + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the report rendering. Must be `Light` or `Dark`. If absent, the dashboard's own theme is used. + example: Light + x-pattern-message: Must be `Light`, `light`, `dark` or `Dark` + exportWidth: + maximum: 6000 + minimum: 1500 + type: integer + description: Pixel width of the exported PDF or PNG. If absent, the default width is used. + example: 1500 + scheduleId: + type: string + description: Identifier of the dashboard report schedule. + example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + TopologyLabelMap: + required: + - data + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/TopologyLabelValuesList' + description: Map from topology labels to `TopologyLabelValuesList`. + description: | + Map of the topology labels. Each label has a key and a list of values. If a value is `*`, it means the label will match content for all values of its key. + example: + data: + service: + - kube-scheduler + - kube-dns + ResolvableTimeRange: + required: + - type + type: object + properties: + type: + type: string + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. + example: + type: BeginBoundedTimeRange + from: + type: RelativeTimeRangeBoundary + relativeTime: '-15m' + discriminator: + propertyName: type + Panel: + required: + - key + - panelType + type: object + properties: + id: + type: string + description: Unique identifier for the panel. + example: 2F7D449E3D511066 + key: + type: string + description: | + Key for the panel. Used to create searches for the queries in the panel and configure the layout of the panel in the dashboard. + example: panelca6280e4a75fca45 + title: + type: string + description: Title of the panel. + example: This panel shows memory usage for your kubernetes pod. + visualSettings: + type: string + description: Visual settings of the panel. + example: '{\"general\":{\"type\":\"column\"}' + keepVisualSettingsConsistentWithParent: + type: boolean + description: Keeps the visual settings, like series colors, consistent with the settings of the parent panel. + default: true + panelType: + type: string + description: Type of panel. + example: SumoSearchPanel + discriminator: + propertyName: panelType + Layout: + required: + - layoutStructures + - layoutType + type: object + properties: + layoutType: + type: string + description: The type of panel layout on the Dashboard. For example, Grid, Tabs, or Hierarchical. Currently supports `Grid` only. + example: Grid + layoutStructures: + type: array + description: Layout structures for the panel childen. + items: + $ref: '#/components/schemas/LayoutStructure' + discriminator: + propertyName: layoutType + Variable: + required: + - name + - sourceDefinition + type: object + properties: + id: + type: string + description: Unique identifier for the variable. + name: + maxLength: 256 + type: string + description: Name of the variable. The variable name is case-insensitive. + example: _sourceHost + displayName: + maxLength: 256 + type: string + description: | + Display name of the variable shown in the UI. If this field is empty, the name field will be used. + The display name is case-insensitive. Only numbers, and underscores are allowed in the variable name. + This field is not yet supported by the UI. + example: Source Host + defaultValue: + type: string + description: Default value of the variable. + example: default_value + sourceDefinition: + $ref: '#/components/schemas/VariableSourceDefinition' + allowMultiSelect: + type: boolean + description: Allow multiple selections in the values dropdown. + example: false + default: false + includeAllOption: + type: boolean + description: Include an "All" option at the top of the variable's values dropdown. + example: true + default: true + hideFromUI: + type: boolean + description: Hide the variable in the dashboard UI. + example: false + default: false + valueType: + type: string + description: | + The type of value of the variable. Allowed values are `String`, Any` and `Numeric`. - `String` considers as a single phrase and will wrap in double-quotes. - `Any` is all characters. - `Numeric` consists of a numeric value for variables, it will be displayed differently in the UI. - `Integer` is a variable with an `Int` value. - `Long` is a variable with a `Long` value. - `Double` is a variable with a `Double` value. - `Boolean` is a variable with a `Boolean` value. + example: Any + default: Any + Organizations: + type: object + properties: + defaultOrgIds: + type: array + description: The default list of organization IDs to run the dashboard by + items: + $ref: '#/components/schemas/OrgId' + description: The organization details to run the dashboard by + ReportAction: + required: + - actionType + type: object + properties: + actionType: + pattern: ^DirectDownloadReportAction$ + type: string + description: Type of action. + example: DirectDownloadReportAction + x-pattern-message: should be 'DirectDownloadReportAction' + description: The base class of all report action types. `DirectDownloadReportAction` downloads dashboard from browser. New action types may be supported in the future. + discriminator: + propertyName: actionType + Template: + required: + - templateType + type: object + properties: + templateType: + pattern: ^(DashboardTemplate|DashboardReportModeTemplate)$ + type: string + description: The type of template. `DashboardTemplate` provides a snapshot view of the exported dashboard. `DashboardReportModeTemplate` provides a printer-friendly view of the exported dashboard. New templates may be supported in the future. + example: DashboardTemplate + x-pattern-message: Must be `DashboardTemplate`, or `DashboardReportModeTemplate` + discriminator: + propertyName: templateType + MigratedDashboardInfo: + required: + - id + - name + type: object + properties: + id: + type: string + description: The id of the Dashboard(New) + example: jgiJLiFP9dX6YdNG0u9t0yqUVOF0iIlNcX0usw2Uy6g8BYTgBj0vYVeiRjRj + name: + type: string + description: The name of the Dashboard(New) + example: New Dashboard + DashboardMigrationStatus: + required: + - failedCount + - successCount + - totalCount + type: object + properties: + successCount: + type: integer + description: A successful migration to Dashboard(New). + example: 3 + failedCount: + type: integer + description: A failed migration to Dashboard(New). + example: 1 + totalCount: + type: integer + description: The total number of Legacy Dashboards to migrate. + example: 10 + VariablesValuesData: + required: + - data + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + type: array + items: + type: string + description: Data for variable values. + default: {} + richData: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/VariableValuesData' + description: A rich form of data for the variable search, including variable values, status and variable type. This field is different from `data` in that it includes an object instead of list as the value in the map. The `data` field is kept for backwards compatibility, please use `richData` for all usages going forward. + Email: + required: + - connectionType + - recipients + - subject + type: object + properties: + connectionType: + pattern: ^(Email|AWSLambda|AzureFunctions|Datadog|HipChat|Jira|NewRelic|Opsgenie|PagerDuty|Slack|MicrosoftTeams|ServiceNow|SumoCloudSOAR|Webhook)$ + type: string + description: |- + Connection type of the connection. Valid values: + 1. `Email` + 2. `AWSLambda` + 3. `AzureFunctions` + 4. `Datadog` + 5. `HipChat` + 6. `Jira` + 7. `NewRelic` + 8. `Opsgenie` + 9. `PagerDuty` + 10. `Slack` + 11. `MicrosoftTeams` + 12. `ServiceNow` + 13. `SumoCloudSOAR` + 14. `Webhook` + x-pattern-message: 'should be one of the following: ''Email'', ''AWSLambda'', ''AzureFunctions'', ''Datadog'', ''HipChat'', ''Jira'', ''NewRelic'', ''Opsgenie'', ''PagerDuty'', ''Slack'', ''MicrosoftTeams'', ''ServiceNow'', ''SumoCloudSOAR'' and ''Webhook''' + recipients: + type: array + description: A list of email addresses to send to when the rule fires. + items: + type: string + example: john@doe.com + subject: + type: string + description: The subject line of the email. + example: Sample Email Subject + messageBody: + type: string + description: The message body of the email to send. + example: Sample Email Message Body + timeZone: + type: string + description: Time zone for the email content. All dates/times will be displayed in this timeZone in the email payload. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + includeQuery: + type: boolean + description: Whether to include the triggering query in the notification email. + includeResultSet: + type: boolean + description: Whether to include the result set in the notification email. This field is not applicable for SLO monitors. + description: The base class of all connection types. + discriminator: + propertyName: connectionType + TopologyLabelValuesList: + type: array + description: List of values corresponding to a key of a label. + example: + - kube-scheduler + items: + type: string + description: Value of the label. + LayoutStructure: + required: + - key + - structure + type: object + properties: + key: + type: string + description: The identifier of the panel that this structure applies to. + example: panelPANE-3DC454FD977E2A46 + structure: + type: string + description: The structure of a panel. + example: '{\"height\":5,\"width\":9,\"x\":0,\"y\":0}' + VariableSourceDefinition: + required: + - variableSourceType + type: object + properties: + variableSourceType: + type: string + description: Source type of the variable values. + example: MetadataVariableSourceDefinition + discriminator: + propertyName: variableSourceType + OrgId: + maxLength: 23 + minLength: 19 + type: string + description: The unique identifier of an organization. It consists of the deployment ID and the hexadecimal account ID separated by a dash `-` character. + example: us2-00000000FF42A0C3 + VariableValuesData: + required: + - variableValues + type: object + properties: + variableValues: + type: array + description: Values for the variable. + example: + - myCluster + items: + type: string + status: + $ref: '#/components/schemas/DashboardSearchStatus' + variableType: + pattern: ^(LogQueryVariableSourceDefinition|MetadataVariableSourceDefinition|CsvVariableSourceDefinition|FilterSourceDefinition)$ + type: string + description: The type of the variable. + example: LogQueryVariableSourceDefinition + x-pattern-message: Must be `LogQueryVariableSourceDefinition`, `MetadataVariableSourceDefinition` `CsvVariableSourceDefinition` or `FilterSourceDefinition`. + valueType: + type: string + description: | + The type of value of the variable. Allowed values are `String`, Any`, `Numeric`, `Integer`, `Long`, `Double`, `Boolean`. - `String` considers as a single phrase and will wrap in double-quotes. - `Any` is all characters. - `Numeric` consists of a numeric value for variables, it will be displayed differently in the UI. - `Integer` is a variable with an `Int` value. - `Long` is a variable with a `Long` value. - `Double` is a variable with a `Double` value. - `Boolean` is a variable with a `Boolean` value. + example: Any + default: Any + allowMultiSelect: + type: boolean + description: Allow multiple selections in the values dropdown. + example: false + default: false + variableKey: + type: string + description: The key of the variable. + example: _source + errors: + type: array + description: Generic errors returned by backend from downstream assemblies. More specific errors will be thrown in the future. + items: + $ref: '#/components/schemas/ErrorDescription' + description: Variable values, status, type and errors for the variable values search. + Action: + required: + - connectionType + type: object + properties: + connectionType: + pattern: ^(Email|AWSLambda|AzureFunctions|Datadog|HipChat|Jira|NewRelic|Opsgenie|PagerDuty|Slack|MicrosoftTeams|ServiceNow|SumoCloudSOAR|Webhook)$ + type: string + description: |- + Connection type of the connection. Valid values: + 1. `Email` + 2. `AWSLambda` + 3. `AzureFunctions` + 4. `Datadog` + 5. `HipChat` + 6. `Jira` + 7. `NewRelic` + 8. `Opsgenie` + 9. `PagerDuty` + 10. `Slack` + 11. `MicrosoftTeams` + 12. `ServiceNow` + 13. `SumoCloudSOAR` + 14. `Webhook` + x-pattern-message: 'should be one of the following: ''Email'', ''AWSLambda'', ''AzureFunctions'', ''Datadog'', ''HipChat'', ''Jira'', ''NewRelic'', ''Opsgenie'', ''PagerDuty'', ''Slack'', ''MicrosoftTeams'', ''ServiceNow'', ''SumoCloudSOAR'' and ''Webhook''' + description: The base class of all connection types. + discriminator: + propertyName: connectionType + DashboardSearchStatus: + required: + - state + type: object + properties: + state: + type: string + description: Current state of the search. + percentCompleted: + maximum: 100 + minimum: 0 + type: integer + description: Percentage of search completed. + format: int32 diff --git a/provider-dev/source/data_archiving.yaml b/provider-dev/source/data_archiving.yaml new file mode 100644 index 0000000..59c75ba --- /dev/null +++ b/provider-dev/source/data_archiving.yaml @@ -0,0 +1,356 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Data Archiving API + description: Data archiving destinations (AWS S3 buckets for archived logs). + version: 1.0.0 +paths: + /v1/dataarchiving/destinations: + get: + tags: + - dataArchivingManagement + summary: Get all data archiving destinations. + description: Get a list of all data archiving destinations configured for installed collectors. + operationId: getDataArchivingDestinations + parameters: + - name: limit + in: query + description: Limit the number of destinations returned in the response. The number of destinations returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: List of all data archiving destinations. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDataArchivingDestinationsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dataArchivingManagement + summary: Create a data archiving destination. + description: Create a new data archiving destination. + operationId: createDataArchivingDestination + parameters: [] + requestBody: + description: Parameters to create a new data archiving destination. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDataArchivingDestinationRequest' + required: true + responses: + '200': + description: The data archiving destination has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/DataArchivingDestination' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataarchiving/destinations/{id}: + get: + tags: + - dataArchivingManagement + summary: Get a data archiving destination. + description: Get a data archiving destination by the given identifier. + operationId: getDataArchivingDestination + parameters: + - name: id + in: path + description: Identifier of the data archiving destination to return. + required: true + schema: + type: string + example: 1 + responses: + '200': + description: Data archiving destination object requested. + content: + application/json: + schema: + $ref: '#/components/schemas/DataArchivingDestination' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - dataArchivingManagement + summary: Update a data archiving destination. + description: Update a data archiving destination by the given identifier. + operationId: updateDataArchivingDestination + parameters: + - name: id + in: path + description: Identifier of the data archiving destination to update. + required: true + schema: + type: string + example: 1 + requestBody: + description: Object with the updated parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateDataArchivingDestinationRequest' + required: true + responses: + '200': + description: The data archiving destination has been updated. + content: + application/json: + schema: + $ref: '#/components/schemas/DataArchivingDestination' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - dataArchivingManagement + summary: Delete a data archiving destination. + description: Delete an existing data archiving destination with the given identifier. + operationId: deleteDataArchivingDestination + parameters: + - name: id + in: path + description: Identifier of the data archiving destination to delete. + required: true + schema: + type: string + example: 1 + responses: + '204': + description: The data archiving destination has been deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + GetDataArchivingDestinationsResponse: + type: object + properties: + nextToken: + type: string + description: Next continuation token. + example: VEZuRU4veXF2UWFCUURYSDNQUzJxWlpRRUsvTlBieXA + data: + type: array + description: List of data archiving destinations. + items: + $ref: '#/components/schemas/DataArchivingDestination' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreateDataArchivingDestinationRequest: + required: + - destinationName + - destinationConfig + type: object + properties: + destinationName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data archiving destination. + example: my-archive-destination + destinationConfig: + $ref: '#/components/schemas/DataArchivingDestinationConfig' + DataArchivingDestination: + required: + - destinationName + - destinationConfig + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + type: object + properties: + destinationName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data archiving destination. + example: my-archive-destination + destinationConfig: + $ref: '#/components/schemas/DataArchivingDestinationConfig' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the data archiving destination. + example: '1' + UpdateDataArchivingDestinationRequest: + required: + - destinationConfig + - destinationName + type: object + properties: + destinationName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data archiving destination. + example: my-archive-destination + destinationConfig: + $ref: '#/components/schemas/UpdateDataArchivingDestinationConfigRequest' + description: Request object to update a data archiving destination. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + BaseDataArchivingDestination: + required: + - destinationName + type: object + properties: + destinationName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data archiving destination. + example: my-archive-destination + DataArchivingDestinationConfig: + required: + - destinationType + type: object + properties: + destinationType: + pattern: ^(S3|Syslog|Hitachi|RestAPI)$ + type: string + description: Type of the data archiving destination. + example: S3 + x-pattern-message: should be 'S3', 'Syslog', 'Hitachi' or 'RestAPI' + discriminator: + propertyName: destinationType + mapping: + S3: '#/components/schemas/S3ArchivingDestinationConfig' + Syslog: '#/components/schemas/SyslogArchivingDestinationConfig' + Hitachi: '#/components/schemas/HitachiArchivingDestinationConfig' + RestAPI: '#/components/schemas/RestAPIArchivingDestinationConfig' + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + UpdateDataArchivingDestinationConfigRequest: + required: + - destinationType + type: object + properties: + destinationType: + pattern: ^(S3|Syslog|Hitachi|RestAPI)$ + type: string + description: Type of the data archiving destination. + example: S3 + x-pattern-message: should be 'S3', 'Syslog', 'Hitachi' or 'RestAPI' + discriminator: + propertyName: destinationType + mapping: + S3: '#/components/schemas/UpdateS3ArchivingDestinationConfigRequest' + Syslog: '#/components/schemas/UpdateSyslogArchivingDestinationConfigRequest' + Hitachi: '#/components/schemas/UpdateHitachiArchivingDestinationConfigRequest' + RestAPI: '#/components/schemas/UpdateRestAPIArchivingDestinationConfigRequest' diff --git a/provider-dev/source/data_deletion_rules.yaml b/provider-dev/source/data_deletion_rules.yaml new file mode 100644 index 0000000..2c9b87a --- /dev/null +++ b/provider-dev/source/data_deletion_rules.yaml @@ -0,0 +1,356 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Data Deletion Rules API + description: Data deletion rules that remove already-ingested log data. + version: 1.0.0 +paths: + /v1/dataDeletionRules: + get: + tags: + - dataDeletionRules + summary: Get a list of Data Deletion Rules + description: Get a list of data deletion rules in the organization. The response is paginated with a default limit of 50 rules. + operationId: listDeletionRules + parameters: + - name: limit + in: query + description: Limit the number of deletion Rules returned in the response + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: A paginated list of data deletion Rules + content: + application/json: + schema: + $ref: '#/components/schemas/ListDeletionRulesResponse' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dataDeletionRules + summary: Create a new Data Deletion Rule + description: Create a new data deletion rule to delete logs. + operationId: createDataDeletionRule + parameters: [] + requestBody: + description: Information about the new deletion rule. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDeletionRuleRequest' + required: true + responses: + '200': + description: The data deletion Rule that has been created + content: + application/json: + schema: + $ref: '#/components/schemas/DeletionRuleDefinition' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataDeletionRules/{id}: + get: + tags: + - dataDeletionRules + summary: Get Data Deletion Rule information for the given Id. + description: Get Data Deletion Rule information for the given Id with updated fields. + operationId: getDataDeletionRule + parameters: + - name: id + in: path + description: Identifier of the Deletion Rule to fetch + required: true + schema: + type: string + responses: + '200': + description: The data deletion Rule Definition that was requested + content: + application/json: + schema: + $ref: '#/components/schemas/DeletionRuleDefinition' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataDeletionRules/{id}/cancel: + post: + tags: + - dataDeletionRules + summary: Cancel the data Deletion Rule with the given Id. + description: Cancel the data Deletion Rule with the given Id. Allowed only if the rule is waiting for approval. + operationId: cancelDataDeletionRule + parameters: + - name: id + in: path + description: Identifier of the Deletion Rule to cancel + required: true + schema: + type: string + responses: + '200': + description: The data deletion Rule has been cancelled successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletionRuleDefinition' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataDeletionRules/{id}/delete: + delete: + tags: + - dataDeletionRules + summary: Delete the data Deletion Rule with the given Id. + description: Delete the data Deletion Rule with the given Id. Allowed only if the rule is cancelled. + operationId: deleteDataDeletionRule + parameters: + - name: id + in: path + description: Identifier of the Deletion Rule to delete + required: true + schema: + type: string + responses: + '204': + description: The data deletion Rule has been deleted successfully. + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListDeletionRulesResponse: + required: + - deletionRulesList + type: object + properties: + deletionRulesList: + type: array + description: List of data deletion rules. + items: + $ref: '#/components/schemas/DeletionRuleDefinition' + next: + type: string + description: Next Continuation token + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreateDeletionRuleRequest: + required: + - endMillis + - query + - ruleName + - ruleReason + - startMillis + type: object + properties: + ruleName: + maxLength: 127 + minLength: 1 + type: string + description: Name of the deletion rule. + ruleReason: + maxLength: 255 + minLength: 1 + type: string + description: Reason mentioning what data is being deleted and why. + query: + maxLength: 15000 + minLength: 0 + type: string + description: query to filter out the logs that need to be deleted. + startMillis: + type: integer + description: Start time of the search as a number of milliseconds. + format: int64 + example: 1704976268773 + endMillis: + type: integer + description: End time of the search as a number of milliseconds. + format: int64 + example: 1704977168773 + byReceiptTime: + type: boolean + description: Flag to order the search results in the order collector received it. This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + default: false + timezone: + type: string + description: Timezone for the resolving timerange from startMillis,endMillis + default: UTC + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + DeletionRuleDefinition: + required: + - endMillis + - query + - ruleName + - ruleReason + - startMillis + type: object + properties: + ruleName: + maxLength: 127 + minLength: 1 + type: string + description: Name of the deletion rule. + ruleReason: + maxLength: 255 + minLength: 1 + type: string + description: Reason mentioning what data is being deleted and why. + query: + maxLength: 15000 + minLength: 0 + type: string + description: query to filter out the logs that need to be deleted. + startMillis: + type: integer + description: Start time of the search as a number of milliseconds. + format: int64 + example: 1704976268773 + endMillis: + type: integer + description: End time of the search as a number of milliseconds. + format: int64 + example: 1704977168773 + byReceiptTime: + type: boolean + description: Flag to order the search results in the order collector received it. This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + default: false + timezone: + type: string + description: Timezone for the resolving timerange from startMillis,endMillis + default: UTC + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + id: + type: string + description: Identifier for the deletion rule. + createdAt: + type: string + description: Creation timestamp in UTC. + format: date-time + modifiedAt: + type: string + description: Last modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + error: + type: string + description: Errors related to the deletion rule. + status: + type: string + description: Status of the deletion rule. + createdBy: + type: string + description: Identifier of the user who created the deletion rule. + example: 0000000006743FE8 + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + deletedRanges: + type: array + description: List of the different units of deleted ranges since the deletion rule has been created. + items: + $ref: '#/components/schemas/DeletedRange' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + DeletedRange: + required: + - endTime + - startTime + type: object + properties: + startTime: + type: string + description: Start of the timestamp for each unit of filled ranges, expressed in timeZone specified in rule. + format: date-time + endTime: + type: string + description: End of the timestamp for each unit of filled ranges, expressed in timeZone specified in rule. + format: date-time + description: Range of timestamps from which logs obtained from the query have been deleted. diff --git a/provider-dev/source/data_masking_rules.yaml b/provider-dev/source/data_masking_rules.yaml new file mode 100644 index 0000000..ea9b2ef --- /dev/null +++ b/provider-dev/source/data_masking_rules.yaml @@ -0,0 +1,467 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Data Masking Rules API + description: Data masking rules applied at ingest. + version: 1.0.0 +paths: + /v1/dataMaskingRules: + get: + tags: + - dataMaskingManagement + summary: Get a list of data masking rules. + description: Get a list of all data masking rules for the current organization. The response is paginated with a default limit of 100 rules per page. + operationId: listDataMaskingRules + parameters: + - name: limit + in: query + description: Limit the number of data masking rules returned in the response. The number of rules returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. + required: false + schema: + type: string + responses: + '200': + description: A paginated list of data masking rules. + content: + application/json: + schema: + $ref: '#/components/schemas/ListDataMaskingRulesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dataMaskingManagement + summary: Create a new data masking rule. + description: |- + Create a new data masking rule. The rule will be applied to search results at query time, replacing matches of the regex pattern with the specified mask string. + **Note:** Changes to data masking rules may take up to 30 seconds to take effect. + operationId: createDataMaskingRule + parameters: [] + requestBody: + description: Information about the new data masking rule. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRuleDefinition' + required: true + responses: + '200': + description: The data masking rule has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createDataMaskingRule + /v1/dataMaskingRules/{id}: + get: + tags: + - dataMaskingManagement + summary: Get a data masking rule. + description: Get a data masking rule with the given identifier. + operationId: getDataMaskingRule + parameters: + - name: id + in: path + description: Identifier of the data masking rule to return. + required: true + schema: + type: string + responses: + '200': + description: Data masking rule object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getDataMaskingRule + put: + tags: + - dataMaskingManagement + summary: Update a data masking rule. + description: |- + Update an existing data masking rule. Only the fields provided in the request are updated; omitted fields retain their current values. The rule name is immutable and cannot be changed after creation. + **Note:** Changes to data masking rules may take up to 30 seconds to take effect. + operationId: updateDataMaskingRule + parameters: + - name: id + in: path + description: Identifier of the data masking rule to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the data masking rule. The name field cannot be changed as it is immutable. Only fields provided will be updated; omitted fields retain their current values. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseDataMaskingRuleDefinition' + required: true + responses: + '200': + description: The data masking rule was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateDataMaskingRule + delete: + tags: + - dataMaskingManagement + summary: Delete a data masking rule. + description: |- + Delete a data masking rule with the given identifier. + **Note:** Changes to data masking rules may take up to 30 seconds to take effect. + operationId: deleteDataMaskingRule + parameters: + - name: id + in: path + description: Identifier of the data masking rule to delete. + required: true + schema: + type: string + responses: + '204': + description: Data masking rule was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteDataMaskingRule + /v1/dataMaskingRules/evaluate: + post: + tags: + - dataMaskingManagement + summary: Test and preview a regex pattern by evaluating it against sample input text. Optionally provide a maskString to use as the replacement for text that matches the regex. + description: 'Evaluate a regex pattern against input text. This endpoint can be used to test regex patterns for data masking rules. You can provide your own mask string which will be used for masking, otherwise it will be masked with default value of ##redactedPII##. The response includes the masked text, match count, and positions of matches in the masked output text.' + operationId: evaluateDataMaskingPattern + parameters: [] + requestBody: + description: Input regex and sample message for data masking evaluation. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingEvaluateDefinition' + required: true + responses: + '200': + description: Evaluation result for the provided sample message. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingEvaluateResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListDataMaskingRulesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of data masking rules. + items: + $ref: '#/components/schemas/DataMaskingRule' + next: + type: string + description: Next continuation token. Null if this is the last page. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + DataMaskingRuleDefinition: + type: object + required: + - enabled + - name + - regexPattern + properties: + description: + maxLength: 512 + type: string + description: Optional description of the data masking rule. Provide context about what PII this rule masks and why it's needed. + example: Masks email addresses in application logs + regexPattern: + maxLength: 2048 + minLength: 1 + type: string + description: Regular expression pattern to match PII data that should be masked. The pattern must be valid according to Java regex syntax. All matches in search results will be replaced with the mask string. Required when creating a rule. When updating, if omitted the existing pattern is retained. + example: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b + maskString: + maxLength: 64 + minLength: 1 + type: string + description: The string to replace matched PII with. Defaults to '##redactedPII##' if not specified. Use descriptive mask strings like 'EMAIL_REDACTED' or 'PHONE_REDACTED' for clarity. + example: EMAIL_REDACTED + default: '##redactedPII##' + enabled: + type: boolean + description: Whether the data masking rule is active. Only enabled rules are applied to search results. Set to false to temporarily disable a rule without deleting it. + default: true + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data masking rule. Use a name that makes it easy to identify the rule. Must be unique within the organization. This field is immutable and cannot be changed after creation. + example: Email Masking + DataMaskingRule: + type: object + x-tf-generated-properties: id,name,description,regexPattern,maskString,enabled + x-tf-resource-name: DataMaskingRule + required: + - enabled + - name + - regexPattern + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + description: + maxLength: 512 + type: string + description: Optional description of the data masking rule. Provide context about what PII this rule masks and why it's needed. + example: Masks email addresses in application logs + regexPattern: + maxLength: 2048 + minLength: 1 + type: string + description: Regular expression pattern to match PII data that should be masked. The pattern must be valid according to Java regex syntax. All matches in search results will be replaced with the mask string. Required when creating a rule. When updating, if omitted the existing pattern is retained. + example: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b + maskString: + maxLength: 64 + minLength: 1 + type: string + description: The string to replace matched PII with. Defaults to '##redactedPII##' if not specified. Use descriptive mask strings like 'EMAIL_REDACTED' or 'PHONE_REDACTED' for clarity. + example: EMAIL_REDACTED + default: '##redactedPII##' + enabled: + type: boolean + description: Whether the data masking rule is active. Only enabled rules are applied to search results. Set to false to temporarily disable a rule without deleting it. + default: true + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data masking rule. Use a name that makes it easy to identify the rule. Must be unique within the organization. This field is immutable and cannot be changed after creation. + example: Email Masking + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the data masking rule. + example: 00000000FF42A0C3 + BaseDataMaskingRuleDefinition: + required: + - enabled + type: object + properties: + description: + maxLength: 512 + type: string + description: Optional description of the data masking rule. Provide context about what PII this rule masks and why it's needed. + example: Masks email addresses in application logs + regexPattern: + maxLength: 2048 + minLength: 1 + type: string + description: Regular expression pattern to match PII data that should be masked. The pattern must be valid according to Java regex syntax. All matches in search results will be replaced with the mask string. Required when creating a rule. When updating, if omitted the existing pattern is retained. + example: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b + maskString: + maxLength: 64 + minLength: 1 + type: string + description: The string to replace matched PII with. Defaults to '##redactedPII##' if not specified. Use descriptive mask strings like 'EMAIL_REDACTED' or 'PHONE_REDACTED' for clarity. + example: EMAIL_REDACTED + default: '##redactedPII##' + enabled: + type: boolean + description: Whether the data masking rule is active. Only enabled rules are applied to search results. Set to false to temporarily disable a rule without deleting it. + default: true + DataMaskingEvaluateDefinition: + required: + - regexPattern + - text + type: object + properties: + regexPattern: + maxLength: 2048 + minLength: 1 + type: string + description: Regex pattern used to identify substrings to mask. + example: \\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b + maskString: + maxLength: 64 + minLength: 0 + type: string + description: Optional mask string. If null or empty, the service may apply a default mask string. + nullable: true + example: EMAIL_REDACTED + default: '##redactedPII##' + text: + maxLength: 2048 + minLength: 1 + type: string + description: Sample message used for masking evaluation. + example: 2026-04-21 INFO User 192.168.1.1 logged in at 10.0.0.1 + DataMaskingEvaluateResponse: + required: + - maskedText + - matchCount + - matchPositions + type: object + properties: + maskedText: + type: string + description: Message after applying masking. + example: '2026-04-21 INFO User ##redactedPII## logged in at ##redactedPII##' + matchCount: + minimum: 0 + type: integer + description: Number of replaced matches. + format: int32 + example: 2 + matchPositions: + type: array + description: Start/end offsets for each replaced segment in the output string. + items: + $ref: '#/components/schemas/DataMaskingMatchPosition' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + DataMaskingMatchPosition: + required: + - end + - start + type: object + properties: + start: + minimum: 0 + type: integer + description: Start index of masked segment in output string (inclusive). + format: int32 + example: 21 + end: + minimum: 0 + type: integer + description: End index of masked segment in output string (exclusive). + format: int32 + example: 36 diff --git a/provider-dev/source/dynamic_parsing_rules.yaml b/provider-dev/source/dynamic_parsing_rules.yaml new file mode 100644 index 0000000..50dfcf6 --- /dev/null +++ b/provider-dev/source/dynamic_parsing_rules.yaml @@ -0,0 +1,314 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Dynamic Parsing Rules API + description: Dynamic parsing rules that extract fields automatically from JSON logs. + version: 1.0.0 +paths: + /v1/dynamicParsingRules: + get: + tags: + - dynamicParsingRuleManagement + summary: Get a list of dynamic parsing rules. + description: Get a list of all dynamic parsing rules. The response is paginated with a default limit of 100 dynamic parsing rules per page. + operationId: listDynamicParsingRules + parameters: + - name: limit + in: query + description: Limit the number of dynamic parsing rules returned in the response. The number of dynamic parsing rules returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + example: 10 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. + required: false + schema: + type: string + example: 0000000001C51FF7 + responses: + '200': + description: A paginated list of dynamic parsing rules. + content: + application/json: + schema: + $ref: '#/components/schemas/ListDynamicRulesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dynamicParsingRuleManagement + summary: Create a new dynamic parsing rule. + description: Create a new dynamic parsing rule. + operationId: createDynamicParsingRule + requestBody: + description: Information about the new dynamic parsing rule. + content: + application/json: + schema: + $ref: '#/components/schemas/DynamicRuleDefinition' + required: true + responses: + '200': + description: The dynamic parsing rule has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/DynamicRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dynamicParsingRules/{id}: + get: + tags: + - dynamicParsingRuleManagement + summary: Get a dynamic parsing rule. + description: Get a dynamic parsing rule with the given identifier. + operationId: getDynamicParsingRule + parameters: + - name: id + in: path + description: Identifier of dynamic parsing rule to return. + required: true + schema: + type: string + example: 0000000001C41EE4 + responses: + '200': + description: Dynamic parsing rule object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/DynamicRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - dynamicParsingRuleManagement + summary: Update a dynamic parsing rule. + description: Update an existing dynamic parsing rule. All properties specified in the request are replaced. Missing properties are set to their default values. + operationId: updateDynamicParsingRule + parameters: + - name: id + in: path + description: Identifier of the dynamic parsing rule to update. + required: true + schema: + type: string + example: 0000000001C41EE4 + requestBody: + description: Information to update about the dynamic parsing rule. + content: + application/json: + schema: + $ref: '#/components/schemas/DynamicRuleDefinition' + required: true + responses: + '200': + description: The dynamic parsing rule was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/DynamicRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - dynamicParsingRuleManagement + summary: Delete a dynamic parsing rule. + description: Delete a dynamic parsing rule with the given identifier. + operationId: deleteDynamicParsingRule + parameters: + - name: id + in: path + description: Identifier of the dynamic parsing rule to delete. + required: true + schema: + type: string + example: 0000000001C41EE4 + responses: + '204': + description: Dynamic parsing rule was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListDynamicRulesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of dynamic parsing rules. + items: + $ref: '#/components/schemas/DynamicRule' + next: + type: string + description: Next continuation token. + example: 0000000001C51FF7 + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + DynamicRuleDefinition: + required: + - enabled + - name + - scope + type: object + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of the dynamic parsing rule. Use a name that makes it easy to identify the rule. + example: DynamicParsingRule123 + scope: + maxLength: 2048 + minLength: 1 + type: string + description: Scope of the dynamic parsing rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. + example: _sourceHost=127.0.0.1 + enabled: + type: boolean + description: Is the dynamic parsing rule enabled. + example: false + default: true + DynamicRule: + type: object + required: + - enabled + - name + - scope + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + - isSystemRule + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of the dynamic parsing rule. Use a name that makes it easy to identify the rule. + example: DynamicParsingRule123 + scope: + maxLength: 2048 + minLength: 1 + type: string + description: Scope of the dynamic parsing rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. + example: _sourceHost=127.0.0.1 + enabled: + type: boolean + description: Is the dynamic parsing rule enabled. + example: false + default: true + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: dateTime + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: dateTime + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + id: + type: string + description: Unique identifier for the dynamic parsing rule. + example: 0000000001C41EE4 + isSystemRule: + type: boolean + description: Whether the rule has been defined by the system, rather than by a user. + example: false + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + Metadata: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: dateTime + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: dateTime + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. diff --git a/provider-dev/source/event_extraction_rules.yaml b/provider-dev/source/event_extraction_rules.yaml new file mode 100644 index 0000000..66729cf --- /dev/null +++ b/provider-dev/source/event_extraction_rules.yaml @@ -0,0 +1,461 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Event Extraction Rules API + description: Event extraction rules (Event Analytics) and their quota. + version: 1.0.0 +paths: + /v1/eventExtractionRules: + get: + tags: + - eventAnalytics + summary: Get all event extraction rules. + description: Get all event extraction rules. + operationId: getEventExtractionRules + responses: + '200': + description: Event extraction rules. + content: + application/json: + schema: + $ref: '#/components/schemas/ListEventExtractionRulesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - eventAnalytics + summary: Create event extraction rule. + description: Create event extraction rule. + operationId: createEventExtractionRule + requestBody: + description: Information to create a new event extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRule' + required: true + responses: + '200': + description: The event extraction rule was created. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/eventExtractionRules/quota: + get: + tags: + - eventAnalytics + summary: Get event extraction rules quota. + description: Every customer can use a limited number of Event Extraction Rules. This endpoint allows learning about these limitations and remaining quota. + operationId: getEventExtractionRulesQuota + responses: + '200': + description: Current state of Event Extraction Rules quota usage (limit and remaining). + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRulesQuotaUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/eventExtractionRules/{id}: + get: + tags: + - eventAnalytics + summary: Get an event extraction rule. + description: Get an event extraction rule. + operationId: getEventExtractionRule + parameters: + - name: id + in: path + description: The identifier of the event extraction rule. + required: true + schema: + type: string + example: 000000000000000A + responses: + '200': + description: Requested event extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - eventAnalytics + summary: Update an event extraction rule. + description: Update an event extraction rule. + operationId: updateEventExtractionRule + parameters: + - name: id + in: path + description: The identifier of the event extraction rule. + required: true + schema: + type: string + example: 000000000000000A + requestBody: + description: Information to update event extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRule' + required: true + responses: + '200': + description: The event extraction rule was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - eventAnalytics + summary: Delete an event extraction rule. + description: Delete an event extraction rule. + operationId: deleteEventExtractionRule + parameters: + - name: id + in: path + description: The identifier of the event extraction rule. + required: true + schema: + type: string + example: 000000000000000A + responses: + '204': + description: The event extraction rule was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListEventExtractionRulesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of event extraction rules. + items: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + EventExtractionRule: + required: + - configuration + - name + - query + type: object + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of event extraction rule. + example: foo + description: + maxLength: 1024 + type: string + description: Description of event extraction rule. + example: foo + query: + type: string + description: | + Query string for the Event Extraction Rule. Logs matching this query are periodically ingested into the `sumologic_userdata_events` index (**Events**). + + Guidelines for creating the query: + - Optimize the query to limit the number of returned log messages (intended for special logs only). + - The query runs in `Manual` mode, explicitly parse and extract only the necessary fields for event correlation and visualization. + - Use the `fields` operator to restrict the output to required fields. + example: _sourceCategory=eventSource + correlationExpression: + required: + - eventFieldName + - queryFieldName + - stringMatchingAlgorithm + type: object + properties: + queryFieldName: + type: string + description: Name of the query field returned by a log search query. + example: _sourcecategory + eventFieldName: + type: string + description: Name of the field from event query output. + example: foo + stringMatchingAlgorithm: + pattern: ^(ExactMatch)$ + type: string + description: Type of string matching algorithm which tells how to match eventFieldName and queryFieldName. + example: ExactMatch + description: | + Correlation Expression specifies how to determine related events for a log search query. + The value of `eventFieldName` from Events is compared with the values of `queryFieldName` from the log search query output using the defined stringMatchingAlgorithm. Events that match according to this algorithm are considered correlated. + configuration: + maxProperties: 1000 + required: + - eventName + - eventPriority + - eventSource + - eventType + type: object + additionalProperties: + $ref: '#/components/schemas/FieldMapping' + description: | + Configuration for the Event Extraction Rule. + + This object defines how event fields are mapped to their corresponding values. + Each field specifies a `valueSource`, which provides the actual value, and an optional `mappingType`, + indicating the value is hardcoded. + + The following fields are **required**: + - `eventType`: Type of the event. Accepted values are `Deployment`, `Feature Flag Change`, `Configuration Change` or `Infrastructure Change`. + - `eventPriority`: Indicates the priority of the event. Accepted values are `High`, `Medium`, or `Low`. + - `eventSource`: Source system or component where the event originated (e.g., "Jenkins"). + - `eventName`: Descriptive name of the event (e.g., "monitor-manager deployed."). + + The following fields are **optional**: + - `eventDescription`: Additional context or details about the event. + + Custom fields can also be added as needed to capture domain-specific event data. + example: + eventType: + valueSource: Deploy + mappingType: HardCoded + eventPriority: + valueSource: High + mappingType: HardCoded + eventSource: + valueSource: Jenkins + mappingType: HardCoded + eventName: + valueSource: monitor-manager deployed. + mappingType: HardCoded + eventDescription: + valueSource: 2 containers in monitor-manager were upgraded. + mappingType: HardCoded + EventExtractionRuleWithDetails: + type: object + description: Event extraction rule object. + required: + - configuration + - name + - query + - id + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of event extraction rule. + example: foo + description: + maxLength: 1024 + type: string + description: Description of event extraction rule. + example: foo + query: + type: string + description: | + Query string for the Event Extraction Rule. Logs matching this query are periodically ingested into the `sumologic_userdata_events` index (**Events**). + + Guidelines for creating the query: + - Optimize the query to limit the number of returned log messages (intended for special logs only). + - The query runs in `Manual` mode, explicitly parse and extract only the necessary fields for event correlation and visualization. + - Use the `fields` operator to restrict the output to required fields. + example: _sourceCategory=eventSource + correlationExpression: + required: + - eventFieldName + - queryFieldName + - stringMatchingAlgorithm + type: object + properties: + queryFieldName: + type: string + description: Name of the query field returned by a log search query. + example: _sourcecategory + eventFieldName: + type: string + description: Name of the field from event query output. + example: foo + stringMatchingAlgorithm: + pattern: ^(ExactMatch)$ + type: string + description: Type of string matching algorithm which tells how to match eventFieldName and queryFieldName. + example: ExactMatch + description: | + Correlation Expression specifies how to determine related events for a log search query. + The value of `eventFieldName` from Events is compared with the values of `queryFieldName` from the log search query output using the defined stringMatchingAlgorithm. Events that match according to this algorithm are considered correlated. + configuration: + maxProperties: 1000 + required: + - eventName + - eventPriority + - eventSource + - eventType + type: object + additionalProperties: + $ref: '#/components/schemas/FieldMapping' + description: | + Configuration for the Event Extraction Rule. + + This object defines how event fields are mapped to their corresponding values. + Each field specifies a `valueSource`, which provides the actual value, and an optional `mappingType`, + indicating the value is hardcoded. + + The following fields are **required**: + - `eventType`: Type of the event. Accepted values are `Deployment`, `Feature Flag Change`, `Configuration Change` or `Infrastructure Change`. + - `eventPriority`: Indicates the priority of the event. Accepted values are `High`, `Medium`, or `Low`. + - `eventSource`: Source system or component where the event originated (e.g., "Jenkins"). + - `eventName`: Descriptive name of the event (e.g., "monitor-manager deployed."). + + The following fields are **optional**: + - `eventDescription`: Additional context or details about the event. + + Custom fields can also be added as needed to capture domain-specific event data. + example: + eventType: + valueSource: Deploy + mappingType: HardCoded + eventPriority: + valueSource: High + mappingType: HardCoded + eventSource: + valueSource: Jenkins + mappingType: HardCoded + eventName: + valueSource: monitor-manager deployed. + mappingType: HardCoded + eventDescription: + valueSource: 2 containers in monitor-manager were upgraded. + mappingType: HardCoded + id: + type: string + description: Id of the event extraction rule. + example: '0000000001213227' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + enabled: + type: boolean + description: Flag indicating whether the event extraction rule is enabled or disabled. + example: true + disableReason: + type: string + description: Reason for disabling the event extraction rule, if applicable. + example: Event Extraction Rule output exceeded maximum allowed rate of 1000 events per hour in last 24 hours. + EventExtractionRulesQuotaUsage: + required: + - quota + - remaining + type: object + properties: + quota: + type: integer + description: Maximum number of EventExtractionRules allowed. + format: int32 + example: 200 + remaining: + type: integer + description: Remaining number of EventExtractionRules allowed. + format: int32 + example: 121 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + FieldMapping: + required: + - valueSource + type: object + properties: + valueSource: + maxLength: 256 + type: string + description: The actual value or field reference for the mapping. + example: Knobs Changes + mappingType: + pattern: ^(HardCoded)$ + type: string + description: Specifies valueSource is hardcoded. + example: HardCoded + x-pattern-message: Must be `HardCoded` diff --git a/provider-dev/source/extraction_rules.yaml b/provider-dev/source/extraction_rules.yaml new file mode 100644 index 0000000..13e1df6 --- /dev/null +++ b/provider-dev/source/extraction_rules.yaml @@ -0,0 +1,382 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Extraction Rules API + description: Field extraction rules and their quota. + version: 1.0.0 +paths: + /v1/extractionRules: + get: + tags: + - extractionRuleManagement + summary: Get a list of field extraction rules. + description: Get a list of all field extraction rules. The response is paginated with a default limit of 100 field extraction rules per page. + operationId: listExtractionRules + parameters: + - name: limit + in: query + description: Limit the number of field extraction rules returned in the response. The number of field extraction rules returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. + required: false + schema: + type: string + responses: + '200': + description: A paginated list of field extraction rules. + content: + application/json: + schema: + $ref: '#/components/schemas/ListExtractionRulesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - extractionRuleManagement + summary: Create a new field extraction rule. + description: Create a new field extraction rule. + operationId: createExtractionRule + parameters: [] + requestBody: + description: Information about the new field extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/ExtractionRuleDefinition' + required: true + responses: + '200': + description: The field extraction rule has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/ExtractionRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createExtractionRule + /v1/extractionRules/{id}: + get: + tags: + - extractionRuleManagement + summary: Get a field extraction rule. + description: Get a field extraction rule with the given identifier. + operationId: getExtractionRule + parameters: + - name: id + in: path + description: Identifier of field extraction rule to return. + required: true + schema: + type: string + responses: + '200': + description: Extraction rule object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/ExtractionRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getExtractionRule + put: + tags: + - extractionRuleManagement + summary: Update a field extraction rule. + description: Update an existing field extraction rule. All properties specified in the request are replaced. Missing properties are set to their default values. + operationId: updateExtractionRule + parameters: + - name: id + in: path + description: Identifier of the field extraction rule to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the field extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateExtractionRuleDefinition' + required: true + responses: + '200': + description: The field extraction rule was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/ExtractionRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateExtractionRule + delete: + tags: + - extractionRuleManagement + summary: Delete a field extraction rule. + description: Delete a field extraction rule with the given identifier. + operationId: deleteExtractionRule + parameters: + - name: id + in: path + description: Identifier of the field extraction rule to delete. + required: true + schema: + type: string + responses: + '204': + description: Extraction rule was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteExtractionRule +components: + schemas: + ListExtractionRulesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of field extraction rules. + items: + $ref: '#/components/schemas/ExtractionRule' + next: + type: string + description: Next continuation token. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ExtractionRuleDefinition: + required: + - name + - parseExpression + - scope + type: object + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of the field extraction rule. Use a name that makes it easy to identify the rule. + example: ExtractionRule123 + scope: + maxLength: 2048 + minLength: 0 + type: string + description: Scope of the field extraction rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. + example: _sourceHost=127.0.0.1 + parseExpression: + maxLength: 16384 + type: string + description: Describes the fields to be parsed. + example: csv _raw extract 1 as f1 + enabled: + type: boolean + description: Is the field extraction rule enabled. + default: true + ExtractionRule: + type: object + x-tf-generated-properties: id,name,scope,parseExpression,enabled + x-tf-resource-name: ExtractionRule + required: + - name + - parseExpression + - scope + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of the field extraction rule. Use a name that makes it easy to identify the rule. + example: ExtractionRule123 + scope: + maxLength: 2048 + minLength: 0 + type: string + description: Scope of the field extraction rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. + example: _sourceHost=127.0.0.1 + parseExpression: + maxLength: 16384 + type: string + description: Describes the fields to be parsed. + example: csv _raw extract 1 as f1 + enabled: + type: boolean + description: Is the field extraction rule enabled. + default: true + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the field extraction rule. + fieldNames: + type: array + description: List of extracted fields from "parseExpression". + items: + type: string + UpdateExtractionRuleDefinition: + required: + - name + - parseExpression + - scope + - enabled + type: object + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of the field extraction rule. Use a name that makes it easy to identify the rule. + example: ExtractionRule123 + scope: + maxLength: 2048 + minLength: 0 + type: string + description: Scope of the field extraction rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. + example: _sourceHost=127.0.0.1 + parseExpression: + maxLength: 16384 + type: string + description: Describes the fields to be parsed. + example: csv _raw extract 1 as f1 + enabled: + type: boolean + description: Is the field extraction rule enabled. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + BaseExtractionRuleDefinition: + required: + - name + - parseExpression + - scope + type: object + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of the field extraction rule. Use a name that makes it easy to identify the rule. + example: ExtractionRule123 + scope: + maxLength: 2048 + minLength: 0 + type: string + description: Scope of the field extraction rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. + example: _sourceHost=127.0.0.1 + parseExpression: + maxLength: 16384 + type: string + description: Describes the fields to be parsed. + example: csv _raw extract 1 as f1 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 diff --git a/provider-dev/source/feature_settings.yaml b/provider-dev/source/feature_settings.yaml new file mode 100644 index 0000000..6bf721e --- /dev/null +++ b/provider-dev/source/feature_settings.yaml @@ -0,0 +1,196 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Feature Settings API + description: Organization feature settings. + version: 1.0.0 +paths: + /v1/featureSettings: + get: + tags: + - orgFeatureSettings + summary: Get a list of opt-in/out features. + description: Get a list of opt-in/out features for the organization. + operationId: listFeatureSettings + responses: + '200': + description: A list of opt-in/out features for the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/FeatureSettingsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - orgFeatureSettings + summary: Update one or more feature settings. + description: Update feature settings for the organization. + operationId: updateFeatureSettings + parameters: [] + requestBody: + description: List of feature Id and its settings. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFeatureSettingsRequest' + required: true + responses: + '200': + description: One or more feature settings have been updated. + content: + application/json: + schema: + $ref: '#/components/schemas/FeatureSettingsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + FeatureSettingsResponse: + type: object + properties: + featureSettings: + type: array + description: List of opt-in/out features. + items: + $ref: '#/components/schemas/FeatureSettingsModel' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + UpdateFeatureSettingsRequest: + required: + - featureSettings + type: object + properties: + featureSettings: + minItems: 1 + type: array + description: List of feature Id and its settings. + items: + $ref: '#/components/schemas/FeatureSettingsBase' + FeatureSettingsModel: + required: + - id + - settings + - description + - lastModifiedAt + - lastModifiedBy + - name + - type + type: object + properties: + id: + maxLength: 32 + type: string + description: Id of the feature. + example: Mobot + settings: + minItems: 1 + type: array + description: List of settings. + items: + $ref: '#/components/schemas/Setting' + name: + maxLength: 64 + type: string + description: Name of the feature (user-friendly). + example: Mobot + description: + maxLength: 255 + type: string + description: Details of the feature. + type: + pattern: ^(GA|PublicPreview|PrivatePreview)$ + type: string + description: Type of the feature + example: GA + lastModifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + nullable: true + example: '2025-10-16T09:10:00.000Z' + lastModifiedBy: + type: string + description: Identifier of the user who last modified the resource. + nullable: true + example: 0000000006743FE8 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + FeatureSettingsBase: + required: + - id + - settings + type: object + properties: + id: + maxLength: 32 + type: string + description: Id of the feature. + example: Mobot + settings: + minItems: 1 + type: array + description: List of settings. + items: + $ref: '#/components/schemas/Setting' + Setting: + required: + - key + - value + type: object + properties: + key: + type: string + description: The key for the setting. + example: enabled + value: + type: string + description: The value for the setting. + example: 'false' diff --git a/provider-dev/source/fields.yaml b/provider-dev/source/fields.yaml new file mode 100644 index 0000000..ff793c5 --- /dev/null +++ b/provider-dev/source/fields.yaml @@ -0,0 +1,415 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Fields API + description: Custom fields, built-in fields, dropped fields and the field quota. + version: 1.0.0 +paths: + /v1/fields: + get: + tags: + - fieldManagementV1 + summary: Get a list of all custom fields. + description: Request a list of all the custom fields configured in your account. + operationId: listCustomFields + responses: + '200': + description: List of all custom fields. + content: + application/json: + schema: + $ref: '#/components/schemas/ListCustomFieldsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - fieldManagementV1 + summary: Create a new field. + description: Adding a field will define it in the Fields schema allowing it to be assigned as metadata to your logs. + operationId: createField + parameters: [] + requestBody: + description: Name of a field to add. The name is used as the key in the key-value pair. + content: + application/json: + schema: + $ref: '#/components/schemas/FieldName' + required: true + responses: + '200': + description: The field was created successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/CustomField' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields/{id}: + get: + tags: + - fieldManagementV1 + summary: Get a custom field. + description: Get the details of a custom field. + operationId: getCustomField + parameters: + - name: id + in: path + description: Identifier of a field. + required: true + schema: + type: string + example: 00000000031D02DA + responses: + '200': + description: The details of the custom field. + content: + application/json: + schema: + $ref: '#/components/schemas/CustomField' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - fieldManagementV1 + summary: Delete a custom field. + description: Deleting a field does not delete historical data assigned with that field. If you delete a field by mistake and one or more of those dependencies break, you can re-add the field to get things working properly again. You should always disable a field and ensure things are behaving as expected before deleting a field. + operationId: deleteField + parameters: + - name: id + in: path + description: Identifier of a field to delete. + required: true + schema: + type: string + example: 00000000031D02DA + responses: + '204': + description: The field was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields/{id}/enable: + put: + tags: + - fieldManagementV1 + summary: Enable custom field with a specified identifier. + description: Fields have to be enabled to be assigned to your data. This operation ensures that a specified field is enabled and Sumo Logic will treat it as safe to process. All manually created custom fields are enabled by default. + operationId: enableField + parameters: + - name: id + in: path + description: Identifier of a field to enable. + required: true + schema: + type: string + example: 00000000031D02DA + responses: + '204': + description: Field has been enabled. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields/{id}/disable: + delete: + tags: + - fieldManagementV1 + summary: Disable a custom field. + description: After disabling a field Sumo Logic will start dropping its incoming values at ingest. As a result, they won't be searchable or usable. Historical values are not removed and remain searchable. + operationId: disableField + parameters: + - name: id + in: path + description: Identifier of a field to disable. + required: true + schema: + type: string + example: 00000000031D02DA + responses: + '204': + description: Field has been disabled. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields/dropped: + get: + tags: + - fieldManagementV1 + summary: Get a list of dropped fields. + description: Dropped fields are fields sent to Sumo Logic, but are ignored since they are not defined in your Fields schema. In order to save these values a field must both exist and be enabled. + operationId: listDroppedFields + responses: + '200': + description: | + List of dropped fields. + content: + application/json: + schema: + $ref: '#/components/schemas/ListDroppedFieldsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields/builtin: + get: + tags: + - fieldManagementV1 + summary: Get a list of built-in fields. + description: Built-in fields are created automatically by Sumo Logic for standard configuration purposes. They include `_sourceHost` and `_sourceCategory`. Built-in fields can't be deleted or disabled. + operationId: listBuiltInFields + responses: + '200': + description: List of all built-in fields. + content: + application/json: + schema: + $ref: '#/components/schemas/ListBuiltinFieldsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields/builtin/{id}: + get: + tags: + - fieldManagementV1 + summary: Get a built-in field. + description: Get the details of a built-in field. + operationId: getBuiltInField + parameters: + - name: id + in: path + description: Identifier of a built-in field. + required: true + schema: + type: string + example: 000000000000000A + responses: + '200': + description: The details of the built-in field. + content: + application/json: + schema: + $ref: '#/components/schemas/BuiltinField' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/fields/quota: + get: + tags: + - fieldManagementV1 + summary: Get capacity information. + description: Every account has a limited number of fields available. This endpoint returns your account limitations and remaining quota. + operationId: getFieldQuota + responses: + '200': + description: Current fields capacity usage (fields count). + content: + application/json: + schema: + $ref: '#/components/schemas/FieldQuotaUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListCustomFieldsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of custom fields. + items: + $ref: '#/components/schemas/CustomField' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + FieldName: + required: + - fieldName + type: object + properties: + fieldName: + maxLength: 255 + minLength: 1 + type: string + description: Field name. + example: hostIP + CustomField: + required: + - fieldName + - dataType + - fieldId + - state + type: object + properties: + fieldName: + maxLength: 255 + minLength: 1 + type: string + description: Field name. + example: hostIP + fieldId: + type: string + description: Identifier of the field. + example: 00000000031D02DA + dataType: + pattern: ^(String|Long|Int|Double|Boolean)$ + type: string + description: Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. + example: String + x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean` + state: + pattern: ^(Enabled|Disabled)$ + type: string + description: Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. + example: Enabled + x-pattern-message: Must be `Enabled` or `Disabled` + ListDroppedFieldsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of dropped fields. + items: + $ref: '#/components/schemas/DroppedField' + ListBuiltinFieldsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of built-in fields. + items: + $ref: '#/components/schemas/BuiltinField' + BuiltinField: + required: + - fieldName + - dataType + - fieldId + - state + type: object + properties: + fieldName: + maxLength: 255 + minLength: 1 + type: string + description: Field name. + example: hostIP + fieldId: + type: string + description: Identifier of the field. + example: 00000000031D02DA + dataType: + pattern: ^(String|Long|Int|Double|Boolean)$ + type: string + description: Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. + example: String + x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean` + state: + pattern: ^(Enabled|Disabled)$ + type: string + description: Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. + example: Enabled + x-pattern-message: Must be `Enabled` or `Disabled` + FieldQuotaUsage: + required: + - quota + - remaining + type: object + properties: + quota: + type: integer + description: Maximum number of fields available. + format: int32 + example: 200 + remaining: + type: integer + description: Current number of fields available. + format: int32 + example: 121 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + DroppedField: + required: + - fieldName + type: object + properties: + fieldName: + maxLength: 255 + minLength: 1 + type: string + description: Field name. + example: hostIP diff --git a/provider-dev/source/health_events.yaml b/provider-dev/source/health_events.yaml new file mode 100644 index 0000000..f728271 --- /dev/null +++ b/provider-dev/source/health_events.yaml @@ -0,0 +1,238 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Health Events API + description: Health events for collectors, sources, ingest budgets and other resources. + version: 1.0.0 +paths: + /v1/healthEvents: + get: + tags: + - healthEvents + summary: Get a list of health events. + description: Get a list of all the unresolved health events in your account. + operationId: listAllHealthEvents + parameters: + - name: limit + in: query + description: Limit the number of health events returned in the response. The number of health events returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: A paginated list of all the health events. + content: + application/json: + schema: + $ref: '#/components/schemas/ListHealthEventResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/healthEvents/resources: + post: + tags: + - healthEvents + summary: Health events for specific resources. + description: Get a list of all the unresolved events in your account that belong to the supplied resource identifiers. + operationId: listAllHealthEventsForResources + parameters: + - name: limit + in: query + description: Limit the number of health events returned in the response. The number of health events returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + requestBody: + description: Resource identifiers to request health events from. + content: + application/json: + schema: + $ref: '#/components/schemas/ResourceIdentities' + required: true + responses: + '200': + description: List of all the health events for the specified resources. + content: + application/json: + schema: + $ref: '#/components/schemas/ListHealthEventResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListHealthEventResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of health events. + items: + $ref: '#/components/schemas/HealthEvent' + next: + type: string + description: Next continuation token. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ResourceIdentities: + required: + - data + type: object + properties: + data: + type: array + description: A list of the resources. + items: + $ref: '#/components/schemas/ResourceIdentity' + HealthEvent: + required: + - details + - eventId + - eventName + - eventTime + - resourceIdentity + - severityLevel + - subsystem + type: object + properties: + eventId: + type: string + description: The unique identifier of the event. + example: e801dc7d-f483-46e9-bcc9-410f08f96497 + eventName: + type: string + description: The name of the event. + example: InstalledCollectorOffline + details: + $ref: '#/components/schemas/TrackerIdentity' + resourceIdentity: + $ref: '#/components/schemas/ResourceIdentity' + eventTime: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + subsystem: + type: string + description: The product area of the event. + severityLevel: + type: string + description: The criticality of the event. It is either `Error` or `Warning` + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ResourceIdentity: + required: + - id + - type + type: object + properties: + id: + type: string + description: The unique identifier of the resource. + example: C03E086C137F38B4 + name: + type: string + description: The name of the resource. + example: S3 Source, Scheduled View name. + default: Unknown + type: + type: string + description: '-> Resource type. Supported types are - `Collector`, `Source`, `IngestBudget` and `Organisation`.' + example: Collector + discriminator: + propertyName: type + mapping: + Collector: '#/components/schemas/CollectorResourceIdentity' + Source: '#/components/schemas/SourceResourceIdentity' + IngestBudget: '#/components/schemas/IngestBudgetResourceIdentity' + Organisation: '#/components/schemas/OrgIdentity' + LogsToMetricsRule: '#/components/schemas/LogsToMetricsRuleIdentity' + ScheduledView: '#/components/schemas/ScheduledViewResourceIdentity' + TrackerIdentity: + required: + - description + - error + - trackerId + type: object + properties: + trackerId: + type: string + description: Name that uniquely identifies the health event. It focuses on what happened rather than why. + error: + type: string + description: Description of the underlying reason for the event change. + example: Access denied to Amazon S3 bucket + description: + type: string + description: A more elaborate description of why the event occurred. + example: S3 collection is not working as expected because of access issues. + discriminator: + propertyName: description diff --git a/provider-dev/source/ingest_budgets.yaml b/provider-dev/source/ingest_budgets.yaml new file mode 100644 index 0000000..7d538b2 --- /dev/null +++ b/provider-dev/source/ingest_budgets.yaml @@ -0,0 +1,396 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Ingest Budgets API + description: Ingest budgets (v2) and their usage reset. + version: 1.0.0 +paths: + /v2/ingestBudgets: + get: + tags: + - ingestBudgetManagementV2 + summary: Get a list of ingest budgets. + description: Get a list of all ingest budgets. The response is paginated with a default limit of 100 budgets per page. + operationId: listIngestBudgetsV2 + parameters: + - name: limit + in: query + description: Limit the number of budgets returned in the response. The number of budgets returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. + required: false + schema: + type: string + responses: + '200': + description: A paginated list of budgets. + content: + application/json: + schema: + $ref: '#/components/schemas/ListIngestBudgetsResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - ingestBudgetManagementV2 + summary: Create a new ingest budget. + description: Create a new ingest budget. + operationId: createIngestBudgetV2 + parameters: [] + requestBody: + description: Information about the new ingest budget. + content: + application/json: + schema: + $ref: '#/components/schemas/IngestBudgetDefinitionV2' + required: true + responses: + '200': + description: The ingest budget has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/IngestBudgetV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/ingestBudgets/{id}: + get: + tags: + - ingestBudgetManagementV2 + summary: Get an ingest budget. + description: Get an ingest budget by the given identifier. + operationId: getIngestBudgetV2 + parameters: + - name: id + in: path + description: Identifier of ingest budget to return. + required: true + schema: + type: string + responses: + '200': + description: Ingest budget object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/IngestBudgetV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - ingestBudgetManagementV2 + summary: Update an ingest budget. + description: Update an existing ingest budget. All properties specified in the request are required. + operationId: updateIngestBudgetV2 + parameters: + - name: id + in: path + description: Identifier of the ingest budget to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the ingest budget. + content: + application/json: + schema: + $ref: '#/components/schemas/IngestBudgetDefinitionV2' + required: true + responses: + '200': + description: The ingest budget was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/IngestBudgetV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - ingestBudgetManagementV2 + summary: Delete an ingest budget. + description: Delete an ingest budget with the given identifier. + operationId: deleteIngestBudgetV2 + parameters: + - name: id + in: path + description: Identifier of the ingest budget to delete. + required: true + schema: + type: string + responses: + '204': + description: The ingest budget was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/ingestBudgets/{id}/usage/reset: + post: + tags: + - ingestBudgetManagementV2 + summary: Reset usage. + description: Reset ingest budget's current usage to 0 before the scheduled reset time. This is only applicable to `dailyVolume` budgetType. + operationId: resetUsageV2 + parameters: + - name: id + in: path + description: Identifier of the ingest budget to reset usage. + required: true + schema: + type: string + responses: + '200': + description: Ingest budget's usage was reset successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListIngestBudgetsResponseV2: + required: + - data + type: object + properties: + data: + type: array + description: List of ingest budgets. + items: + $ref: '#/components/schemas/IngestBudgetV2' + next: + type: string + description: Next continuation token. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + IngestBudgetDefinitionV2: + required: + - action + - capacityBytes + - name + - scope + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Display name of the ingest budget. + example: Developer Budget + scope: + maxLength: 1024 + minLength: 1 + type: string + description: A scope is a constraint that will be used to identify the messages on which budget needs to be applied. A scope is consists of key and value separated by =. The field must be enabled in the fields table. Value supports wildcard. e.g. _sourceCategory=*prod*payment*, cluster=kafka. If the scope is defined _sourceCategory=*nginx* in this budget will be applied on messages having fields _sourceCategory=prod/nginx, _sourceCategory=dev/nginx, or _sourceCategory=dev/nginx/error + example: _sourceCategory=*prod*nginx* + capacityBytes: + minimum: 1 + type: integer + description: Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. The capacity bytes unit varies based on the budgetType field. For `dailyVolume` budgetType the capacity specified is in bytes/day whereas for `minuteVolume` budgetType its bytes/min. + format: int64 + example: 1000 + timezone: + type: string + description: Time zone of the reset time for the ingest budget. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + default: Etc/UTC + resetTime: + maxLength: 5 + minLength: 5 + type: string + description: Reset time of the ingest budget in HH:MM format. + example: '23:30' + default: '00:00' + description: + maxLength: 1024 + minLength: 0 + type: string + description: Description of the ingest budget. + action: + pattern: ^(keepCollecting|stopCollecting)$ + type: string + description: |- + Action to take when ingest budget's capacity is reached. All actions are audited. Supported values are: + * `stopCollecting` + * `keepCollecting` + example: stopCollecting + x-pattern-message: must be either `keepCollecting` or `stopCollecting` + auditThreshold: + maximum: 99 + minimum: 1 + type: integer + description: The threshold as a percentage of when an ingest budget's capacity usage is logged in the Audit Index. + format: int32 + example: 85 + IngestBudgetV2: + type: object + required: + - action + - capacityBytes + - name + - scope + - createdAt + - createdBy + - id + - modifiedAt + - modifiedBy + - version + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Display name of the ingest budget. + example: Developer Budget + scope: + maxLength: 1024 + minLength: 1 + type: string + description: A scope is a constraint that will be used to identify the messages on which budget needs to be applied. A scope is consists of key and value separated by =. The field must be enabled in the fields table. Value supports wildcard. e.g. _sourceCategory=*prod*payment*, cluster=kafka. If the scope is defined _sourceCategory=*nginx* in this budget will be applied on messages having fields _sourceCategory=prod/nginx, _sourceCategory=dev/nginx, or _sourceCategory=dev/nginx/error + example: _sourceCategory=*prod*nginx* + capacityBytes: + minimum: 1 + type: integer + description: Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. The capacity bytes unit varies based on the budgetType field. For `dailyVolume` budgetType the capacity specified is in bytes/day whereas for `minuteVolume` budgetType its bytes/min. + format: int64 + example: 1000 + timezone: + type: string + description: Time zone of the reset time for the ingest budget. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + default: Etc/UTC + resetTime: + maxLength: 5 + minLength: 5 + type: string + description: Reset time of the ingest budget in HH:MM format. + example: '23:30' + default: '00:00' + description: + maxLength: 1024 + minLength: 0 + type: string + description: Description of the ingest budget. + action: + pattern: ^(keepCollecting|stopCollecting)$ + type: string + description: |- + Action to take when ingest budget's capacity is reached. All actions are audited. Supported values are: + * `stopCollecting` + * `keepCollecting` + example: stopCollecting + x-pattern-message: must be either `keepCollecting` or `stopCollecting` + auditThreshold: + maximum: 99 + minimum: 1 + type: integer + description: The threshold as a percentage of when an ingest budget's capacity usage is logged in the Audit Index. + format: int32 + example: 85 + id: + type: string + description: Unique identifier for the ingest budget. + example: 0000000003343FDD + usageBytes: + type: integer + description: Current usage since the last reset, in bytes. + format: int64 + example: 900 + usageStatus: + pattern: ^(Normal|Approaching|Exceeded|Unknown)$ + type: string + description: Status of the current usage. Can be `Normal`, `Approaching`, `Exceeded`, or `Unknown` (unable to retrieve usage). + example: Approaching + x-pattern-message: must be either `Normal`, `Approaching`, `Exceeded`, or `Unknown` + createdAt: + type: string + description: The creation timestamp in UTC of the Ingest Budget. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: The identifier of the user who created the Ingest Budget. + example: 0000000006743FDD + modifiedAt: + type: string + description: The modified timestamp in UTC of the Ingest Budget. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: The identifier of the user who modified the Ingest Budget. + example: 0000000001243FDD + budgetVersion: + type: integer + description: The version of the Ingest Budget + format: int32 + example: 2 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 diff --git a/provider-dev/source/log_searches.yaml b/provider-dev/source/log_searches.yaml new file mode 100644 index 0000000..0ead3d7 --- /dev/null +++ b/provider-dev/source/log_searches.yaml @@ -0,0 +1,1335 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Log Searches API + description: Saved and scheduled log searches, and estimated usage of a log search across data tiers. + version: 1.0.0 +paths: + /v1/logSearches: + get: + tags: + - logSearchesManagement + summary: List all saved log searches. + description: List all saved log searches viewable by the user. + operationId: listLogSearches + parameters: + - name: limit + in: query + description: Limit the number of log searches returned in the response. The number of log searches returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + responses: + '200': + description: Paginated list of log searches under the Personal folder created by the user. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLogSearches' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - logSearchesManagement + summary: Save a log search. + description: Save the log search in the content library. + operationId: createLogSearch + parameters: [] + requestBody: + description: The definition of the saved log search. + content: + application/json: + schema: + $ref: '#/components/schemas/SaveLogSearchRequest' + required: true + responses: + '200': + description: Newly saved log search. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearch' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createLogSearch + /v1/logSearches/{id}: + get: + tags: + - logSearchesManagement + summary: Get the saved log search. + description: Get a saved log search from the content library by identifier. + operationId: getLogSearch + parameters: + - name: id + in: path + description: Identifier of the saved log search. + required: true + schema: + type: string + responses: + '200': + description: Saved log search that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearch' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getLogSearch + put: + tags: + - logSearchesManagement + summary: Update the saved log Search. + description: Update the saved log search with the specified identifier. Partial update is not supported, you must provide values for all fields. + operationId: updateLogSearch + parameters: + - name: id + in: path + description: Identifier of the saved log search. + required: true + schema: + type: string + requestBody: + description: An updated saved log search definition. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchDefinition' + required: true + responses: + '200': + description: The saved log search that was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearch' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateLogSearch + delete: + tags: + - logSearchesManagement + summary: Delete the saved log search. + description: Delete the saved log search from the content library. + operationId: deleteLogSearch + parameters: + - name: id + in: path + description: Identifier of the saved log search. + required: true + schema: + type: string + responses: + '204': + description: The saved log search was successfully deleted. + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteLogSearch + /v1/logSearches/estimatedUsage: + post: + tags: + - logSearchesEstimatedUsage + summary: Gets estimated usage details. + description: | + Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier. + operationId: getLogSearchEstimatedUsage + parameters: [] + requestBody: + description: The definition of the log search estimated usage. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageRequest' + required: true + responses: + '200': + description: Log search information along with its estimated usage details. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logSearches/estimatedUsageByTier: + post: + tags: + - logSearchesEstimatedUsage + summary: Gets Tier Wise estimated usage details. + description: | + Gets the estimated volume of data that would be scanned for a given log search per data tier. + operationId: getLogSearchEstimatedUsageByTier + parameters: [] + requestBody: + description: The definition of the log search estimated usage. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV2' + required: true + responses: + '200': + description: Log search information along with its tier wise estimated usage details. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageByTierDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logSearches/estimatedUsageByMeteringType: + post: + tags: + - logSearchesEstimatedUsage + summary: Gets estimated usage details per metering type. + description: | + Gets the estimated volume of data, per metering type, that would be scanned for running a given log search for a given timerange. + operationId: getLogSearchEstimatedUsageByMeteringType + parameters: [] + requestBody: + description: The definition of the log search estimated usage. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV3' + required: true + responses: + '200': + description: Log search information along with its metering type wise estimated usage details. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageByMeteringTypeDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logSearches/estimatedUsageByView: + post: + tags: + - logSearchesEstimatedUsage + summary: Gets estimated usage details per view. + description: | + Gets the estimated volume of data, per view, that would be scanned for running a given log search for a given timerange. + operationId: logSearchesEstimatedUsageByView + parameters: [] + requestBody: + description: The definition of the log search estimated usage. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV3' + required: true + responses: + '200': + description: Log search information along with its view wise estimated usage details. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageByViewDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + PaginatedLogSearches: + required: + - logSearches + type: object + properties: + logSearches: + type: array + description: List of log searches. + items: + $ref: '#/components/schemas/LogSearch' + warnings: + type: array + description: List of warning messages for invalid log search definitions. + items: + type: string + example: 'Invalid saved search: . Please validate your saved search.' + token: + type: string + description: Next continuation token. `token` is set to null when no more pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + SaveLogSearchRequest: + type: object + description: The definition of the log search to save in the content library. + required: + - queryString + - timeRange + - name + - parentId + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + name: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()\\]+$ + type: string + description: Name of the item in the content library. + example: Short title + description: + maxLength: 255 + type: string + description: Item description in the content library. + example: Long and detailed description + schedule: + $ref: '#/components/schemas/LogSearchScheduleSyncDefinition' + properties: + maxLength: 65536 + type: string + description: | + Aggregate Results Settings and View configurations, Legends settings, and different visualisation settings overrides. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ "key": "value" }' + parentId: + type: string + description: Identifier of a folder where to save the log search. + example: 000000000000001A + LogSearch: + x-tf-generated-properties: id,parentId,name,description,schedule,queryString,timeRange,runByReceiptTime,queryParameters,parsingMode,intervalTimeType + x-tf-resource-name: LogSearch + type: object + description: Definition of the saved log search with query and timerange. + required: + - queryString + - timeRange + - name + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + name: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()\\]+$ + type: string + description: Name of the item in the content library. + example: Short title + description: + maxLength: 255 + type: string + description: Item description in the content library. + example: Long and detailed description + schedule: + $ref: '#/components/schemas/LogSearchScheduleSyncDefinition' + properties: + maxLength: 65536 + type: string + description: | + Aggregate Results Settings and View configurations, Legends settings, and different visualisation settings overrides. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ "key": "value" }' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Identifier of the saved log search. + example: 000000000000001A + parentId: + type: string + description: Identifier of the parent element in the content library, such as folder. + example: 0000000000007D2B + LogSearchDefinition: + type: object + description: Definition of the saved log search with query and timerange. + required: + - queryString + - timeRange + - name + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + name: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()\\]+$ + type: string + description: Name of the item in the content library. + example: Short title + description: + maxLength: 255 + type: string + description: Item description in the content library. + example: Long and detailed description + schedule: + $ref: '#/components/schemas/LogSearchScheduleSyncDefinition' + properties: + maxLength: 65536 + type: string + description: | + Aggregate Results Settings and View configurations, Legends settings, and different visualisation settings overrides. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ "key": "value" }' + LogSearchEstimatedUsageRequest: + description: Definition of the saved log search with query and timerange. + required: + - queryString + - timeRange + - timezone + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + LogSearchEstimatedUsageDefinition: + description: Definition of the saved log search with query and timerange. + required: + - queryString + - timeRange + - timezone + - estimatedUsageDetails + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + estimatedUsageDetails: + $ref: '#/components/schemas/EstimatedUsageDetails' + LogSearchEstimatedUsageRequestV2: + required: + - queryString + - timeRange + - timezone + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + description: Definition of the saved log search with query and timerange. + LogSearchEstimatedUsageByTierDefinition: + required: + - queryString + - timeRange + - timezone + - estimatedUsageDetails + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + estimatedUsageDetails: + type: array + items: + $ref: '#/components/schemas/EstimatedUsageDetailsWithTier' + description: Definition of the saved log search with query and timerange. + LogSearchEstimatedUsageRequestV3: + description: Definition of the log search with query and timerange. + required: + - queryString + - timeRange + - timezone + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + emulateSearchContext: + $ref: '#/components/schemas/EmulateSearchContext' + LogSearchEstimatedUsageByMeteringTypeDefinition: + description: Definition of the log search with query and timerange. + required: + - queryString + - timeRange + - timezone + - estimatedUsageDetails + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + emulateSearchContext: + $ref: '#/components/schemas/EmulateSearchContext' + estimatedUsageDetails: + type: array + items: + $ref: '#/components/schemas/EstimatedUsageDetailsWithMeteringType' + LogSearchEstimatedUsageByViewDefinition: + description: Definition of the log search with query and timerange. + required: + - queryString + - timeRange + - timezone + - estimatedUsageDetails + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + emulateSearchContext: + $ref: '#/components/schemas/EmulateSearchContext' + estimatedUsageDetails: + type: array + items: + $ref: '#/components/schemas/EstimatedUsageDetailsPerView' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + LogSearchQueryTimeRangeBase: + description: Definition of the saved log search with query and timerange. + required: + - queryString + - timeRange + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + LogSearchScheduleSyncDefinition: + required: + - parseableTimeRange + - scheduleType + - timeZone + type: object + properties: + cronExpression: + type: string + description: Cron-like expression specifying the search's schedule. Field scheduleType must be set to "Custom", otherwise, scheduleType takes precedence over cronExpression. + example: 0 0/15 * * * ? * + displayableTimeRange: + type: string + description: A human-friendly text describing the query time range. For e.g. "-2h", "last three days", "team default time". This value can not be set via API. + example: '-2h' + parseableTimeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + timeZone: + type: string + description: Time zone identifier for time specification. Either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used. The GMT time zone is chosen if the given time zone cannot be identified. + threshold: + $ref: '#/components/schemas/LogSearchNotificationThresholdSyncDefinition' + notification: + $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + scheduleType: + pattern: ^(RealTime|15Minutes|1Hour|2Hours|4Hours|6Hours|8Hours|12Hours|1Day|1Week|Custom)$ + type: string + description: |- + Run schedule of the scheduled search. Set to "Custom" to specify the schedule with a CRON expression.Please note that with Custom, 1Day and 1Week schedule types you need to provide the corresponding cron expression to determine when to actually run the search. e.g. Sample Valid Cron for 1Day is "0 0 16 ? * 2-6 *". Possible schedule types are: + - `RealTime` + - `15Minutes` + - `1Hour` + - `2Hours` + - `4Hours` + - `6Hours` + - `8Hours` + - `12Hours` + - `1Day` + - `1Week` + - `Custom` + muteErrorEmails: + type: boolean + description: If enabled, emails are not sent out in case of errors with the search. + parameters: + maxLength: 50 + type: array + description: 'A list of scheduled search template parameters to be used while executing the query. This is different from the queryParameters field in parent object as this field will be used for execution as per the schedule. The parent object field is for search itself, not part of execution. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/ScheduleSearchParameterSyncDefinition' + notifications: + type: array + description: List of notification actions for this schedule. Mutually exclusive with 'notification' — exactly one of these fields must be provided. Sending both or neither returns a 400 error. Supports multiple notification channels (e.g., email and webhook) for a single scheduled search execution. + items: + $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + description: Schedule definition for a log search. Exactly one of 'notification' (single notification) or 'notifications' (multiple notification actions) must be provided. Sending both or neither will result in a 400 error. + EstimatedUsageDetails: + type: object + properties: + dataScannedInBytes: + type: integer + description: Amount of data scanned in bytes, to run the query. + format: int64 + example: 114086541 + LogSearchQueryTimeRangeBaseExceptParsingMode: + required: + - queryString + - timeRange + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + description: Definition of the saved log search with query and timerange. + EstimatedUsageDetailsWithTier: + type: object + properties: + tier: + type: string + description: Name of the data tier. Supported Values are Continuous, Frequent, Infrequent + example: Continuous + dataScannedInBytes: + type: integer + description: Amount of data scanned in bytes, to run the query. + format: int64 + example: 114086541 + LogSearchQueryEstimationQueryDefinition: + description: Definition of the log search with query and timerange. + required: + - queryString + - timeRange + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + EmulateSearchContext: + type: object + properties: + roleIds: + type: array + description: List of role IDs to emulate the search context for. + example: + - 000000000000000C + items: + type: string + userId: + type: string + description: User ID to emulate the search context for. + example: 000000000000019F + description: | + Contains keys like "roleIds" with a list of role IDs or "userId" as a string. + EstimatedUsageDetailsWithMeteringType: + type: object + properties: + meteringType: + type: string + description: | + Name of the metering type. Metering type indicates how the data scanned within a particular data tier is actually metered and billed. Supported Values are Continuous, Frequent, Infrequent, ContinuousSecurity and FlexSecurity. + example: Continuous + dataScannedInBytes: + type: integer + description: Amount of data scanned in bytes, to run the query. + format: int64 + example: 114086541 + tier: + type: string + description: Name of the data tier. Supported Values are Continuous, Frequent, Infrequent and Flex. + example: Continuous + scanCreditAccounted: + type: boolean + description: | + Whether particular metering type is accounted against a customer's credit on a per scan basis. e.g Data belonging to "Flex" and "Infrequent" metering type is accounted for credits on per scan basis. For other metering types, eg. "Continuous" it's charged upfront during ingestion. + example: false + description: Estimated Usage details for the given log search query with the above timerange. + EstimatedUsageDetailsPerView: + required: + - usageDetails + - viewName + type: object + properties: + viewName: + type: string + description: Name of the view for which usage is estimated. + usageDetails: + type: array + description: The scanning and data retrieval usages to run the query per view. + items: + $ref: '#/components/schemas/EstimatedUsageDetailsWithMeteringType' + LogSearchQueryParsingMode: + type: object + properties: + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + description: Definition of log search parsing mode + ResolvableTimeRange: + required: + - type + type: object + properties: + type: + type: string + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. + example: + type: BeginBoundedTimeRange + from: + type: RelativeTimeRangeBoundary + relativeTime: '-15m' + discriminator: + propertyName: type + LogSearchNotificationThresholdSyncDefinition: + required: + - count + - operator + type: object + properties: + thresholdType: + pattern: ^(message|group)$ + type: string + description: |- + This property is deprecated. The system will automatically infer the value of this field from the query going forward, so the user-specified value will no longer be honored. + Threshold type. Possible values are: + 1. `message` + 2. `group` + + Use `group` as threshold type if the search query is of aggregate type. For non-aggregate queries, set it to `message`. + operator: + pattern: ^(eq|gt|ge|lt|le)$ + type: string + description: |- + Criterion to be applied when comparing actual result count with expected count. Possible values are: + 1. `eq` + 2. `gt` + 3. `ge` + 4. `lt` + 5. `le` + count: + type: integer + description: Expected result count. + ScheduleNotificationSyncDefinition: + required: + - taskType + type: object + properties: + taskType: + type: string + description: Delivery channel for notifications. + discriminator: + propertyName: taskType + ScheduleSearchParameterSyncDefinition: + required: + - name + - value + type: object + properties: + name: + maxLength: 60 + type: string + description: Name of scheduled search parameter. + value: + maxLength: 300 + type: string + description: Value of scheduled search parameter. + LogSearchQueryParameterSyncDefinitionBase: + required: + - dataType + - name + - value + type: object + properties: + autoComplete: + $ref: '#/components/schemas/AutoCompleteDefinition' + name: + maxLength: 50 + pattern: ^[a-zA-Z0-9_]+$ + type: string + description: The name of the parameter. + example: sourceCategory + x-pattern-message: Name must be between 1 and 50 Characters. Can only consist alphanumeric and underscore characters. + description: + maxLength: 256 + pattern: ^[a-zA-Z0-9@ \-_\.]+$ + type: string + description: A description of the parameter. + example: source category for the string + x-pattern-message: Description must be between 1 and 256 Characters. Can only consist alphanumeric, @, underscore and dash characters. + dataType: + pattern: ^(NUMBER|STRING|ANY|KEYWORD)$ + type: string + description: |- + The data type of the parameter. Supported values are: + 1. `NUMBER` + 2. `STRING` + 3. `ANY` + 4. `KEYWORD` + example: STRING + value: + maxLength: 256 + type: string + description: A value for the parameter. Should be compatible with the type set in dataType field. + example: apache + LogSearchQueryEstimationBaseDefinition: + required: + - queryString + - timeRange + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + description: Base definition of the log search with query and timerange (without runByReceiptTime). + AutoCompleteDefinition: + required: + - type + type: object + properties: + type: + type: string + description: The autocomplete parameter type. + example: SKIP_AUTOCOMPLETE + autoCompleteKey: + type: string + description: The autocomplete key to be used to fetch autocomplete values. + example: Ephemeral-3644138589235809747-1583470806220-parameter + autoCompleteValues: + type: array + description: The array of label-value pairs for autocomplete. + items: + $ref: '#/components/schemas/AutoCompleteValueSyncDefinition' + lookupMetaData: + $ref: '#/components/schemas/AutoCompleteLookupMetaData' + AutoCompleteValueSyncDefinition: + required: + - label + - value + type: object + properties: + label: + type: string + description: The label of the autocomplete value. + value: + type: string + description: The value of the autocomplete value. + AutoCompleteLookupMetaData: + type: object + properties: + fileName: + type: string + description: The lookup file name to use as a source for autocomplete values. + example: users.csv + valueColumn: + type: string + description: The column from the lookup file to use as the value. + example: user_id + labelColumn: + type: string + description: The column from the lookup file to use as the label. + example: user_name + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' diff --git a/provider-dev/source/logs_data_forwarding.yaml b/provider-dev/source/logs_data_forwarding.yaml new file mode 100644 index 0000000..7037df7 --- /dev/null +++ b/provider-dev/source/logs_data_forwarding.yaml @@ -0,0 +1,762 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Logs Data Forwarding API + description: Log data forwarding destinations (AWS S3) and forwarding rules per partition. + version: 1.0.0 +paths: + /v1/logsDataForwarding/destinations: + get: + tags: + - logsDataForwardingManagement + summary: Get Amazon S3 data forwarding destinations. + description: Get a list of all Amazon S3 data forwarding destinations. + operationId: getDataForwardingBuckets + parameters: + - name: limit + in: query + description: Limit the number of data forwarding destinations returned in the response. The number of data forwarding destinations returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: List of all S3 data forwarding destinations. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDataForwardingDestinations' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - logsDataForwardingManagement + summary: Create an S3 data forwarding destination. + description: Create a new Amazon S3 data forwarding destination. + operationId: createDataForwardingBucket + parameters: [] + requestBody: + description: Parameters to create new S3 data forwarding destination. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateBucketDefinition' + required: true + responses: + '200': + description: The new data forwarding destination has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/BucketDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logsDataForwarding/destinations/{id}: + get: + tags: + - logsDataForwardingManagement + summary: Get an S3 data forwarding destination. + description: Get an S3 data forwarding destination by the given identifier. + operationId: getDataForwardingDestination + parameters: + - name: id + in: path + description: Identifier of the S3 data forwarding destination to return. + required: true + schema: + type: string + example: 1 + responses: + '200': + description: Data forwarding destination object requested. + content: + application/json: + schema: + $ref: '#/components/schemas/BucketDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - logsDataForwardingManagement + summary: Update an S3 data forwarding destination. + description: Update an S3 data forwarding destination by the given identifier. + operationId: UpdateDataForwardingBucket + parameters: + - name: id + in: path + description: Identifier of the data forwarding destination to update. + required: true + schema: + type: string + example: 1 + requestBody: + description: Object with the updated parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateBucketDefinition' + required: true + responses: + '200': + description: The data forwarding destination has been updated. + content: + application/json: + schema: + $ref: '#/components/schemas/BucketDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - logsDataForwardingManagement + summary: Delete an S3 data forwarding destination. + description: Delete an existing Amazon S3 data forwarding destination with the given identifier. + operationId: deleteDataForwardingBucket + parameters: + - name: id + in: path + description: Identifier of the data forwarding destination to delete. + required: true + schema: + type: string + example: 1 + responses: + '204': + description: The data forwarding destination has been deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logsDataForwarding/rules: + get: + tags: + - logsDataForwardingManagement + summary: Get all S3 data forwarding rules. + description: Get a list of all S3 data forwarding rules. + operationId: getRulesAndBuckets + parameters: + - name: limit + in: query + description: Limit the number of data forwarding rules returned in the response. The number of data forwarding rules returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: List of all S3 data forwarding rules. + content: + application/json: + schema: + $ref: '#/components/schemas/GetRulesAndBucketsResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - logsDataForwardingManagement + summary: Create an S3 data forwarding rule. + description: Create a data forwarding rule to send data from a Partition or Scheduled View to an S3 bucket. + operationId: createDataForwardingRule + parameters: [] + requestBody: + description: Parameters to create the new S3 data forwarding rule. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDataForwardingRule' + required: true + responses: + '200': + description: The data forwarding rule was created. + content: + application/json: + schema: + $ref: '#/components/schemas/DataForwardingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logsDataForwarding/rules/{indexId}: + get: + tags: + - logsDataForwardingManagement + summary: Get an S3 data forwarding rule by its index. + description: Get the details of an S3 data forwarding rule by its Partition or Scheduled View identifier. + operationId: getDataForwardingRule + parameters: + - name: indexId + in: path + description: The `id` of the Partition or Scheduled View. + required: true + schema: + type: string + example: 1 + responses: + '200': + description: Data forwarding rule that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/RuleAndBucketDetail' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - logsDataForwardingManagement + summary: Update an S3 data forwarding rule by its index. + description: Update an S3 data forwarding rule by its Partition or Scheduled View identifier. + operationId: updateDataForwardingRule + parameters: + - name: indexId + in: path + description: The `id` of the Partition or Scheduled View with the data forwarding rule to update. + required: true + schema: + type: string + example: 1 + requestBody: + description: Parameters of an S3 data forwarding rule. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateDataForwardingRule' + required: true + responses: + '200': + description: The data forwarding rule was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/DataForwardingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - logsDataForwardingManagement + summary: Delete an S3 data forwarding rule by its index. + description: Delete an S3 data forwarding rule by its Partition or Scheduled View identifier. + operationId: deleteDataForwardingRule + parameters: + - name: indexId + in: path + description: The `id` of the Partition or Scheduled View with the data forwarding rule to delete. + required: true + schema: + type: string + example: 1 + responses: + '204': + description: The S3 data forwarding rule was deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + GetDataForwardingDestinations: + type: object + properties: + nextToken: + type: string + description: Next continuation token. + example: VEZuRU4veXF2UWFCUURYSDNQUzJxWlpRRUsvTlBieXA + data: + type: array + description: List of data forwarding destinations. + items: + $ref: '#/components/schemas/BucketDefinition' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreateBucketDefinition: + type: object + required: + - authenticationMode + - bucketName + - destinationName + properties: + destinationName: + type: string + description: Name of the S3 data forwarding destination. + example: df-destination + description: + type: string + description: Description of the S3 data forwarding destination. + authenticationMode: + type: string + description: 'AWS IAM authentication method used for access. Possible values are: 1. `AccessKey` 2. `RoleBased`' + example: RoleBased + accessKeyId: + type: string + description: The AWS Access ID to access the S3 bucket. + example: accessKeyId + secretAccessKey: + type: string + description: The AWS Secret Key to access the S3 bucket. + example: secretAccessKey + roleArn: + type: string + description: The AWS Role ARN to access the S3 bucket. + example: roleArn + region: + type: string + description: The region where the S3 bucket is located. + example: us-east-1 + encrypted: + type: boolean + description: Enable S3 server-side encryption. + enabled: + type: boolean + description: True if the destination is Active. + example: true + bucketName: + pattern: (?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-.]{1,61}[a-z0-9]$ + type: string + description: The name of the Amazon S3 bucket. + example: df-bucket + x-pattern-message: Must be a valid AWS S3 Bucket name. + BucketDefinition: + type: object + required: + - authenticationMode + - bucketName + - destinationName + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + destinationName: + type: string + description: Name of the S3 data forwarding destination. + example: df-destination + description: + type: string + description: Description of the S3 data forwarding destination. + authenticationMode: + type: string + description: 'AWS IAM authentication method used for access. Possible values are: 1. `AccessKey` 2. `RoleBased`' + example: RoleBased + accessKeyId: + type: string + description: The AWS Access ID to access the S3 bucket. + example: accessKeyId + secretAccessKey: + type: string + description: The AWS Secret Key to access the S3 bucket. + example: secretAccessKey + roleArn: + type: string + description: The AWS Role ARN to access the S3 bucket. + example: roleArn + region: + type: string + description: The region where the S3 bucket is located. + example: us-east-1 + encrypted: + type: boolean + description: Enable S3 server-side encryption. + enabled: + type: boolean + description: True if the destination is Active. + example: true + bucketName: + pattern: (?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-.]{1,61}[a-z0-9]$ + type: string + description: The name of the Amazon S3 bucket. + example: df-bucket + x-pattern-message: Must be a valid AWS S3 Bucket name. + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: The unique identifier of the data forwarding destination. + example: '1' + invalidatedBySystem: + type: boolean + description: True if invalidated by the system. + UpdateBucketDefinition: + required: + - authenticationMode + type: object + properties: + destinationName: + type: string + description: Name of the S3 data forwarding destination. + example: df-destination + description: + type: string + description: Description of the S3 data forwarding destination. + authenticationMode: + type: string + description: 'AWS IAM authentication method used for access. Possible values are: 1. `AccessKey` 2. `RoleBased`' + example: RoleBased + accessKeyId: + type: string + description: The AWS Access ID to access the S3 bucket. + example: accessKeyId + secretAccessKey: + type: string + description: The AWS Secret Key to access the S3 bucket. + example: secretAccessKey + roleArn: + type: string + description: The AWS Role ARN to access the S3 bucket. + example: roleArn + region: + type: string + description: The region where the S3 bucket is located. + example: us-east-1 + encrypted: + type: boolean + description: Enable S3 server-side encryption. + enabled: + type: boolean + description: True if the destination is Active. + example: true + GetRulesAndBucketsResult: + type: object + properties: + data: + type: array + description: List of S3 data forwarding rules. + items: + $ref: '#/components/schemas/RuleAndBucketDetail' + nextToken: + type: string + description: Next continuation token. + example: VEZuRU4veXF2UWFCUURYSDNQUzJxWlpRRUsvTlBieXA + CreateDataForwardingRule: + required: + - destinationId + - indexId + type: object + properties: + indexId: + type: string + description: The `id` of the Partition or Scheduled View the rule applies to. + example: '1' + destinationId: + type: string + description: The data forwarding destination id. + example: '1' + enabled: + type: boolean + description: True when the data forwarding rule is enabled. + example: true + fileFormat: + type: string + description: Specify the path prefix to a directory in the S3 bucket and how to format the file name. + example: '{index}_{day}_{hour}_{minute}_{second}' + payloadSchema: + pattern: ^(builtInFields|allFields|raw)$ + type: string + description: Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. + example: builtInFields + x-pattern-message: 'should be one of the following: ''builtInFields'', ''allFields'' or ''raw''' + format: + pattern: ^(csv|json|text)$ + type: string + description: Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. + example: csv + x-pattern-message: 'should be one of the following: ''csv'', ''json'' or ''text''' + DataForwardingRule: + required: + - destinationId + - indexId + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + indexId: + type: string + description: The `id` of the Partition or Scheduled View the rule applies to. + example: '1' + destinationId: + type: string + description: The data forwarding destination id. + example: '1' + enabled: + type: boolean + description: True when the data forwarding rule is enabled. + example: true + fileFormat: + type: string + description: Specify the path prefix to a directory in the S3 bucket and how to format the file name. + example: '{index}_{day}_{hour}_{minute}_{second}' + payloadSchema: + pattern: ^(builtInFields|allFields|raw)$ + type: string + description: Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. + example: builtInFields + x-pattern-message: 'should be one of the following: ''builtInFields'', ''allFields'' or ''raw''' + format: + pattern: ^(csv|json|text)$ + type: string + description: Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. + example: csv + x-pattern-message: 'should be one of the following: ''csv'', ''json'' or ''text''' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: The unique identifier of the data forwarding rule. + example: '1' + RuleAndBucketDetail: + required: + - destinationId + - indexId + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + indexId: + type: string + description: The `id` of the Partition or Scheduled View the rule applies to. + example: '1' + destinationId: + type: string + description: The data forwarding destination id. + example: '1' + enabled: + type: boolean + description: True when the data forwarding rule is enabled. + example: true + fileFormat: + type: string + description: Specify the path prefix to a directory in the S3 bucket and how to format the file name. + example: '{index}_{day}_{hour}_{minute}_{second}' + payloadSchema: + pattern: ^(builtInFields|allFields|raw)$ + type: string + description: Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. + example: builtInFields + x-pattern-message: 'should be one of the following: ''builtInFields'', ''allFields'' or ''raw''' + format: + pattern: ^(csv|json|text)$ + type: string + description: Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. + example: csv + x-pattern-message: 'should be one of the following: ''csv'', ''json'' or ''text''' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: The unique identifier of the data forwarding rule. + example: '1' + bucket: + $ref: '#/components/schemas/logs-data-forwarding-rule-management' + UpdateDataForwardingRule: + type: object + properties: + destinationId: + type: string + description: Data forwarding destination id. + example: '1' + enabled: + type: boolean + description: True when the data forwarding rule is enabled. + example: true + fileFormat: + type: string + description: Specify the path prefix to a directory in the S3 bucket and how to format the file name. + example: '{index}_{day}_{hour}_{minute}_{second}' + payloadSchema: + pattern: ^(builtInFields|allFields|raw)$ + type: string + description: Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. + example: builtInFields + x-pattern-message: 'should be one of the following: ''builtInFields'', ''allFields'' or ''raw''' + format: + pattern: ^(csv|json|text)$ + type: string + description: Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. + example: csv + x-pattern-message: 'should be one of the following: ''csv'', ''json'' or ''text''' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + CreateBucketDefinitionItems: + required: + - authenticationMode + - bucketName + - destinationName + type: object + properties: + bucketName: + pattern: (?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-.]{1,61}[a-z0-9]$ + type: string + description: The name of the Amazon S3 bucket. + example: df-bucket + x-pattern-message: Must be a valid AWS S3 Bucket name. + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + logs-data-forwarding-rule-management: + type: string + description: (opaque JSON object) diff --git a/provider-dev/source/lookup_tables.yaml b/provider-dev/source/lookup_tables.yaml new file mode 100644 index 0000000..fa853e2 --- /dev/null +++ b/provider-dev/source/lookup_tables.yaml @@ -0,0 +1,740 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Lookup Tables API + description: Lookup tables, their rows, file uploads and the asynchronous lookup jobs. + version: 1.0.0 +paths: + /v1/lookupTables: + post: + tags: + - lookupManagement + summary: Create a lookup table. + description: |- + Create a new lookup table by providing a schema and specifying its configuration. Providing parentFolderId + is mandatory. Use the getItemByPath endpoint to get content id of a path. + Please check Content management API and Folder management API for all available options. + operationId: createTable + parameters: [] + requestBody: + description: The schema and configuration for the lookup table. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupTableDefinition' + required: true + responses: + '200': + description: Lookup table created successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupTable' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/lookupTables/{id}: + get: + tags: + - lookupManagement + summary: Get a lookup table. + description: Get a lookup table for the given identifier. + operationId: lookupTableById + parameters: + - name: id + in: path + description: Identifier of the lookup table. + required: true + schema: + type: string + example: 0000000001C41EE4 + responses: + '200': + description: Definition of the lookup table. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupTable' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - lookupManagement + summary: Edit a lookup table. + description: Edit the lookup table data. All the fields are mandatory in the request. + operationId: updateTable + parameters: + - name: id + in: path + description: Identifier of the lookup table. + required: true + schema: + type: string + example: 0000000001C41EE4 + requestBody: + description: The configuration changes for the lookup table. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupUpdateDefinition' + required: true + responses: + '200': + description: Configuration updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupTable' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - lookupManagement + summary: Delete a lookup table. + description: Delete a lookup table completely.
**Warning:** `This operation cannot be undone`. + operationId: deleteTable + parameters: + - name: id + in: path + description: Identifier of the lookup table. + required: true + schema: + type: string + example: 0000000001C41EE4 + responses: + '204': + description: Deletion successful. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/lookupTables/{id}/upload: + post: + tags: + - lookupManagement + summary: Upload a CSV file. + description: Create a request to populate a lookup table with a CSV file. + operationId: uploadFile + parameters: + - name: id + in: path + description: Identifier of the lookup table to populate. + required: true + schema: + type: string + example: 0000000001C41EE4 + - name: merge + in: query + description: This indicates whether the file contents will be merged with existing data in the lookup table or not. If this is true then data with the same primary keys will be updated while the rest of the rows will be appended. By default, merge is false. The response includes a request identifier that you need to use in the Request Status API to track the status of the upload request. + schema: + type: boolean + example: true + default: false + - name: fileEncoding + in: query + description: File encoding of file being uploaded. + schema: + type: string + example: UTF-16 + default: UTF-8 + requestBody: + content: + multipart/form-data: + schema: + required: + - file + type: object + properties: + file: + type: string + description: |- + The CSV file to upload. + - The size limit for the CSV file is 100MB. + - Use Unix format, with newlines ("\n") separating rows. + - The first row should contain headers that match the lookup table schema. Matching is + case-insensitive. + format: binary + required: true + responses: + '200': + description: The upload request was accepted. Use the provided token in a status request to track the status of the upload. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupRequestToken' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/lookupTables/jobs/{jobId}/status: + get: + tags: + - lookupManagement + summary: Get the status of an async job. + description: Retrieve the status of a previously made request. If the request was successful, the status of the response object will be `Success`. + operationId: requestJobStatus + parameters: + - name: jobId + in: path + description: An identifier returned in response to an asynchronous request. + required: true + schema: + type: string + example: 0000000001C41AA3 + responses: + '200': + description: The status of async job with given identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupAsyncJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/lookupTables/{id}/truncate: + post: + tags: + - lookupManagement + summary: Empty a lookup table. + description: Delete all data from a lookup table. + operationId: truncateTable + parameters: + - name: id + in: path + description: Identifier of the table to clear. + required: true + schema: + type: string + example: 0000000001C41EE4 + responses: + '200': + description: The delete data request was accepted. Use the provided token in a status request to track the status of the delete. + content: + application/json: + schema: + $ref: '#/components/schemas/LookupRequestToken' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/lookupTables/{id}/row: + put: + tags: + - lookupManagement + summary: Insert or Update a lookup table row. + description: Insert or update a row of a lookup table with the given identifier. A new row is inserted if the primary key does not exist already, otherwise the existing row with the specified primary key is updated. All the fields of the lookup table are required and will be updated to the given values. In case a field is not specified then it will be assumed to be set to null. If the table size exceeds the maximum limit of 100MB then based on the size limit action of the table the update will be processed or discarded. + operationId: updateTableRow + parameters: + - name: id + in: path + description: Identifier of the lookup table. + required: true + schema: + type: string + example: 0000000001C41EE4 + requestBody: + description: Lookup table row update definition. + content: + application/json: + schema: + $ref: '#/components/schemas/RowUpdateDefinition' + required: true + responses: + '204': + description: Row updated successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/lookupTables/{id}/deleteTableRow: + put: + tags: + - lookupManagement + summary: Delete a lookup table row. + description: Delete a row from lookup table by providing the row's primary keys' values. The complete set of primary key fields of the lookup table should be provided. + operationId: deleteTableRow + parameters: + - name: id + in: path + description: Identifier of the lookup table. + required: true + schema: + type: string + example: 0000000001C41EE4 + requestBody: + description: Lookup table row delete definition. + content: + application/json: + schema: + $ref: '#/components/schemas/RowDeleteDefinition' + required: true + responses: + '204': + description: Row deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + LookupTableDefinition: + required: + - name + - parentFolderId + - description + - fields + - primaryKeys + type: object + description: Definition of the lookup table. + properties: + description: + maxLength: 1000 + type: string + description: The description of the lookup table. + example: This is a sample lookup table description. + fields: + minItems: 1 + type: array + description: The list of fields in the lookup table. + items: + $ref: '#/components/schemas/LookupTableField' + primaryKeys: + minItems: 1 + uniqueItems: true + type: array + description: The names of the fields that make up the primary key for the lookup table. These will be a subset of the fields that the table will contain. + example: + - FieldName1 + items: + type: string + ttl: + maximum: 525600 + minimum: 0 + type: integer + description: A time to live for each entry in the lookup table (in minutes). 365 days is the maximum time to live for each entry that you can specify. Setting it to 0 means that the records will not expire automatically. + format: int32 + example: 100 + default: 0 + sizeLimitAction: + pattern: ^(StopIncomingMessages|DeleteOldData)$ + type: string + description: The action that needs to be taken when the size limit is reached for the table. The possible values can be `StopIncomingMessages` or `DeleteOldData`. DeleteOldData will start deleting old data once size limit is reached whereas StopIncomingMessages will discard all the updates made to the lookup table once size limit is reached. + example: DeleteOldData + default: StopIncomingMessages + x-pattern-message: must be either `StopIncomingMessages` or `DeleteOldData` + name: + maxLength: 255 + type: string + description: The name of the lookup table. + example: SampleLookupTable + parentFolderId: + type: string + description: The parent-folder-path identifier of the lookup table in the Library. + example: 0000000001C41EE4 + LookupTable: + required: + - id + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - name + - parentFolderId + - description + - fields + - primaryKeys + type: object + description: Lookup table definition and metadata. + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + description: + maxLength: 1000 + type: string + description: The description of the lookup table. + example: This is a sample lookup table description. + fields: + minItems: 1 + type: array + description: The list of fields in the lookup table. + items: + $ref: '#/components/schemas/LookupTableField' + primaryKeys: + minItems: 1 + uniqueItems: true + type: array + description: The names of the fields that make up the primary key for the lookup table. These will be a subset of the fields that the table will contain. + example: + - FieldName1 + items: + type: string + ttl: + maximum: 525600 + minimum: 0 + type: integer + description: A time to live for each entry in the lookup table (in minutes). 365 days is the maximum time to live for each entry that you can specify. Setting it to 0 means that the records will not expire automatically. + format: int32 + example: 100 + default: 0 + sizeLimitAction: + pattern: ^(StopIncomingMessages|DeleteOldData)$ + type: string + description: The action that needs to be taken when the size limit is reached for the table. The possible values can be `StopIncomingMessages` or `DeleteOldData`. DeleteOldData will start deleting old data once size limit is reached whereas StopIncomingMessages will discard all the updates made to the lookup table once size limit is reached. + example: DeleteOldData + default: StopIncomingMessages + x-pattern-message: must be either `StopIncomingMessages` or `DeleteOldData` + name: + maxLength: 255 + type: string + description: The name of the lookup table. + example: SampleLookupTable + parentFolderId: + type: string + description: The parent-folder-path identifier of the lookup table in the Library. + example: 0000000001C41EE4 + id: + type: string + description: Identifier of the lookup table as a content item. + example: 0000000001C41EE4 + contentPath: + type: string + description: 'Address/path of the parent folder of this lookup table in content library. For example, a lookup table existing in the personal/lookupTable folder for user johndoe would be: /Library/Users/johndoe@acme.com/lookupTable' + example: /Library/Users/johndoe@acme.com/lookupTable + size: + type: integer + description: The current size of the lookup table in bytes + format: int64 + example: 100 + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + LookupUpdateDefinition: + required: + - description + - ttl + type: object + properties: + ttl: + maximum: 525600 + minimum: 0 + type: integer + description: A time to live for each entry in the lookup table (in minutes). 0 is a special value. A TTL of 0 implies entry will never be deleted from the table. + format: int32 + example: 100 + default: 0 + description: + maxLength: 1000 + type: string + description: The description of the lookup table. The description cannot be blank. + example: This is a sample lookup table description. + sizeLimitAction: + type: string + description: The action that needs to be taken when the size limit is reached for the table. The possible values can be `StopIncomingMessages` or `DeleteOldData`. DeleteOldData will starting deleting old data once size limit is reached whereas StopIncomingMessages will discard all the updates made to the lookup table once size limit is reached. + example: DeleteOldData + default: StopIncomingMessages + description: The updated lookup table parameters. + LookupRequestToken: + required: + - id + type: object + properties: + id: + type: string + description: The identifier used to track the request. + example: 0000000001C41EF2 + description: Allows you to track the status of an upload or export request. + LookupAsyncJobStatus: + required: + - createdAt + - eventType + - jobId + - lookupContentId + - lookupContentPath + - lookupName + - modifiedAt + - status + - userId + type: object + properties: + jobId: + type: string + description: An identifier returned in response to an asynchronous request. + example: 0000000001C41EF2 + status: + type: string + description: Whether or not the request is pending (`Pending`), in progress (`InProgress`), has completed successfully (`Success`), has completed partially with warnings (`PartialSuccess`) or has completed with an error (`Failed`). + statusMessages: + type: array + description: Additional status messages generated if any if the status is `Success`. + items: + type: string + errors: + type: array + description: More information about the failures, if the status is `Failed`. + items: + $ref: '#/components/schemas/ErrorDescription' + warnings: + type: array + description: More information about the warnings, if the status is `PartialSuccess`. + items: + $ref: '#/components/schemas/warningDescription' + lookupContentId: + type: string + description: Content id of lookup table on which this operation was performed. + example: 0000000001C41EE4 + lookupName: + type: string + description: Name of lookup table on which this operation was performed. + example: sampleLookup + lookupContentPath: + type: string + description: Content path of lookup table on which this operation was performed. + example: /Library/Users/xyz@demo.com/sampleLookup + requestType: + type: string + description: |- + Type of asynchronous request made: + - `BulkMerge` + - `BulkReplace` + - `Truncate` + example: BulkMerge + userId: + type: string + description: User id of user who initiated this operation. + example: 0000000006743FDD + createdAt: + type: string + description: Creation time of this job in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedAt: + type: string + description: Timestamp in UTC when status was last updated. + format: date-time + example: '2018-10-16T09:10:00.000Z' + description: Lookup table async job status. + RowUpdateDefinition: + required: + - row + type: object + properties: + row: + maxItems: 1000 + type: array + description: A list of all the field identifiers and their corresponding values. + items: + $ref: '#/components/schemas/TableRow' + description: Lookup table data to be uploaded. + RowDeleteDefinition: + required: + - primaryKey + type: object + properties: + primaryKey: + maxItems: 1000 + type: array + description: A list of all the primary key field identifiers and their corresponding values which defines the row to delete. + items: + $ref: '#/components/schemas/TableRow' + description: Lookup table primary key of the row to be deleted. + ExportableLookupTableInfo: + required: + - description + - fields + - primaryKeys + type: object + properties: + description: + maxLength: 1000 + type: string + description: The description of the lookup table. + example: This is a sample lookup table description. + fields: + minItems: 1 + type: array + description: The list of fields in the lookup table. + items: + $ref: '#/components/schemas/LookupTableField' + primaryKeys: + minItems: 1 + uniqueItems: true + type: array + description: The names of the fields that make up the primary key for the lookup table. These will be a subset of the fields that the table will contain. + example: + - FieldName1 + items: + type: string + ttl: + maximum: 525600 + minimum: 0 + type: integer + description: A time to live for each entry in the lookup table (in minutes). 365 days is the maximum time to live for each entry that you can specify. Setting it to 0 means that the records will not expire automatically. + format: int32 + example: 100 + default: 0 + sizeLimitAction: + pattern: ^(StopIncomingMessages|DeleteOldData)$ + type: string + description: The action that needs to be taken when the size limit is reached for the table. The possible values can be `StopIncomingMessages` or `DeleteOldData`. DeleteOldData will start deleting old data once size limit is reached whereas StopIncomingMessages will discard all the updates made to the lookup table once size limit is reached. + example: DeleteOldData + default: StopIncomingMessages + x-pattern-message: must be either `StopIncomingMessages` or `DeleteOldData` + description: The lookup table definition independent of its location in the Library and name. + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + warningDescription: + required: + - message + type: object + properties: + message: + type: string + description: Description of the warning. + example: 60 rows were dropped. + cause: + type: string + description: An optional cause of this warning. + example: Primary key values were duplicate. + description: Warning description + TableRow: + required: + - columnName + - columnValue + type: object + properties: + columnName: + type: string + description: Name of the column of the table. + example: user_id + columnValue: + type: string + description: Value of the specified column. + example: user1 + description: Lookup table row column and column value. + LookupTableField: + required: + - fieldName + - fieldType + type: object + properties: + fieldName: + type: string + description: The name of the field. + example: FieldName1 + fieldType: + pattern: ^(boolean|int|long|double|string)$ + type: string + description: |- + The data type of the field. Supported types: + - `boolean` + - `int` + - `long` + - `double` + - `string` + example: boolean + x-pattern-message: 'must be one of the following: `boolean`, `int`, `long`, `double`, `string`' + description: The definition of the field. diff --git a/provider-dev/source/macros.yaml b/provider-dev/source/macros.yaml new file mode 100644 index 0000000..0fb0ad3 --- /dev/null +++ b/provider-dev/source/macros.yaml @@ -0,0 +1,372 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Macros API + description: Search macros. + version: 1.0.0 +paths: + /v2/macros: + get: + tags: + - macroManagement + summary: List all macros. + description: List all viewable macros for the customer. + operationId: listMacros + parameters: + - name: limit + in: query + description: Limit the number of macro returned in the response. The number of macros returned may be less than the `limit`. Default 50. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + responses: + '200': + description: Paginated list of viewable macros for the customer. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedMacros' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - macroManagement + summary: Create a new macro. + description: Creates a new macro. + operationId: createMacro + requestBody: + description: Information to create the new macro. + content: + application/json: + schema: + $ref: '#/components/schemas/MacroRequest' + required: true + responses: + '200': + description: The macro has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/Macro' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/macros/{id}: + get: + tags: + - macroManagement + summary: Get a macro. + description: Get a macro by the given identifier. + operationId: getMacro + parameters: + - name: id + in: path + description: UUID of the macro. + required: true + schema: + type: string + responses: + '200': + description: Macro object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/Macro' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - macroManagement + summary: Edit a macro. + description: Edits an existing macro by id. Macro name is immutable. + operationId: editMacro + parameters: + - name: id + in: path + description: UUID of the macro to edit. + required: true + schema: + type: string + requestBody: + description: Macro fields to update. Macro name is immutable. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseMacroRequest' + required: true + responses: + '200': + description: The edited macro. + content: + application/json: + schema: + $ref: '#/components/schemas/Macro' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - macroManagement + summary: Delete a macro. + description: Delete a macro by id. + operationId: deleteMacro + parameters: + - name: id + in: path + description: Id of macro to delete. + required: true + schema: + type: string + responses: + '204': + description: Macro was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + PaginatedMacros: + required: + - macros + type: object + properties: + data: + type: array + description: List of macros. + items: + $ref: '#/components/schemas/Macro' + next: + type: string + description: Next continuation token. `token` is set to null when no more pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + MacroRequest: + required: + - definition + - name + type: object + properties: + description: + maxLength: 4000 + type: string + description: Description of the macro. + example: Macro for geo lookup. + definition: + minLength: 1 + type: string + description: The definition of the macro. Use a valid Sumo Log Search expression. + example: | + lookup latitude, longitude from geo://location on ip = {{ip_field}} | count by latitude, longitude | sort _count" + enabled: + type: boolean + description: If the macro is enabled or not (default True) + default: true + arguments: + type: array + description: Arguments used in the macro. + items: + $ref: '#/components/schemas/Argument' + argumentValidations: + type: array + description: Validation expressions for the arguments. + items: + $ref: '#/components/schemas/ArgumentValidation' + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the macro. + example: MacroGeoLookup + macroCreationSuggestionId: + type: string + description: Identifier if the suggestion comes from an macro creation suggestion. This id is used to track macro creation suggestions, and to delete the suggestion once the macro is created. + example: ABC12 + Macro: + required: + - definition + - name + - createdAt + - createdBy + - id + type: object + properties: + description: + maxLength: 4000 + type: string + description: Description of the macro. + example: Macro for geo lookup. + definition: + minLength: 1 + type: string + description: The definition of the macro. Use a valid Sumo Log Search expression. + example: | + lookup latitude, longitude from geo://location on ip = {{ip_field}} | count by latitude, longitude | sort _count" + enabled: + type: boolean + description: If the macro is enabled or not (default True) + default: true + arguments: + type: array + description: Arguments used in the macro. + items: + $ref: '#/components/schemas/Argument' + argumentValidations: + type: array + description: Validation expressions for the arguments. + items: + $ref: '#/components/schemas/ArgumentValidation' + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the macro. + example: MacroGeoLookup + macroCreationSuggestionId: + type: string + description: Identifier if the suggestion comes from an macro creation suggestion. This id is used to track macro creation suggestions, and to delete the suggestion once the macro is created. + example: ABC12 + id: + type: string + description: | + Unique identifier for the macro. This id is used to get detailed information about the macro, such as name, definition, arguments and argument validations. + example: C03E086C137F38B4 + createdAt: + type: string + description: Creation timestamp of the macro in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2024-10-01T09:10:00.000Z' + createdBy: + type: string + description: The identifier of the user who created the macro. + example: 0000000006743FDD + BaseMacroRequest: + required: + - definition + type: object + properties: + description: + maxLength: 4000 + type: string + description: Description of the macro. + example: Macro for geo lookup. + definition: + minLength: 1 + type: string + description: The definition of the macro. Use a valid Sumo Log Search expression. + example: | + lookup latitude, longitude from geo://location on ip = {{ip_field}} | count by latitude, longitude | sort _count" + enabled: + type: boolean + description: If the macro is enabled or not (default True) + default: true + arguments: + type: array + description: Arguments used in the macro. + items: + $ref: '#/components/schemas/Argument' + argumentValidations: + type: array + description: Validation expressions for the arguments. + items: + $ref: '#/components/schemas/ArgumentValidation' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + Argument: + required: + - name + type: object + properties: + name: + type: string + description: Argument name for the macro. + example: ip_field + type: + pattern: ^(String|Any|Number|Keyword)$ + type: string + description: The type of the macro. + example: String + default: String + x-pattern-message: Must be `String`, `Any`, `Number or `Keyword`. + ArgumentValidation: + required: + - errorMessage + - evalExpression + type: object + properties: + evalExpression: + type: string + description: The expression to validate a macro argument. + example: isValidIp(ip_field) + errorMessage: + type: string + description: Error message to be shown if the macro argument validation fails. + example: You need to enter a field name which is a valid ip. diff --git a/provider-dev/source/metrics_queries.yaml b/provider-dev/source/metrics_queries.yaml new file mode 100644 index 0000000..45fb736 --- /dev/null +++ b/provider-dev/source/metrics_queries.yaml @@ -0,0 +1,305 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Metrics Queries API + description: Ad hoc metrics queries. + version: 1.0.0 +paths: + /v1/metricsQueries: + post: + tags: + - metricsQuery + summary: Run metrics queries + description: Execute multiple metrics queries. Limits of this API are described in [Metrics Query Error Messages](https://help.sumologic.com/docs/metrics/metrics-queries/metric-query-error-messages/). For general information about Metrics Queries see [Metrics Queries](https://help.sumologic.com/docs/metrics/metrics-queries/). + operationId: runMetricsQueries + parameters: [] + requestBody: + description: The parameters for the metrics query. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsQueryRequest' + required: true + responses: + '200': + description: A set of time series grouped by the query. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsQueryResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + MetricsQueryRequest: + required: + - queries + - timeRange + type: object + properties: + queries: + minItems: 1 + type: array + description: A list of metrics queries. + items: + $ref: '#/components/schemas/MetricsQueryRow' + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: A list of metrics queries to run along with the time range for the query. + MetricsQueryResponse: + required: + - errors + - queryResults + type: object + properties: + queryResult: + type: array + description: A list of the time series returned by metric query. + items: + $ref: '#/components/schemas/TimeSeriesRow' + errors: + type: object + description: Errors, warnings, and information logged for the query. + example: + id: AXDUI-DGH5I-TJ045 + errors: + - code: metrics:incomplete_results + message: Incomplete results + required: + - errors + - id + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + MetricsQueryRow: + required: + - query + - rowId + type: object + properties: + rowId: + pattern: '[A-Z]' + type: string + description: Row id for the query row, A to Z letter. + example: A + x-pattern-message: Row id must be one character long and must be an upper case letter between A and Z + query: + maxLength: 3000 + minLength: 3 + type: string + description: |- + A metric query consists of a metric, one or more filters and optionally, one or more [Metrics Operators](https://help.sumologic.com/?cid=10144). Strictly speaking, both filters and operators are optional. + + Most of the [Metrics Operators](https://help.sumologic.com/?cid=10144) are allowed in the query string except `fillmissing`, `outlier`, `quantize` and `timeshift`. + + * `fillmissing`: Not supported in API. + * `outlier`: Not supported in API. + * `quantize`: Only supported through `quantization` param. + * `timeshift`: Only supported through `timeshift` param. + + + In practice, your metric queries will almost always contain filters that narrow the scope of your query. For more information about the query language see [Metrics Queries](https://help.sumologic.com/?cid=1079). + example: metric=CPU_Idle + quantization: + minimum: 1 + type: integer + description: Segregates time series data by time period. This allows you to create aggregated results in buckets of fixed intervals (for example, 5-minute intervals). The value is in milliseconds. + format: int64 + example: 60000 + rollup: + pattern: ^(Count|Min|Max|Sum|Avg|None)$|^$ + type: string + description: We use the term rollup to refer to the aggregation function Sumo Logic uses when quantizing metrics. Can be `Avg`, `Sum`, `Min`, `Max`, `Count` or `None`. + example: Avg + x-pattern-message: Must be `Avg`, `Sum`, `Min`, `Max`, `Count` or `None` + timeshift: + type: integer + description: Shifts the time series from your metrics query by the specified amount of time. This can help when comparing a time series across multiple time periods. Specified as a signed duration in milliseconds. + format: int64 + example: -3600000 + ResolvableTimeRange: + required: + - type + type: object + properties: + type: + type: string + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. + example: + type: BeginBoundedTimeRange + from: + type: RelativeTimeRangeBoundary + relativeTime: '-15m' + discriminator: + propertyName: type + TimeSeriesRow: + required: + - rowId + - timeSeriesList + type: object + properties: + rowId: + type: string + description: Row id for the query row as specified in the request. + example: A + timeSeriesList: + $ref: '#/components/schemas/TimeSeriesList' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + TimeSeriesList: + required: + - timeSeries + type: object + properties: + timeSeries: + type: array + description: A list of timeseries returned by corresponding query. + items: + $ref: '#/components/schemas/TimeSeries' + unit: + type: string + description: Unit of the query. + example: 1/second + timeShiftLabel: + type: string + description: Time shift value if specified in request in human readable format. + example: '-1h' + resultContext: + $ref: '#/components/schemas/MetricsQueryResultContext' + TimeSeries: + required: + - metricDefinition + - points + type: object + properties: + metricDefinition: + $ref: '#/components/schemas/MetricDefinition' + points: + $ref: '#/components/schemas/Points' + MetricsQueryResultContext: + type: object + properties: + quantizationGranularity: + type: integer + description: Quantization granularity. Size of the quantization bucket/quant in milliseconds. + format: int64 + example: 30000 + rollup: + pattern: ^(Avg|Sum|Min|Max|Count|Rate)$|^$ + type: string + description: We use the term rollup to refer to the aggregation function Sumo Logic uses when quantizing metrics. Can be `Avg`, `Sum`, `Min`, `Max`, `Count` or `Rate`. + example: Avg + actualQueryTimeRange: + $ref: '#/components/schemas/Iso8601TimeRange' + MetricDefinition: + type: object + properties: + metric: + type: string + description: Name of the metric returning the timeseries. + example: CPU_Total + dimensions: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Metric dimensions / metadata related to each timeseries. + example: + _sourceHost: us2-alert-1 + _sourceCategory: alert + Points: + required: + - timestamps + - values + type: object + properties: + timestamps: + type: array + description: Array of timestamps of datapoints in milliseconds. + items: + type: integer + format: int64 + example: 1623258710000 + values: + type: array + description: Array of values of datapoints corresponding to timestamp array. + items: + type: number + format: double + example: 1.5 + description: The `values` and `timestamps` are of the same length, and points are sorted by time ascending. + Iso8601TimeRange: + required: + - end + - start + type: object + properties: + start: + type: string + description: Start time in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format + format: date-time + example: '2018-10-16T09:10:00.000Z' + end: + type: string + description: End time in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format + format: date-time + example: '2018-10-16T09:20:00.000Z' + description: | + A simple time range class, where the start and end points are specified in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format diff --git a/provider-dev/source/metrics_searches.yaml b/provider-dev/source/metrics_searches.yaml new file mode 100644 index 0000000..14bdc46 --- /dev/null +++ b/provider-dev/source/metrics_searches.yaml @@ -0,0 +1,969 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Metrics Searches API + description: Saved metrics searches (v1 and v2). + version: 1.0.0 +paths: + /v1/metricsSearches: + post: + tags: + - metricsSearchesManagement + summary: Save a metrics search. + description: Saves a metrics search in the content library. Metrics search consists of one or more queries, a time range, a quantization period and a set of chart properties like line width. + operationId: createMetricsSearch + parameters: [] + requestBody: + description: The definition of the metrics search. + content: + application/json: + schema: + $ref: '#/components/schemas/SaveMetricsSearchRequest' + required: true + responses: + '200': + description: Newly created metrics search. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchInstance' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/metricsSearches/{id}: + get: + tags: + - metricsSearchesManagement + summary: Get a metrics search. + description: Returns a metrics search with the specified identifier. + operationId: getMetricsSearch + parameters: + - name: id + in: path + description: Identifier of the metrics search. + required: true + schema: + type: string + responses: + '200': + description: A metrics search object with metadata. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchInstance' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - metricsSearchesManagement + summary: Updates a metrics search. + description: Updates a metrics search with the specified identifier. Partial updates are not supported, you must provide values for all fields. + operationId: updateMetricsSearch + parameters: + - name: id + in: path + description: Identifier of the metrics search. + required: true + schema: + type: string + requestBody: + description: An updated metrics search definition. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchV1' + required: true + responses: + '200': + description: The metrics saved search that was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchInstance' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - metricsSearchesManagement + summary: Deletes a metrics search. + description: Deletes a metrics search from the content library. + operationId: deleteMetricsSearch + parameters: + - name: id + in: path + description: Identifier of the metrics search. + required: true + schema: + type: string + responses: + '204': + description: The metrics search was successfully deleted. + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/metricsSearches: + get: + tags: + - metricsSearchesManagementV2 + summary: List all metrics search pages. + description: List all metrics search pages under the Personal folder created by the user or under folders viewable by user. + operationId: ListMetricsSearches + parameters: + - name: limit + in: query + description: Limit the number of metric searches returned in the response. The number of metric searches returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + - name: mode + in: query + description: whether to list all viewable metric searches under the folders + required: false + schema: + pattern: ^(createdByUser|allViewableByUser)$ + type: string + example: createdByUser + x-pattern-message: Must be `createdByUser` or `allViewableByUser` + example: createdByUser + responses: + '200': + description: Paginated list of metrics search pages under the Personal folder created by the user or viewable by user. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedMetricsSearches' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - metricsSearchesManagementV2 + summary: Create a new metrics search page. + description: Creates a new metrics search page. + operationId: createMetricsSearches + requestBody: + description: Information to create the new metrics search page. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchRequest' + required: true + responses: + '200': + description: The metrics search page has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/metricsSearches/{id}: + get: + tags: + - metricsSearchesManagementV2 + summary: Get a metrics search page. + description: Get a metrics search page by the given identifier. + operationId: getMetricsSearches + parameters: + - name: id + in: path + description: Unique identifier of the metrics search page to return. + required: true + schema: + type: string + responses: + '200': + description: Metrics search page that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - metricsSearchesManagementV2 + summary: Update a metrics search page. + description: Update a metrics search page by the given identifier. + operationId: updateMetricsSearches + parameters: + - name: id + in: path + description: Unique identifier of the metrics search page to return. + required: true + schema: + type: string + requestBody: + description: Information to update the metrics search page. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchRequest' + required: true + responses: + '200': + description: The metrics search page was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - metricsSearchesManagementV2 + summary: Delete a metrics search page. + description: Delete metrics search page by the given identifier. + operationId: deleteMetricsSearches + parameters: + - name: id + in: path + description: Unique identifier of the metrics search page to delete. + required: true + schema: + type: string + responses: + '204': + description: Metrics search page was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + SaveMetricsSearchRequest: + type: object + description: The definition of the metrics search to save in the content library. + required: + - description + - metricsQueries + - timeRange + - title + - parentId + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()]+$ + type: string + description: Item title in the content library. + example: Short title + description: + maxLength: 8192 + type: string + description: Item description in the content library. + example: Long and detailed description + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + logQuery: + maxLength: 10240 + type: string + description: Log query used to add an overlay to the chart. + example: my_metric | timeslice 1m | count by _timeslice + metricsQueries: + type: array + description: Metrics queries, up to the maximum of six. + items: + $ref: '#/components/schemas/MetricsSearchQuery' + desiredQuantizationInSecs: + minimum: 0 + type: integer + description: Desired quantization in seconds. + format: int32 + example: 60 + default: 0 + properties: + type: string + description: | + Chart properties, like line width, color palette, and the fill missing data method. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ \"key\": \"value\" }' + parentId: + type: string + description: Identifier of a folder to which the metrics search should be added. + example: 000000000000001A + MetricsSearchInstance: + required: + - description + - metricsQueries + - timeRange + - title + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()]+$ + type: string + description: Item title in the content library. + example: Short title + description: + maxLength: 8192 + type: string + description: Item description in the content library. + example: Long and detailed description + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + logQuery: + maxLength: 10240 + type: string + description: Log query used to add an overlay to the chart. + example: my_metric | timeslice 1m | count by _timeslice + metricsQueries: + type: array + description: Metrics queries, up to the maximum of six. + items: + $ref: '#/components/schemas/MetricsSearchQuery' + desiredQuantizationInSecs: + minimum: 0 + type: integer + description: Desired quantization in seconds. + format: int32 + example: 60 + default: 0 + properties: + type: string + description: | + Chart properties, like line width, color palette, and the fill missing data method. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ \"key\": \"value\" }' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Identifier of the metrics search. + example: 000000000000001A + parentId: + type: string + description: Identifier of the parent element in the content library, such as folder. + example: 0000000000007D2B + description: Definition of a metrics search. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + MetricsSearchV1: + required: + - description + - metricsQueries + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()]+$ + type: string + description: Item title in the content library. + example: Short title + description: + maxLength: 8192 + type: string + description: Item description in the content library. + example: Long and detailed description + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + logQuery: + maxLength: 10240 + type: string + description: Log query used to add an overlay to the chart. + example: my_metric | timeslice 1m | count by _timeslice + metricsQueries: + type: array + description: Metrics queries, up to the maximum of six. + items: + $ref: '#/components/schemas/MetricsSearchQuery' + desiredQuantizationInSecs: + minimum: 0 + type: integer + description: Desired quantization in seconds. + format: int32 + example: 60 + default: 0 + properties: + type: string + description: | + Chart properties, like line width, color palette, and the fill missing data method. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ \"key\": \"value\" }' + description: Definition of a metrics search. + PaginatedMetricsSearches: + required: + - metricsSearches + type: object + properties: + metricsSearches: + type: array + description: List of metrics search pages. + items: + $ref: '#/components/schemas/MetricsSearchResponse' + next: + type: string + description: Next continuation token. `token` is set to null when no more pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + MetricsSearchRequest: + required: + - queries + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^\s*\S.*$ + type: string + description: Title of the metrics search page. + x-pattern-message: must contain at least 1 non-whitespace character + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: + type: string + description: Description of the metrics search page. + queries: + type: array + description: Queries of the metrics search page. + items: + $ref: '#/components/schemas/Query' + visualSettings: + type: string + description: Visual settings of the metrics search page. + folderId: + type: string + description: | + The identifier of the folder to save the metrics search in. By default it is saved in your personal folder. + example: 000000000C1C17C6 + MetricsSearchResponse: + required: + - queries + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^\s*\S.*$ + type: string + description: Title of the metrics search page. + x-pattern-message: must contain at least 1 non-whitespace character + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: + type: string + description: Description of the metrics search page. + queries: + type: array + description: Queries of the metrics search page. + items: + $ref: '#/components/schemas/Query' + visualSettings: + type: string + description: Visual settings of the metrics search page. + folderId: + type: string + description: | + The identifier of the folder to save the metrics search in. By default it is saved in your personal folder. + example: 000000000C1C17C6 + id: + type: string + description: Unique identifier for the metrics search page. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ResolvableTimeRange: + required: + - type + type: object + properties: + type: + type: string + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. + example: + type: BeginBoundedTimeRange + from: + type: RelativeTimeRangeBoundary + relativeTime: '-15m' + discriminator: + propertyName: type + MetricsSearchQuery: + required: + - query + - rowId + type: object + properties: + rowId: + type: string + description: Row identifier. All row IDs are represented by subsequent upper case letters starting with `A`. + example: A + query: + type: string + description: Metrics query. + example: my_metric | avg + description: Definition of a metrics query. + MetricsSearch: + required: + - queries + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^\s*\S.*$ + type: string + description: Title of the metrics search page. + x-pattern-message: must contain at least 1 non-whitespace character + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: + type: string + description: Description of the metrics search page. + queries: + type: array + description: Queries of the metrics search page. + items: + $ref: '#/components/schemas/Query' + visualSettings: + type: string + description: Visual settings of the metrics search page. + Query: + required: + - queryKey + - queryString + - queryType + type: object + properties: + queryString: + type: string + description: The metrics, traces or logs query. + example: _sourceCategory=cqsplitter metric=CPU_user | count by _sourceHost + queryType: + pattern: ^(Logs|Metrics|Traces|Spans)$ + type: string + description: The type of the query, either `Metrics`, `Traces`, `Spans` or `Logs`. + example: Logs + x-pattern-message: Must be `Logs`, `Traces`, `Spans` or `Metrics` + queryKey: + type: string + description: | + The key for metric, traces or log queries. Used as an identifier for queries. It is displayed on the panel builder and used for display overrides and query toggling. + example: A + metricsQueryMode: + pattern: ^(Basic|Advanced|basic|advanced)$ + type: string + description: | + The mode of the metrics query that the user was editing. Can be `Basic` or `Advanced`. Will ONLY be specified for metrics queries. + example: Basic + x-pattern-message: Must be `Basic`, or `Advanced` + metricsQueryData: + $ref: '#/components/schemas/MetricsQueryData' + tracesQueryData: + $ref: '#/components/schemas/TracesQueryData' + spansQueryData: + $ref: '#/components/schemas/SpansQueryData' + parseMode: + pattern: ^(Auto|Manual|Intelliparse)$ + type: string + description: |- + This field only applies for queryType of `Logs` but other query types may be supported in the future. Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `Auto` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: Auto + default: Auto + x-pattern-message: Must be either `Auto`,`Manual` or `Intelliparse` + timeSource: + pattern: ^(Message|Receipt|Searchable)$ + type: string + description: This field only applies for queryType of `Logs` but other query types may be supported in the future. Define the time source of this query. Possible values are `Message`, `Receipt`. `Message` will use the timeStamp on the message, while `Receipt` will use the timestamp it was received by Sumo. + example: Message + default: Message + x-pattern-message: Must be `Message`, or `Receipt` + transient: + type: boolean + description: This field only applies for queryType of `Metrics` but other query types may be supported in the future. Determines if the row should be returned in the response. Can be used in conjunction with a join, if only the result of the join is needed, and not the intermediate rows. Setting `transient` to `true` wherever the intermediate results aren't required speeds up the computation and reduces the amount of data transferred over the network. + default: false + outputCardinalityLimit: + maximum: 3000 + minimum: 1 + type: integer + description: This field only applies for queryType of `Metrics` but other query types may be supported in the future. Specifies the output cardinality limitations for the query, which is the maximum number of timeseries returned in the result. + format: int32 + example: 1000 + default: 1000 + MetricsQueryData: + required: + - filters + - metric + type: object + properties: + metric: + type: string + description: The metric of the query. + example: CPU_user + aggregationType: + pattern: ^(Count|Minimum|Maximum|Sum|Average|None)$|^$ + type: string + description: The type of aggregation. Can be `Count`, `Minimum`, `Maximum`, `Sum`, `Average` or `None`. + example: Count + x-pattern-message: Must be `Count`, `Minimum`, `Maximum`, `Sum`, `Average` or `None` + groupBy: + type: string + description: The field to group the results by. + example: _sourceHost + filters: + type: array + description: A list of filters for the metrics query. + items: + $ref: '#/components/schemas/MetricsFilter' + operators: + type: array + description: A list of operator data for the metrics query. + items: + $ref: '#/components/schemas/OperatorData' + description: The data format describing a basic metrics query. + example: + metric: CPU_user + aggregationType: count + groupBy: _sourceHost + filters: + - key: _sourceCategory + value: kubernetes + - key: _sourceHost + value: dep-kubernetes-1 + operators: + operatorName: avg + parameters: + - key: aggregator + value: max + - key: operation + value: '' + - key: value + value: 50 + TracesQueryData: + required: + - filters + type: object + properties: + filters: + type: array + description: A list of filters for the traces query. + items: + $ref: '#/components/schemas/TracesFilter' + description: The data format describing a basic traces query. + SpansQueryData: + required: + - filters + - groupBy + - limit + - visualizations + type: object + properties: + filters: + type: array + description: A list of filters for the spans query. + items: + $ref: '#/components/schemas/SpansFilter' + visualizations: + type: array + description: A list of used visualization methods for the spans query. + items: + $ref: '#/components/schemas/SpansVisualization' + groupBy: + type: array + description: A list of group-by clauses for the spans query. + items: + $ref: '#/components/schemas/SpansGroupBy' + limit: + type: array + description: A list of limits that will be applied to the spans query. + items: + $ref: '#/components/schemas/SpansLimitItem' + description: The data format describing a basic spans query. + MetricsFilter: + required: + - value + type: object + properties: + key: + type: string + description: The key of the metrics filter. + example: _sourceCategory + value: + type: string + description: The value of the metrics filter. + example: kubernetes + negation: + type: boolean + description: Whether or not the metrics filter is negated. + example: false + description: The filter for metrics query. + example: + key: _sourceCategory + value: cqmerger + negation: false + OperatorData: + required: + - operatorName + - parameters + type: object + properties: + operatorName: + type: string + description: The name of the metrics operator. + example: avg + parameters: + type: array + description: A list of operator parameters for the operator data. + items: + $ref: '#/components/schemas/OperatorParameter' + description: The operator data for metrics query. + example: + operatorName: avg + parameters: + - key: aggregator + value: max + - key: operation + value: '' + - key: value + value: 50 + TracesFilter: + required: + - type + type: object + properties: + type: + pattern: ^(FieldDescriptor|DurationMetricDescriptor|NumericMetricDescriptor|CPCOfFilterDescriptor|MaxCPCOfFilterDescriptor|MaxCPCFilterDescriptor)$|^$ + type: string + description: The type of the filter. + example: FieldDescriptor + x-pattern-message: Must be `FieldDescriptor`, `DurationMetricDescriptor`, `NumericMetricDescriptor`, `CPCOfFilterDescriptor`, `MaxCPCOfFilterDescriptor` or `MaxCPCFilterDescriptor` + description: The filter for traces query. + discriminator: + propertyName: type + SpansFilter: + required: + - fieldName + - type + type: object + properties: + type: + pattern: ^(StandaloneKey|KeyValuePair)$ + type: string + description: The spans filter type. + example: StandaloneKey + x-pattern-message: Must be `StandaloneKey` or `KeyValuePair`. + fieldName: + type: string + description: The name of the filtering field. + example: service + discriminator: + propertyName: type + mapping: + StandaloneKey: '#/components/schemas/SpansFilterStandaloneKey' + KeyValuePair: '#/components/schemas/SpansFilterKeyValuePair' + SpansVisualization: + required: + - name + - type + type: object + properties: + type: + pattern: ^(count|calculation)$ + type: string + description: The visualization type. + example: count + x-pattern-message: Must be `count` or `calculation` + name: + type: string + description: A unique name of the visualization. + example: duration_pct_95 + discriminator: + propertyName: type + mapping: + count: '#/components/schemas/SpansCountVisualization' + calculation: '#/components/schemas/SpansCalculationVisualization' + SpansGroupBy: + required: + - type + type: object + properties: + type: + pattern: ^(time|field)$ + type: string + description: The type of the group-by clause. + example: time + x-pattern-message: Must be `time` or `field` + discriminator: + propertyName: type + mapping: + time: '#/components/schemas/SpansTimeGroupBy' + field: '#/components/schemas/SpansFieldGroupBy' + SpansLimitItem: + required: + - direction + - limitValue + type: object + properties: + direction: + pattern: ^(asc|desc)$ + type: string + description: Describes whether the results should be sorted in an ascending or a descending order. + example: asc + x-pattern-message: Must be `asc` or `desc` + limitValue: + type: integer + description: | + The number of aggregated results returned, e.g. if 10 is requested, then only the first 10 aggregated results are returned. + format: int32 + example: 10 + description: | + A representation of the limit operator which reduces the number of aggregate results returned: either the top k results or bottom k results. + OperatorParameter: + required: + - key + - value + type: object + properties: + key: + type: string + description: The key of the operator parameter. + example: operation + value: + type: string + description: The value of the operator parameter. + example: '>' + description: The operator parameter for operator data. + example: + key: aggregator + value: max diff --git a/provider-dev/source/monitors.yaml b/provider-dev/source/monitors.yaml new file mode 100644 index 0000000..3ba45f9 --- /dev/null +++ b/provider-dev/source/monitors.yaml @@ -0,0 +1,1740 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Monitors API + description: Monitors and monitor folders in the monitors library - search, path, copy, move, import, export, permissions, playbooks and usage. + version: 1.0.0 +paths: + /v1/monitors/usageInfo: + get: + tags: + - monitorsLibraryManagement + summary: Usage info of monitors. + description: Get the current number and the allowed number of log and metrics monitors. + operationId: getMonitorUsageInfo + responses: + '200': + description: MonitorUsageInfo has been retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/GetMonitorUsageInfoResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-stackql-bare-array-wrap: + wrapperKey: monitor_usage_info + wrapperName: GetMonitorUsageInfoResponse + mediaType: application/json + scalar: false + /v1/monitors/disable: + put: + tags: + - monitorsLibraryManagement + summary: Disable monitors. + description: Bulk disable monitors by the given identifiers. + operationId: disableMonitorByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + style: form + explode: false + schema: + type: array + items: + type: string + example: 0000000000000001,0000000000000002,0000000000000003 + responses: + '200': + description: Disabled monitors + content: + application/json: + schema: + $ref: '#/components/schemas/DisableMonitorResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/playbooks: + get: + tags: + - monitorsLibraryManagement + summary: List all playbooks. + description: List all playbooks available to run. + operationId: getMonitorPlaybooks + parameters: + - name: playbookType + in: query + description: A string value for playbook type. + required: false + schema: + type: string + example: CSE + responses: + '200': + description: MonitorPlaybooks have been retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/GetMonitorPlaybooksResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-stackql-bare-array-wrap: + wrapperKey: monitor_playbooks + wrapperName: GetMonitorPlaybooksResponse + mediaType: application/json + scalar: false + /v1/monitors/playbooksDetails: + get: + tags: + - monitorsLibraryManagement + summary: Get playbook details. + description: Get the details of the playbooks with the specified identifiers. + operationId: getPlaybooksDetails + parameters: + - name: ids + in: query + description: A comma-separated list of playbook identifiers. + required: true + style: form + explode: false + schema: + type: array + items: + type: string + example: 649074b5b3d402d6e80b0d1d,649074b7b3d402d6e80b0da1,649074b6b3d402d6e80b0d75 + responses: + '200': + description: MonitorPlaybooks have been retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/GetPlaybooksDetailsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-stackql-bare-array-wrap: + wrapperKey: playbooks_details + wrapperName: GetPlaybooksDetailsResponse + mediaType: application/json + scalar: false + /v1/monitors: + get: + tags: + - monitorsLibraryManagement + summary: Bulk read a monitor or folder. + description: Bulk read a monitor or folder by the given identifiers from the monitors library. + operationId: monitorsReadByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: 0000000000000001,0000000000000002,0000000000000003 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean + responses: + '200': + description: A map between an identifier and its definition (monitor or folder). + content: + application/json: + schema: + $ref: '#/components/schemas/IdToMonitorsLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - monitorsLibraryManagement + summary: | + Create a monitor or folder. + description: Create a monitor or folder in the monitors library. + operationId: monitorsCreate + parameters: + - name: parentId + in: query + description: Identifier of the parent folder in which to create the monitor or folder. + required: true + schema: + type: string + requestBody: + description: The monitor or folder to create. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBase' + required: true + responses: + '200': + description: The monitor or folder was created. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - monitorsLibraryManagement + summary: | + Bulk delete a monitor or folder. + description: Bulk delete a monitor or folder by the given identifiers in the monitors library. + operationId: monitorsDeleteByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: 0000000000000001,0000000000000002,0000000000000003 + responses: + '200': + description: A map between the deleted identifier and its metadata. + content: + application/json: + schema: + $ref: '#/components/schemas/IdToMonitorsLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/root: + get: + tags: + - monitorsLibraryManagement + summary: Get the root monitors folder. + description: Get the root folder in the monitors library. + operationId: getMonitorsLibraryRoot + responses: + '200': + description: Root folder of the monitors library. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryFolderResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/path: + get: + tags: + - monitorsLibraryManagement + summary: Read a monitor or folder by its path. + description: Read a monitor or folder by its path in the monitors library structure. + operationId: monitorsGetByPath + parameters: + - name: path + in: query + description: The path of the monitor or folder. + required: true + schema: + type: string + responses: + '200': + description: Requested monitor or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/search: + get: + tags: + - monitorsLibraryManagement + summary: Search for a monitor or folder. + description: Search for a monitor or folder in the monitors library structure. + operationId: monitorsSearch + parameters: + - name: query + in: query + description: |- + The search query to find monitor or folder. Below is the list of different filters with examples: + - **createdBy** : Filter by the user's identifier who created the content. Example: `createdBy:000000000000968B`. + - **createdBefore** : Filter by the content objects created before the given timestamp(in milliseconds). Example: `createdBefore:1457997222`. + - **createdAfter** : Filter by the content objects created after the given timestamp(in milliseconds). Example: `createdAfter:1457997111`. + - **modifiedBefore** : Filter by the content objects modified before the given timestamp(in milliseconds). Example: `modifiedBefore:1457997222`. + - **modifiedAfter** : Filter by the content objects modified after the given timestamp(in milliseconds). Example: `modifiedAfter:1457997111`. + - **type** : Filter by the type of the content object. Example: `type:folder`. + - **monitorStatus** : Filter by the status of the monitor: Normal, Critical, Warning, MissingData, Disabled, AllTriggered. Example: `monitorStatus:Normal`. + + You can also use multiple filters in one query. For example to search for all content objects created by user with identifier 000000000000968B with creation timestamp after 1457997222 containing the text Test, the query would look like: + + `createdBy:000000000000968B createdAfter:1457997222 Test` + required: true + schema: + type: string + example: createdBy:000000000000968B Test + - name: limit + in: query + description: Maximum number of items you want in the response. + required: false + schema: + maximum: 5000 + type: integer + format: int32 + default: 1000 + example: 10 + - name: offset + in: query + description: The position or row from where to start the search operation. + required: false + schema: + type: integer + format: int32 + default: 0 + example: 5 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean + responses: + '200': + description: List of folders and monitors matching the search query. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-stackql-bare-array-wrap: + wrapperKey: monitors_search + wrapperName: MonitorsSearchResponse + mediaType: application/json + scalar: false + /v1/monitors/{id}: + get: + tags: + - monitorsLibraryManagement + summary: Get a monitor or folder. + description: Get a monitor or folder from the monitors library. + operationId: monitorsReadById + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to read. + required: true + schema: + type: string + responses: + '200': + description: Requested monitor or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - monitorsLibraryManagement + summary: | + Update a monitor or folder. + description: Update a monitor or folder in the monitors library. When making updates to existing monitors via API, all configurations are over-written. Make sure to include all configurations of the monitor (existing with new updates), not just the new configurations you want to apply. + operationId: monitorsUpdateById + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to update. + required: true + schema: + type: string + requestBody: + description: The monitor or folder to update. The content version must match its latest version number in the monitors library. If the version does not match it will not be updated. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseUpdate' + required: true + responses: + '200': + description: The monitor or folder was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - monitorsLibraryManagement + summary: | + Delete a monitor or folder. + description: Delete a monitor or folder from the monitors library. + operationId: monitorsDeleteById + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to delete. + required: true + schema: + type: string + responses: + '204': + description: The monitor or folder was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{id}/path: + get: + tags: + - monitorsLibraryManagement + summary: Get the path of a monitor or folder. + description: Get the full path of the monitor or folder in the monitors library. + operationId: getMonitorsFullPath + parameters: + - name: id + in: path + description: Identifier of the monitor or folder. + required: true + schema: + type: string + responses: + '200': + description: Full path of the monitor or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/Path' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{id}/move: + post: + tags: + - monitorsLibraryManagement + summary: Move a monitor or folder. + description: Move a monitor or folder to a different location in the monitors library. + operationId: monitorsMove + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to move. + required: true + schema: + type: string + - name: parentId + in: query + description: Identifier of the parent folder to move the monitor or folder to. + required: true + schema: + type: string + responses: + '200': + description: Moved monitor or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{id}/copy: + post: + tags: + - monitorsLibraryManagement + summary: Copy a monitor or folder. + description: Copy a monitor or folder in the monitors library. + operationId: monitorsCopy + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to copy. + required: true + schema: + type: string + requestBody: + description: |- + Fields include: + 1) Identifier of the parent folder to copy to. + 2) Optionally provide a new name. + 3) Optionally provide a new description. + 4) Optionally set to true if you want to copy and preserve the locked status. Requires `LockMonitors` capability. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentCopyParams' + required: true + responses: + '200': + description: The monitor or folder was copied. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{id}/export: + get: + tags: + - monitorsLibraryManagement + summary: Export a monitor or folder. + description: Export a monitor or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root. + operationId: monitorsExportItem + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to export. + required: true + schema: + type: string + responses: + '200': + description: Exported monitor or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseExport' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{parentId}/import: + post: + tags: + - monitorsLibraryManagement + summary: Import a monitor or folder. + description: Import a monitor or folder. + operationId: monitorsImportItem + parameters: + - name: parentId + in: path + description: Identifier of the parent folder in which to import the monitor or folder. + required: true + schema: + type: string + requestBody: + description: The monitor or folder to be imported. + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseExport' + required: true + responses: + '200': + description: 'Newly imported monitor or folder. NOTE: Permissions field will not be filled (empty list).' + content: + application/json: + schema: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{id}/permissions: + get: + tags: + - monitorsLibraryManagement + summary: | + List explicit permissions on monitor or folder. + description: List explicit permissions on monitor or folder in the monitors library. + operationId: monitorsReadPermissionsById + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to list permissions. + required: true + schema: + type: string + responses: + '200': + description: The list of explicit permission statements for the monitor or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/ListPermissionsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/permissions/set: + put: + tags: + - monitorsLibraryManagement + summary: | + Set permissions on monitor or folder. + description: Set permissions on monitor or folder in the monitors library. + operationId: monitorsSetPermissions + requestBody: + description: The permission statement definitions to set. + content: + application/json: + schema: + $ref: '#/components/schemas/PermissionStatementDefinitions' + required: true + responses: + '200': + description: List of the successfully set `PermissionStatements`. + content: + application/json: + schema: + $ref: '#/components/schemas/PermissionStatements' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/permissions/revoke: + put: + tags: + - monitorsLibraryManagement + summary: | + Revoke all permissions on monitor or folder. + description: Revoke all permissions on monitor or folder in the monitors library. + operationId: monitorsRevokePermissions + requestBody: + description: The identifiers of the permissions statements to revoke. + content: + application/json: + schema: + $ref: '#/components/schemas/PermissionIdentifiers' + required: true + responses: + '204': + description: Permissions were successfully revoked for monitor or folder. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/{id}/permissionSummariesBySubjects: + get: + tags: + - monitorsLibraryManagement + summary: | + List permission summaries for a monitor or folder. + description: List permission summary meta(s) grouped by subjects on monitor or folder in the monitors library. + operationId: monitorsReadPermissionSummariesByIdGroupBySubjects + parameters: + - name: id + in: path + description: Identifier of the monitor or folder to list permissions. + required: true + schema: + type: string + responses: + '200': + description: The list of permission summary meta(s) grouped by subjects for the monitor or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/PermissionSummariesBySubjects' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + MonitorUsageInfo: + type: array + description: The usage info of logs and metrics monitors. + items: + $ref: '#/components/schemas/MonitorUsage' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + DisableMonitorResponse: + type: object + properties: + monitors: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MonitorsLibraryMonitorResponse' + description: A map between an identifier and its monitor. + warnings: + type: array + description: Warnings from the operation. + items: + $ref: '#/components/schemas/DisableMonitorWarning' + description: Response for disabling monitors. + MonitorPlaybooksList: + type: array + description: The list of monitor playbooks. + items: + $ref: '#/components/schemas/MonitorPlaybook' + IdToMonitorsLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + MonitorsLibraryBase: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the monitor or folder. + description: + type: string + description: Description of the monitor or folder. + default: '' + type: + type: string + description: |- + Type of the object model. Valid values: + 1) MonitorsLibraryMonitor + 2) MonitorsLibraryFolder + discriminator: + propertyName: type + MonitorsLibraryBaseResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the monitor or folder. + name: + type: string + description: Identifier of the monitor or folder. + description: + type: string + description: Description of the monitor or folder. + version: + type: integer + description: Version of the monitor or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Monitor + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + discriminator: + propertyName: type + MonitorsLibraryFolderResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + - children + - permissions + type: object + properties: + id: + type: string + description: Identifier of the monitor or folder. + name: + type: string + description: Identifier of the monitor or folder. + description: + type: string + description: Description of the monitor or folder. + version: + type: integer + description: Version of the monitor or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Monitor + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + children: + type: array + description: 'Children of the folder. NOTE: Permissions field will not be filled (empty list) for children.' + items: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + discriminator: + propertyName: type + ListMonitorsLibraryItemWithPath: + type: array + description: Multi-type list of types monitor or folder. + items: + $ref: '#/components/schemas/MonitorsLibraryItemWithPath' + MonitorsLibraryBaseUpdate: + required: + - name + - type + - version + type: object + properties: + name: + type: string + description: The name of the monitor or folder. + description: + type: string + description: The description of the monitor or folder. + default: '' + version: + type: integer + description: The version of the monitor or folder. + format: int64 + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + Path: + required: + - path + - pathItems + type: object + properties: + pathItems: + type: array + description: Elements of the path. + items: + $ref: '#/components/schemas/PathItem' + path: + type: string + description: String representation of the path. + ContentCopyParams: + required: + - parentId + type: object + properties: + parentId: + type: string + description: Identifier of the parent folder to copy to. + name: + type: string + description: Optionally provide a new name. + description: + type: string + description: Optionally provide a new description. + MonitorsLibraryBaseExport: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the monitor or folder. + description: + type: string + description: Description of the monitor or folder. + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + ListPermissionsResponse: + required: + - permissionStatements + type: object + properties: + permissionStatements: + type: array + description: A list of permission statements. + items: + $ref: '#/components/schemas/PermissionStatement' + PermissionStatementDefinitions: + required: + - permissionStatementDefinitions + type: object + properties: + permissionStatementDefinitions: + maxItems: 1000 + minItems: 1 + type: array + description: List of permission statement definitions. + items: + $ref: '#/components/schemas/PermissionStatementDefinition' + PermissionStatements: + required: + - permissionStatements + type: object + properties: + permissionStatements: + type: array + description: A list of permission statements. + items: + $ref: '#/components/schemas/PermissionStatement' + PermissionIdentifiers: + required: + - permissionIdentifiers + type: object + properties: + permissionIdentifiers: + maxItems: 1000 + minItems: 1 + type: array + description: List of permission identifiers. + items: + $ref: '#/components/schemas/PermissionIdentifier' + PermissionSummariesBySubjects: + required: + - permissionSummariesBySubjects + type: object + properties: + permissionSummariesBySubjects: + type: array + description: A list of PermissionSubjects and PermissionSummaryMeta(s) associated with each subject. + items: + $ref: '#/components/schemas/PermissionSummaryBySubjects' + MonitorUsage: + properties: + monitorType: + type: string + description: The type of monitor usage info (Logs or Metrics). + example: Logs + enum: + - Logs + - Metrics + usage: + type: integer + description: Current number of active Logs/Metrics monitors. + example: 100 + limit: + type: integer + description: The limit of active Logs/Metrics monitors. + example: 100 + total: + type: integer + description: The total number of monitors created. (Including both active and disabled Logs/Metrics monitors) + example: 100 + description: The usage info of monitors. + type: object + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MonitorsLibraryMonitorResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + - monitorType + - queries + - triggers + type: object + properties: + id: + type: string + description: Identifier of the monitor or folder. + name: + type: string + description: Identifier of the monitor or folder. + description: + type: string + description: Description of the monitor or folder. + version: + type: integer + description: Version of the monitor or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Monitor + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + monitorType: + pattern: ^(Logs|Metrics|Slo)$ + type: string + description: |- + The type of monitor. Valid values: + 1. `Logs`: A logs query monitor. + 2. `Metrics`: A metrics query monitor. + 3. `Slo`: A SLO based monitor. Currently SLO based monitor is available in closed beta (Notify your Sumo Logic representative in order to get the early access). + example: Logs + x-pattern-message: should be 'Logs' or 'Metrics' or 'Slo' + evaluationDelay: + type: string + description: The delay duration for evaluating the monitor (relative to current time). The timerange of monitor will be shifted in the past by this delay time. + example: 5m + default: 0m + alertName: + type: string + description: The name of the alert(s) triggered from this monitor. Monitor name will be used if not specified. All template variables can be used here except {{AlertName}}, {{AlertResponseURL}}, {{ResultsJson}}, and {{Playbook}}. + runAs: + type: object + required: + - runAsId + properties: + runAsId: + type: string + description: The runAsId indicates the context in which monitors will run. If not provided, then it will run in the context of the monitor author. + example: 00000000000001DF + notificationGroupFields: + type: array + description: The set of fields to be used to group alert notifications for a monitor. The value of this field will be considered only when 'groupNotifications' is true. The fields with very high cardinality such as `_blockid`, `_raw`, `_messagetime`, `_receipttime`, and `_messageid` are not allowed for Alert Grouping. + example: + - service + - env + items: + type: string + queries: + uniqueItems: true + type: array + description: All queries from the monitor. + items: + $ref: '#/components/schemas/MonitorQuery' + triggers: + type: array + description: Defines the conditions of when to send notifications. + example: + - detectionMethod: LogsStaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + - detectionMethod: LogsStaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + items: + $ref: '#/components/schemas/TriggerCondition' + timeZone: + type: string + description: Time zone identifier for monitor notifications. Follow the format in [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + notifications: + type: array + description: The notifications the monitor will send when the respective trigger condition is met. + example: + - notification: + connectionType: Slack + connectionId: '0000000000000005' + runForTriggerTypes: + - Critical + - notification: + connectionType: Email + messageBody: Alert Triggered! + recipients: + - john@doe.com + subject: 'Monitor Alert: {{TriggerType}} on {{SearchName}}' + timeZone: America/Los_Angeles + runForTriggerTypes: + - Critical + items: + $ref: '#/components/schemas/MonitorNotification' + default: [] + isDisabled: + type: boolean + description: Whether or not the monitor is disabled. Disabled monitors will not run, and will not generate or send notifications. + example: false + default: false + status: + uniqueItems: true + type: array + description: |- + The current status of the monitor. Each monitor can have one or more status values. Valid values: + 1. `Normal`: The monitor is running normally and does not have any currently triggered conditions. + 2. `Critical`: The Critical trigger condition has been met. + 3. `Warning`: The Warning trigger condition has been met. + 4. `MissingData`: The MissingData trigger condition has been met. + 5. `Disabled`: The monitor has been disabled and is not currently running. + example: '[Normal]' + items: + type: string + groupNotifications: + type: boolean + description: Whether or not to group notifications for individual items that meet the trigger condition. + example: true + default: true + warnings: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Monitor manager warnings + playbook: + type: string + description: Notes such as links and instruction to help you resolve alerts triggered by this monitor. {{Markdown}} supported. It will be enabled only if available for your organization. Please contact your Sumo Logic account team to learn more. + example: This issue typically happens when database calls are timing out. Look at ServiceA's dashboard to investigate further + default: '' + sloId: + type: string + description: Identifier of the SLO definition for the monitor. This is only applicable for SLO type monitors. + automatedPlaybookIds: + uniqueItems: true + type: array + description: The set of automated playbook ids for a monitor. + example: + - 649dcb922b70c74b5d2110f8 + - 649dcb912b70c74b5d2110a0 + items: + type: string + default: [] + discriminator: + propertyName: type + DisableMonitorWarning: + type: object + properties: + code: + type: string + description: A code for the warning message. + example: content:not_found + message: + type: string + description: A short message with details about the warning. + example: Monitor id=0000000000000001 not found. + description: Warning object from the operation providing details such as when a given monitor to disable does not exist. + MonitorPlaybook: + required: + - description + - name + - playbookId + - type + - versionId + type: object + properties: + description: + type: string + description: The description of the monitor playbook. + example:

30 Seconds API Will Take To Respond

+ playbookId: + type: string + description: The id of the playbook. + example: '1' + name: + type: string + description: The name of the playbook. + example: Test + versionId: + type: string + description: The version id of the playbook. + example: '1' + type: + type: string + description: The type of the playbook. + example: Analytics + description: The single monitor playbook. + MonitorsLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + path: + type: string + description: Path of the monitor or folder. + example: /Monitors/SampleFolder/TestMonitor + PathItem: + required: + - id + - name + type: object + properties: + id: + type: string + description: Identifier of the path element. + name: + type: string + description: Name of the path element. + description: + type: string + description: Description of the path element. + PermissionStatement: + type: object + required: + - permissions + - subjectId + - subjectType + - targetId + - createdAt + - createdBy + - modifiedAt + - modifiedBy + properties: + permissions: + type: array + description: List of permissions. + example: + - Read + - Delete + items: + type: string + subjectType: + pattern: ^(role|org)$ + type: string + description: 'Type of subject for the permission. Valid values are: `role` or `org`.' + example: role + x-pattern-message: 'must be one of the following: `role` or `org`' + subjectId: + type: string + description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `role`, subjectId should be the identifier of a role. Similarly, if the subjectType is `org`, the subjectId should be the identifier of the same org, which owns the resource target. + example: 0000000006743FDA + targetId: + type: string + description: The identifier that belongs to the resource this permission assignment applies to. + example: 0000000006743FE2 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + PermissionStatementDefinition: + required: + - permissions + - subjectId + - subjectType + - targetId + type: object + properties: + permissions: + type: array + description: List of permissions. + example: + - Read + - Delete + items: + type: string + subjectType: + pattern: ^(role|org)$ + type: string + description: 'Type of subject for the permission. Valid values are: `role` or `org`.' + example: role + x-pattern-message: 'must be one of the following: `role` or `org`' + subjectId: + type: string + description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `role`, subjectId should be the identifier of a role. Similarly, if the subjectType is `org`, the subjectId should be the identifier of the same org, which owns the resource target. + example: 0000000006743FDA + targetId: + type: string + description: The identifier that belongs to the resource this permission assignment applies to. + example: 0000000006743FE2 + PermissionIdentifier: + required: + - subjectId + - subjectType + - targetId + type: object + properties: + subjectType: + pattern: ^(user|role|org)$ + type: string + description: 'Type of subject for the permission. Valid values are: `user` or `role` or `org`.' + example: role + x-pattern-message: 'must be one of the following: `user`, `role`, `org`' + subjectId: + type: string + description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `user`, subjectId should be the identifier of a user (same goes for `role` or `org` subjectType). + example: 0000000006743FDA + targetId: + type: string + description: The identifier that belongs to the resource this permission assignment applies to. + example: 0000000006743FE2 + description: Identifier for the entity (subject) that is granted the permission on resource(s). + PermissionSummaryBySubjects: + description: A list of PermissionSubjects and PermissionSummaryMeta(s) associated with each subject. + required: + - subjectId + - subjectType + - permissionSummaries + type: object + properties: + subjectType: + pattern: ^(user|role|org)$ + type: string + description: 'Type of subject for the permission. Valid values are: `user` or `role` or `org`.' + example: role + x-pattern-message: 'must be one of the following: `user`, `role`, `org`' + subjectId: + type: string + description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `user`, subjectId should be the identifier of a user (same goes for `role` or `org` subjectType). + example: 0000000006743FDA + permissionSummaries: + type: array + items: + $ref: '#/components/schemas/PermissionSummaryMeta' + RunAs: + required: + - runAsId + type: object + properties: + runAsId: + type: string + description: The runAsId indicates the context in which monitors will run. If not provided, then it will run in the context of the monitor author. + example: 00000000000001DF + MonitorQuery: + required: + - query + - rowId + type: object + properties: + rowId: + type: string + description: The unique identifier of the row. Defaults to sequential capital letters, `A`, `B`, `C`, etc. + example: A + query: + type: string + description: The logs or metrics query that defines the stream of data the monitor runs on. + example: _sourceCategory=search error + description: A search query. + TriggerCondition: + required: + - triggerType + type: object + properties: + detectionMethod: + pattern: ^(StaticCondition|LogsStaticCondition|MetricsStaticCondition|LogsOutlierCondition|MetricsOutlierCondition|LogsMissingDataCondition|MetricsMissingDataCondition|SloSliCondition|SloBurnRateCondition|LogsAnomalyCondition|MetricsAnomalyCondition)$ + type: string + description: |- + Detection method of the trigger condition. Valid values: + 1. `StaticCondition`: A condition that triggers based off of a static threshold. This `detectionMethod` is deprecated, it is recommended to use other ones instead. + 2. `LogsStaticCondition`: A logs condition that triggers based off of a static threshold. + 3. `MetricsStaticCondition`: A metrics condition that triggers based off of a static threshold. + 4. `LogsOutlierCondition`: A logs condition that triggers based off of a dynamic outlier threshold. + 5. `MetricsOutlierCondition`: A metrics condition that triggers based off of a dynamic outlier threshold. + 6. `LogsMissingDataCondition`: A logs missing data condition that triggers based off of no data available. + 7. `MetricsMissingDataCondition`: A metrics missing data condition that triggers based off of no data available. + 8. `SloSliCondition`: An SLO condition that triggers based off of current SLI value. + 9. `SloBurnRateCondition`: An SLO condition that triggers based off of error budget burn rate. + 10. `LogsAnomalyCondition`: A log anomaly condition that triggers based off anomalies in the data. + 11. `MetricsAnomalyCondition`: A metric anomaly condition that triggers based off anomalies in the data. + example: StaticCondition + default: StaticCondition + x-pattern-message: 'should be one of the following: ''StaticCondition'', ''LogsStaticCondition'', ''MetricsStaticCondition'', ''LogsOutlierCondition'', ''MetricsOutlierCondition'', ''LogsMissingDataCondition'', ''MetricsMissingDataCondition'', ''SloSliCondition'', ''SloBurnRateCondition'', ''LogsAnomalyCondition'', ''MetricsAnomalyCondition'' ' + triggerType: + pattern: ^(Critical|Warning|MissingData|ResolvedCritical|ResolvedWarning|ResolvedMissingData)$ + type: string + description: |- + The type of trigger condition. Valid values: + 1. `Critical`: A critical condition to trigger on. + 2. `Warning`: A warning condition to trigger on. + 3. `MissingData`: A condition that indicates data is missing. + 4. `ResolvedCritical`: A condition to resolve a Critical trigger on. + 5. `ResolvedWarning`: A condition to resolve a Warning trigger on. + 6. `ResolvedMissingData`: A condition to resolve a MissingData trigger. + example: Critical + x-pattern-message: 'should be one of the following: ''Critical'', ''Warning'', ''MissingData'', ''ResolvedCritical'', ''ResolvedWarning'', or ''ResolvedMissingData''' + resolutionWindow: + type: string + description: 'The resolution window that the recovery condition must be met in each evaluation that happens within this entire duration before the alert is recovered (resolved). If not specified, the time range of your trigger will be used. Valid values are: `0m`, `-5m`, `-10m`, `-15m`, `-30m`, `-1h`, `-3h`, `-6h`, `-12h`, or `-24h`' + nullable: true + example: '-5m' + discriminator: + propertyName: detectionMethod + mapping: + StaticCondition: '#/components/schemas/StaticCondition' + LogsStaticCondition: '#/components/schemas/LogsStaticCondition' + MetricsStaticCondition: '#/components/schemas/MetricsStaticCondition' + LogsOutlierCondition: '#/components/schemas/LogsOutlierCondition' + MetricsOutlierCondition: '#/components/schemas/MetricsOutlierCondition' + LogsMissingDataCondition: '#/components/schemas/LogsMissingDataCondition' + MetricsMissingDataCondition: '#/components/schemas/MetricsMissingDataCondition' + SloSliCondition: '#/components/schemas/SloSliCondition' + SloBurnRateCondition: '#/components/schemas/SloBurnRateCondition' + LogsAnomalyCondition: '#/components/schemas/LogsAnomalyCondition' + MetricsAnomalyCondition: '#/components/schemas/MetricsAnomalyCondition' + MonitorNotification: + required: + - notification + - runForTriggerTypes + type: object + properties: + notification: + $ref: '#/components/schemas/Action' + runForTriggerTypes: + uniqueItems: true + type: array + description: The trigger types assigned to send this notification. + items: + type: string + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + Permissions: + required: + - permissions + type: object + properties: + permissions: + type: array + description: List of permissions. + example: + - Read + - Delete + items: + type: string + PermissionSubject: + required: + - subjectId + - subjectType + type: object + properties: + subjectType: + pattern: ^(user|role|org)$ + type: string + description: 'Type of subject for the permission. Valid values are: `user` or `role` or `org`.' + example: role + x-pattern-message: 'must be one of the following: `user`, `role`, `org`' + subjectId: + type: string + description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `user`, subjectId should be the identifier of a user (same goes for `role` or `org` subjectType). + example: 0000000006743FDA + description: Identifier for the entity (subject) that is granted the permission on resource(s). + PermissionSummaryMeta: + required: + - isExplicit + - isInherited + - isRecursive + - isRevoked + - isSystemDefined + - name + type: object + properties: + name: + type: string + description: 'Name of the permission. Example values are: `Read`, `Update`, `Create`, etc.' + example: Read + isInherited: + type: boolean + description: A true value implies that the permission is inherited from some ancestors of the resource. A false value implies that the permission is explicitly assigned to the resource. + example: true + isExplicit: + type: boolean + description: A true value implies that the permission is explicitly assigned to the resource. A false value implies that the permission is not explicitly assigned to the resource. + example: true + isRevoked: + type: boolean + description: A true value implies that the capability required for this permission has been revoked. + example: true + isRecursive: + type: boolean + description: A true value implies that the permission is recursively cascaded down to all the direct and indirect children of the resource. + example: true + isSystemDefined: + type: boolean + description: A true value implies that the permission is defined by the system on the resource and can not be modified by the user. A false value implies that the permission is defined by the user on the resource and can be modified by the user. + example: true + description: Permission Summary with additional information like inheritance, revocation, etc about the permission. + Action: + required: + - connectionType + type: object + properties: + connectionType: + pattern: ^(Email|AWSLambda|AzureFunctions|Datadog|HipChat|Jira|NewRelic|Opsgenie|PagerDuty|Slack|MicrosoftTeams|ServiceNow|SumoCloudSOAR|Webhook)$ + type: string + description: |- + Connection type of the connection. Valid values: + 1. `Email` + 2. `AWSLambda` + 3. `AzureFunctions` + 4. `Datadog` + 5. `HipChat` + 6. `Jira` + 7. `NewRelic` + 8. `Opsgenie` + 9. `PagerDuty` + 10. `Slack` + 11. `MicrosoftTeams` + 12. `ServiceNow` + 13. `SumoCloudSOAR` + 14. `Webhook` + x-pattern-message: 'should be one of the following: ''Email'', ''AWSLambda'', ''AzureFunctions'', ''Datadog'', ''HipChat'', ''Jira'', ''NewRelic'', ''Opsgenie'', ''PagerDuty'', ''Slack'', ''MicrosoftTeams'', ''ServiceNow'', ''SumoCloudSOAR'' and ''Webhook''' + description: The base class of all connection types. + discriminator: + propertyName: connectionType + GetMonitorUsageInfoResponse: + type: object + properties: + monitor_usage_info: + type: array + items: + $ref: '#/components/schemas/MonitorUsage' + GetMonitorPlaybooksResponse: + type: object + properties: + monitor_playbooks: + type: array + items: + $ref: '#/components/schemas/MonitorPlaybook' + GetPlaybooksDetailsResponse: + type: object + properties: + playbooks_details: + type: array + items: + $ref: '#/components/schemas/MonitorPlaybook' + MonitorsSearchResponse: + type: object + properties: + monitors_search: + type: array + items: + $ref: '#/components/schemas/MonitorsLibraryItemWithPath' diff --git a/provider-dev/source/muting_schedules.yaml b/provider-dev/source/muting_schedules.yaml new file mode 100644 index 0000000..1e30b77 --- /dev/null +++ b/provider-dev/source/muting_schedules.yaml @@ -0,0 +1,736 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Muting Schedules API + description: Muting schedules in the muting schedules library. + version: 1.0.0 +paths: + /v1/mutingSchedules: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Bulk read a mutingschedule or folder. + description: Bulk read a mutingschedule or folder by the given identifiers from the mutingSchedules library. + operationId: mutingSchedulesReadByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: 0000000000000001,0000000000000002,0000000000000003 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean + responses: + '200': + description: A map between an identifier and its definition (mutingschedule or folder). + content: + application/json: + schema: + $ref: '#/components/schemas/IdToMutingSchedulesLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - mutingSchedulesLibraryManagement + summary: | + Create a mutingschedule or folder. + description: Create a mutingschedule or folder in the mutingSchedules library. + operationId: mutingSchedulesCreate + parameters: + - name: parentId + in: query + description: Identifier of the parent folder in which to create the mutingschedule or folder. + required: true + schema: + type: string + requestBody: + description: The mutingschedule or folder to create. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBase' + required: true + responses: + '200': + description: The mutingschedule or folder was created. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - mutingSchedulesLibraryManagement + summary: | + Bulk delete a mutingschedule or folder. + description: Bulk delete a mutingschedule or folder by the given identifiers in the mutingSchedules library. + operationId: mutingSchedulesDeleteByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: 0000000000000001,0000000000000002,0000000000000003 + responses: + '200': + description: A map between the deleted identifier and its metadata. + content: + application/json: + schema: + $ref: '#/components/schemas/IdToMutingSchedulesLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/root: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Get the root mutingSchedules folder. + description: Get the root folder in the mutingSchedules library. + operationId: getMutingSchedulesLibraryRoot + responses: + '200': + description: Root folder of the mutingSchedules library. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryFolderResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/search: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Search for a mutingschedule or folder. + description: Search for a mutingschedule or folder in the mutingSchedules library structure. + operationId: mutingSchedulesSearch + parameters: + - name: query + in: query + description: |- + The search query to find mutingschedule or folder. Below is the list of different filters with examples: + - **createdBy** : Filter by the user's identifier who created the content. Example: `createdBy:000000000000968B`. + - **createdBefore** : Filter by the content objects created before the given timestamp(in milliseconds). Example: `createdBefore:1457997222`. + - **createdAfter** : Filter by the content objects created after the given timestamp(in milliseconds). Example: `createdAfter:1457997111`. + - **modifiedBefore** : Filter by the content objects modified before the given timestamp(in milliseconds). Example: `modifiedBefore:1457997222`. + - **modifiedAfter** : Filter by the content objects modified after the given timestamp(in milliseconds). Example: `modifiedAfter:1457997111`. + - **type** : Filter by the type of the content object. Example: `type:folder`. + + You can also use multiple filters in one query. For example to search for all content objects created by user with identifier 000000000000968B with creation timestamp after 1457997222 containing the text Test, the query would look like: + + `createdBy:000000000000968B createdAfter:1457997222 Test` + required: true + schema: + type: string + example: createdBy:000000000000968B Test + - name: limit + in: query + description: Maximum number of items you want in the response. + required: false + schema: + maximum: 5000 + type: integer + format: int32 + default: 1000 + example: 10 + - name: offset + in: query + description: The position or row from where to start the search operation. + required: false + schema: + type: integer + format: int32 + default: 0 + example: 5 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean + responses: + '200': + description: List of folders and mutingSchedules matching the search query. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-stackql-bare-array-wrap: + wrapperKey: muting_schedules_search + wrapperName: MutingSchedulesSearchResponse + mediaType: application/json + scalar: false + /v1/mutingSchedules/{id}: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Get a mutingschedule or folder. + description: Get a mutingschedule or folder from the mutingSchedules library. + operationId: mutingSchedulesReadById + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to read. + required: true + schema: + type: string + responses: + '200': + description: Requested mutingschedule or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - mutingSchedulesLibraryManagement + summary: | + Update a mutingschedule or folder. + description: Update a mutingschedule or folder in the mutingSchedules library. + operationId: mutingSchedulesUpdateById + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to update. + required: true + schema: + type: string + requestBody: + description: The mutingschedule or folder to update. The content version must match its latest version number in the mutingSchedules library. If the version does not match it will not be updated. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseUpdate' + required: true + responses: + '200': + description: The mutingschedule or folder was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - mutingSchedulesLibraryManagement + summary: | + Delete a mutingschedule or folder. + description: Delete a mutingschedule or folder from the mutingSchedules library. + operationId: mutingSchedulesDeleteById + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to delete. + required: true + schema: + type: string + responses: + '204': + description: The mutingschedule or folder was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}/path: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Get the path of a mutingschedule or folder. + description: Get the full path of the mutingschedule or folder in the mutingSchedules library. + operationId: getMutingSchedulesFullPath + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder. + required: true + schema: + type: string + responses: + '200': + description: Full path of the mutingschedule or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/Path' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}/copy: + post: + tags: + - mutingSchedulesLibraryManagement + summary: Copy a mutingschedule or folder. + description: Copy a mutingschedule or folder in the mutingSchedules library. + operationId: mutingSchedulesCopy + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to copy. + required: true + schema: + type: string + requestBody: + description: |- + Fields include: + 1) Identifier of the parent folder to copy to. + 2) Optionally provide a new name. + 3) Optionally provide a new description. + 4) Optionally set to true if you want to copy and preserve the locked status. Requires `LockMutingSchedules` capability. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentCopyParams' + required: true + responses: + '200': + description: The mutingschedule or folder was copied. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}/export: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Export a mutingschedule or folder. + description: Export a mutingschedule or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root. + operationId: mutingSchedulesExportItem + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to export. + required: true + schema: + type: string + responses: + '200': + description: Exported mutingschedule or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseExport' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{parentId}/import: + post: + tags: + - mutingSchedulesLibraryManagement + summary: Import a mutingschedule or folder. + description: Import a mutingschedule or folder. + operationId: mutingSchedulesImportItem + parameters: + - name: parentId + in: path + description: Identifier of the parent folder in which to import the mutingschedule or folder. + required: true + schema: + type: string + requestBody: + description: The mutingschedule or folder to be imported. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseExport' + required: true + responses: + '200': + description: 'Newly imported mutingschedule or folder. NOTE: Permissions field will not be filled (empty list).' + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + IdToMutingSchedulesLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + MutingSchedulesLibraryBase: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + default: '' + type: + type: string + description: |- + Type of the object model. Valid values: + 1) MutingSchedulesLibraryMutingschedule + 2) MutingSchedulesLibraryFolder + discriminator: + propertyName: type + MutingSchedulesLibraryBaseResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the mutingschedule or folder. + name: + type: string + description: Identifier of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + version: + type: integer + description: Version of the mutingschedule or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Mutingschedule + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + discriminator: + propertyName: type + MutingSchedulesLibraryFolderResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + - children + - permissions + type: object + properties: + id: + type: string + description: Identifier of the mutingschedule or folder. + name: + type: string + description: Identifier of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + version: + type: integer + description: Version of the mutingschedule or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Mutingschedule + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + children: + type: array + description: 'Children of the folder. NOTE: Permissions field will not be filled (empty list) for children.' + items: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + discriminator: + propertyName: type + ListMutingSchedulesLibraryItemWithPath: + type: array + description: Multi-type list of types mutingschedule or folder. + items: + $ref: '#/components/schemas/MutingSchedulesLibraryItemWithPath' + MutingSchedulesLibraryBaseUpdate: + required: + - name + - type + - version + type: object + properties: + name: + type: string + description: The name of the mutingschedule or folder. + description: + type: string + description: The description of the mutingschedule or folder. + default: '' + version: + type: integer + description: The version of the mutingschedule or folder. + format: int64 + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + Path: + required: + - path + - pathItems + type: object + properties: + pathItems: + type: array + description: Elements of the path. + items: + $ref: '#/components/schemas/PathItem' + path: + type: string + description: String representation of the path. + ContentCopyParams: + required: + - parentId + type: object + properties: + parentId: + type: string + description: Identifier of the parent folder to copy to. + name: + type: string + description: Optionally provide a new name. + description: + type: string + description: Optionally provide a new description. + MutingSchedulesLibraryBaseExport: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MutingSchedulesLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + path: + type: string + description: Path of the mutingschedule or folder. + example: /MutingSchedules/SampleFolder/TestMutingschedule + PathItem: + required: + - id + - name + type: object + properties: + id: + type: string + description: Identifier of the path element. + name: + type: string + description: Name of the path element. + description: + type: string + description: Description of the path element. + MutingSchedulesSearchResponse: + type: object + properties: + muting_schedules_search: + type: array + items: + $ref: '#/components/schemas/MutingSchedulesLibraryItemWithPath' diff --git a/provider-dev/source/oauth.yaml b/provider-dev/source/oauth.yaml new file mode 100644 index 0000000..b708c7f --- /dev/null +++ b/provider-dev/source/oauth.yaml @@ -0,0 +1,1668 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Oauth API + description: OAuth clients, consents and scopes. + version: 1.0.0 +paths: + /v1/oauth/scopes: + get: + tags: + - oauthManagement + summary: Get all scopes. + description: Get a list of all of the scopes that can be added to an oauth client. + operationId: listOAuthScopes + responses: + '200': + description: A list of scopes that can be added to an oauth client. + content: + application/json: + schema: + $ref: '#/components/schemas/ScopesList' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/clients: + get: + tags: + - oauthManagement + summary: List the OAuth clients. + description: List all OAuth clients. + operationId: listOAuthClients + parameters: + - name: limit + in: query + description: Limit the number of OAuth clients returned in the response. The number of OAuth clients returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: runAsId + in: query + description: Identifier of the service account that the OAuth Client runs as. + required: false + schema: + type: string + - name: clientId + in: query + description: Filter clients by exact client ID. When specified, returns only the client matching this ID. Supports URL-based client identifiers (URL-encode the value). + required: false + schema: + type: string + responses: + '200': + description: A list of all OAuth clients within the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListOAuthClientsResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - oauthManagement + summary: Create a new OAuth client. + description: Creates a new OAuth clientId and clientSecret. + operationId: createOAuthClient + requestBody: + description: Information about the new OAuth client. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientCreateRequest' + required: true + responses: + '200': + description: The OAuth client has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientCreationResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/clients/{id}: + get: + tags: + - oauthManagement + summary: Get an OAuth client. + description: Get an OAuth client with the given identifier from the organization. + operationId: getOAuthClientById + parameters: + - name: id + in: path + description: Identifier of an OAuth client to return. + required: true + schema: + type: string + responses: + '200': + description: OAuth client object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClient' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - oauthManagement + summary: Update an OAuth client. + description: Updates the properties of existing OAuth client by Id. + operationId: updateOAuthClient + parameters: + - name: id + in: path + description: The id of an OAuth client to update. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientUpdateRequest' + required: true + responses: + '200': + description: OAuth client updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClient' + default: + description: OAuth client update failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - oauthManagement + summary: Delete an OAuth client. + description: Deletes the OAuth client with the given Id. + operationId: deleteOAuthClient + parameters: + - name: id + in: path + description: The Id of the OAuth client to delete. + required: true + schema: + type: string + responses: + '204': + description: OAuth client deletion completed successfully. + default: + description: OAuth client deletion failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/clients/{id}/rotate: + put: + tags: + - oauthManagement + summary: Rotate the oauth client secret + description: Generates a new secret for the oauth client that is passed in the call, keeping the same client ID. + operationId: rotateOauthSecret + parameters: + - name: id + in: path + description: The ID of the oauth client to rotate the secret for. + required: true + schema: + type: string + responses: + '200': + description: OAuth client secret rotated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientCreationResponse' + default: + description: Oauth client secret rotation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/consents: + get: + tags: + - oauthManagement + summary: List OAuth consents. + description: Get a list of OAuth consents within the organization. Administrators can list all consents, while others can only list consents that they have authorized. + operationId: listOAuthConsents + parameters: + - name: limit + in: query + description: Limit the number of consents returned in the response. + required: false + schema: + maximum: 10000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. + required: false + schema: + type: string + - name: authorizedUser + in: query + description: Filter consents by the identifier of the user who authorized the consent. + required: false + schema: + type: string + - name: clientId + in: query + description: Filter consents by the clientId of a registered OAuth client. + required: false + schema: + type: string + responses: + '200': + description: A list of OAuth consents. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListOAuthConsentsResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/consents/{consentId}: + delete: + tags: + - oauthManagement + summary: Delete an OAuth consent. + description: Deletes the OAuth consent with the given Id. + operationId: deleteOAuthConsent + parameters: + - name: consentId + in: path + description: The ID of the OAuth consent to delete. + required: true + schema: + type: string + responses: + '204': + description: OAuth consent deletion completed successfully. + default: + description: OAuth consent deletion failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ScopesList: + required: + - data + type: object + properties: + data: + type: array + description: List of scopes + items: + $ref: '#/components/schemas/ScopeDefinition' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + PaginatedListOAuthClientsResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of OAuth clients. + items: + $ref: '#/components/schemas/OAuthClient' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + description: List of OAuth clients. + OAuthClientCreateRequest: + required: + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + default: [] + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/CreateClientCredentialsClientRequest' + AuthorizationCodeClient: '#/components/schemas/CreateAuthorizationCodeClientRequest' + CimdAuthorizationCodeClient: '#/components/schemas/CreateCimdAuthorizationCodeClientRequest' + OAuthClientCreationResponse: + required: + - clientId + - createdAt + - createdBy + - description + - disabled + - id + - modifiedAt + - modifiedBy + - name + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + id: + pattern: ^[0-9A-F]{16}$ + type: string + description: Unique identifier of the OAuth client. + example: 0000000006743FDE + clientId: + type: string + description: Identifier of the OAuth client. Unique within each organization. Will be a URL for dynamically generated clients. + example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the OAuth client. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the OAuth client. + example: 0000000006743FDD + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the OAuth client. + example: My OAuth Client + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the OAuth client. + example: OAuth client for data ingestion + disabled: + type: boolean + description: Whether the OAuth client is disabled. Disabled OAuth clients cannot be used to authenticate users. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/ClientCredentialsClientWithSecret' + AuthorizationCodeClient: '#/components/schemas/AuthorizationCodeClientWithSecret' + CimdAuthorizationCodeClient: '#/components/schemas/CimdAuthorizationCodeClientCreationResponse' + OAuthClient: + required: + - clientId + - createdAt + - createdBy + - description + - disabled + - id + - modifiedAt + - modifiedBy + - name + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + id: + type: string + description: Unique identifier of the OAuth client. + example: 0000000006743FDE + clientId: + type: string + description: Identifier of the OAuth client. Unique within each organization. Will be a URL for dynamically generated clients. + example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the OAuth client. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the OAuth client. + example: 0000000006743FDD + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the OAuth client. + example: My OAuth Client + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the OAuth client. + example: OAuth client for data ingestion + disabled: + type: boolean + description: Whether the OAuth client is disabled. Disabled OAuth clients cannot be used to authenticate users. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/ClientCredentialsClient' + AuthorizationCodeClient: '#/components/schemas/AuthorizationCodeClient' + CimdAuthorizationCodeClient: '#/components/schemas/CimdAuthorizationCodeClient' + OAuthClientUpdateRequest: + required: + - disabled + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + disabled: + type: boolean + description: Whether the OAuth client is disabled. Disabled OAuth clients cannot be used to authenticate users. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/UpdateClientCredentialsClientRequest' + AuthorizationCodeClient: '#/components/schemas/UpdateAuthorizationCodeClientRequest' + CimdAuthorizationCodeClient: '#/components/schemas/UpdateCimdAuthorizationCodeClientRequest' + PaginatedListOAuthConsentsResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of OAuth consents. + items: + $ref: '#/components/schemas/OAuthConsent' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + description: List of OAuth consents. + ScopeDefinition: + required: + - dependsOn + - group + - id + - label + - type + type: object + properties: + id: + type: string + description: The name of the scope. + example: managePartitions + label: + type: string + description: The UI label for the scope. + example: Manage Partitions + type: + type: string + description: Type of scope. + example: Manage + dependsOn: + type: array + description: Any scopes that are required for this scope to be enabled. + example: + - viewPartitions + items: + type: string + group: + required: + - id + - label + type: object + properties: + id: + type: string + description: The name of the scope group + example: dataManagement + label: + type: string + description: The label for the scope group + example: Data Management + parentId: + type: string + description: The ID of the parent scope group + description: The group that the scope belongs to. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + OAuthConsent: + required: + - authorizedAt + - authorizedUser + - clientId + - clientName + - id + - scopes + type: object + properties: + id: + type: string + description: Unique identifier for the consent. + example: 0000000006743FDE + clientId: + type: string + description: The ID of the registered client that was used in granting consent. + example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ + clientName: + type: string + description: The name of the registered client that was used in granting consent. + example: My OAuth App + authorizedAt: + type: string + description: Timestamp when the consent was authorized in UTC in RFC3339 format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + authorizedUser: + type: string + description: Identifier of the user who authorized the consent. + example: 0000000006743FDD + lastUsedAt: + type: string + description: Timestamp when the consent was last used to grant an access token in UTC in RFC3339 format. Null if never used. + format: date-time + example: '2018-10-16T09:10:00.000Z' + scopes: + type: array + description: The scopes that were granted in the consent. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + description: An OAuth consent granted by a user. diff --git a/provider-dev/source/organizations.yaml b/provider-dev/source/organizations.yaml new file mode 100644 index 0000000..414f4ea --- /dev/null +++ b/provider-dev/source/organizations.yaml @@ -0,0 +1,160 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Organizations API + description: Usage of child organizations (multi-account management). + version: 1.0.0 +paths: + /v1/organizations/usages: + post: + tags: + - orgsManagement + summary: Get usages for child orgs. + description: Get the credits usage details of the child orgs for a parent. + operationId: getChildUsages + requestBody: + description: Details for the usages to be fetched. + content: + application/json: + schema: + $ref: '#/components/schemas/ChildUsageDetailsRequest' + responses: + '200': + description: Usage details for the child orgs. + content: + application/json: + schema: + $ref: '#/components/schemas/ChildUsageDetailsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ChildUsageDetailsRequest: + type: object + properties: + startDate: + type: string + description: Start date, without the time, of the usage data to fetch. + example: '2019-07-20T00:00:00.000Z' + endDate: + type: string + description: End date, without the time, of usage data to fetch. + example: '2019-10-20T00:00:00.000Z' + description: The child usage details request for the parent account + ChildUsageDetailsResponse: + required: + - data + type: object + properties: + data: + type: array + description: Usage details of the child orgs. + items: + $ref: '#/components/schemas/ChildUsageDetail' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ChildUsageDetail: + required: + - orgId + - status + - usages + type: object + properties: + status: + pattern: ^(Active|Delinked|Deactivated)$ + type: string + description: Status of the child org. + example: Active + x-pattern-message: Valid values are `Active`, `Delinked`, and `Deactivated` + orgName: + type: string + description: Name of the child org. + example: DSW Corp - Prod/Main + orgId: + maxLength: 23 + minLength: 19 + type: string + description: The unique identifier of an organization. It consists of the deployment ID and the hexadecimal account ID separated by a dash `-` character. + example: us2-00000000FF42A0C3 + allocatedCredits: + type: number + description: Denotes the total number of credits provisioned for the child organization to use. + format: double + example: 10000 + usages: + $ref: '#/components/schemas/ChildUsage' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ChildUsage: + required: + - totalCreditsUsed + type: object + properties: + totalCreditsUsed: + type: number + description: Total Credits used by the child org. + format: double + example: 10000 + usagePercentage: + type: number + description: Percentage of used credits from the allocated credits. + format: double + example: 10000 + forecastPercentage: + type: number + description: Forecasted percentage of credits will be used in the given time period. + format: double + example: 10000 + usagePercentChangeWoW: + type: number + description: Week over week usage percentage for the subscription period. + format: double + example: 10000 + usagePercentChange: + type: number + description: Percentage of usage change over the given time period. + format: double + example: 10000 diff --git a/provider-dev/source/ot_collectors.yaml b/provider-dev/source/ot_collectors.yaml new file mode 100644 index 0000000..e63fd9e --- /dev/null +++ b/provider-dev/source/ot_collectors.yaml @@ -0,0 +1,503 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Ot Collectors API + description: OpenTelemetry collectors. + version: 1.0.0 +paths: + /v1/otCollectors: + post: + tags: + - otCollectorManagementExternal + summary: Get paginated list of OT Collectors + description: Given different filter, search and sort conditions, get list of otCollectors. + operationId: getPaginatedOTCollectors + requestBody: + description: pagination request details + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedOTCollectorsRequest' + required: true + responses: + '200': + description: A list of paginated OT Collectors. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedOTCollectorsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/{id}: + get: + tags: + - otCollectorManagementExternal + summary: Get OT Collector by ID. + description: Get OT Collector by ID. + operationId: getOTCollector + parameters: + - name: id + in: path + description: Identifier of the OT Collector to get. + required: true + schema: + type: string + responses: + '200': + description: An OT Collector by identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/OTCollector' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - otCollectorManagementExternal + summary: Delete an OT Collector. + description: Delete an OT Collector with the given identifier. + operationId: deleteOTCollector + parameters: + - name: id + in: path + description: Identifier of the OT Collector to delete. + required: true + schema: + type: string + responses: + '204': + description: The OT Collector was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/totalCount: + get: + tags: + - otCollectorManagementExternal + summary: Get a count of OT Collectors. + description: Get total count of OT Collectors for a customer. + operationId: getOTCollectorsCount + responses: + '200': + description: Total count of OT Collectors. + content: + application/json: + schema: + $ref: '#/components/schemas/OTCollectorCountResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/otCollectorsByName: + get: + tags: + - otCollectorManagementExternal + summary: Get OT Collectors by name. + description: provided list of names, get all OT Collectors with metadata. + operationId: getOTCollectorsByNames + parameters: + - name: names + in: query + description: A required parameter that accepts a list of names for which we need to collect all metadata. + required: true + schema: + type: array + items: + type: string + responses: + '200': + description: A list of OT Collectors. + content: + application/json: + schema: + $ref: '#/components/schemas/OTCollectorListResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/offline: + delete: + tags: + - otCollectorManagementExternal + summary: Delete all Offline OT Collectors + description: Delete all offline OT Collectors for a given customer. + operationId: deleteOfflineOTCollectors + responses: + '204': + description: All offline OT Collectors of the given customer deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + PaginatedOTCollectorsRequest: + type: object + properties: + search: + type: string + description: search by collector id or free text search on collector properties. + example: testAgent + filters: + type: object + properties: + tags: + type: array + description: tags associated with the OT collector + example: + - - key: region + values: + - us2 + - mum + - - key: key2 + values: + - value2 + items: + type: array + items: + $ref: '#/components/schemas/OtTag' + default: [] + os: + type: string + description: Name of the Operating System. + nullable: true + example: linux + x-visibility: private + collectorVersionRange: + $ref: '#/components/schemas/VersionRange' + alive: + type: boolean + description: alive Status of the OT Collector based on heartbeat. + nullable: true + example: true + isRemotelyManaged: + type: boolean + description: Management Status of the OT Collector based on if it is remotely or locally managed. + nullable: true + example: true + isUpgradeAvailable: + type: boolean + description: upgrade availability status of the OT Collector. + nullable: true + example: true + hasNoSourceTemplateLinked: + type: boolean + description: whether the remotely managed OT Collector has no source template linked. + nullable: true + example: true + healthStatus: + type: array + description: Filter by one or more health statuses of the OT Collector. + example: + - Error + - Warning + items: + type: string + enum: + - Healthy + - Error + - Warning + hasNoData: + type: boolean + description: Filter OT Collectors by no-data status. When true, returns only collectors with no data. When false, returns only collectors that have data. + nullable: true + example: true + fleetIds: + maxItems: 50 + type: array + description: Filter OT Collectors by fleet IDs. + example: + - 0000000005F5E105 + items: + maxLength: 16 + minLength: 1 + type: string + x-visibility: private + description: parameter which is used for filtering. + sortBy: + type: string + description: parameter which is used for sorting. + example: name + next: + type: string + description: parameter which is used for fetching next set of results. + example: token + limit: + maximum: 1000 + minimum: 1 + type: integer + description: parameter which is used for limiting number of otCollectors on a page. + format: int32 + example: 30 + includeCount: + type: boolean + description: count of filtered otCollectors. + nullable: true + example: false + PaginatedOTCollectorsResponse: + required: + - data + type: object + properties: + data: + type: array + description: paginated list of OT Collectors. + items: + $ref: '#/components/schemas/OTCollector' + next: + type: string + description: next page token. + count: + type: integer + description: count of otCollectors in response. + format: int32 + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + OTCollector: + required: + - createdAt + - createdBy + - id + - modifiedAt + - modifiedBy + - name + - systemInfo + - version + type: object + properties: + id: + type: string + description: Unique identifier of the OT Collector. + example: 0000000005F5E105 + name: + type: string + description: Name of the OT Collector. + example: test OT Collector + version: + required: + - currentVersion + type: object + properties: + currentVersion: + type: string + description: Current version of the OT Collector. + latestAvailableVersion: + type: string + description: Latest available version of the OT Collector. + description: Version information of the OT Collector. + category: + type: string + description: Category of the OT Collector. + example: apache + description: + type: string + description: Description of the OT Collector. + tags: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Tags associated with the OT Collector. + example: + team: app-dev + showIcon: true + fleetId: + type: string + description: Fleet Id of the OT Collector + example: 0000000005F5E105 + healthIncidentsTracker: + type: object + properties: + errorsCount: + type: integer + description: Number of errors associated with the OT Collector. + format: int32 + example: 0 + warningsCount: + type: integer + description: Number of warnings associated with the OT Collector. + format: int32 + example: 1 + description: Health incident information. + ephemeral: + type: boolean + description: Ephemeral Status of the OT Collector. + example: false + alive: + type: boolean + description: Alive Status of the OT Collector based on heartbeat. + example: true + isRemotelyManaged: + type: boolean + description: Management Status of the OT Collector based on if it is remotely or locally managed. + example: true + effectiveConfig: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Config map that includes Base 64 Encoded Effective Configuration Yaml of the Remotely managed OT Collector. + example: + 00000000000000A3: ZGVtbyBjb25maWc= + 00000000000000D5: XFVtbfe34tgcvefv= + systemInfo: + type: object + properties: + hostName: + type: string + description: Host name of the OT Collector. + example: app.test.com + hostOsName: + type: string + description: Host OS name of the OT Collector. + example: Linux + hostOsVersion: + type: string + description: Host OS version of the OT Collector. + example: 5.4.144-69.257.amzn2.x86_64 + hostIpAddress: + type: string + description: Host IP address of the OT Collector. + example: 19.123.24.66 + hostEnv: + type: string + description: Host environment of the OT Collector. + example: EKS-1.20.2 + description: System information of the OT Collector. + timeZone: + type: string + description: timezone of the collector + example: UTC + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006A5C7A2 + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006A5C7A2 + sourceTemplateLinkedCount: + type: integer + description: Count of the source templates linked to a collector + example: 1 + description: An OT Collector definition. + OTCollectorCountResponse: + required: + - totalCount + type: object + properties: + totalCount: + type: integer + description: Total number of OT Collector for a customer. + format: int32 + example: 100 + description: response for total count of otCollectors. + OTCollectorListResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of OT Collectors. + items: + $ref: '#/components/schemas/OTCollector' + OtTag: + required: + - key + - values + type: object + properties: + key: + type: string + description: key of the given tag. + example: key1 + values: + type: array + description: values of the given tag. + items: + type: string + example: value1 + VersionRange: + type: object + properties: + minVersion: + pattern: ^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-sumo.+)?$ + type: string + description: Minimum version of otCollector. + maxVersion: + pattern: ^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-sumo.+)?$ + type: string + description: Maximum version of the collector. + rangeType: + type: string + description: 'Specifies how filtering should be applied when `minVersion` and `maxVersion` are defined. - `Within`: Filtering includes the specified range. - `Outside`: Filtering excludes the specified range. By default, filtering includes the specified range.' + description: Version range for otCollector. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 diff --git a/provider-dev/source/parsers.yaml b/provider-dev/source/parsers.yaml new file mode 100644 index 0000000..fa02503 --- /dev/null +++ b/provider-dev/source/parsers.yaml @@ -0,0 +1,919 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Parsers API + description: Custom and system parsers in the parsers library. + version: 1.0.0 +paths: + /v1/parsers/root: + get: + tags: + - parsersLibraryManagement + summary: Get the root folder in the library. + description: | + Get the root folder in the library. + operationId: getParsersLibraryRoot + responses: + '200': + description: Root folder in the library. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryFolderResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers: + get: + tags: + - parsersLibraryManagement + summary: Bulk read folders and parsers. + description: | + Bulk read folders and parsers by the given identifiers from the library. + operationId: parsersReadByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + example: 0000000000000001,0000000000000002,0000000000000003 + items: + type: string + responses: + '200': + description: A map between an identifier and its definition (folder or parser). + content: + application/json: + schema: + $ref: '#/components/schemas/IdToParsersLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - parsersLibraryManagement + summary: | + Create a folder or parser. + description: | + Create a folder or parser. + operationId: parsersCreate + parameters: + - name: parentId + in: query + description: Identifier of the parent folder in which to create the folder or parser. + required: true + schema: + type: string + requestBody: + description: The folder or parser to be created. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBase' + required: true + responses: + '200': + description: Newly created folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - parsersLibraryManagement + summary: | + Bulk delete folders and parsers. + description: | + Bulk delete folders and parsers by the given identifiers from the library. + operationId: parsersDeleteByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + example: 0000000000000001,0000000000000002,0000000000000003 + items: + type: string + responses: + '200': + description: A map between the deleted identifier and its meta data. + content: + application/json: + schema: + $ref: '#/components/schemas/IdToParsersLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}: + get: + tags: + - parsersLibraryManagement + summary: | + Read a folder or parser. + description: | + Read a folder or parser. + operationId: parsersReadById + parameters: + - name: id + in: path + description: Identifier of the folder or parser to read. + required: true + schema: + type: string + responses: + '200': + description: Requested folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - parsersLibraryManagement + summary: | + Update a folder or parser. + description: | + Update a folder or parser. + operationId: parsersUpdateById + parameters: + - name: id + in: path + description: Identifier of the folder or parser to update. + required: true + schema: + type: string + requestBody: + description: | + The folder or parser to be updated. Content version must match its latest version number in the library. Any staled version will not be updated. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseUpdate' + required: true + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - parsersLibraryManagement + summary: | + Delete a folder or parser. + description: | + Delete a folder or parser. + operationId: parsersDeleteById + parameters: + - name: id + in: path + description: Identifier of the folder or parser to delete. + required: true + schema: + type: string + responses: + '204': + description: The folder or parser was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/path: + get: + tags: + - parsersLibraryManagement + summary: Get full path of folder or parser. + description: | + Get full path of folder or parser. + operationId: getParsersFullPath + parameters: + - name: id + in: path + description: Identifier of the folder or parser. + required: true + schema: + type: string + responses: + '200': + description: Full path of the folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/Path' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/lock: + post: + tags: + - parsersLibraryManagement + summary: Lock a folder or a parser. + description: | + Locking requires the `LockParsers` capability. When an object is locked, it can't be moved or deleted and only the local fields can be modified. Locking recursively locks all of the objects children. + operationId: parsersLockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be locked. + required: true + schema: + type: string + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/unlock: + post: + tags: + - parsersLibraryManagement + summary: Unlock a folder or a parser. + description: | + Unlocking requires the `LockParsers` capability. It is only possible to unlock the highest locked object in a tree of locked objects. Unlocking recursively unlocks all of the objects children. + operationId: parsersUnlockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be unlocked. + required: true + schema: + type: string + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/move: + post: + tags: + - parsersLibraryManagement + summary: Move a folder or parser. + description: | + Move a folder or parser. + operationId: parsersMove + parameters: + - name: id + in: path + description: Identifier of the folder or parser to move. + required: true + schema: + type: string + - name: parentId + in: query + description: Identifier of the parent folder to move the folder or parser to. + required: true + schema: + type: string + responses: + '200': + description: Moved folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/copy: + post: + tags: + - parsersLibraryManagement + summary: Copy a folder or parser. + description: | + Copy a folder or parser. + operationId: parsersCopy + parameters: + - name: id + in: path + description: Identifier of the folder or parser to copy. + required: true + schema: + type: string + requestBody: + description: | + Fields include: + 1) Identifier of the parent folder to copy to. + 2) Optionally provide a new name. + 3) Optionally provide a new description. + 4) Optionally set to true if you want to copy and preserved the locked status. Requires `LockParsers` capability. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentCopyParams' + required: true + responses: + '200': + description: Newly copied folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/export: + get: + tags: + - parsersLibraryManagement + summary: Export a folder or parser. + description: Export a folder or parser. + operationId: parsersExportItem + parameters: + - name: id + in: path + description: Identifier of the folder or parser to export. + required: true + schema: + type: string + - name: preserveLock + in: query + description: | + Set this to true if you want to export an object and preserve the locked status. + required: false + schema: + type: boolean + default: false + responses: + '200': + description: Exported folder or parser + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryExportBase' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{parentId}/import: + post: + tags: + - parsersLibraryManagement + summary: Import a folder or parser + description: | + Import a folder or parser + operationId: parsersImportItem + parameters: + - name: parentId + in: path + description: Identifier of the parent folder in which to import the folder or parser. + required: true + schema: + type: string + requestBody: + description: | + The folder or parser to be imported. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryExportBase' + required: true + responses: + '200': + description: Newly imported folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/path: + get: + tags: + - parsersLibraryManagement + summary: Read a folder or parser by its path. + description: | + Read a folder or parser by its path. + operationId: parsersGetByPath + parameters: + - name: path + in: query + description: The path of the folder or parser. + required: true + schema: + type: string + responses: + '200': + description: Requested folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/search: + get: + tags: + - parsersLibraryManagement + summary: Search for folders or parsers. + description: Search for a folder or parser in the cloud SIEM parsers library structure. + operationId: parsersSearch + parameters: + - name: query + in: query + description: |- + The search query to find folder or parsers. Below is the list of different filters with examples: + - **createdBy** : Filter by the user's identifier who created the content. Example: `createdBy:000000000000968B`. + - **createdBefore** : Filter by the content objects created before the given timestamp(in milliseconds). Example: `createdBefore:1457997222`. + - **createdAfter** : Filter by the content objects created after the given timestamp(in milliseconds). Example: `createdAfter:1457997111`. + - **modifiedBefore** : Filter by the content objects modified before the given timestamp(in milliseconds). Example: `modifiedBefore:1457997222`. + - **modifiedAfter** : Filter by the content objects modified after the given timestamp(in milliseconds). Example: `modifiedAfter:1457997111`. + - **type** : Filter by the type of the content object. Example: `type:folder`. + You can also use multiple filters in one query. For example to search for all content objects created by user with identifier 000000000000968B with creation timestamp after 1457997222 containing the text Test, the query would look like: + `createdBy:000000000000968B createdAfter:1457997222 Test` + required: true + schema: + type: string + example: createdBy:000000000000968B Test + - name: limit + in: query + description: Maximum number of items you want in the response. + required: false + schema: + type: integer + format: int32 + example: 10 + default: 100 + - name: offset + in: query + description: The position or row from where to start the search operation. + required: false + schema: + type: integer + format: int32 + example: 5 + default: 0 + responses: + '200': + description: List of folders and parsers matching the search query. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-stackql-bare-array-wrap: + wrapperKey: parsers_search + wrapperName: ParsersSearchResponse + mediaType: application/json + scalar: false + /v1/system/parsers/{id}/lock: + post: + tags: + - parsersLibraryManagement + summary: Lock a folder or a parser. + description: | + Locking requires the `LockParsers` capability. When an object is locked, it can't be moved or deleted and only the local fields can be modified. Locking recursively locks all of the objects children. + operationId: systemParsersLockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be locked. + required: true + schema: + type: string + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/system/parsers/{id}/unlock: + post: + tags: + - parsersLibraryManagement + summary: Unlock a folder or a parser. + description: | + Unlocking requires the `LockParsers` capability. It is only possible to unlock the highest locked object in a tree of locked objects. Unlocking recursively unlocks all of the objects children. + operationId: systemParsersUnlockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be unlocked. + required: true + schema: + type: string + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ParsersLibraryFolderResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isLocked + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + - children + type: object + properties: + id: + type: string + description: Identifier of the folder or parser. + name: + type: string + description: Name of the folder or parser. + description: + type: string + description: Description of the folder or parser. + version: + type: integer + description: Version of the folder or parser. + format: int64 + createdAt: + type: string + description: | + Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: | + Type of the content. Valid values: + 1) Folder + 2) Parser + type: + type: string + description: Type of the object model. + isLocked: + type: boolean + description: Whether the object is locked. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + children: + type: array + description: Children of the folder. + items: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + discriminator: + propertyName: type + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + IdToParsersLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + ParsersLibraryBase: + required: + - description + - name + - type + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the folder or parser. + description: + maxLength: 4096 + type: string + description: Description of the folder or parser. + type: + type: string + description: Type of the object model. + isLocked: + type: boolean + description: Locking/Unlocking requires the `LockParsers` capability. Locked objects can only be `Localized`. Updating or moving requires unlocking the object. Locking/Unlocking recursively locks all of the objects children. All children of a locked object must be locked. + default: false + discriminator: + propertyName: type + ParsersLibraryBaseResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isLocked + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the folder or parser. + name: + type: string + description: Name of the folder or parser. + description: + type: string + description: Description of the folder or parser. + version: + type: integer + description: Version of the folder or parser. + format: int64 + createdAt: + type: string + description: | + Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: | + Type of the content. Valid values: + 1) Folder + 2) Parser + type: + type: string + description: Type of the object model. + isLocked: + type: boolean + description: Whether the object is locked. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + discriminator: + propertyName: type + ParsersLibraryBaseUpdate: + required: + - description + - name + - version + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the folder or parser. + description: + maxLength: 4096 + type: string + description: Description of the folder or parser. + version: + type: integer + description: Version of the folder or parser. + format: int64 + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + Path: + required: + - path + - pathItems + type: object + properties: + pathItems: + type: array + description: Elements of the path. + items: + $ref: '#/components/schemas/PathItem' + path: + type: string + description: String representation of the path. + ContentCopyParams: + required: + - parentId + type: object + properties: + parentId: + type: string + description: Identifier of the parent folder to copy to. + name: + type: string + description: Optionally provide a new name. + description: + type: string + description: Optionally provide a new description. + ParsersLibraryExportBase: + required: + - description + - name + - type + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the folder or parser. + description: + maxLength: 4096 + type: string + description: Description of the folder or parser. + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + ListParsersLibraryItemWithPath: + type: array + description: List of folders or parsers. + items: + $ref: '#/components/schemas/ParsersLibraryItemWithPath' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + PathItem: + required: + - id + - name + type: object + properties: + id: + type: string + description: Identifier of the path element. + name: + type: string + description: Name of the path element. + description: + type: string + description: Description of the path element. + ParsersLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + path: + type: string + description: Path of the folder or parser. + example: /Parsers/SampleFolder/TestParser + ParsersSearchResponse: + type: object + properties: + parsers_search: + type: array + items: + $ref: '#/components/schemas/ParsersLibraryItemWithPath' diff --git a/provider-dev/source/partitions.yaml b/provider-dev/source/partitions.yaml new file mode 100644 index 0000000..098c78e --- /dev/null +++ b/provider-dev/source/partitions.yaml @@ -0,0 +1,493 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Partitions API + description: Partitions (indexes), their retention and decommissioning, and the partition quota. + version: 1.0.0 +paths: + /v1/partitions: + get: + tags: + - partitionManagement + summary: Get a list of partitions. + description: Get a list of all partitions in the organization. The response is paginated with a default limit of 100 partitions per page. + operationId: listPartitions + parameters: + - name: limit + in: query + description: Limit the number of partitions returned in the response. The number of partitions returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: viewTypes + in: query + description: |- + The type of partitions to retrieve. Valid values are: + 1. `DefaultView`: To get General Index partition. + 2. `Partition`: To get user defined views/partitions. + 3. `AuditIndex`: To get the internal audit indexes. Eg. sumologic_audit_events. + + More than one type of partitions can be retrieved in same request. + required: false + style: form + explode: false + schema: + type: array + items: + pattern: ^(AuditIndex|Partition|DefaultView)$ + type: string + example: + - AuditIndex + - Partition + responses: + '200': + description: A paginated list of partitions in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListPartitionsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - partitionManagement + summary: Create a new partition. + description: Create a new partition. + operationId: createPartition + parameters: [] + requestBody: + description: Information about the new partition. + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePartitionDefinition' + required: true + responses: + '200': + description: The partition has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/Partition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/partitions/{id}: + get: + tags: + - partitionManagement + summary: Get a partition. + description: Get a partition with the given identifier from the organization. + operationId: getPartition + parameters: + - name: id + in: path + description: Identifier of partition to return. + required: true + schema: + type: string + responses: + '200': + description: Partition object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/Partition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - partitionManagement + summary: Update a partition. + description: Update an existing partition in the organization. + operationId: updatePartition + parameters: + - name: id + in: path + description: Identifier of the partition to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the partition. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdatePartitionDefinition' + required: true + responses: + '200': + description: The partition was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/Partition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/partitions/{id}/decommission: + post: + tags: + - partitionManagement + summary: Decommission a partition. + description: Decommission a partition with the given identifier from the organization. + operationId: decommissionPartition + parameters: + - name: id + in: path + description: Identifier of the partition to decommission. + required: true + schema: + type: string + responses: + '200': + description: The partition was decommissioned successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/partitions/{id}/cancelRetentionUpdate: + post: + tags: + - partitionManagement + summary: Cancel a retention update for a partition + description: Cancel update to retention of a partition for which retention was updated previously using `reduceRetentionPeriodImmediately` parameter as false + operationId: cancelRetentionUpdate + parameters: + - name: id + in: path + description: Identifier of the partition to cancel the retention update for. + required: true + schema: + type: string + example: 1 + responses: + '204': + description: The retention update was cancelled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/partitions/quota: + get: + tags: + - partitionManagement + summary: Provides information about partitions quota. + description: Every customer can use a limited number of partitions. This endpoint allows learning about these limitations and remaining quota. + operationId: getPartitionsQuota + responses: + '200': + description: Current state of partitions quota usage (limit and remaining). + content: + application/json: + schema: + $ref: '#/components/schemas/PartitionsQuotaUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListPartitionsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of partitions. + items: + $ref: '#/components/schemas/Partition' + next: + type: string + description: Next continuation token. + example: '1' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreatePartitionDefinition: + required: + - name + - routingExpression + type: object + properties: + name: + maxLength: 255 + type: string + description: The name of the partition. + example: apache + routingExpression: + maxLength: 16384 + minLength: 1 + type: string + description: The query that defines the data to be included in the partition. + example: _sourcecategory=*/Apache + analyticsTier: + type: string + description: |- + The Data Tier where the data in the partition will reside. Possible values are: + 1. `continuous` + 2. `frequent` + 3. `infrequent` + Note: The "infrequent" and "frequent" tiers are only available to Cloud Flex Credits Enterprise Suite accounts. + example: continuous + x-limited-description: The Data Tier where the data in the partition will reside. You can leave it empty or send `flex`. It is the only value applicable on your account. + x-limited-example: flex + retentionPeriod: + type: integer + description: The number of days to retain data in the partition, or -1 to use the default value for your account. Only relevant if your account has variable retention enabled. + example: 365 + default: -1 + isCompliant: + type: boolean + description: Whether the partition is compliant or not. Mark a partition as compliant if it contains data used for compliance or audit purpose. Retention for a compliant partition can only be increased and cannot be reduced after the partition is marked compliant. A partition once marked compliant, cannot be marked non-compliant later. + example: false + default: false + isIncludedInDefaultSearch: + type: boolean + description: Indicates whether the partition is included in the default search scope. When executing a query such as "error | count," certain partitions are automatically part of the search scope. However, for specific partitions, the user must explicitly mention the partition using the _index term, as in "_index=webApp error | count". This property governs the default inclusion of the partition in the search scope. Configuring this property is exclusively permitted for flex partitions. + example: true + Partition: + type: object + required: + - name + - routingExpression + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + - totalBytes + properties: + name: + maxLength: 255 + type: string + description: The name of the partition. + example: apache + routingExpression: + maxLength: 16384 + minLength: 1 + type: string + description: The query that defines the data to be included in the partition. + example: _sourcecategory=*/Apache + analyticsTier: + type: string + description: |- + The Data Tier where the data in the partition will reside. Possible values are: + 1. `continuous` + 2. `frequent` + 3. `infrequent` + Note: The "infrequent" and "frequent" tiers are only available to Cloud Flex Credits Enterprise Suite accounts. + example: continuous + x-limited-description: The Data Tier where the data in the partition will reside. You can leave it empty or send `flex`. It is the only value applicable on your account. + x-limited-example: flex + retentionPeriod: + type: integer + description: The number of days to retain data in the partition, or -1 to use the default value for your account. Only relevant if your account has variable retention enabled. + example: 365 + default: -1 + isCompliant: + type: boolean + description: Whether the partition is compliant or not. Mark a partition as compliant if it contains data used for compliance or audit purpose. Retention for a compliant partition can only be increased and cannot be reduced after the partition is marked compliant. A partition once marked compliant, cannot be marked non-compliant later. + example: false + default: false + isIncludedInDefaultSearch: + type: boolean + description: Indicates whether the partition is included in the default search scope. When executing a query such as "error | count," certain partitions are automatically part of the search scope. However, for specific partitions, the user must explicitly mention the partition using the _index term, as in "_index=webApp error | count". This property governs the default inclusion of the partition in the search scope. Configuring this property is exclusively permitted for flex partitions. + example: true + newRetentionPeriod: + type: integer + description: If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. + format: int32 + example: 300 + retentionEffectiveAt: + type: string + description: When the newRetentionPeriod will become effective in UTC format. + format: date-time + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the partition. + example: '1' + totalBytes: + type: integer + description: Size of data in partition in bytes. + format: int64 + example: 42 + isActive: + type: boolean + description: This has the value `true` if the partition is active and `false` if it has been decommissioned. + indexType: + pattern: ^(DefaultIndex|AuditIndex|Partition)$ + type: string + description: This has the value `DefaultIndex`, `AuditIndex`or `Partition` depending upon the type of partition. + example: Partition + dataForwardingId: + type: string + description: Id of the data forwarding configuration to be used by the partition. + UpdatePartitionDefinition: + type: object + properties: + retentionPeriod: + type: integer + description: The number of days to retain data in the partition, or -1 to use the default value for your account. Only relevant if your account has variable retention enabled. + example: 365 + reduceRetentionPeriodImmediately: + type: boolean + description: This is required if the newly specified `retentionPeriod` is less than the existing retention period. In such a situation, a value of `true` says that data between the existing retention period and the new retention period should be deleted immediately; if `false`, such data will be deleted after seven days. This property is optional and ignored if the specified `retentionPeriod` is greater than or equal to the current retention period. + default: false + isCompliant: + type: boolean + description: Whether to mark a partition as compliant. Mark a partition as compliant if it contains data used for compliance or audit purpose. Retention for a compliant partition can only be increased and cannot be reduced after the partition marked as compliant. A partition once marked compliant, cannot be marked non-compliant later. + example: false + default: false + isIncludedInDefaultSearch: + type: boolean + description: Indicates whether the partition is included in the default search scope. When executing a query such as "error | count," certain partitions are automatically part of the search scope. However, for specific partitions, the user must explicitly mention the partition using the _index term, as in "_index=webApp error | count". This property governs the default inclusion of the partition in the search scope. Configuring this property is exclusively permitted for flex partitions. + routingExpression: + maxLength: 16384 + minLength: 1 + type: string + description: The query that defines the data to be included in the partition. + example: _sourcecategory=*/Apache + PartitionsQuotaUsage: + required: + - quota + - remaining + type: object + properties: + quota: + type: integer + description: Maximum number of Partitions allowed. + format: int32 + example: 200 + remaining: + type: integer + description: Remaining number of Partitions allowed. + format: int32 + example: 121 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ViewRetentionProperties: + type: object + properties: + newRetentionPeriod: + type: integer + description: If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. + format: int32 + example: 300 + retentionEffectiveAt: + type: string + description: When the newRetentionPeriod will become effective in UTC format. + format: date-time + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 diff --git a/provider-dev/source/password_policy.yaml b/provider-dev/source/password_policy.yaml new file mode 100644 index 0000000..020a674 --- /dev/null +++ b/provider-dev/source/password_policy.yaml @@ -0,0 +1,194 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Password Policy API + description: The organization password policy. + version: 1.0.0 +paths: + /v1/passwordPolicy: + get: + tags: + - passwordPolicy + summary: Get the current password policy. + description: Get the current password policy. + operationId: getPasswordPolicy + parameters: [] + responses: + '200': + description: The current password policy. + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - passwordPolicy + summary: Update password policy. + description: Update the current password policy. + operationId: setPasswordPolicy + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordPolicy' + required: true + responses: + '200': + description: Password Policy set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordPolicy' + default: + description: Setting the password policy failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + PasswordPolicy: + type: object + properties: + minLength: + maximum: 128 + minimum: 8 + type: integer + description: The minimum length of the password. + format: int32 + example: 8 + default: 8 + maxLength: + maximum: 128 + minimum: 128 + type: integer + description: The maximum length of the password. (Setting this to any value other than 128 is no longer supported; this field may be deprecated in the future.) + format: int32 + example: 128 + default: 128 + mustContainLowercase: + type: boolean + description: If the password must contain lower case characters. + example: true + default: true + mustContainUppercase: + type: boolean + description: If the password must contain upper case characters. + example: true + default: true + mustContainDigits: + type: boolean + description: If the password must contain digits. + example: true + default: true + mustContainSpecialChars: + type: boolean + description: If the password must contain special characters. + example: true + default: true + maxPasswordAgeInDays: + maximum: 365 + minimum: -1 + type: integer + description: Maximum number of days that a password can be used before user is required to change it. Put -1 if the user should not have to change their password. + format: int32 + example: 365 + default: 365 + minUniquePasswords: + maximum: 12 + minimum: 4 + type: integer + description: The minimum number of unique new passwords that a user must use before an old password can be reused. + format: int32 + example: 10 + default: 10 + accountLockoutThreshold: + maximum: 10 + minimum: 3 + type: integer + description: Number of failed login attempts allowed before account is locked-out. + format: int32 + example: 6 + default: 6 + failedLoginResetDurationInMins: + maximum: 10 + minimum: 1 + type: integer + description: The duration of time in minutes that must elapse from the first failed login attempt after which failed login count is reset to 0. + format: int32 + example: 10 + default: 10 + accountLockoutDurationInMins: + maximum: 120 + minimum: 30 + type: integer + description: The duration of time in minutes that a locked-out account remained locked before getting unlocked automatically. + format: int32 + example: 30 + default: 30 + requireMfa: + type: boolean + description: If MFA should be required to log in. By default, this field is set to `false`. + example: false + default: false + rememberMfa: + type: boolean + description: If MFA should be remembered on the browser. + example: true + default: true + disallowWeakPasswords: + type: boolean + description: If weak passwords should be disallowed. By default, this field is set to `false`. + example: false + default: false + description: Password Policy + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 diff --git a/provider-dev/source/policies.yaml b/provider-dev/source/policies.yaml new file mode 100644 index 0000000..a7b5128 --- /dev/null +++ b/provider-dev/source/policies.yaml @@ -0,0 +1,616 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Policies API + description: Organization security and behaviour policies - audit, search audit, data access level, data deletion, session limits, dashboard sharing, timestamp format, OAuth CIMD and access key lifetime. + version: 1.0.0 +paths: + /v1/policies/audit: + get: + tags: + - policiesManagement + summary: Get Audit policy. + description: Get the Audit policy. This policy specifies whether audit records for your account are enabled. You can access details about reported account events in the Sumo Logic Audit Index. [Learn More](https://help.sumologic.com/Manage/Security/Audit-Index) + operationId: getAuditPolicy + responses: + '200': + description: The Audit policy. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Audit policy. + description: Set the Audit policy. This policy specifies whether audit records for your account are enabled. You can access details about reported account events in the Sumo Logic Audit Index. [Learn More](https://help.sumologic.com/Manage/Security/Audit-Index) + operationId: setAuditPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AuditPolicy' + required: true + responses: + '200': + description: Audit policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/searchAudit: + get: + tags: + - policiesManagement + summary: Get Search Audit policy. + description: Get the Search Audit policy. This policy specifies whether search records for your account are enabled. You can access details about your account's search capacity, queries run by users from the Sumo Search Audit Index. [Learn More](https://help.sumologic.com/Manage/Security/Search_Audit_Index) + operationId: getSearchAuditPolicy + responses: + '200': + description: The Search Audit policy. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchAuditPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Search Audit policy. + description: Set the Search Audit policy. This policy specifies whether search records for your account are enabled. You can access details about your account's search capacity, queries run by users from the Sumo Search Audit Index. [Learn More](https://help.sumologic.com/Manage/Security/Search_Audit_Index) + operationId: setSearchAuditPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SearchAuditPolicy' + required: true + responses: + '200': + description: Search Audit policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchAuditPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/shareDashboardsOutsideOrganization: + get: + tags: + - policiesManagement + summary: Get Share Dashboards Outside Organization policy. + description: Get the Share Dashboards Outside Organization policy. This policy allows users to share the dashboard with view only privileges outside of the organization (capability must be enabled from the Roles page). Disabling this policy will disable all dashboards that have been shared outside of the organization. [Learn More](https://help.sumologic.com/Visualizations-and-Alerts/Dashboards/Share_Dashboards/Share_a_Dashboard_Outside_Your_Org) + operationId: getShareDashboardsOutsideOrganizationPolicy + responses: + '200': + description: The Share Dashboards Outside Organization policy. + content: + application/json: + schema: + $ref: '#/components/schemas/ShareDashboardsOutsideOrganizationPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Share Dashboards Outside Organization policy. + description: Set the Share Dashboards Outside Organization policy. This policy allows users to share the dashboard with view only privileges outside of the organization (capability must be enabled from the Roles page). Disabling this policy will disable all dashboards that have been shared outside of the organization. [Learn More](https://help.sumologic.com/Visualizations-and-Alerts/Dashboards/Share_Dashboards/Share_a_Dashboard_Outside_Your_Org) + operationId: setShareDashboardsOutsideOrganizationPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ShareDashboardsOutsideOrganizationPolicy' + required: true + responses: + '200': + description: Share Dashboards Outside Organization policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ShareDashboardsOutsideOrganizationPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/dataAccessLevel: + get: + tags: + - policiesManagement + summary: Get Data Access Level policy. + description: Get the Data Access Level policy. When enabled, this policy sets the default data access level for all newly created dashboards to the viewer’s role access filter. Otherwise, newly created dashboards will default to the sharer’s role access filter and might display data that viewers’ roles don’t allow them to view. [Learn More](https://help.sumologic.com/Manage/Security/Data_Access_Level_for_Shared_Dashboards) + operationId: getDataAccessLevelPolicy + responses: + '200': + description: The Data Access Level policy. + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessLevelPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Data Access Level policy. + description: Set the Data Access Level policy. When enabled, this policy sets the default data access level for all newly created dashboards to the viewer’s role access filter. Otherwise, newly created dashboards will default to the sharer’s role access filter and might display data that viewers’ roles don’t allow them to view. [Learn More](https://help.sumologic.com/Manage/Security/Data_Access_Level_for_Shared_Dashboards) + operationId: setDataAccessLevelPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessLevelPolicy' + required: true + responses: + '200': + description: Data Access Level policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/DataAccessLevelPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/userConcurrentSessionsLimit: + get: + tags: + - policiesManagement + summary: Get User Concurrent Sessions Limit policy. + description: Get the User Concurrent Sessions Limit policy. When enabled, the number of concurrent sessions a user may have is limited to the value entered. If a user exceeds the allowed number of sessions, the user's oldest session will be logged out to accommodate the new one. Disabling this policy means a user may have an unlimited number of concurrent sessions. [Learn More](https://help.sumologic.com/Manage/Security/Set_a_Limit_for_User_Concurrent_Sessions) + operationId: getUserConcurrentSessionsLimitPolicy + responses: + '200': + description: The User Concurrent Sessions Limit policy. + content: + application/json: + schema: + $ref: '#/components/schemas/UserConcurrentSessionsLimitPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set User Concurrent Sessions Limit policy. + description: Set the User Concurrent Sessions Limit policy. When enabled, the number of concurrent sessions a user may have is limited to the value entered. If a user exceeds the allowed number of sessions, the user's oldest session will be logged out to accommodate the new one. Disabling this policy means a user may have an unlimited number of concurrent sessions. [Learn More](https://help.sumologic.com/Manage/Security/Set_a_Limit_for_User_Concurrent_Sessions) + operationId: setUserConcurrentSessionsLimitPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserConcurrentSessionsLimitPolicy' + required: true + responses: + '200': + description: User Concurrent Sessions Limit policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/UserConcurrentSessionsLimitPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/maxUserSessionTimeout: + get: + tags: + - policiesManagement + summary: Get Max User Session Timeout policy. + description: Get the Max User Session Timeout policy. When enabled, this policy sets the maximum web session timeout users are able to configure within their user preferences. Users preferences will be updated to match this value only if their current preference is set to a higher value. [Learn More](https://help.sumologic.com/Manage/Security/Set_a_Maximum_Web_Session_Timeout) + operationId: getMaxUserSessionTimeoutPolicy + responses: + '200': + description: The Max User Session Timeout policy. + content: + application/json: + schema: + $ref: '#/components/schemas/MaxUserSessionTimeoutPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Max User Session Timeout policy. + description: Set the Max User Session Timeout policy. When enabled, this policy sets the maximum web session timeout users are able to configure within their user preferences. Users preferences will be updated to match this value only if their current preference is set to a higher value. [Learn More](https://help.sumologic.com/Manage/Security/Set_a_Maximum_Web_Session_Timeout) + operationId: setMaxUserSessionTimeoutPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MaxUserSessionTimeoutPolicy' + required: true + responses: + '200': + description: Max User Session Timeout policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/MaxUserSessionTimeoutPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/accessKeysLifetime: + get: + tags: + - policiesManagement + summary: Get access key lifetime policy. + description: Get access key lifetime policy. This policy defines the maximum time an access key has once it has been created or rotated before it must be rotated. Otherwise, it will no longer be able to be used. The value 0 represents that the access keys will never expire and the time specified can be configured by the organization. + operationId: getAccessKeysLifetimePolicy + responses: + '200': + description: The Access Key Lifetime Policy. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeysLifetimePolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set access keys lifetime policy. + description: Sets the access keys lifetime policy. By setting this policy, the time an access key has to live before it is expired or must be rotated is defined based on the period (default = never) configured for the organization. Setting the value to 0 would represent that the access keys never expire. + operationId: setAccessKeysLifetimePolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeysLifetimePolicy' + required: true + responses: + '200': + description: Access Keys Lifetime policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeysLifetimePolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/dataDeletion: + get: + tags: + - policiesManagement + summary: Get Data Deletion policy. + description: Get the Data Deletion policy. This policy specifies whether users are allowed to delete data from Sumo Logic. Disabling this policy prevents users from deleting log data. [Learn More](https://help.sumologic.com/Manage/Security/Data_Deletion) + operationId: getDataDeletionPolicy + responses: + '200': + description: The Data Deletion policy. + content: + application/json: + schema: + $ref: '#/components/schemas/DataDeletionPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Data Deletion policy. + description: Set the Data Deletion policy. This policy specifies whether users are allowed to delete data from Sumo Logic. Disabling this policy prevents users from deleting log data. [Learn More](https://help.sumologic.com/Manage/Security/Data_Deletion) + operationId: setDataDeletionPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataDeletionPolicy' + required: true + responses: + '200': + description: Data Deletion policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/DataDeletionPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/timestampFormat: + get: + tags: + - policiesManagement + summary: Get Alert Timestamp Format policy. + description: Get the Alert Timestamp Format policy. This policy controls the date/time format used in alert and recovery notification payloads across all connections and monitor types. When set to ISO, timestamps use the format yyyy-MM-dd HH:mm:ss z. When set to LEGACY, timestamps use the format MM/dd/yyyy hh:mm:ss a z. + operationId: getTimestampFormatPolicy + responses: + '200': + description: The Alert Timestamp Format policy. + content: + application/json: + schema: + $ref: '#/components/schemas/TimestampFormatPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Alert Timestamp Format policy. + description: Set the Alert Timestamp Format policy. This policy controls the date/time format used in alert and recovery notification payloads across all connections and monitor types. When set to ISO, timestamps use the format yyyy-MM-dd HH:mm:ss z. When set to LEGACY, timestamps use the format MM/dd/yyyy hh:mm:ss a z. + operationId: setTimestampFormatPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TimestampFormatPolicy' + required: true + responses: + '200': + description: Alert Timestamp Format policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/TimestampFormatPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/oAuthCimd: + get: + tags: + - policiesManagement + summary: Get OAuth policy for Client ID Metadata Documents (CIMD) authentication. + description: If disabled then authentication with Client ID Metadata Documents (CIMD) is disabled and no new CIMD clients can be created. If set to "enabled" then authentication with CIMD clients is enabled and new CIMD clients can be created automatically as part of authentication. If set to "enabled-pre-registered-only" then authentication with CIMD clients is enabled but new CIMD clients can only be created manually on the OAuth Clients page in the UI. + operationId: getOAuthCimdPolicy + responses: + '200': + description: The OAuth policy for Client ID Metadata Documents (CIMD) authentication. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthCimdPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set OAuth policy for Client ID Metadata Documents (CIMD) authentication. + description: If disabled then authentication with Client ID Metadata Documents (CIMD) is disabled and no new CIMD clients can be created. If set to "enabled" then authentication with CIMD clients is enabled and new CIMD clients can be created automatically as part of authentication. If set to "enabled-pre-registered-only" then authentication with CIMD clients is enabled but new CIMD clients can only be created manually on the OAuth Clients page in the UI. + operationId: setOAuthCimdPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthCimdPolicy' + required: true + responses: + '200': + description: The OAuth policy for Client ID Metadata Documents (CIMD) authentication. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthCimdPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + AuditPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the Audit policy is enabled. + example: true + description: Audit policy. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + SearchAuditPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the Search Audit policy is enabled. + example: true + description: Search Audit policy. + ShareDashboardsOutsideOrganizationPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the Share Dashboards Outside Organization policy is enabled. + example: true + description: Share Dashboards Outside Organization policy. + DataAccessLevelPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the Data Access Level policy is enabled. + example: true + description: Data Access Level policy. + UserConcurrentSessionsLimitPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the User Concurrent Sessions Limit policy is enabled. + example: true + maxConcurrentSessions: + maximum: 100 + minimum: 1 + type: integer + description: Maximum number of concurrent sessions a user may have. + format: int32 + example: 50 + default: 100 + description: User Concurrent Sessions Limit policy. + MaxUserSessionTimeoutPolicy: + required: + - maxUserSessionTimeout + type: object + properties: + maxUserSessionTimeout: + pattern: ^(5m|15m|30m|1h|2h|6h|12h|1d|2d|3d|5d|7d)$ + type: string + description: 'Maximum web session timeout users are able to configure within their user preferences. Valid values are: `5m`, `15m`, `30m`, `1h`, `2h`, `6h`, `12h`, `1d`, `2d`, `3d`, `5d`, or `7d`' + example: 1d + x-pattern-message: 'must be one of the following: `5m`, `15m`, `30m`, `1h`, `2h`, `6h`, `12h`, `1d`, `2d`, `3d`, `5d`, or `7d`' + description: Max User Session Timeout policy. + AccessKeysLifetimePolicy: + required: + - accessKeysLifetimeInDays + type: object + properties: + accessKeysLifetimeInDays: + pattern: ^(0|30|45|60|90|180|365)$ + type: string + description: 'The number of days it will take for an access key to expire without being rotated/copied. Setting it to 0 (never) means that access keys will never expire. Valid values are: `0`, `30`, `45`, `60`, `90`, `180`, or `365`' + example: '60' + x-pattern-message: 'must be one of the following: `0`, `30`, `45`, `60`, `90`, `180`, or `365`' + description: Access Keys Lifetime policy. + DataDeletionPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the Data Deletion policy is enabled. + example: true + description: Whether the Data Deletion policy is enabled. + TimestampFormatPolicy: + required: + - timestampFormat + type: object + properties: + timestampFormat: + type: string + description: 'The timestamp format used in alert notification payloads. Valid values: `ISO`, `LEGACY`. ISO format: yyyy-MM-dd HH:mm:ss z. LEGACY format: MM/dd/yyyy hh:mm:ss a z.' + example: LEGACY + description: Alert Timestamp Format policy. + OAuthCimdPolicy: + required: + - oAuthCimdPolicy + type: object + properties: + oAuthCimdPolicy: + pattern: ^(disabled|enabled|enabled-pre-registered-only)$ + type: string + description: 'OAuth CIMD policy. Valid values are: `disabled`, `enabled`, ''enabled-pre-registered-only''' + example: disabled + x-pattern-message: 'must be one of the following: `disabled`, `enabled`, ''enabled-pre-registered-only''' + description: The OAuth policy for Client ID Metadata Documents (CIMD) authentication. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 diff --git a/provider-dev/source/roles.yaml b/provider-dev/source/roles.yaml new file mode 100644 index 0000000..3e072b5 --- /dev/null +++ b/provider-dev/source/roles.yaml @@ -0,0 +1,2142 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Roles API + description: Roles (v1 and v2) and role assignment to users. + version: 1.0.0 +paths: + /v1/roles: + get: + tags: + - roleManagement + summary: Get a list of roles. + description: Get a list of all the roles in the organization. The response is paginated with a default limit of 100 roles per page. + operationId: listRoles + parameters: + - name: limit + in: query + description: Limit the number of roles returned in the response. The number of roles returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: sortBy + in: query + description: Sort the list of roles by the `name` field. + required: false + schema: + type: string + - name: name + in: query + description: Only return roles matching the given name. + required: false + schema: + minLength: 1 + type: string + responses: + '200': + description: A paginated list of roles in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListRoleModelsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - roleManagement + summary: Create a new role. + description: Create a new role in the organization. + operationId: createRole + parameters: [] + requestBody: + description: Information about the new role. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateRoleDefinition' + required: true + responses: + '200': + description: The role has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createRole + /v1/roles/{id}: + get: + tags: + - roleManagement + summary: Get a role. + description: Get a role with the given identifier in the organization. + operationId: getRole + parameters: + - name: id + in: path + description: Identifier of the role to fetch. + required: true + schema: + type: string + responses: + '200': + description: Role object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getRole + put: + tags: + - roleManagement + summary: Update a role. + description: Update an existing role in the organization. + operationId: updateRole + parameters: + - name: id + in: path + description: Identifier of the role to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the role. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateRoleDefinition' + required: true + responses: + '200': + description: The user was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateRole + delete: + tags: + - roleManagement + summary: Delete a role. + description: Delete a role with the given identifier from the organization. + operationId: deleteRole + parameters: + - name: id + in: path + description: Identifier of the role to delete. + required: true + schema: + type: string + responses: + '204': + description: Role was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteRole + /v1/roles/{roleId}/users/{userId}: + put: + tags: + - roleManagement + summary: Assign a role to a user. + description: Assign a role to a user in the organization. + operationId: assignRoleToUser + parameters: + - name: roleId + in: path + description: Identifier of the role to assign. + required: true + schema: + type: string + - name: userId + in: path + description: Identifier of the user to assign the role to. + required: true + schema: + type: string + responses: + '200': + description: Role was successfully assigned to the user. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - roleManagement + summary: Remove role from a user. + description: Remove a role from a user in the organization. + operationId: removeRoleFromUser + parameters: + - name: roleId + in: path + description: Identifier of the role to delete. + required: true + schema: + type: string + - name: userId + in: path + description: Identifier of the user to remove the role from. + required: true + schema: + type: string + responses: + '204': + description: Role was successfully removed from the user. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/roles: + get: + tags: + - roleManagementV2 + summary: Get a list of roles. + description: Get a list of all the roles in the organization. The response is paginated with a default limit of 100 roles per page. + operationId: listRolesV2 + parameters: + - name: limit + in: query + description: Limit the number of roles returned in the response. The number of roles returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: sortBy + in: query + description: Sort the list of roles by the `name` field. + required: false + schema: + type: string + - name: name + in: query + description: Only return roles matching the given name. + required: false + schema: + minLength: 1 + type: string + responses: + '200': + description: A paginated list of roles in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListRoleModelsResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - roleManagementV2 + summary: Create a new role. + description: Create a new role in the organization. + operationId: createRoleV2 + parameters: [] + requestBody: + description: Information about the new role. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateRoleDefinitionV2' + required: true + responses: + '200': + description: The role has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModelV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createRoleV2 + /v2/roles/{id}: + get: + tags: + - roleManagementV2 + summary: Get a role. + description: Get a role with the given identifier in the organization. + operationId: getRoleV2 + parameters: + - name: id + in: path + description: Identifier of the role to fetch. + required: true + schema: + type: string + responses: + '200': + description: Role object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/GetRoleDefinitionV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getRoleV2 + put: + tags: + - roleManagementV2 + summary: Update a role. + description: Update an existing role in the organization. + operationId: updateRoleV2 + parameters: + - name: id + in: path + description: Identifier of the role to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the role. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateRoleDefinitionV2' + required: true + responses: + '200': + description: The user was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModelV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateRoleV2 + delete: + tags: + - roleManagementV2 + summary: Delete a role. + description: Delete a role with the given identifier from the organization. + operationId: deleteRoleV2 + parameters: + - name: id + in: path + description: Identifier of the role to delete. + required: true + schema: + type: string + responses: + '204': + description: Role was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteRoleV2 + /v2/roles/{roleId}/users/{userId}: + put: + tags: + - roleManagementV2 + summary: Assign a role to a user. + description: Assign a role to a user in the organization. + operationId: assignRoleToUserV2 + parameters: + - name: roleId + in: path + description: Identifier of the role to assign. + required: true + schema: + type: string + - name: userId + in: path + description: Identifier of the user to assign the role to. + required: true + schema: + type: string + responses: + '200': + description: Role was successfully assigned to the user. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModelV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - roleManagementV2 + summary: Remove role from a user. + description: Remove a role from a user in the organization. + operationId: removeRoleFromUserV2 + parameters: + - name: roleId + in: path + description: Identifier of the role to delete. + required: true + schema: + type: string + - name: userId + in: path + description: Identifier of the user to remove the role from. + required: true + schema: + type: string + responses: + '204': + description: Role was successfully removed from the user. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListRoleModelsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of roles. + items: + $ref: '#/components/schemas/RoleModel' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreateRoleDefinition: + required: + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + filterPredicate: + type: string + description: A search filter to restrict access to specific logs. The filter is silently added to the beginning of each query a user runs. For example, using '!_sourceCategory=billing' as a filter predicate will prevent users assigned to the role from viewing logs from the source category named 'billing'. + example: '!_sourceCategory=billing' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - manageIndexes + - manageDataStreams + - viewParsers + - viewDataStreams + - viewPipelines + - managePipelines + + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - ipWhitelisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + - shareDashboardWhitelist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + - cseViewAutomations + - cseManageContextActions + - cseViewNetworkBlocks + - cseManageInsightTags + - cseViewRules + - cseViewThreatIntelligence + - cseCommentOnInsights + - cseViewEntityGroups + - cseManageEntityConfiguration + - cseManageNetworkBlocks + - cseManageMatchLists + - cseViewCustomInsights + - cseManageActions + - cseManageAutomations + - cseManageMappings + - cseManageThreatIntelligence + - cseViewActions + - cseCreateInsights + - cseManageTagSchemas + - cseInvokeInsights + - cseManageCustomEntityType + - cseViewTagSchemas + - cseDeleteInsights + - cseManageCustomInsights + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseManageEntityCriticality + - cseViewEntityCriticality + - cseViewEntity + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseViewMappings + - cseViewCustomEntityType + - cseManageEntityGroups + - cseViewCustomInsightStatuses + - cseViewEnrichments + - cseManageInsightSignals + - cseManageRules + - cseManageArtifacts + - cseViewMatchLists + - cseManageInsightPolicy + - cseManageEnrichments + - cseViewEntityConfiguration + - cseManageEntity + - cseExecuteAutomations + - cseManageSuppressedEntities + - cseManageInsightStatus + - cseManageInsightAssignee + - cseManageFavoriteFields + - cseViewSuppressedEntities + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + - viewMutingSchedules + - manageMutingSchedules + - adminMonitorsV2 + + ### SLO + - viewSlos + - manageSlos + + ### CloudSoar + - cloudSoarPlaybooksAccess + - cloudSoarNotificationConfigure + - cloudSoarReportAll + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTaskView + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentNotesEdit + - cloudSoarAPIEmailEdit + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentPlaybooksManage + - cloudSoarGeneralConfigure + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarIncidentAttachmentsAccess + - cloudSoarAppCentralAccess + - cloudSoarBridgeMonitoringAccess + - viewCloudSoar + - cloudSoarIncidentView + - cloudSoarObservabilityAccess + - cloudSoarAPIEmailRead + - cloudSoarAppCentralExport + - cloudSoarWidgetsAll + - cloudSoarIncidentTaskReassign + - cloudSoarIntegrationsAccess + - cloudSoarCustomizationIncidentLabels + - cloudSoarAutomationRulesConfigure + - cloudSoarIncidentTaskAccessAll + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentEdit + - cloudSoarNotificationTriage + - cloudSoarIncidentTriageBulkPhysicalDelete + - cloudSoarIncidentNotesAccess + - cloudSoarAPIUse + - cloudSoarIncidentPlaybooksEdit + - cloudSoarDashboardAll + - cloudSoarEntitiesManage + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccessAll + - cloudSoarPlaybooksConfigure + - cloudSoarIncidentAccessAll + - cloudSoarCustomizationLogo + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTriageView + - cloudSoarIntegrationsConfigure + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentAccess + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarIncidentBulkOperations + - cloudSoarCustomizationFields + - cloudSoarIncidentTaskEdit + - cloudSoarDashboardAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarUserManagementGroups + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentWarRoomUse + - cloudSoarReportAccess + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAutomationRulesAccess + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarObservabilityManagement + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + RoleModel: + type: object + x-tf-generated-properties: id,name,description,filterPredicate,capabilities + x-tf-resource-name: Role + required: + - name + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + filterPredicate: + type: string + description: A search filter to restrict access to specific logs. The filter is silently added to the beginning of each query a user runs. For example, using '!_sourceCategory=billing' as a filter predicate will prevent users assigned to the role from viewing logs from the source category named 'billing'. + example: '!_sourceCategory=billing' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - manageIndexes + - manageDataStreams + - viewParsers + - viewDataStreams + - viewPipelines + - managePipelines + + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - ipWhitelisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + - shareDashboardWhitelist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + - cseViewAutomations + - cseManageContextActions + - cseViewNetworkBlocks + - cseManageInsightTags + - cseViewRules + - cseViewThreatIntelligence + - cseCommentOnInsights + - cseViewEntityGroups + - cseManageEntityConfiguration + - cseManageNetworkBlocks + - cseManageMatchLists + - cseViewCustomInsights + - cseManageActions + - cseManageAutomations + - cseManageMappings + - cseManageThreatIntelligence + - cseViewActions + - cseCreateInsights + - cseManageTagSchemas + - cseInvokeInsights + - cseManageCustomEntityType + - cseViewTagSchemas + - cseDeleteInsights + - cseManageCustomInsights + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseManageEntityCriticality + - cseViewEntityCriticality + - cseViewEntity + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseViewMappings + - cseViewCustomEntityType + - cseManageEntityGroups + - cseViewCustomInsightStatuses + - cseViewEnrichments + - cseManageInsightSignals + - cseManageRules + - cseManageArtifacts + - cseViewMatchLists + - cseManageInsightPolicy + - cseManageEnrichments + - cseViewEntityConfiguration + - cseManageEntity + - cseExecuteAutomations + - cseManageSuppressedEntities + - cseManageInsightStatus + - cseManageInsightAssignee + - cseManageFavoriteFields + - cseViewSuppressedEntities + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + - viewMutingSchedules + - manageMutingSchedules + - adminMonitorsV2 + + ### SLO + - viewSlos + - manageSlos + + ### CloudSoar + - cloudSoarPlaybooksAccess + - cloudSoarNotificationConfigure + - cloudSoarReportAll + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTaskView + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentNotesEdit + - cloudSoarAPIEmailEdit + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentPlaybooksManage + - cloudSoarGeneralConfigure + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarIncidentAttachmentsAccess + - cloudSoarAppCentralAccess + - cloudSoarBridgeMonitoringAccess + - viewCloudSoar + - cloudSoarIncidentView + - cloudSoarObservabilityAccess + - cloudSoarAPIEmailRead + - cloudSoarAppCentralExport + - cloudSoarWidgetsAll + - cloudSoarIncidentTaskReassign + - cloudSoarIntegrationsAccess + - cloudSoarCustomizationIncidentLabels + - cloudSoarAutomationRulesConfigure + - cloudSoarIncidentTaskAccessAll + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentEdit + - cloudSoarNotificationTriage + - cloudSoarIncidentTriageBulkPhysicalDelete + - cloudSoarIncidentNotesAccess + - cloudSoarAPIUse + - cloudSoarIncidentPlaybooksEdit + - cloudSoarDashboardAll + - cloudSoarEntitiesManage + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccessAll + - cloudSoarPlaybooksConfigure + - cloudSoarIncidentAccessAll + - cloudSoarCustomizationLogo + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTriageView + - cloudSoarIntegrationsConfigure + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentAccess + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarIncidentBulkOperations + - cloudSoarCustomizationFields + - cloudSoarIncidentTaskEdit + - cloudSoarDashboardAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarUserManagementGroups + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentWarRoomUse + - cloudSoarReportAccess + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAutomationRulesAccess + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarObservabilityManagement + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the role. + example: 0000000000E20FE3 + systemDefined: + type: boolean + description: Role is system or user defined. + example: false + UpdateRoleDefinition: + required: + - capabilities + - description + - filterPredicate + - name + - users + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + filterPredicate: + type: string + description: A search filter to restrict access to specific logs. The filter is silently added to the beginning of each query a user runs. For example, using '!_sourceCategory=billing' as a filter predicate will prevent users assigned to the role from viewing logs from the source category named 'billing'. + example: '!_sourceCategory=billing' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - viewPipelines + - managePipelines + + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + ListRoleModelsResponseV2: + required: + - data + type: object + properties: + data: + type: array + description: List of roles. + items: + $ref: '#/components/schemas/GetRoleDefinitionV2' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + CreateRoleDefinitionV2: + required: + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/ViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - manageIndexes + - manageDataStreams + - viewParsers + - viewDataStreams + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - ipWhitelisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + - shareDashboardWhitelist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + - cseViewAutomations + - cseManageContextActions + - cseViewNetworkBlocks + - cseManageInsightTags + - cseViewRules + - cseViewThreatIntelligence + - cseCommentOnInsights + - cseViewEntityGroups + - cseManageEntityConfiguration + - cseManageNetworkBlocks + - cseManageMatchLists + - cseViewCustomInsights + - cseManageActions + - cseManageAutomations + - cseManageMappings + - cseManageThreatIntelligence + - cseViewActions + - cseCreateInsights + - cseManageTagSchemas + - cseInvokeInsights + - cseManageCustomEntityType + - cseViewTagSchemas + - cseDeleteInsights + - cseManageCustomInsights + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseManageEntityCriticality + - cseViewEntityCriticality + - cseViewEntity + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseViewMappings + - cseViewCustomEntityType + - cseManageEntityGroups + - cseViewCustomInsightStatuses + - cseViewEnrichments + - cseManageInsightSignals + - cseManageRules + - cseManageArtifacts + - cseViewMatchLists + - cseManageInsightPolicy + - cseManageEnrichments + - cseViewEntityConfiguration + - cseManageEntity + - cseExecuteAutomations + - cseManageSuppressedEntities + - cseManageInsightStatus + - cseManageInsightAssignee + - cseManageFavoriteFields + - cseViewSuppressedEntities + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + - viewMutingSchedules + - manageMutingSchedules + - adminMonitorsV2 + + ### SLO + - viewSlos + - manageSlos + + ### CloudSoar + - cloudSoarPlaybooksAccess + - cloudSoarNotificationConfigure + - cloudSoarReportAll + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTaskView + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentNotesEdit + - cloudSoarAPIEmailEdit + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentPlaybooksManage + - cloudSoarGeneralConfigure + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarIncidentAttachmentsAccess + - cloudSoarAppCentralAccess + - cloudSoarBridgeMonitoringAccess + - viewCloudSoar + - cloudSoarIncidentView + - cloudSoarObservabilityAccess + - cloudSoarAPIEmailRead + - cloudSoarAppCentralExport + - cloudSoarWidgetsAll + - cloudSoarIncidentTaskReassign + - cloudSoarIntegrationsAccess + - cloudSoarCustomizationIncidentLabels + - cloudSoarAutomationRulesConfigure + - cloudSoarIncidentTaskAccessAll + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentEdit + - cloudSoarNotificationTriage + - cloudSoarIncidentTriageBulkPhysicalDelete + - cloudSoarIncidentNotesAccess + - cloudSoarAPIUse + - cloudSoarIncidentPlaybooksEdit + - cloudSoarDashboardAll + - cloudSoarEntitiesManage + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccessAll + - cloudSoarPlaybooksConfigure + - cloudSoarIncidentAccessAll + - cloudSoarCustomizationLogo + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTriageView + - cloudSoarIntegrationsConfigure + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentAccess + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarIncidentBulkOperations + - cloudSoarCustomizationFields + - cloudSoarIncidentTaskEdit + - cloudSoarDashboardAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarUserManagementGroups + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentWarRoomUse + - cloudSoarReportAccess + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAutomationRulesAccess + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarObservabilityManagement + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + RoleModelV2: + type: object + x-tf-generated-properties: id,name,description,logAnalyticsFilter,auditDataFilter,securityDataFilter,selectionType,selectedViews,capabilities + x-tf-resource-name: RoleV2 + required: + - name + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/ViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - manageIndexes + - manageDataStreams + - viewParsers + - viewDataStreams + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - ipWhitelisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + - shareDashboardWhitelist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + - cseViewAutomations + - cseManageContextActions + - cseViewNetworkBlocks + - cseManageInsightTags + - cseViewRules + - cseViewThreatIntelligence + - cseCommentOnInsights + - cseViewEntityGroups + - cseManageEntityConfiguration + - cseManageNetworkBlocks + - cseManageMatchLists + - cseViewCustomInsights + - cseManageActions + - cseManageAutomations + - cseManageMappings + - cseManageThreatIntelligence + - cseViewActions + - cseCreateInsights + - cseManageTagSchemas + - cseInvokeInsights + - cseManageCustomEntityType + - cseViewTagSchemas + - cseDeleteInsights + - cseManageCustomInsights + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseManageEntityCriticality + - cseViewEntityCriticality + - cseViewEntity + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseViewMappings + - cseViewCustomEntityType + - cseManageEntityGroups + - cseViewCustomInsightStatuses + - cseViewEnrichments + - cseManageInsightSignals + - cseManageRules + - cseManageArtifacts + - cseViewMatchLists + - cseManageInsightPolicy + - cseManageEnrichments + - cseViewEntityConfiguration + - cseManageEntity + - cseExecuteAutomations + - cseManageSuppressedEntities + - cseManageInsightStatus + - cseManageInsightAssignee + - cseManageFavoriteFields + - cseViewSuppressedEntities + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + - viewMutingSchedules + - manageMutingSchedules + - adminMonitorsV2 + + ### SLO + - viewSlos + - manageSlos + + ### CloudSoar + - cloudSoarPlaybooksAccess + - cloudSoarNotificationConfigure + - cloudSoarReportAll + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTaskView + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentNotesEdit + - cloudSoarAPIEmailEdit + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentPlaybooksManage + - cloudSoarGeneralConfigure + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarIncidentAttachmentsAccess + - cloudSoarAppCentralAccess + - cloudSoarBridgeMonitoringAccess + - viewCloudSoar + - cloudSoarIncidentView + - cloudSoarObservabilityAccess + - cloudSoarAPIEmailRead + - cloudSoarAppCentralExport + - cloudSoarWidgetsAll + - cloudSoarIncidentTaskReassign + - cloudSoarIntegrationsAccess + - cloudSoarCustomizationIncidentLabels + - cloudSoarAutomationRulesConfigure + - cloudSoarIncidentTaskAccessAll + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentEdit + - cloudSoarNotificationTriage + - cloudSoarIncidentTriageBulkPhysicalDelete + - cloudSoarIncidentNotesAccess + - cloudSoarAPIUse + - cloudSoarIncidentPlaybooksEdit + - cloudSoarDashboardAll + - cloudSoarEntitiesManage + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccessAll + - cloudSoarPlaybooksConfigure + - cloudSoarIncidentAccessAll + - cloudSoarCustomizationLogo + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTriageView + - cloudSoarIntegrationsConfigure + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentAccess + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarIncidentBulkOperations + - cloudSoarCustomizationFields + - cloudSoarIncidentTaskEdit + - cloudSoarDashboardAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarUserManagementGroups + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentWarRoomUse + - cloudSoarReportAccess + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAutomationRulesAccess + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarObservabilityManagement + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the role. + example: 0000000000E20FE3 + systemDefined: + type: boolean + description: Role is system or user defined. + example: false + GetRoleDefinitionV2: + type: object + required: + - name + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/GetViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the role. + example: 0000000000E20FE3 + systemDefined: + type: boolean + description: Role is system or user defined. + example: false + UpdateRoleDefinitionV2: + required: + - auditDataFilter + - capabilities + - description + - logAnalyticsFilter + - name + - securityDataFilter + - selectedViews + - selectionType + - users + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/ViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + ViewFilterDefinition: + required: + - viewName + type: object + properties: + viewName: + type: string + description: Name of the view. + example: auditData + RoleDefinition: + required: + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/GetViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + GetViewFilterDefinition: + required: + - viewName + type: object + properties: + viewName: + type: string + description: Name of the view. Help Doc:- (https://help.sumologic.com/docs/manage/partitions-data-tiers/) + example: auditData diff --git a/provider-dev/source/saml.yaml b/provider-dev/source/saml.yaml new file mode 100644 index 0000000..74b3346 --- /dev/null +++ b/provider-dev/source/saml.yaml @@ -0,0 +1,599 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Saml API + description: SAML identity providers, allowlisted users and SAML lockdown. + version: 1.0.0 +paths: + /v1/saml/identityProviders: + get: + tags: + - samlConfigurationManagement + summary: Get a list of SAML configurations. + description: Get a list of all SAML configurations in the organization. + operationId: getIdentityProviders + responses: + '200': + description: A list of SAML configurations in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/GetIdentityProvidersResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-stackql-bare-array-wrap: + wrapperKey: identity_providers + wrapperName: GetIdentityProvidersResponse + mediaType: application/json + scalar: false + post: + tags: + - samlConfigurationManagement + summary: Create a new SAML configuration. + description: Create a new SAML configuration in the organization. + operationId: createIdentityProvider + parameters: [] + requestBody: + description: The configuration of the SAML identity provider. + content: + application/json: + schema: + $ref: '#/components/schemas/SamlIdentityProviderRequest' + required: true + responses: + '200': + description: The SAML configuration was successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/SamlIdentityProvider' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/saml/identityProviders/{id}: + put: + tags: + - samlConfigurationManagement + summary: Update a SAML configuration. + description: Update an existing SAML configuration in the organization. + operationId: updateIdentityProvider + parameters: + - name: id + in: path + description: Identifier of the SAML configuration to update. + required: true + schema: + type: string + requestBody: + description: Information to update in the SAML configuration. + content: + application/json: + schema: + $ref: '#/components/schemas/SamlIdentityProviderRequest' + required: true + responses: + '200': + description: The SAML configuration was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/SamlIdentityProvider' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - samlConfigurationManagement + summary: Delete a SAML configuration. + description: Delete a SAML configuration with the given identifier from the organization. + operationId: deleteIdentityProvider + parameters: + - name: id + in: path + description: Identifier of the SAML configuration to delete. + required: true + schema: + type: string + responses: + '204': + description: The SAML configuration was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/saml/allowlistedUsers: + get: + tags: + - samlConfigurationManagement + summary: Get list of allowlisted users. + description: Get a list of allowlisted users. + operationId: getAllowlistedUsers + responses: + '200': + description: A list of allowlisted users from the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/GetAllowlistedUsersResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-stackql-bare-array-wrap: + wrapperKey: allowlisted_users + wrapperName: GetAllowlistedUsersResponse + mediaType: application/json + scalar: false + /v1/saml/allowlistedUsers/{userId}: + post: + tags: + - samlConfigurationManagement + summary: Allowlist a user. + description: Allowlist a user from SAML lockdown allowing them to sign in using a password in addition to SAML. + operationId: createAllowlistedUser + parameters: + - name: userId + in: path + description: Identifier of the user. + required: true + schema: + type: string + responses: + '200': + description: User was successfully allowlisted. + content: + application/json: + schema: + $ref: '#/components/schemas/AllowlistedUserResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - samlConfigurationManagement + summary: Remove an allowlisted user. + description: Remove an allowlisted user requiring them to sign in using SAML. + operationId: deleteAllowlistedUser + parameters: + - name: userId + in: path + description: Identifier of user that will no longer be allowlisted from SAML Lockdown. + required: true + schema: + type: string + responses: + '204': + description: User was successfully removed from the allowlist for SAML Lockdown. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/saml/lockdown/enable: + post: + tags: + - samlConfigurationManagement + summary: Require SAML for sign-in. + description: Enabling SAML lockdown requires users to sign in using SAML preventing them from logging in with an email and password. + operationId: enableSamlLockdown + responses: + '204': + description: SAML lockdown was enabled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/saml/lockdown/disable: + post: + tags: + - samlConfigurationManagement + summary: Disable SAML lockdown. + description: Disable SAML lockdown for the organization. + operationId: disableSamlLockdown + responses: + '204': + description: SAML lockdown was disabled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/saml/identityProviders/{id}/metadata: + get: + tags: + - samlConfigurationManagement + summary: Get SAML configuration metadata XML. + description: Get metadata XML for a specific SAML configuration within the organization. + operationId: getSamlMetadata + parameters: + - name: id + in: path + description: Identifier of the SAML configuration for which metadata should be returned. + required: true + schema: + type: string + responses: + '200': + description: A SAML configuration metadata XML within the organization. + content: + application/xml: + schema: + type: string + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + SamlIdentityProvider: + type: object + required: + - configurationName + - issuer + - x509cert1 + - certificate + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + spInitiatedLoginPath: + type: string + description: This property has been deprecated and is no longer used. + example: http://www.okta.com/abxcseyuiwelflkdjh + deprecated: true + default: '' + configurationName: + type: string + description: Name of the SSO policy or another name used to describe the policy internally. + example: SumoLogic + issuer: + type: string + description: The unique URL assigned to the organization by the SAML Identity Provider. + example: http://www.okta.com/abxcseyuiwelflkdjh + spInitiatedLoginEnabled: + type: boolean + description: True if Sumo Logic redirects users to your identity provider with a SAML AuthnRequest when signing in. + default: false + authnRequestUrl: + type: string + description: The URL that the identity provider has assigned for Sumo Logic to submit SAML authentication requests to the identity provider. + example: https://www.okta.com/app/sumologic/abxcseyuiwelflkdjh/sso/saml + default: '' + x509cert1: + type: string + description: The certificate is used to verify the signature in SAML assertions. + x509cert2: + type: string + description: The backup certificate used to verify the signature in SAML assertions when x509cert1 expires. + default: '' + x509cert3: + type: string + description: The backup certificate used to verify the signature in SAML assertions when x509cert1 expires and x509cert2 is empty. + default: '' + onDemandProvisioningEnabled: + $ref: '#/components/schemas/OnDemandProvisioningInfo' + rolesAttribute: + type: string + description: The role that Sumo Logic will assign to users when they sign in. + example: Sumo_Role + default: '' + logoutEnabled: + type: boolean + description: True if users are redirected to a URL after signing out of Sumo Logic. + default: false + logoutUrl: + type: string + description: The URL that users will be redirected to after signing out of Sumo Logic. + example: https://www.sumologic.com + default: '' + emailAttribute: + type: string + description: The email address of the new user account. + example: attribute/subject + default: '' + debugMode: + type: boolean + description: True if additional details are included when a user fails to sign in. + default: false + signAuthnRequest: + type: boolean + description: True if Sumo Logic will send signed Authn requests to the identity provider. + default: false + disableRequestedAuthnContext: + type: boolean + description: True if Sumo Logic will include the RequestedAuthnContext element of the SAML AuthnRequests it sends to the identity provider. + default: false + isRedirectBinding: + type: boolean + description: True if the SAML binding is of HTTP Redirect type. + default: false + certificate: + type: string + description: Authentication Request Signing Certificate for the user. + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier of the SAML Identity Provider. + example: 00000000361130F7 + assertionConsumerUrl: + type: string + description: The URL on Sumo Logic where the IdP will redirect to with its authentication response. + example: https://service.sumologic.com/sumo/saml/consume/9483922 + default: '' + entityId: + type: string + description: A unique identifier that is the intended audience of the SAML assertion. + example: https://service.sumologic.com/sumo/saml/9483922 + default: '' + metadataUrl: + type: string + description: The URL to fetch SAML metadata XML. + example: https://api.sumologic.com/api/v1/saml/identityProviders/00000000361130F7/metadata + default: '' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + SamlIdentityProviderRequest: + required: + - configurationName + - issuer + - x509cert1 + type: object + properties: + spInitiatedLoginPath: + type: string + description: This property has been deprecated and is no longer used. + example: http://www.okta.com/abxcseyuiwelflkdjh + deprecated: true + default: '' + configurationName: + type: string + description: Name of the SSO policy or another name used to describe the policy internally. + example: SumoLogic + issuer: + type: string + description: The unique URL assigned to the organization by the SAML Identity Provider. + example: http://www.okta.com/abxcseyuiwelflkdjh + spInitiatedLoginEnabled: + type: boolean + description: True if Sumo Logic redirects users to your identity provider with a SAML AuthnRequest when signing in. + default: false + authnRequestUrl: + type: string + description: The URL that the identity provider has assigned for Sumo Logic to submit SAML authentication requests to the identity provider. + example: https://www.okta.com/app/sumologic/abxcseyuiwelflkdjh/sso/saml + default: '' + x509cert1: + type: string + description: The certificate is used to verify the signature in SAML assertions. + x509cert2: + type: string + description: The backup certificate used to verify the signature in SAML assertions when x509cert1 expires. + default: '' + x509cert3: + type: string + description: The backup certificate used to verify the signature in SAML assertions when x509cert1 expires and x509cert2 is empty. + default: '' + onDemandProvisioningEnabled: + $ref: '#/components/schemas/OnDemandProvisioningInfo' + rolesAttribute: + type: string + description: The role that Sumo Logic will assign to users when they sign in. + example: Sumo_Role + default: '' + logoutEnabled: + type: boolean + description: True if users are redirected to a URL after signing out of Sumo Logic. + default: false + logoutUrl: + type: string + description: The URL that users will be redirected to after signing out of Sumo Logic. + example: https://www.sumologic.com + default: '' + emailAttribute: + type: string + description: The email address of the new user account. + example: attribute/subject + default: '' + debugMode: + type: boolean + description: True if additional details are included when a user fails to sign in. + default: false + signAuthnRequest: + type: boolean + description: True if Sumo Logic will send signed Authn requests to the identity provider. + default: false + disableRequestedAuthnContext: + type: boolean + description: True if Sumo Logic will include the RequestedAuthnContext element of the SAML AuthnRequests it sends to the identity provider. + default: false + isRedirectBinding: + type: boolean + description: True if the SAML binding is of HTTP Redirect type. + default: false + AllowlistedUserResult: + required: + - canManageSaml + - email + - firstName + - isActive + - lastLogin + - lastName + - userId + type: object + properties: + userId: + type: string + description: Unique identifier of the user. + firstName: + type: string + description: First name of the user. + lastName: + type: string + description: Last name of the user. + email: + type: string + description: Email of the user. + example: john@sumologic.com + canManageSaml: + type: boolean + description: If the user can manage SAML Configurations. + isActive: + type: boolean + description: Checks if the user is active. + lastLogin: + type: string + description: Timestamp of the last login of the user. + format: date-time + AuthnCertificateResult: + required: + - certificate + type: object + properties: + certificate: + type: string + description: Authentication Request Signing Certificate for the user. + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + OnDemandProvisioningInfo: + required: + - onDemandProvisioningRoles + type: object + properties: + firstNameAttribute: + type: string + description: First name attribute of the new user account. + example: http://schemas.microsoft.com/ws/2008/06/identity/claims/givenname + default: '' + lastNameAttribute: + type: string + description: Last name attribute of the new user account. + example: http://schemas.microsoft.com/ws/2008/06/identity/claims/surname + default: '' + onDemandProvisioningRoles: + type: array + description: Sumo Logic RBAC roles to be assigned when user accounts are provisioned. + example: '["Analyst", "Administrator"]' + items: + type: string + default: [] + GetIdentityProvidersResponse: + type: object + properties: + identity_providers: + type: array + items: + $ref: '#/components/schemas/SamlIdentityProvider' + GetAllowlistedUsersResponse: + type: object + properties: + allowlisted_users: + type: array + items: + $ref: '#/components/schemas/AllowlistedUserResult' diff --git a/provider-dev/source/scheduled_views.yaml b/provider-dev/source/scheduled_views.yaml new file mode 100644 index 0000000..0d6746a --- /dev/null +++ b/provider-dev/source/scheduled_views.yaml @@ -0,0 +1,531 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Scheduled Views API + description: Scheduled views and their quota. + version: 1.0.0 +paths: + /v1/scheduledViews: + get: + tags: + - scheduledViewManagement + summary: Get a list of scheduled views. + description: Get a list of all scheduled views in the organization. The response is paginated with a default limit of 100 scheduled views per page. + operationId: listScheduledViews + parameters: + - name: limit + in: query + description: Limit the number of scheduled views returned in the response. The number of scheduled views returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: A paginated list of scheduled views in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListScheduledViewsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - scheduledViewManagement + summary: Create a new scheduled view. + description: Creates a new scheduled view in the organization. + operationId: createScheduledView + parameters: [] + requestBody: + description: Information about the new scheduled view. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateScheduledViewDefinition' + required: true + responses: + '200': + description: The scheduled view has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledView' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createScheduledView + /v1/scheduledViews/{id}: + get: + tags: + - scheduledViewManagement + summary: Get a scheduled view. + description: Get a scheduled view with the given identifier. + operationId: getScheduledView + parameters: + - name: id + in: path + description: Identifier of the scheduled view to fetch. + required: true + schema: + type: string + responses: + '200': + description: Scheduled view object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledView' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getScheduledView + put: + tags: + - scheduledViewManagement + summary: Update a scheduled view. + description: Update an existing scheduled view. + operationId: updateScheduledView + parameters: + - name: id + in: path + description: Identifier of the scheduled view to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the scheduled view. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateScheduledViewDefinition' + required: true + responses: + '200': + description: The scheduled view was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledView' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateScheduledView + /v1/scheduledViews/{id}/disable: + delete: + tags: + - scheduledViewManagement + summary: Disable a scheduled view. + description: Disable a scheduled view with the given identifier. + operationId: disableScheduledView + parameters: + - name: id + in: path + description: Identifier of the scheduled view to disable. + required: true + schema: + type: string + responses: + '204': + description: The scheduled view was disabled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteScheduledView + /v1/scheduledViews/{id}/pause: + post: + tags: + - scheduledViewManagement + summary: Pause a scheduled view. + description: Pause a scheduled view with the given identifier. + operationId: pauseScheduledView + parameters: + - name: id + in: path + description: Identifier of the scheduled view to pause. + required: true + schema: + type: string + responses: + '200': + description: The scheduled view was paused successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledView' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/scheduledViews/{id}/start: + post: + tags: + - scheduledViewManagement + summary: Start a scheduled view. + description: Start a scheduled view with the given identifier. + operationId: startScheduledView + parameters: + - name: id + in: path + description: Identifier of the scheduled view to start. + required: true + schema: + type: string + responses: + '200': + description: The scheduled view was started successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledView' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/scheduledViews/quota: + get: + tags: + - scheduledViewManagement + summary: Provides information about scheduled views quota. + description: Every customer can use a limited number of scheduled views. This endpoint allows learning about these limitations and remaining quota. + operationId: getScheduledViewsQuota + responses: + '200': + description: Current state of scheduled views quota usage (limit and remaining). + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledViewsQuotaUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListScheduledViewsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of scheduled views. + items: + $ref: '#/components/schemas/ScheduledView' + next: + type: string + description: Next continuation token. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreateScheduledViewDefinition: + required: + - indexName + - query + - startTime + type: object + properties: + query: + maxLength: 16384 + minLength: 1 + type: string + description: The query that defines the data to be included in the scheduled view. + example: _sourceCategory=*/Apache + indexName: + maxLength: 255 + minLength: 0 + type: string + description: Name of the index for the scheduled view. + example: TestScheduledView + startTime: + type: string + description: Start timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + retentionPeriod: + type: integer + description: The number of days to retain data in the scheduled view, or -1 to use the default value for your account. Only relevant if your account has multi-retention enabled. + format: int32 + example: 60 + default: -1 + dataForwardingId: + type: string + description: An optional ID of a data forwarding configuration to be used by the scheduled view. + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + x-pattern-message: should be either AutoParse or Manual + timeZone: + type: string + description: Time zone for ingesting data in scheduled view. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + default: UTC + description: + maxLength: 65535 + type: string + description: Description of the scheduled view. + default: '' + ScheduledView: + type: object + x-tf-generated-properties: id,query,indexName,startTime,retentionPeriod,parsingMode + x-tf-resource-name: ScheduledView + required: + - indexName + - query + - startTime + - id + properties: + query: + maxLength: 16384 + minLength: 1 + type: string + description: The query that defines the data to be included in the scheduled view. + example: _sourceCategory=*/Apache + indexName: + maxLength: 255 + minLength: 0 + type: string + description: Name of the index for the scheduled view. + example: TestScheduledView + startTime: + type: string + description: Start timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + retentionPeriod: + type: integer + description: The number of days to retain data in the scheduled view, or -1 to use the default value for your account. Only relevant if your account has multi-retention enabled. + format: int32 + example: 60 + default: -1 + dataForwardingId: + type: string + description: An optional ID of a data forwarding configuration to be used by the scheduled view. + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + x-pattern-message: should be either AutoParse or Manual + timeZone: + type: string + description: Time zone for ingesting data in scheduled view. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + default: UTC + description: + maxLength: 65535 + type: string + description: Description of the scheduled view. + default: '' + newRetentionPeriod: + type: integer + description: If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. + format: int32 + example: 300 + retentionEffectiveAt: + type: string + description: When the newRetentionPeriod will become effective in UTC format. + format: date-time + id: + type: string + description: Identifier for the scheduled view. + indexId: + type: string + description: The `id` of the Index where the output from Scheduled view is stored. + example: '1' + createdAt: + type: string + description: Creation timestamp in UTC. + format: date-time + modifiedAt: + type: string + description: Last modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdByOptimizeIt: + type: boolean + description: If the scheduled view is created by OptimizeIt. + error: + type: string + description: Errors related to the scheduled view. + status: + type: string + description: |- + Status of the scheduled view. Possible values are: + 1. `NOT_STARTED` + 2. `FILLING` + 3. `STOPPED` + 4. `COMPLETE` + 5. `FAILED` + 6. `PAUSED` + totalBytes: + type: integer + description: Total storage consumed by the scheduled view. + format: int64 + totalMessageCount: + type: integer + description: Total number of messages for the scheduled view. + format: int64 + createdBy: + type: string + description: Identifier of the user who created the scheduled view. + example: 0000000006743FE8 + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + filledRanges: + type: array + description: List of the different units of filled ranges since the autoview has been created. + items: + $ref: '#/components/schemas/FilledRange' + lastAccessedAt: + type: string + description: Last accessed timestamp in UTC + format: date-time + UpdateScheduledViewDefinition: + type: object + properties: + dataForwardingId: + type: string + description: An optional ID of a data forwarding configuration to be used by the scheduled view. + retentionPeriod: + type: integer + description: The number of days to retain data in the scheduled view, or -1 to use the default value for your account. Only relevant if your account has multi-retention. enabled. + format: int32 + example: 365 + default: -1 + reduceRetentionPeriodImmediately: + type: boolean + description: This is required if the newly specified `retentionPeriod` is less than the existing retention period. In such a situation, a value of `true` says that data between the existing retention period and the new retention period should be deleted immediately; if `false`, such data will be deleted after seven days. This property is optional and ignored if the specified `retentionPeriod` is greater than or equal to the current retention period. + default: false + timeZone: + type: string + description: Updates the time zone for ingesting data in scheduled view to the specified timezone ( does nothing if not specified ). Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + description: + maxLength: 65535 + type: string + description: Description of the scheduled view. + ScheduledViewsQuotaUsage: + required: + - quota + - remaining + type: object + properties: + quota: + type: integer + description: Maximum number of Scheduled Views allowed. + format: int32 + example: 200 + remaining: + type: integer + description: Remaining number of Scheduled Views allowed. + format: int32 + example: 121 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ViewRetentionProperties: + type: object + properties: + newRetentionPeriod: + type: integer + description: If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. + format: int32 + example: 300 + retentionEffectiveAt: + type: string + description: When the newRetentionPeriod will become effective in UTC format. + format: date-time + FilledRange: + required: + - endTime + - startTime + type: object + properties: + startTime: + type: string + description: Start of the timestamp for each unit of filled ranges, expressed in UTC. + format: date-time + endTime: + type: string + description: End of the timestamp for each unit of filled ranges, expressed in UTC. + format: date-time + description: Range of timestamps already filled since the autoview has been created. diff --git a/provider-dev/source/schemas.yaml b/provider-dev/source/schemas.yaml new file mode 100644 index 0000000..a6b14bb --- /dev/null +++ b/provider-dev/source/schemas.yaml @@ -0,0 +1,273 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Schemas API + description: Schema identities grouped by product (Schema Base Management). + version: 1.0.0 +paths: + /v1/schemaIdentitiesGrouped: + get: + tags: + - schemaBaseManagement + summary: Get schema base identities grouped by type and sorted by version. + description: Get a summary of all available schema bases grouped by type and their versions sorted by latest. + operationId: getSchemaIdentitiesGrouped + responses: + '200': + description: A summary of all available schema bases grouped by type and their versions sorted by latest. + content: + application/json: + schema: + $ref: '#/components/schemas/ListSchemaBaseTypeToVersionsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListSchemaBaseTypeToVersionsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of maps containing the mappings schema type -> versions. + items: + $ref: '#/components/schemas/SchemaBaseTypeToVersionsResponse' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + SchemaBaseTypeToVersionsResponse: + required: + - type + - versions + type: object + properties: + type: + type: string + description: The type of the schema. + example: Okta + versions: + type: array + description: List of schema base identities sorted by latest version for a specific schema type. + items: + $ref: '#/components/schemas/SchemaBaseComplete' + description: Map of the schema base type to its list of schema base identities. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + SchemaBaseComplete: + type: object + required: + - family + - schema + - type + - version + - id + properties: + type: + maxLength: 128 + minLength: 1 + type: string + description: The type of the integration. + example: Okta + version: + maxLength: 128 + minLength: 5 + pattern: ^([0-9]+)\.([0-9]+)\.([0-9]+)$ + type: string + description: The version (or image tag) of the integration. Follows the Major.Minor.Patch semantic versioning format. + example: 1.0.0 + x-pattern-message: 'must follow semantic versioning: https://semver.org/' + description: + maxLength: 1024 + minLength: 0 + type: string + description: The description of the integration. + example: An Okta integration that collects Okta event logs into Sumo Logic. + manifest: + maxProperties: 1000 + type: object + additionalProperties: true + description: The manifest of the integration. + schema: + maxProperties: 1000 + type: object + additionalProperties: true + description: The schema in JSON Schema specification. + family: + type: string + description: The family to which schema belong. + enum: + - OTC_Source_Template + - OTEL_Component + id: + type: string + description: Unique identifier of the schema. + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + templateYaml: + maxLength: 10960 + minLength: 1 + type: string + description: The template yaml of schema. + example: example templateYaml + SchemaBaseIdentityWithMetadata: + type: object + required: + - family + - schema + - type + - version + - id + properties: + type: + maxLength: 128 + minLength: 1 + type: string + description: The type of the integration. + example: Okta + version: + maxLength: 128 + minLength: 5 + pattern: ^([0-9]+)\.([0-9]+)\.([0-9]+)$ + type: string + description: The version (or image tag) of the integration. Follows the Major.Minor.Patch semantic versioning format. + example: 1.0.0 + x-pattern-message: 'must follow semantic versioning: https://semver.org/' + description: + maxLength: 1024 + minLength: 0 + type: string + description: The description of the integration. + example: An Okta integration that collects Okta event logs into Sumo Logic. + manifest: + maxProperties: 1000 + type: object + additionalProperties: true + description: The manifest of the integration. + schema: + maxProperties: 1000 + type: object + additionalProperties: true + description: The schema in JSON Schema specification. + family: + type: string + description: The family to which schema belong. + enum: + - OTC_Source_Template + - OTEL_Component + id: + type: string + description: Unique identifier of the schema. + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + SchemaBaseTemplateYaml: + type: object + properties: + templateYaml: + maxLength: 10960 + minLength: 1 + type: string + description: The template yaml of schema. + example: example templateYaml + SchemaBaseIdentity: + required: + - family + - schema + - type + - version + type: object + properties: + type: + maxLength: 128 + minLength: 1 + type: string + description: The type of the integration. + example: Okta + version: + maxLength: 128 + minLength: 5 + pattern: ^([0-9]+)\.([0-9]+)\.([0-9]+)$ + type: string + description: The version (or image tag) of the integration. Follows the Major.Minor.Patch semantic versioning format. + example: 1.0.0 + x-pattern-message: 'must follow semantic versioning: https://semver.org/' + description: + maxLength: 1024 + minLength: 0 + type: string + description: The description of the integration. + example: An Okta integration that collects Okta event logs into Sumo Logic. + manifest: + maxProperties: 1000 + type: object + additionalProperties: true + description: The manifest of the integration. + schema: + maxProperties: 1000 + type: object + additionalProperties: true + description: The schema in JSON Schema specification. + family: + type: string + description: The family to which schema belong. + enum: + - OTC_Source_Template + - OTEL_Component diff --git a/provider-dev/source/scim.yaml b/provider-dev/source/scim.yaml new file mode 100644 index 0000000..60b4952 --- /dev/null +++ b/provider-dev/source/scim.yaml @@ -0,0 +1,529 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Scim API + description: SCIM 2.0 user provisioning. + version: 1.0.0 +paths: + /v1/scim/Users: + get: + tags: + - scimUserManagement + summary: List SCIM Users + description: Retrieves a list of users in the SCIM system, with optional pagination + operationId: listSCIMUsers + parameters: + - name: startIndex + in: query + description: The index of the first result to return. Defaults to 1 if not specified, a value less than 1 SHALL be interpreted as 1 + required: false + schema: + minimum: 1 + type: integer + format: int32 + default: 1 + - name: count + in: query + description: The maximum number of results to return. Defaults to 100 + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + default: 100 + - name: filter + in: query + description: Find user with the given email address + required: false + schema: + minLength: 1 + type: string + example: emails.value eq "john@doe.com" + - name: sortOrder + in: query + description: The sort order. Use "ascending" or "descending" + required: false + schema: + type: string + example: descending + enum: + - ascending + - descending + - name: sortBy + in: query + description: Sort the list of users by the `givenName`, `familyName`, or `emails` field + required: false + schema: + type: string + example: givenName + responses: + '200': + description: A paginated list of users in the organization + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + post: + tags: + - scimUserManagement + summary: Create SCIM User + description: Creates a new user in the SCIM system + operationId: createSCIMUser + requestBody: + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMCreateUserDefinition' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + required: true + responses: + '201': + description: The user has been created successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + /v1/scim/Users/{id}: + get: + tags: + - scimUserManagement + summary: Get a SCIM User + description: Fetches the details of a SCIM user by their unique identifier + operationId: getSCIMUserById + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user + required: true + schema: + type: string + responses: + '200': + description: User details retrieved successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + put: + tags: + - scimUserManagement + summary: Update SCIM User + description: Updates an existing user's attributes in the SCIM system + operationId: updateSCIMUser + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user + required: true + schema: + type: string + requestBody: + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUpdateUserDefinition' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + required: true + responses: + '200': + description: The user has been updated successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + delete: + tags: + - scimUserManagement + summary: Delete SCIM User + description: Deletes a SCIM user by their unique identifier + operationId: deleteSCIMUserById + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user to delete + required: true + schema: + type: string + responses: + '204': + description: User was deleted successfully + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + patch: + tags: + - scimUserManagement + summary: Update SCIM User Attributes + description: Updates specific attributes of an existing user in the SCIM system + operationId: patchSCIMUser + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user + required: true + schema: + type: string + requestBody: + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMPatchUserDefinition' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + required: true + responses: + '200': + description: The user attributes updated successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' +components: + schemas: + ListSCIMUserModelsResponse: + type: object + properties: + totalResults: + type: integer + description: Total number of users that match the filter criteria + example: 100 + startIndex: + minimum: 0 + type: integer + description: The index of the first returned result + format: int32 + example: 0 + default: 0 + itemsPerPage: + type: integer + description: The number of results returned in this page + example: 10 + Resources: + type: array + description: List of SCIM user resources + items: + $ref: '#/components/schemas/SCIMUserModel' + ErrorResponseScim: + required: + - schemas + - status + type: object + properties: + status: + type: integer + description: The HTTP status code. + example: 409 + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + scimType: + type: string + description: A SCIM detail error keyword. + example: uniqueness + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + SCIMCreateUserDefinition: + required: + - emails + - name + - roles + - schemas + - userName + type: object + properties: + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + userName: + maxLength: 64 + type: string + description: Unique identifier for the user (email) + example: jdoe@example.com + name: + $ref: '#/components/schemas/NameInfo' + emails: + type: array + description: Sumo logic accepts only one email address + items: + type: object + properties: + value: + type: string + format: email + example: jdoe@example.com + type: + type: string + example: work + primary: + type: boolean + example: true + default: true + roles: + type: array + description: roles should exactly match with role names within sumologic. `roles` can be either `Array of strings` or `Array of objects` as shown in the payload. `primary` always set to 'true' as sumologic doesn't have a concept of primary/secondary roles + example: + - - role1 + - role2 + - - value: role1 + primary: true + - value: role2 + primary: true + items: {} + SCIMUserModel: + type: object + required: + - emails + - name + - roles + - schemas + - userName + - id + properties: + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + userName: + maxLength: 64 + type: string + description: Unique identifier for the user (email) + example: jdoe@example.com + name: + $ref: '#/components/schemas/NameInfo' + emails: + type: array + description: Sumo logic accepts only one email address + items: + type: object + properties: + value: + type: string + format: email + example: jdoe@example.com + type: + type: string + example: work + primary: + type: boolean + example: true + default: true + roles: + type: array + description: roles should exactly match with role names within sumologic. `roles` can be either `Array of strings` or `Array of objects` as shown in the payload. `primary` always set to 'true' as sumologic doesn't have a concept of primary/secondary roles + example: + - - role1 + - role2 + - - value: role1 + primary: true + - value: role2 + primary: true + items: {} + id: + type: string + description: Unique SCIM identifier for the user + example: 000000000FE20FE2 + active: + type: boolean + description: True if the user is active + example: true + meta: + $ref: '#/components/schemas/ResourceData' + SCIMUpdateUserDefinition: + required: + - active + - emails + - name + - roles + - schemas + type: object + properties: + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + name: + $ref: '#/components/schemas/NameInfo' + active: + type: boolean + description: Indicates if the user is active + example: true + emails: + type: array + description: Sumo logic accepts only one email address + items: + type: object + properties: + value: + type: string + format: email + example: jdoe@example.com + type: + type: string + example: work + primary: + type: boolean + example: true + default: true + roles: + type: array + description: roles should exactly match with role names within sumologic. `roles` can be either `Array of strings` or `Array of objects` as shown in the payload. `primary` always set to 'true' as sumologic doesn't have a concept of primary/secondary roles + example: + - - role1 + - role2 + - - value: role1 + primary: true + - value: role2 + primary: true + items: {} + SCIMPatchUserDefinition: + required: + - Operations + - schemas + type: object + properties: + schemas: + type: array + description: Defines the SCIM schemas for the patch operation + example: + - urn:ietf:params:scim:api:messages:2.0:PatchOp + items: + type: string + Operations: + type: array + description: Updates one or more attributes of a SCIM resource using a sequence of operations + items: + type: object + properties: + op: + pattern: (?i)^(replace|add|remove)$ + type: string + description: Supports 'add', 'replace' and 'remove' operations + example: replace + x-pattern-message: '`replace`, `add`, `remove`' + path: + type: string + description: Attribute path to modify + example: name.familyName + value: + type: object + properties: + value: + type: string + NameInfo: + required: + - familyName + - givenName + type: object + properties: + givenName: + type: string + description: Given name of the user (firstName) + example: John + familyName: + type: string + description: Family name of the user (lastName) + example: Doe + ResourceData: + type: object + properties: + resourceType: + type: string + description: The name of the resource type of the resource + example: User + created: + type: string + description: Creation timestamp in date-time format + format: date-time + example: '2024-01-01T12:00:00.000Z' + lastModified: + type: string + description: Last modification timestamp in date-time format + format: date-time + example: '2024-01-01T12:00:00.000Z' + description: Resource meta data of a user diff --git a/provider-dev/source/search_jobs.yaml b/provider-dev/source/search_jobs.yaml new file mode 100644 index 0000000..957574e --- /dev/null +++ b/provider-dev/source/search_jobs.yaml @@ -0,0 +1,628 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Search Jobs API + description: Search jobs (v2) - create a log search job, poll its status and page through its messages and records. + version: 1.0.0 +paths: + /v2/search/jobs: + post: + tags: + - searchJobManagement + summary: Create a search job. + description: Create a new search job. + operationId: createSearchJob + parameters: [] + requestBody: + description: Information about the new search job to be created. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateJobRequest' + required: true + responses: + '202': + description: The search job has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateJobResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/search/jobs/{jobId}: + get: + tags: + - searchJobManagement + summary: Get a search job's status. + description: Use the search job identifier to obtain the current status of a search job. + operationId: getSearchJobStatus + parameters: + - name: jobId + in: path + description: The identifier of the search job. + required: true + schema: + type: string + responses: + '200': + description: The search job's status. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchJobStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - searchJobManagement + summary: Delete a search job. + description: Use the search job identifier to delete the search job. + operationId: deleteSearchJob + parameters: + - name: jobId + in: path + description: The identifier of the search job to be deleted. + required: true + schema: + type: string + responses: + '200': + description: The search job was deleted successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchJobDeleteResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/search/jobs/{jobId}/messages: + get: + tags: + - searchJobManagement + summary: Get paginated messages from an offset. + description: Use the search job identifier to obtain the paginated messages from an offset. + operationId: getSearchJobPaginatedMessages + parameters: + - name: jobId + in: path + description: The identifier of the search job. + required: true + schema: + type: string + - name: offset + in: query + description: Return messages starting at this offset. + required: true + schema: + type: integer + - name: limit + in: query + description: | + Limit the number of messages returned in the response. The number of messages returned may be less than the `limit`. + required: true + schema: + maximum: 10000 + type: integer + responses: + '200': + description: A paginated list of messages. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchQueryPaginatedMessages' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/search/jobs/{jobId}/records: + get: + tags: + - searchJobManagement + summary: Get aggregated records. + description: Use the search job identifier to obtain the aggregated records from an offset. + operationId: getSearchJobPaginatedRecords + parameters: + - name: jobId + in: path + description: The identifier of the search job. + required: true + schema: + type: string + - name: offset + in: query + description: Return aggregated records starting at this offset. + required: true + schema: + type: integer + - name: limit + in: query + description: | + Limit the number of records returned in the response. + required: true + schema: + maximum: 10000 + type: integer + responses: + '200': + description: A paginated list of records. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchQueryPaginatedRecords' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + CreateJobRequest: + required: + - from + - query + - timezone + - to + type: object + properties: + query: + maxLength: 15000 + type: string + description: | + The actual search expression. Ensure your query follows [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259) and is valid JSON format, you may need to escape certain characters to follow the [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259). + example: _sourceCategory=service + from: + maxLength: 24 + type: string + description: | + The start date and time of the search. This follows the [ISO 8601](https://www.w3.org/TR/NOTE-datetime) date and time format. + example: '2017-07-26T00:00:00.000Z' + to: + maxLength: 24 + type: string + description: | + The end date and time of the search. This follows the [ISO 8601](https://www.w3.org/TR/NOTE-datetime) date and time format. + example: '2017-07-26T00:00:00.000Z' + timezone: + type: string + description: The time zone if from/to is not in milliseconds. See this [Wikipedia article](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for a list of time zone codes. + default: UTC + autoParsingMode: + pattern: ^(Manual|AutoParse)$ + type: string + description: | + Define the parsing mode to scan the JSON format log messages. Possible values are: + + AutoParse - System automatically figures out the fields to parse based on the search query. + + Manual - No fields are parsed out automatically. For more information, refer to the [Dynamic Parsing](https://help.sumologic.com/docs/manage/field-extractions/create-field-extraction-rule/). + example: Manual + default: Manual + x-pattern-message: should be either 'Manual' or 'AutoParse' + requiresRawMessages: + pattern: ^(true|false)$ + type: string + description: | + On enabling this field, the log messages applicable to the search are returned. Maximum value is 100,000. This is only applicable for aggregate queries. + default: 'false' + x-pattern-message: should be either 'true' or 'false' + maxRawRecords: + type: string + description: Maximum number of raw records to finish the search. + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime or searchableTime. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + childOrgIds: + type: array + description: | + List of child organization ids to run the search on. + example: + - '0000000000000001' + - '0000000000000002' + items: + type: string + includeAllChildOrgs: + type: boolean + description: | + When true, automatically resolves all child orgs of the authenticated parent and fans the search out across all of them. If this is set, it takes precedence over childOrgIds field. Default value is false. + default: false + CreateJobResponse: + type: object + properties: + warning: + type: string + description: Warnings value contains the detailed information about the warning while creating the search job. + id: + type: string + description: The search job identifier. + link: + $ref: '#/components/schemas/Link' + isAggregation: + type: boolean + description: Whether the query has aggregation operators. + isSummary: + type: boolean + description: Whether the query is a summary query. + isSortable: + type: boolean + description: Whether the results are sortable. + runnableQuery: + type: string + description: | + The final query string after parameterized variables are substituted, macros are expanded. + userReferencedFieldsSortable: + type: boolean + description: | + Whether the user's explicitly referenced fields can be re-sorted by clicking column headers. + operators: + type: array + description: | + List of special operators present in the query. + items: + type: string + tiersInQuery: + type: array + description: Analytics tiers referenced in the query. + items: + type: string + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + SearchJobStatusResponse: + type: object + properties: + warning: + type: string + description: Warnings value contains the detailed information about the warning while obtaining the current status of a search job. + state: + type: string + description: Search job state. In case you are checking status for a multi child org query, you might see another status as 'Done Gathering Partial Results' which means that the query failed for some of the child orgs. You can check their reasons in audit logs with the query Id. + example: DONE GATHERING RESULTS + histogramBuckets: + type: array + description: Histogram buckets for the query. + items: + $ref: '#/components/schemas/HistogramBucket' + messageCount: + type: integer + description: Number of messages found or produced so far. + format: int64 + recordCount: + type: integer + description: Number of records found or produced so far. + format: int64 + pendingWarnings: + type: array + description: Pending warnings that have accumulated since the last time the status was requested. + items: + type: string + pendingErrors: + type: array + description: Pending errors that have accumulated since the last time the status was requested. + items: + type: string + usageDetails: + type: object + properties: + dataScannedInBytes: + type: integer + description: Data Scanned in Bytes. + format: int64 + description: Usage details about the search job api. It includes data scanned in bytes during the search. + usageDetailsByMeteringType: + type: array + description: Usage details broken down by metering type. Each element contains dataScannedInBytes, meteringType, tier, and isChargeable. + items: + $ref: '#/components/schemas/UsageDetailsByMeteringType' + usageDetailsByTier: + type: array + description: Usage details broken down by analytics tier. Each element contains dataScannedInBytes and tier. + items: + $ref: '#/components/schemas/UsageDetailsByTier' + timeElapsed: + type: integer + description: Time elapsed in milliseconds since the search job started. + format: int64 + searchedTimeRange: + $ref: '#/components/schemas/SearchedTimeRange' + showLogLevels: + type: boolean + description: Whether log level distribution data is available for this search job. + pendingMessageLocatorsAndOffsets: + type: array + description: Pending message locators and offsets accumulated since the last status request. + items: + $ref: '#/components/schemas/PendingMessageLocatorsAndOffset' + jobId: + type: string + description: The job identifier for this search job. + userMessages: + type: array + description: Informational user messages generated during the search. Each element contains type, key, and data. + items: + $ref: '#/components/schemas/UserMessage' + performance: + $ref: '#/components/schemas/Performance' + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + SearchJobDeleteResponse: + type: object + properties: + warning: + type: string + description: Warnings value contains the detailed information about the warning while deleting a search job. + x-field-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + jobId: + type: string + description: The Id of the search job which is deleted. + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + SearchQueryPaginatedMessages: + required: + - fields + - messages + type: object + properties: + warning: + type: string + description: Detailed information about the warning while paging through the messages found by a search job. + fields: + type: array + description: List of all the fields defined for each of the messages returned. + items: + $ref: '#/components/schemas/Field' + messages: + type: array + description: Map of the field names to the field values. + items: + $ref: '#/components/schemas/Message' + autoPauseLimitReached: + type: boolean + description: Whether the auto-pause limit has been reached for this query. + SearchQueryPaginatedRecords: + required: + - fields + - records + type: object + properties: + warning: + type: string + description: Detailed information about the warning while paging through the records found by a search job. + fields: + type: array + description: List of all the fields defined for each of the records returned. + items: + $ref: '#/components/schemas/Field' + records: + type: array + description: Map of the field names to the field values. + items: + $ref: '#/components/schemas/Record' + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + Link: + type: object + properties: + rel: + type: string + description: Relation. + href: + type: string + description: URL of the search job. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + HistogramBucket: + required: + - count + - length + - startTimestamp + type: object + properties: + startTimestamp: + type: integer + description: Start time of the bucket. + format: int64 + length: + type: integer + description: Length is in milliseconds, tells the width of the bucket. + format: int64 + count: + type: integer + description: Count of messages in this bucket. + logLevel: + type: string + description: Log level of messages in this bucket. + UsageDetailsByMeteringType: + required: + - dataScannedInBytes + - isChargeable + - meteringType + - tier + type: object + properties: + dataScannedInBytes: + type: integer + description: Data scanned in bytes for this metering type. + format: int64 + meteringType: + type: string + description: The metering type. + tier: + type: string + description: The analytics tier. + isChargeable: + type: boolean + description: Whether this metering type is chargeable. + UsageDetailsByTier: + required: + - dataScannedInBytes + - tier + type: object + properties: + dataScannedInBytes: + type: integer + description: Data scanned in bytes for this tier. + format: int64 + tier: + type: string + description: The analytics tier. + SearchedTimeRange: + type: object + properties: + startMillis: + type: integer + description: Start of the searched time range in epoch milliseconds. + format: int64 + endMillis: + type: integer + description: End of the searched time range in epoch milliseconds. + format: int64 + description: The time range that has been searched so far. + PendingMessageLocatorsAndOffset: + required: + - messageLocator + - offset + type: object + properties: + messageLocator: + $ref: '#/components/schemas/MessageLocator' + offset: + type: integer + description: The offset of the message. + format: int64 + UserMessage: + required: + - key + - type + type: object + properties: + type: + type: string + description: The message type. + key: + type: string + description: The message key. + data: + type: string + description: The message data as a JSON string. + Performance: + type: object + properties: + difficulty: + type: string + description: The difficulty level of the search query. + enum: + - CALCULATION_DISABLED + - Unknown + - Easy + - Medium + - Hard + reasons: + type: array + description: Reasons explaining the difficulty classification. + items: + type: string + description: Performance characteristics of this search job. + Field: + required: + - fieldType + - keyField + - name + type: object + properties: + name: + type: string + description: Name of the field. + fieldType: + type: string + description: Type of the field. + example: long + keyField: + type: boolean + description: Flag if the field is a key field. + userReferenced: + type: boolean + description: Flag if the field is referenced by the user in the query. + autoParseUnreferenced: + type: boolean + description: Flag if the field was auto-parsed but not referenced in the query. + Message: + type: object + properties: + map: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map message values. + Record: + type: object + properties: + map: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map Records values. + MessageLocator: + type: object + properties: + blockId: + type: string + description: The block identifier. + messageId: + type: string + description: The message identifier. diff --git a/provider-dev/source/service_accounts.yaml b/provider-dev/source/service_accounts.yaml new file mode 100644 index 0000000..599a1fe --- /dev/null +++ b/provider-dev/source/service_accounts.yaml @@ -0,0 +1,911 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Service Accounts API + description: Service accounts and their access keys. + version: 1.0.0 +paths: + /v1/serviceAccounts: + get: + tags: + - serviceAccountManagement + summary: Get a list of service accounts. + description: Get a list of all service accounts in the organization. + operationId: listServiceAccounts + responses: + '200': + description: A list of service accounts in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListServiceAccountModelsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - serviceAccountManagement + summary: Create a new service account. + description: Create a new service account in the organization. + operationId: createServiceAccount + parameters: [] + requestBody: + description: Information about the new service account. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateServiceAccountDefinition' + required: true + responses: + '200': + description: A service account has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAccountModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAccounts/{id}: + get: + tags: + - serviceAccountManagement + summary: Get a service account. + description: Get a service account with the given identifier from the organization. + operationId: getServiceAccount + parameters: + - name: id + in: path + description: Identifier of service account to return. + required: true + schema: + type: string + responses: + '200': + description: Service account object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAccountModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - serviceAccountManagement + summary: Update a service account. + description: Update an existing service account in the organization. + operationId: updateServiceAccount + parameters: + - name: id + in: path + description: Identifier of the service account to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the service account. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateServiceAccountDefinition' + required: true + responses: + '200': + description: The service account was successfully updated. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAccountModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - serviceAccountManagement + summary: Delete a service account. + description: Delete a service account with the given identifier from the organization and transfer its content to a user or a service account with the identifier specified in "transferTo". + operationId: deleteServiceAccount + parameters: + - name: id + in: path + description: Identifier of the service account to delete. + required: true + schema: + type: string + - name: transferTo + in: query + description: Identifier of a user/service account to receive the transfer of content from the deleted service account.
**Note:** If `deleteContent` is not set to `true`, and no user identifier is specified in `transferTo`, content from the deleted service account is transferred to the executing user. + required: false + schema: + type: string + - name: deleteContent + in: query + description: Whether to delete content from the deleted service account or not.
**Warning:** If `deleteContent` is set to `true`, all of the content for the service account being deleted is permanently deleted and cannot be recovered. + required: false + schema: + type: boolean + responses: + '204': + description: Service account was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAccounts/{serviceAccountId}/accessKeys: + get: + tags: + - serviceAccountManagement + summary: List access keys for a service account. + description: List all access keys of a service account. + operationId: listAccessKeysForServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + responses: + '200': + description: A list of all access keys within the organization of a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/ListAccessKeysResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - serviceAccountManagement + summary: Create a new access key for a service account. + description: Creates a new access ID and key pair for a service account. + operationId: createAccessKeyForServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + requestBody: + description: Information about the new access key of a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyCreateRequest' + required: true + responses: + '200': + description: The access key has been created for a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKey' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAccounts/{serviceAccountId}/accessKeys/{accessId}: + get: + tags: + - serviceAccountManagement + summary: Get an access key of a service account. + description: Get an access key with the given identifier from the organization of a service account. + operationId: getAccessKeyByIdOfAServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + - name: accessId + in: path + description: Identifier of an access key to return. + required: true + schema: + type: string + responses: + '200': + description: Access key object that was requested of a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyPublic' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - serviceAccountManagement + summary: Update an access key of a service account. + description: Updates the properties of existing accessKey by Id of a service account. + operationId: updateAccessKeyOfAServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + - name: accessId + in: path + description: The id of an access key to update of a service account. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyUpdateRequest' + required: true + responses: + '200': + description: Access key of a service account updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyPublic' + default: + description: Access key updation of a service account failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - serviceAccountManagement + summary: Delete an access key of a service account. + description: Deletes the access key with the given Id of a service account. + operationId: deleteAccessKeyOfAServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + - name: accessId + in: path + description: The Id of the access key to delete of a service account. + required: true + schema: + type: string + responses: + '204': + description: Access key deletion of a service account completed successfully. + default: + description: Access key deletion of a service account failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListServiceAccountModelsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of service accounts. + items: + $ref: '#/components/schemas/ServiceAccountModel' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreateServiceAccountDefinition: + required: + - email + - name + - roleIds + type: object + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the service account. + example: Service Account + email: + maxLength: 255 + type: string + description: Email address of the service account. + format: email + example: johndoe@acme.com + roleIds: + type: array + description: List of roleIds associated with the service account. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + ServiceAccountModel: + type: object + required: + - email + - name + - roleIds + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the service account. + example: Service Account + email: + maxLength: 255 + type: string + description: Email address of the service account. + format: email + example: johndoe@acme.com + roleIds: + type: array + description: List of roleIds associated with the service account. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the service account. + example: 000000000FE20FE2 + isActive: + type: boolean + description: True if the service account is active. + example: true + UpdateServiceAccountDefinition: + type: object + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the service account. + example: Service Account + isActive: + type: boolean + description: This has the value `true` if the service account is active and `false` if it has been deactivated. + example: true + roleIds: + type: array + description: List of role identifiers associated with the service account. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + email: + maxLength: 255 + type: string + description: New email address of the service account. + format: email + example: johndoe@acme.com + ListAccessKeysResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of access keys. + items: + $ref: '#/components/schemas/AccessKeyPublic' + description: List of access keys. + AccessKeyCreateRequest: + required: + - label + type: object + properties: + label: + maxLength: 128 + type: string + description: A name for the access key to be created. + example: automation access key + corsHeaders: + maxItems: 20 + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request + depends on whether it contains an ORIGIN header and the entries in the allowlist. + Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + AccessKey: + required: + - createdAt + - createdBy + - disabled + - id + - label + - modifiedAt + - modifiedBy + - key + type: object + properties: + id: + type: string + description: Identifier of the access key. + example: su0w3Q37CBzHUM + label: + type: string + description: The name of the access key. + example: collector access key + corsHeaders: + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: false + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the access key. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the access key. + example: 0000000006743FDD + serviceAccountId: + type: string + description: Identifier of the service account who owns the access key. + example: 0000000006743FDA + lastUsed: + type: string + description: Last used timestamp in UTC.
**Note:** Property not in use, it is part of an upcoming feature. + format: date-time + example: '2018-10-16T09:10:00.000Z' + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + key: + type: string + description: The key for the created access key. This field will have values only in the response for an access key create request. The value will be an empty string while listing all keys. + example: F9GZvb4fISxUZHM7pqHCsGXGWf4OArgmt9Tz8ewZ + AccessKeyPublic: + required: + - createdAt + - createdBy + - disabled + - id + - label + - modifiedAt + - modifiedBy + type: object + properties: + id: + type: string + description: Identifier of the access key. + example: su0w3Q37CBzHUM + label: + type: string + description: The name of the access key. + example: collector access key + corsHeaders: + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: false + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the access key. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the access key. + example: 0000000006743FDD + serviceAccountId: + type: string + description: Identifier of the service account who owns the access key. + example: 0000000006743FDA + lastUsed: + type: string + description: Last used timestamp in UTC.
**Note:** Property not in use, it is part of an upcoming feature. + format: date-time + example: '2018-10-16T09:10:00.000Z' + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + AccessKeyUpdateRequest: + required: + - disabled + type: object + properties: + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: true + corsHeaders: + maxItems: 20 + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + scopes: + type: array + description: |- + Scopes assigned to the key.

Note: Updates to scopes will take up to 5m to reflect due to caching in the system. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 diff --git a/provider-dev/source/service_allowlist.yaml b/provider-dev/source/service_allowlist.yaml new file mode 100644 index 0000000..2e38522 --- /dev/null +++ b/provider-dev/source/service_allowlist.yaml @@ -0,0 +1,243 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Service Allowlist API + description: The service allowlist of CIDR addresses for login and content access. + version: 1.0.0 +paths: + /v1/serviceAllowlist/addresses: + get: + tags: + - serviceAllowlistManagement + summary: List all allowlisted CIDRs/IP addresses. + description: Get a list of all allowlisted CIDR notations and/or IP addresses for the organization. + operationId: listAllowlistedCidrs + responses: + '200': + description: List of all allowlisted CIDR notations and/or IP addresses for the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/CidrList' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAllowlist/addresses/add: + post: + tags: + - serviceAllowlistManagement + summary: Allowlist CIDRs/IP addresses. + description: Add CIDR notations and/or IP addresses to the allowlist of the organization if not already there. When service allowlisting functionality is enabled, CIDRs/IP addresses that are allowlisted will have access to Sumo Logic and/or content sharing. + operationId: addAllowlistedCidrs + parameters: [] + requestBody: + description: List of all CIDR notations and/or IP addresses to be added to the allowlist of the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/CidrList' + required: true + responses: + '200': + description: List of all allowlisted CIDR notations and/or IP addresses for the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/CidrList' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAllowlist/addresses/remove: + post: + tags: + - serviceAllowlistManagement + summary: Remove allowlisted CIDRs/IP addresses. + description: Remove allowlisted CIDR notations and/or IP addresses from the organization. Removed CIDRs/IPs will immediately lose access to Sumo Logic and content sharing. + operationId: deleteAllowlistedCidrs + parameters: [] + requestBody: + description: List of all CIDR notations and/or IP addresses to be removed from the allowlist of the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/CidrList' + required: true + responses: + '200': + description: List of all allowlisted CIDR notations and/or IP addresses for the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/CidrList' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAllowlist/enable: + post: + tags: + - serviceAllowlistManagement + summary: Enable service allowlisting. + description: 'Enable service allowlisting functionality for the organization. The service allowlisting can be for 1. Login: If enabled, access to Sumo Logic is granted only to CIDRs/IP addresses that are allowlisted. 2. Content: If enabled, dashboards can be shared with users connecting from CIDRs/IP addresses that are allowlisted without logging in.' + operationId: enableAllowlisting + parameters: + - name: allowlistType + in: query + description: 'The type of allowlisting to be enabled. It can be one of: `Login`, `Content`, or `Both`.' + required: true + schema: + pattern: ^(Login|Content|Both)$ + type: string + description: 'One of: `Login`, `Content`, `Both`.' + example: Login + x-pattern-message: must be `Login`, `Content`, or `Both` + responses: + '204': + description: Service allowlisting was enabled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAllowlist/disable: + post: + tags: + - serviceAllowlistManagement + summary: Disable service allowlisting. + description: Disable service allowlisting functionality for login/API authentication or content sharing for the organization. + operationId: disableAllowlisting + parameters: + - name: allowlistType + in: query + description: 'The type of allowlisting to be disabled. It can be one of: `Login`, `Content`, or `Both`.' + required: true + schema: + pattern: ^(Login|Content|Both)$ + type: string + description: 'One of: `Login`, `Content`, `Both`.' + example: Login + x-pattern-message: must be `Login`, `Content`, or `Both` + responses: + '204': + description: Service allowlisting was disabled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAllowlist/status: + get: + tags: + - serviceAllowlistManagement + summary: Get the allowlisting status. + description: Get the status of the service allowlisting functionality for login/API authentication or content sharing for the organization. + operationId: getAllowlistingStatus + responses: + '200': + description: The status of service allowlisting for Content and Login. + content: + application/json: + schema: + $ref: '#/components/schemas/AllowlistingStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + CidrList: + required: + - data + type: object + properties: + data: + maxItems: 50 + type: array + description: An array of CIDR notations and/or IP addresses. + items: + $ref: '#/components/schemas/Cidr' + description: A list of CIDR notations and/or IP addresses. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + AllowlistingStatus: + required: + - contentEnabled + - loginEnabled + type: object + properties: + contentEnabled: + type: boolean + description: Whether service allowlisting is enabled for Content. + loginEnabled: + type: boolean + description: Whether service allowlisting is enabled for Login. + description: The status of service allowlisting for Content and Login. + Cidr: + required: + - cidr + type: object + properties: + cidr: + pattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))?$ + type: string + description: The string representation of the CIDR notation or IP address. + example: 192.35.24.1 + x-pattern-message: Invalid CIDR/IP + description: + type: string + description: Description of the CIDR notation or IP address. + example: Accountant + description: A CIDR notation or IP address along with its description. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 diff --git a/provider-dev/source/slos.yaml b/provider-dev/source/slos.yaml new file mode 100644 index 0000000..8a688c3 --- /dev/null +++ b/provider-dev/source/slos.yaml @@ -0,0 +1,915 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Slos API + description: SLOs and SLO folders in the SLO library, service level indicators and usage. + version: 1.0.0 +paths: + /v1/slos/sli: + get: + tags: + - slosLibraryManagement + summary: Bulk fetch SLI values, error budget remaining and SLI computation status for the current compliance period. + description: Bulk fetch SLI values, error budget remaining and SLI computation status for the current compliance period. + operationId: sli + parameters: + - name: ids + in: query + description: The identifiers of the SLOs. + required: true + schema: + type: array + items: + type: string + example: 000000000000000A,000000000000000B + responses: + '200': + description: A map containing current status, SLI value and error budget remaining corresponding to each SLO id. + content: + application/json: + schema: + $ref: '#/components/schemas/IdToSliStatusMap' + default: + description: Error getting SLI metrics for the SLO ids. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/usageInfo: + get: + tags: + - slosLibraryManagement + summary: Usage info of SLOs. + description: Get the current number and the allowed number of log and metrics SLOs. + operationId: getSloUsageInfo + responses: + '200': + description: SLO Usage Info has been retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/GetSloUsageInfoResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-stackql-bare-array-wrap: + wrapperKey: slo_usage_info + wrapperName: GetSloUsageInfoResponse + mediaType: application/json + scalar: false + /v1/slos: + get: + tags: + - slosLibraryManagement + summary: Bulk read a slo or folder. + description: Bulk read a slo or folder by the given identifiers from the slos library. + operationId: slosReadByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: 0000000000000001,0000000000000002,0000000000000003 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean + responses: + '200': + description: A map between an identifier and its definition (slo or folder). + content: + application/json: + schema: + $ref: '#/components/schemas/IdToSlosLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - slosLibraryManagement + summary: | + Create a slo or folder. + description: Create a slo or folder in the slos library. + operationId: slosCreate + parameters: + - name: parentId + in: query + description: Identifier of the parent folder in which to create the slo or folder. + required: true + schema: + type: string + requestBody: + description: The slo or folder to create. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBase' + required: true + responses: + '200': + description: The slo or folder was created. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - slosLibraryManagement + summary: | + Bulk delete a slo or folder. + description: Bulk delete a slo or folder by the given identifiers in the slos library. + operationId: slosDeleteByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: 0000000000000001,0000000000000002,0000000000000003 + responses: + '200': + description: A map between the deleted identifier and its metadata. + content: + application/json: + schema: + $ref: '#/components/schemas/IdToSlosLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/root: + get: + tags: + - slosLibraryManagement + summary: Get the root slos folder. + description: Get the root folder in the slos library. + operationId: getSlosLibraryRoot + responses: + '200': + description: Root folder of the slos library. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryFolderResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/path: + get: + tags: + - slosLibraryManagement + summary: Read a slo or folder by its path. + description: Read a slo or folder by its path in the slos library structure. + operationId: slosGetByPath + parameters: + - name: path + in: query + description: The path of the slo or folder. + required: true + schema: + type: string + responses: + '200': + description: Requested slo or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/search: + get: + tags: + - slosLibraryManagement + summary: Search for a slo or folder. + description: Search for a slo or folder in the slos library structure. + operationId: slosSearch + parameters: + - name: query + in: query + description: |- + The search query to find slo or folder. Below is the list of different filters with examples: + - **createdBy** : Filter by the user's identifier who created the content. Example: `createdBy:000000000000968B`. + - **createdBefore** : Filter by the content objects created before the given timestamp(in milliseconds). Example: `createdBefore:1457997222`. + - **createdAfter** : Filter by the content objects created after the given timestamp(in milliseconds). Example: `createdAfter:1457997111`. + - **modifiedBefore** : Filter by the content objects modified before the given timestamp(in milliseconds). Example: `modifiedBefore:1457997222`. + - **modifiedAfter** : Filter by the content objects modified after the given timestamp(in milliseconds). Example: `modifiedAfter:1457997111`. + - **type** : Filter by the type of the content object. Example: `type:folder`. + + You can also use multiple filters in one query. For example to search for all content objects created by user with identifier 000000000000968B with creation timestamp after 1457997222 containing the text Test, the query would look like: + + `createdBy:000000000000968B createdAfter:1457997222 Test` + required: true + schema: + type: string + example: createdBy:000000000000968B Test + - name: limit + in: query + description: Maximum number of items you want in the response. + required: false + schema: + maximum: 5000 + type: integer + format: int32 + default: 1000 + example: 10 + - name: offset + in: query + description: The position or row from where to start the search operation. + required: false + schema: + type: integer + format: int32 + default: 0 + example: 5 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean + responses: + '200': + description: List of folders and slos matching the search query. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-stackql-bare-array-wrap: + wrapperKey: slos_search + wrapperName: SlosSearchResponse + mediaType: application/json + scalar: false + /v1/slos/{id}: + get: + tags: + - slosLibraryManagement + summary: Get a slo or folder. + description: Get a slo or folder from the slos library. + operationId: slosReadById + parameters: + - name: id + in: path + description: Identifier of the slo or folder to read. + required: true + schema: + type: string + responses: + '200': + description: Requested slo or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - slosLibraryManagement + summary: | + Update a slo or folder. + description: Update a slo or folder in the slos library. + operationId: slosUpdateById + parameters: + - name: id + in: path + description: Identifier of the slo or folder to update. + required: true + schema: + type: string + requestBody: + description: The slo or folder to update. The content version must match its latest version number in the slos library. If the version does not match it will not be updated. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseUpdate' + required: true + responses: + '200': + description: The slo or folder was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - slosLibraryManagement + summary: | + Delete a slo or folder. + description: Delete a slo or folder from the slos library. + operationId: slosDeleteById + parameters: + - name: id + in: path + description: Identifier of the slo or folder to delete. + required: true + schema: + type: string + responses: + '204': + description: The slo or folder was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/{id}/path: + get: + tags: + - slosLibraryManagement + summary: Get the path of a slo or folder. + description: Get the full path of the slo or folder in the slos library. + operationId: getSlosFullPath + parameters: + - name: id + in: path + description: Identifier of the slo or folder. + required: true + schema: + type: string + responses: + '200': + description: Full path of the slo or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/Path' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/{id}/move: + post: + tags: + - slosLibraryManagement + summary: Move a slo or folder. + description: Move a slo or folder to a different location in the slos library. + operationId: slosMove + parameters: + - name: id + in: path + description: Identifier of the slo or folder to move. + required: true + schema: + type: string + - name: parentId + in: query + description: Identifier of the parent folder to move the slo or folder to. + required: true + schema: + type: string + responses: + '200': + description: Moved slo or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/{id}/copy: + post: + tags: + - slosLibraryManagement + summary: Copy a slo or folder. + description: Copy a slo or folder in the slos library. + operationId: slosCopy + parameters: + - name: id + in: path + description: Identifier of the slo or folder to copy. + required: true + schema: + type: string + requestBody: + description: |- + Fields include: + 1) Identifier of the parent folder to copy to. + 2) Optionally provide a new name. + 3) Optionally provide a new description. + 4) Optionally set to true if you want to copy and preserve the locked status. Requires `LockSlos` capability. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentCopyParams' + required: true + responses: + '200': + description: The slo or folder was copied. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/{id}/export: + get: + tags: + - slosLibraryManagement + summary: Export a slo or folder. + description: Export a slo or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root. + operationId: slosExportItem + parameters: + - name: id + in: path + description: Identifier of the slo or folder to export. + required: true + schema: + type: string + responses: + '200': + description: Exported slo or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseExport' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/slos/{parentId}/import: + post: + tags: + - slosLibraryManagement + summary: Import a slo or folder. + description: Import a slo or folder. + operationId: slosImportItem + parameters: + - name: parentId + in: path + description: Identifier of the parent folder in which to import the slo or folder. + required: true + schema: + type: string + requestBody: + description: The slo or folder to be imported. + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseExport' + required: true + responses: + '200': + description: 'Newly imported slo or folder. NOTE: Permissions field will not be filled (empty list).' + content: + application/json: + schema: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + IdToSliStatusMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/SliStatus' + description: Map of SLO identifier to SliStatus object. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + SloUsageInfo: + type: array + description: The usage info of logs and metrics SLOs. + items: + $ref: '#/components/schemas/SloUsage' + IdToSlosLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + SlosLibraryBase: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the slo or folder. + description: + type: string + description: Description of the slo or folder. + default: '' + type: + type: string + description: |- + Type of the object model. Valid values: + 1) SlosLibrarySlo + 2) SlosLibraryFolder + discriminator: + propertyName: type + SlosLibraryBaseResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the slo or folder. + name: + type: string + description: Identifier of the slo or folder. + description: + type: string + description: Description of the slo or folder. + version: + type: integer + description: Version of the slo or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Slo + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + discriminator: + propertyName: type + SlosLibraryFolderResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + - children + - permissions + type: object + properties: + id: + type: string + description: Identifier of the slo or folder. + name: + type: string + description: Identifier of the slo or folder. + description: + type: string + description: Description of the slo or folder. + version: + type: integer + description: Version of the slo or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Slo + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + children: + type: array + description: 'Children of the folder. NOTE: Permissions field will not be filled (empty list) for children.' + items: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + discriminator: + propertyName: type + ListSlosLibraryItemWithPath: + type: array + description: Multi-type list of types slo or folder. + items: + $ref: '#/components/schemas/SlosLibraryItemWithPath' + SlosLibraryBaseUpdate: + required: + - name + - type + - version + type: object + properties: + name: + type: string + description: The name of the slo or folder. + description: + type: string + description: The description of the slo or folder. + default: '' + version: + type: integer + description: The version of the slo or folder. + format: int64 + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + Path: + required: + - path + - pathItems + type: object + properties: + pathItems: + type: array + description: Elements of the path. + items: + $ref: '#/components/schemas/PathItem' + path: + type: string + description: String representation of the path. + ContentCopyParams: + required: + - parentId + type: object + properties: + parentId: + type: string + description: Identifier of the parent folder to copy to. + name: + type: string + description: Optionally provide a new name. + description: + type: string + description: Optionally provide a new description. + SlosLibraryBaseExport: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the slo or folder. + description: + type: string + description: Description of the slo or folder. + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + SliStatus: + required: + - status + type: object + properties: + status: + pattern: ^(Success|Error|InProgress)$ + type: string + description: Whether the SLI computation is complete / had an error / is in progress. + example: Success + sliPercentage: + type: number + description: SLI percentage for the compliance period. Available if `status` is `Success`. + format: double + example: 95.14 + errorBudgetRemainingPercentage: + type: number + description: Percentage of error budget remaining for the compliance period. Available if `status` is `Success`. + format: double + absoluteErrorBudgetRemaining: + type: string + description: Formatted string for the absolute error budget remaining (time duration for window-based SLIs, request count for request-based SLIs). Available if `status` is `Success`. + example: 1h56m, -3h45m, -241.3k req, 1.5k req + progressPercentage: + type: number + description: SLI computation progress. + format: double + description: Status of the SLI computation. If the status is successful, also contains the SLI value and error budget remaining for the current compliance period. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + SloUsage: + properties: + sliType: + pattern: ^(Logs|Metrics|Monitors)$ + type: string + description: The type of SLO usage info (Logs/Metrics/Monitor based). + example: Logs + x-pattern-message: Either `Logs` or `Metrics` or `Monitors`. + usage: + type: integer + description: Current number of active Logs/Metrics/Monitors SLOs. + example: 100 + limit: + type: integer + description: The limit of active Logs/Metrics/Monitors SLOs. + example: 100 + description: The usage info of SLOs. + type: object + SlosLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + path: + type: string + description: Path of the slo or folder. + example: /Slos/SampleFolder/TestSlo + PathItem: + required: + - id + - name + type: object + properties: + id: + type: string + description: Identifier of the path element. + name: + type: string + description: Name of the path element. + description: + type: string + description: Description of the path element. + GetSloUsageInfoResponse: + type: object + properties: + slo_usage_info: + type: array + items: + $ref: '#/components/schemas/SloUsage' + SlosSearchResponse: + type: object + properties: + slos_search: + type: array + items: + $ref: '#/components/schemas/SlosLibraryItemWithPath' diff --git a/provider-dev/source/source_templates.yaml b/provider-dev/source/source_templates.yaml new file mode 100644 index 0000000..1c3f1a1 --- /dev/null +++ b/provider-dev/source/source_templates.yaml @@ -0,0 +1,931 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Source Templates API + description: Source templates for OpenTelemetry collectors (v1 deprecated and v2). + version: 1.0.0 +paths: + /v1/sourceTemplates: + get: + tags: + - sourceTemplateManagementExternal + summary: List all source templates. + description: Get a list of all source templates. + operationId: getSourceTemplatesV2 + parameters: + - name: showDisabled + in: query + description: A boolean parameter to get all, including disabled source templates. + required: false + schema: + type: boolean + default: false + - name: name + in: query + description: Only return source template matching the given name (exact match). + required: false + schema: + minLength: 1 + type: string + nullable: true + - name: fleetIds + in: query + description: Comma-separated list of fleet IDs (hex-encoded). + required: false + explode: false + schema: + type: array + items: + type: string + responses: + '200': + description: A list of source templates. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateListResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - sourceTemplateManagementExternal + summary: Create source template. + description: Create source template. + operationId: createSourceTemplateV2 + parameters: + - name: dryRun + in: query + description: Whether this creation request is a dry run. With dryRun set to true, the source template will not be created but the request will be validated. + required: false + schema: + type: boolean + example: true + default: false + requestBody: + description: Create source template details + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateRequest' + required: true + responses: + '200': + description: Create source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/{id}: + get: + tags: + - sourceTemplateManagementExternal + summary: Get a source template by Id. + description: Get a source template with the given identifier. + operationId: getSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to get. + required: true + schema: + type: string + responses: + '200': + description: Get source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - sourceTemplateManagementExternal + summary: Update source template. + description: Update a source template with the given identifier. + operationId: updateSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Request details of update source template. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateUpdateRequest' + required: true + responses: + '200': + description: Update source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - sourceTemplateManagementExternal + summary: Delete a source template. + description: Delete a source template with the given identifier. + operationId: deleteSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to delete. + required: true + schema: + type: string + responses: + '204': + description: The source template was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/{id}/status: + put: + tags: + - sourceTemplateManagementExternal + summary: Update status of source template + description: Update the status (enable or disable) of a source template. + operationId: updateSourceTemplateStatusV2 + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Status of source template + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateStatusUpdateRequest' + required: true + responses: + '200': + description: Update source template status response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/{id}/upgrade: + post: + tags: + - sourceTemplateManagementExternal + summary: Upgrade source template. + description: Upgrade a source template with the given identifier. + operationId: upgradeSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to upgrade. + required: true + schema: + type: string + requestBody: + description: Source template upgrade request details. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateUpgradeRequest' + required: true + responses: + '200': + description: Upgrade source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/getLinkedSourceTemplatesImpact: + post: + tags: + - sourceTemplateManagementExternal + summary: Preview source template linking changes. + description: Given the set of tags user wants to update, display the list of source templates that will be linked/unlinked to the otCollector. + operationId: getLinkedSourceTemplatesImpact + requestBody: + description: Request body containing otCollector id and set of tags. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateRequest' + required: true + responses: + '200': + description: A list of source templates whose linking to the otCollector will be impacted. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplate: + get: + tags: + - sourceTemplateManagementExternal + summary: Return all source templates of a customer (deprecated). + description: | + Get a list of source template. + + **DEPRECATED**: This endpoint will be removed soon. Please use GET /v1/sourceTemplates instead. + operationId: getSourceTemplates + parameters: + - name: showDisabled + in: query + description: A boolean parameter to get all, including disabled source templates. + required: false + schema: + type: boolean + default: false + - name: name + in: query + description: Only return source template matching the given name (exact match). + required: false + schema: + minLength: 1 + type: string + nullable: true + - name: fleetIds + in: query + description: Comma-separated list of fleet IDs (hex-encoded). + required: false + explode: false + schema: + type: array + items: + type: string + responses: + '200': + description: A list of source templates. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateListResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + post: + tags: + - sourceTemplateManagementExternal + summary: Create source template (deprecated). + description: | + Create source template. + + **DEPRECATED**: This endpoint will be removed soon. Please use POST /v1/sourceTemplates instead. + operationId: createSourceTemplate + parameters: + - name: dryRun + in: query + description: Whether this creation request is a dry run. With dryRun set to true, the source template will not be created but the request will be validated. + required: false + schema: + type: boolean + example: true + default: false + requestBody: + description: Create source template details + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateRequest' + required: true + responses: + '200': + description: Create source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + /v1/sourceTemplate/{id}: + get: + tags: + - sourceTemplateManagementExternal + summary: Get a source template by Id (deprecated). + description: | + Get a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use GET /v1/sourceTemplates/{id} instead. + operationId: getSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to get. + required: true + schema: + type: string + responses: + '200': + description: Get source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + post: + tags: + - sourceTemplateManagementExternal + summary: Update source template (deprecated). + description: | + Update a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use POST /v1/sourceTemplates/{id} instead. + operationId: updateSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Source template request details. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateRequest' + required: true + responses: + '200': + description: Update source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + delete: + tags: + - sourceTemplateManagementExternal + summary: Delete a source template (deprecated). + description: | + Delete a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use DELETE /v1/sourceTemplates/{id} instead. + operationId: deleteSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to delete. + required: true + schema: + type: string + responses: + '204': + description: The source template was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + /v1/upgrade/sourceTemplate/{id}: + post: + tags: + - sourceTemplateManagementExternal + summary: Upgrade source template (deprecated). + description: | + Upgrade a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use POST /v1/sourceTemplates/{id}/upgrade instead. + operationId: upgradeSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to upgrade. + required: true + schema: + type: string + requestBody: + description: Source template upgrade request details. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateUpgradeRequest' + required: true + responses: + '200': + description: Upgrade source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + /v1/sourceTemplate/getLinkedSourceTemplatesImpact: + post: + tags: + - sourceTemplateManagementExternal + summary: Get linked source templates update based on the ot-collector tags user is wants to update. + description: Given the set of tags user wants to update, display the list of source templates that will be linked/unlinked to the otCollector. + operationId: getLinkedSourceTemplatesUpdate + requestBody: + description: Request body containing otCollector id and set of tags. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateRequest' + required: true + responses: + '200': + description: A list of source templates whose linking to the otCollector will be impacted. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplate/{id}/status: + put: + tags: + - sourceTemplateManagementExternal + summary: Update status of source template (deprecated) + description: | + Update the status (enable or disable) of a source template. + + **DEPRECATED**: This endpoint will be removed soon. Please use PUT /v1/sourceTemplates/{id}/status instead. + operationId: updateSourceTemplateStatus + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Status of source template + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateStatusUpdateRequest' + required: true + responses: + '200': + description: Update source template status response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true +components: + schemas: + SourceTemplateListResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of source templates. + items: + $ref: '#/components/schemas/SourceTemplateDefinition' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + SourceTemplateRequest: + required: + - inputJson + - schemaRef + type: object + properties: + schemaRef: + $ref: '#/components/schemas/SchemaRef' + inputJson: + maxProperties: 1000 + required: + - name + - receivers + type: object + properties: + name: + type: string + description: name of source template. + example: apache_test_source_template + receivers: + type: string + description: receiver information of source template (opaque JSON object) + example: {} + description: + type: string + description: description of source template + example: Demo Description for Source Template + processors: + type: string + description: processors for source template (opaque JSON object) + example: {} + additionalProperties: true + description: inputJson of source template + selector: + $ref: '#/components/schemas/Selector' + isEnabled: + type: boolean + description: Indicates whether the source template is enabled - **Create operation:** Defaults to `true` (the template is enabled when created). - **Update operation:** If omitted, the existing status is preserved. + example: true + description: request body for creating source template. + SourceTemplateDefinition: + type: object + properties: + schemaRef: + $ref: '#/components/schemas/SchemaRef' + id: + type: string + description: id of source template. + example: 0000000003343FDD + inputJson: + maxProperties: 1000 + type: object + additionalProperties: true + description: inputJson of source template + example: {} + config: + type: string + description: configuration of source template + example: apache.yaml.example + selector: + $ref: '#/components/schemas/Selector' + totalCollectorLinked: + type: integer + description: count of total collector linked with this source template. + format: int32 + default: 0 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedAt: + type: string + description: Modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Id of the user who created source template + example: 0000000006743FDD + modifiedBy: + type: string + description: Id of the user who last modified the source template + example: 0000000006243FDD + status: + type: string + description: Status of Source template + enum: + - enable + - disable + isEnabled: + type: boolean + description: A boolean parameter to get if the source template is enabled. + example: true + default: true + description: response definition of source template. + SourceTemplateUpdateRequest: + required: + - inputJson + - schemaRef + type: object + properties: + schemaRef: + $ref: '#/components/schemas/SchemaRef' + inputJson: + maxProperties: 1000 + required: + - name + - receivers + type: object + properties: + name: + type: string + description: Name of source template. + example: apache_test_source_template + receivers: + type: string + description: Receiver information of source template (opaque JSON object) + example: {} + description: + type: string + description: Description of source template + example: Demo Description for source template + processors: + type: string + description: Processors for source template (opaque JSON object) + example: {} + additionalProperties: true + description: InputJson of source template + selector: + $ref: '#/components/schemas/Selector' + isEnabled: + type: boolean + description: Indicates whether the source template is enabled. If omitted, the existing status is preserved. + example: true + description: Request body for updating source template. + SourceTemplateStatusUpdateRequest: + required: + - status + type: object + properties: + status: + type: string + description: status to set for the source template (enable or disable). + enum: + - enable + - disable + example: + status: enable + SourceTemplateUpgradeRequest: + required: + - inputJson + - schemaRef + type: object + properties: + schemaRef: + $ref: '#/components/schemas/UpgradeSchemaRef' + inputJson: + maxProperties: 1000 + required: + - name + - receivers + type: object + properties: + name: + type: string + description: name of source template. + example: apache_test_source_template + receivers: + type: string + description: receiver information of source template (opaque JSON object) + example: + hostmetrics: + receiverType: hostmetrics + collection_interval: 5m + description: + type: string + description: description of source template + example: Demo Description for source template + processors: + type: string + description: processors for source template (opaque JSON object) + example: + resource: + processorType: resource + additionalProperties: true + description: inputJson of source template + description: request body for creating source template. + LinkedSourceTemplatesUpdateRequest: + required: + - collectorId + type: object + properties: + collectorId: + type: string + description: otCollector id for which tags are edited. + example: 00005AF3107BF0D6 + tags: + maxProperties: 50 + type: object + additionalProperties: + type: string + description: JSON map of key-value metadata to apply to the otCollector. + example: + environment: production + location: us-west-2 + default: {} + updatedName: + type: string + description: Updated Name of the otCollector. + example: demo_macOS + LinkedSourceTemplatesUpdateResponse: + required: + - collectorId + type: object + properties: + collectorId: + type: string + description: otCollector id for which tags are edited. + example: 00005AF3107BF0D6 + addedSourceTemplates: + type: array + description: list of sourceTemplates which are linked to otCollector. + items: + $ref: '#/components/schemas/LinkingUpdatedSourceTemplateDetails' + removedSourceTemplates: + type: array + description: list of sourceTemplates which are removed from otCollector linking. + items: + $ref: '#/components/schemas/LinkingUpdatedSourceTemplateDetails' + description: linked source template details based on the ot-collector tags user wants to update. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + SchemaRef: + required: + - type + type: object + properties: + type: + type: string + description: type of source template. + example: Apache + description: schema reference for source template. + Selector: + type: object + properties: + tags: + type: array + description: tags filter for agents + items: + type: array + items: + $ref: '#/components/schemas/OtTag' + names: + type: array + description: names to select custom agents + items: + type: string + example: demo_macOS + fleetIds: + type: array + description: IDs of the fleets the source template is associated with + items: + maxLength: 16 + minLength: 16 + type: string + example: 0000000006243FDD + description: Agent selector conditions + UpgradeSchemaRef: + required: + - type + - version + type: object + properties: + type: + type: string + description: type of source template. + example: Apache + version: + type: string + description: version of source template. + example: 1.0.0 + description: schema reference for upgrade source template request. + LinkingUpdatedSourceTemplateDetails: + required: + - reasonTags + - sourceTemplateDefinition + type: object + properties: + sourceTemplateDefinition: + $ref: '#/components/schemas/SourceTemplateDefinition' + reasonTags: + type: array + description: tags which are responsible for source template and collector linking impact. + items: + type: array + items: + $ref: '#/components/schemas/CollectorTag' + description: source template details with tags responsible for otCollector Linking update. + OtTag: + required: + - key + - values + type: object + properties: + key: + type: string + description: key of the given tag. + example: key1 + values: + type: array + description: values of the given tag. + items: + type: string + example: value1 + CollectorTag: + required: + - key + - values + type: object + properties: + key: + type: string + description: Key of the given tag. + example: key1 + value: + type: string + description: Values of the given tag. + example: value1 diff --git a/provider-dev/source/threat_intel.yaml b/provider-dev/source/threat_intel.yaml new file mode 100644 index 0000000..fc5dfd1 --- /dev/null +++ b/provider-dev/source/threat_intel.yaml @@ -0,0 +1,725 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Threat Intel API + description: Threat intelligence datastore, data sources, retention and indicator ingestion. + version: 1.0.0 +paths: + /v1/threatIntel/datastore/db: + get: + tags: + - threatIntelIngest + summary: Get threat intel indicators DB information + description: Get threat intel indicators DB information, such as storage utilization and indicator counts + operationId: datastoreGet + responses: + '200': + description: Threat intel ingest DB information. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - threatIntelIngest + summary: Remove the threat intel indicators DB + description: Removes the entire database and all indicators associated with this tenant + operationId: removeDatastore + responses: + '204': + description: Removing the indicator database succeeded + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/retentionPeriod: + get: + tags: + - threatIntelIngest + summary: Get threat intel indicators store retention period in terms of days. + description: Get the threat intel indicators store retention period in terms of days. + operationId: retentionPeriod + responses: + '200': + description: Threat intel indicators store retention period. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreRetentionPeriod' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - threatIntelIngest + summary: Set the threat intel indicators store retention period in terms of days. + description: Sets the threat intel indicators store retention period in terms of days. + operationId: setRetentionPeriod + parameters: [] + requestBody: + description: The threat intel indicators store retention period in terms of days. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreRetentionPeriod' + required: true + responses: + '200': + description: Threat intel indicators store retention period. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreRetentionPeriod' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/indicators/normalized: + post: + tags: + - threatIntelIngestProducer + summary: Uploads indicators in a Sumo normalized format. + description: Uploads a list indicators in a Sumo normalized format. + operationId: uploadNormalizedIndicators + parameters: [] + requestBody: + description: The list of normalized threat intel indicators to upload. + content: + application/json: + schema: + $ref: '#/components/schemas/UploadNormalizedIndicatorRequest' + required: true + responses: + '204': + description: Normalized indicators successfully uploaded. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/indicators/stix: + post: + tags: + - threatIntelIngestProducer + summary: Uploads indicators in a STIX 2.x json format. + description: Uploads a list indicators in in a STIX 2.x json format. + operationId: uploadStixIndicators + parameters: [] + requestBody: + description: Upload stix indicators request body. + content: + application/json: + schema: + $ref: '#/components/schemas/UploadStixIndicatorsRequest' + required: true + responses: + '200': + description: Stix indicators successfully uploaded. + content: + application/json: + schema: + $ref: '#/components/schemas/UploadStixIndicatorsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/indicators: + delete: + tags: + - threatIntelIngestProducer + summary: Removes indicators by their IDS + description: Removes indicators by specifying a list of indicator IDs + operationId: removeIndicators + parameters: [] + requestBody: + description: The list of indicator IDs to remove + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveIndicatorsRequest' + required: true + responses: + '204': + description: Indicators successfully removed + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/dataSource/{dataSourceName}: + put: + tags: + - threatIntelIngest + summary: Updates source properties + description: Updates source properties + operationId: dataSourcePropertiesUpdate + parameters: + - name: dataSourceName + in: path + description: Source name + required: true + schema: + type: string + requestBody: + description: Source properties + content: + application/json: + schema: + $ref: '#/components/schemas/DataSourceProperties' + required: true + responses: + '204': + description: Data source properties successfuly updated. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + DatastoreStatusResponse: + required: + - diskSize + - indicatorCount + - indicatorLimit + - sourceStatus + type: object + properties: + diskSize: + type: integer + description: Total DB size in terms of disk bytes + format: int64 + example: 1024 + indicatorCount: + type: integer + description: Total number of indicators in the DB + format: int64 + example: 100 + indicatorLimit: + type: integer + description: Limit number of indicators supported in the DB + format: int64 + example: 10000000 + sourceStatus: + type: array + description: A list of sources and their individual DB sizes and indicator counts + items: + $ref: '#/components/schemas/DatastoreSourceStatusResponse' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + DatastoreRetentionPeriod: + required: + - retentionPeriod + type: object + properties: + retentionPeriod: + type: integer + description: Retention period in days. + format: int64 + example: 120 + UploadNormalizedIndicatorRequest: + required: + - indicators + type: object + properties: + indicators: + type: array + description: The list of normalized threat intel indicators to upload. + items: + $ref: '#/components/schemas/NormalizedIndicator' + UploadStixIndicatorsRequest: + required: + - indicators + - source + type: object + properties: + source: + type: string + description: User-provided text to identify the source of the indicator + example: FreeTAXII + indicators: + type: array + description: The list of stix threat intel indicators to upload. + items: + $ref: '#/components/schemas/StixIndicator' + UploadStixIndicatorsResponse: + required: + - invalidIndicators + type: object + properties: + invalidIndicators: + type: array + description: A list of invalid indicator IDs that were not ingested + example: + - indicator--foo + - indicator--bar + items: + type: string + RemoveIndicatorsRequest: + required: + - indicatorIds + - source + type: object + properties: + source: + type: string + description: The source of the indicator ID to match against + example: Crowdstrike + indicatorIds: + type: array + description: The list of indicator IDs to match against + example: + - indicator--abcd + - indicator--ef012 + items: + type: string + DataSourceProperties: + type: object + properties: + enabled: + type: boolean + description: True if enabled. + example: true + description: + type: string + description: The data source description. + example: This is a stix1.2 data source. + DatastoreSourceStatusResponse: + required: + - source + type: object + properties: + source: + type: string + description: The source name + example: unit42_source + description: + type: string + description: The source description + example: This is a stix1.2 indicators source + diskSize: + type: integer + description: Disk utilization in bytes estimate for the indicator source + format: int64 + example: 1024 + indicatorCount: + type: integer + description: Number of indicators for the indicator source + format: int64 + example: 1024 + sumoProvided: + type: boolean + description: True if sumo provided source + example: false + supportsCat: + type: boolean + description: True if can be used in cat operator + example: false + enabled: + type: boolean + description: True if enabled + example: true + description: DB sizes and indicator counts for an individual source + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + NormalizedIndicator: + required: + - confidence + - id + - indicator + - source + - threatType + - type + - validFrom + type: object + properties: + id: + type: string + description: ID of the indicator + example: indicator--d81f86b9-975b-4c0b-875e-810c5ad45a4f + indicator: + type: string + description: Value of the indicator + example: 182.158.1.1 + type: + type: string + description: Type of indicator + example: ipv4-addr + source: + type: string + description: User-provided text to identify the source of the indicator + example: FreeTAXII + updated: + type: string + description: When this indicator was most recently updated in Sumo. Timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2023-03-21T12:00:00.000Z' + validFrom: + type: string + description: Beginning time this indicator is valid. Timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2023-03-21T12:00:00.000Z' + validUntil: + type: string + description: 'Time at which this indicator expires. If not set, a default TTL is applied based on indicator type and confidence. File hash indicators (type prefix `file:hashes`): 30/365/730 days for low/medium/high confidence. All other indicator types: 30/90/180 days for low/medium/high confidence. Confidence bands: low 0-49, medium 50-74, high 75-100. Timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format.' + format: date-time + example: '2023-03-21T12:00:00.000Z' + confidence: + maximum: 100 + minimum: 1 + type: integer + description: Confidence that the creator has in the correctness of their data, where 100 is highest + threatType: + type: string + description: Type of indicator ( https://docs.oasis-open.org/cti/stix/v2.1/os/stix-v2.1-os.html#_cvhfwe3t9vuo ) + example: benign + actors: + type: string + description: Actors as a comma separated list. + example: actor1,actor2 + killChain: + type: string + description: Kill Chain as a comma separated list. + example: KC1,KC2 + fields: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Flattened fields from the original indicator object (e.g. flattened STIX fields) + StixIndicator: + required: + - created + - id + - modified + - pattern + - pattern_type + - spec_version + - type + - valid_from + type: object + properties: + type: + type: string + description: The type property identifies the type of STIX Object. + example: indicator + spec_version: + type: string + description: The STIX version + example: '2.1' + id: + type: string + description: The ID of the indicator + example: acme:indicator-bf8bc5d5-c7e6-46b0-8d22-7500fea77196 + created: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + modified: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + created_by_ref: + type: string + description: Identifier of type identity + example: identity--f431f809-377b-45e0-aa1c-6a4751cae5ff + revoked: + type: boolean + description: The revoked property is only used by STIX Objects that support versioning and indicates whether the object has been revoked. + labels: + type: array + description: The labels property specifies a set of terms used to describe this object. The terms are user-defined or trust-group defined and their meaning is outside the scope of this specification and MAY be ignored. + example: + - heartbleed + - has-logo + items: + type: string + confidence: + maximum: 100 + minimum: 1 + type: integer + description: Confidence that the creator has in the correctness of their data, where 100 is highest + lang: + type: string + description: The lang property identifies the language of the text content in this object. When present, it MUST be a language code conformant to [RFC5646]. If the property is not present, then the language of the content is en (English) + example: en + external_references: + type: array + description: A list of external references which refer to non-STIX information. This property MAY be used to provide one or more Vulnerability identifiers, such as a CVE ID + items: + $ref: '#/components/schemas/ExternalReference' + object_marking_refs: + type: array + description: The object_marking_refs property specifies a list of id properties of marking-definition objects that apply to this object. + example: + - marking-definition--089a6ecb-cc15-43cc-9494-767639779123 + items: + type: string + granular_markings: + type: array + description: The granular_markings property specifies a list of granular markings applied to this object + items: + $ref: '#/components/schemas/GranularMarkingType' + extensions: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/Extension' + description: Specifies any extensions of the object, as a dictionary + name: + type: string + description: The name of the object + description: + type: string + description: A human readable description + indicator_types: + type: array + description: A set of categorizations for this indicator. + example: + - malicious-activity + items: + type: string + pattern: + type: string + description: The detection pattern for this Indicator expressed as a STIX patter. + example: '[ipv4-addr:value = ''1.2.3.4'']' + pattern_type: + type: string + description: The type of pattern + example: stix + pattern_version: + type: string + description: The version of the pattern language that is used for the data in the pattern property which MUST match the type of pattern data included in the pattern property. + valid_from: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + valid_until: + type: string + description: 'The time at which this Indicator should no longer be considered a valid indicator of the behaviors it is related to or represents. If not set, a default TTL is applied based on indicator type and confidence. File hash indicators (type prefix `file:hashes`): 30/365/730 days for low/medium/high confidence. All other indicator types: 30/90/180 days for low/medium/high confidence. Confidence bands: low 0-49, medium 50-74, high 75-100.' + format: date-time + example: '2023-03-21T12:00:00.000Z' + kill_chain_phases: + type: array + description: The list of Kill Chain Phases for which this Attack Pattern is used + items: + $ref: '#/components/schemas/KillChainPhase' + ExternalReference: + required: + - source_name + type: object + properties: + source_name: + type: string + description: The name of the source that the external-reference is defined within + example: system + description: + type: string + description: A human readable description + url: + type: string + description: A URL reference to an external resource + example: https://github.com/vz-risk/0001AA7F-C601-424A-B2B8-BE6C9F5164E7.json + hashes: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Specifies a dictionary of hashes for the contents of the url + example: + SHA-256: 6db12788c37247f2316052e142f42f4b259d6561751e5f401a1ae2a6df9c674b + external_id: + type: string + description: An identifier for the external reference content + example: 0001AA7F-C601-424A-B2B8-BE6C9F5164E7 + GranularMarkingType: + required: + - selectors + type: object + properties: + lang: + type: string + description: The lang property identifies the language of the text identified by this marking + example: en + marking_ref: + type: string + description: The marking_ref property specifies the ID of the marking-definition object that describes the marking + example: marking-definition--089a6ecb-cc15-43cc-9494-767639779123 + selectors: + type: array + description: The selectors property specifies a list of selectors for content contained within the STIX Object in which this property appears + example: + - description + - labels + items: + type: string + Extension: + required: + - created + - created_by_ref + - extension_types + - id + - modified + - name + - schema + - spec_version + - type + - version + type: object + properties: + type: + type: string + description: The type property identifies the type of object + example: indicator + spec_version: + type: string + description: The STIX version + example: '2.1' + id: + type: string + description: The ID of the indicator + example: acme:indicator-bf8bc5d5-c7e6-46b0-8d22-7500fea77196 + created: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + modified: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + created_by_ref: + type: string + description: Identifier of type identity + example: identity--f431f809-377b-45e0-aa1c-6a4751cae5ff + revoked: + type: boolean + description: The revoked property is only used by STIX Objects that support versioning and indicates whether the object has been revoked. + labels: + type: array + description: The labels property specifies a set of terms used to describe this object. The terms are user-defined or trust-group defined and their meaning is outside the scope of this specification and MAY be ignored. + example: + - heartbleed + - has-logo + items: + type: string + external_references: + type: array + description: A list of external references which refer to non-STIX information. This property MAY be used to provide one or more Vulnerability identifiers, such as a CVE ID + items: + $ref: '#/components/schemas/ExternalReference' + object_marking_refs: + type: array + description: The object_marking_refs property specifies a list of id properties of marking-definition objects that apply to this object. + example: + - marking-definition--089a6ecb-cc15-43cc-9494-767639779123 + items: + type: string + granular_markings: + type: array + description: The granular_markings property specifies a list of granular markings applied to this object + items: + $ref: '#/components/schemas/GranularMarkingType' + name: + type: string + description: The name of the object + description: + type: string + description: A human readable description + schema: + type: string + description: The normative definition of the extension, either as a URL or as plain text explaining the definition + example: https://www.example.com/schema-my-favorite-sdo-1/v1 + version: + type: string + description: The version of this extension + extension_types: + type: array + description: This property specifies one or more extension types contained within this extension + items: + type: string + enum: + - new-sdo + - new-sco + - new-sro + - property-extension + - toplevel-property-extension + extension_properties: + type: array + description: This property contains the list of new property names that are added to an object by an extension + items: + type: string + KillChainPhase: + required: + - kill_chain_name + type: object + properties: + kill_chain_name: + type: string + description: The name of the kill chain. The value of this property SHOULD be all lowercase and SHOULD use hyphens instead of spaces or underscores as word separators + example: lockheed-martin-cyber-kill-chain + phase_name: + type: string + description: The name of the phase in the kill chain. The value of this property SHOULD be all lowercase and SHOULD use hyphens instead of spaces or underscores as word separators + example: reconnaissance diff --git a/provider-dev/source/tokens.yaml b/provider-dev/source/tokens.yaml new file mode 100644 index 0000000..003a163 --- /dev/null +++ b/provider-dev/source/tokens.yaml @@ -0,0 +1,318 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Tokens API + description: Installation tokens (tokens library). + version: 1.0.0 +paths: + /v1/tokens: + get: + tags: + - tokensLibraryManagement + summary: Get a list of tokens. + description: Get a list of all tokens in the token library. + operationId: listTokens + responses: + '200': + description: A list of tokens. + content: + application/json: + schema: + $ref: '#/components/schemas/ListTokensBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - tokensLibraryManagement + summary: Create a token. + description: Create a token in the token library. + operationId: createToken + requestBody: + description: Information about the token to create. + content: + application/json: + schema: + $ref: '#/components/schemas/TokenBaseDefinition' + required: true + responses: + '200': + description: The token has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/TokenBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tokens/{id}: + get: + tags: + - tokensLibraryManagement + summary: Get a token. + description: Get a token with the given identifier in the token library. + operationId: getToken + parameters: + - name: id + in: path + description: Identifier of the token to return. + required: true + schema: + type: string + responses: + '200': + description: Token object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/TokenBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - tokensLibraryManagement + summary: Update a token. + description: Update a token with the given identifier in the token library. + operationId: updateToken + parameters: + - name: id + in: path + description: Identifier of the token to update. + required: true + schema: + type: string + requestBody: + description: The token to update. + content: + application/json: + schema: + $ref: '#/components/schemas/TokenBaseDefinitionUpdate' + required: true + responses: + '200': + description: The token was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/TokenBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - tokensLibraryManagement + summary: Delete a token. + description: Delete a token with the given identifier in the token library. + operationId: deleteToken + parameters: + - name: id + in: path + description: Identifier of the token to delete. + required: true + schema: + type: string + responses: + '204': + description: The token was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListTokensBaseResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of tokens. + items: + $ref: '#/components/schemas/TokenBaseResponse' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + TokenBaseDefinition: + required: + - name + - status + - type + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the token. + example: token-name + description: + maxLength: 4096 + minLength: 0 + type: string + description: Description of the token. + example: 'token description: for test.' + status: + pattern: ^(Active|Inactive)$ + type: string + description: Status of the token. Can be `Active`, or `Inactive`. + example: Active + x-pattern-message: must be either `Active` or `Inactive` + type: + pattern: ^(CollectorRegistration)$ + type: string + description: 'Type of the token. Valid values: 1) CollectorRegistration' + example: CollectorRegistration + x-pattern-message: must be `CollectorRegistration` + TokenBaseResponse: + required: + - createdAt + - createdBy + - description + - id + - modifiedAt + - modifiedBy + - name + - status + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the token. + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the token. + example: token-name + description: + maxLength: 4096 + minLength: 0 + type: string + description: Description of the token. + example: 'token description: for test.' + status: + pattern: ^(Active|Inactive)$ + type: string + description: Status of the token. Can be `Active`, or `Inactive`. + example: Active + x-pattern-message: must be either `Active` or `Inactive` + type: + pattern: ^(CollectorRegistrationTokenResponse)$ + type: string + description: 'Type of the token. Valid values: 1) CollectorRegistrationTokenResponse' + example: CollectorRegistrationTokenResponse + x-pattern-message: must be `CollectorRegistrationTokenResponse` + version: + type: integer + description: Version of the token. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + discriminator: + propertyName: type + TokenBaseDefinitionUpdate: + required: + - name + - status + - type + - version + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the token. + example: token-name + description: + maxLength: 4096 + minLength: 0 + type: string + description: Description of the token. + example: 'token description: for test.' + status: + pattern: ^(Active|Inactive)$ + type: string + description: Status of the token. Can be `Active`, or `Inactive`. + example: Active + x-pattern-message: must be either `Active` or `Inactive` + type: + pattern: ^(CollectorRegistration)$ + type: string + description: 'Type of the token. Valid values: 1) CollectorRegistration' + example: CollectorRegistration + x-pattern-message: must be `CollectorRegistration` + version: + type: integer + description: Version of the token. + format: int64 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 diff --git a/provider-dev/source/tracing.yaml b/provider-dev/source/tracing.yaml new file mode 100644 index 0000000..355a32a --- /dev/null +++ b/provider-dev/source/tracing.yaml @@ -0,0 +1,2274 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Tracing API + description: Traces, spans, trace and span queries, tracing metrics and the service map. + version: 1.0.0 +paths: + /v1/tracing/tracequery: + post: + tags: + - traces + summary: Run a trace search query asynchronously. + description: Execute a trace search query and get the id to fetch its status and results. Use the Trace Query Status endpoint to check a query status. When the query has been completed, use the Trace Query Result endpoint to get the result of the asynchronous query. + operationId: createTraceQuery + parameters: [] + requestBody: + description: Query parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncTraceQueryRequest' + required: true + responses: + '200': + description: Query execution result. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTraceQueryResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/tracequery/{queryId}: + delete: + tags: + - traces + summary: Cancel a trace search query. + description: Cancel a currently processed trace search query with the given id. + operationId: cancelTraceQuery + parameters: + - name: queryId + in: path + description: Identifier of the query to cancel. + required: true + schema: + type: string + example: 798a13dc1ceeb19a + responses: + '204': + description: Query canceled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/tracequery/{queryId}/status: + get: + tags: + - traces + summary: Get a trace search query status. + description: Get a status of a trace query with the given id. When the query has been completed, use the Trace Query Result endpoint to get the result of the asynchronous query. + operationId: getTraceQueryStatus + parameters: + - name: queryId + in: path + description: Identifier of the executed query. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + responses: + '200': + description: Status of the given trace search query. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceQueryStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/tracequery/{queryId}/rows/{rowId}/traces: + get: + tags: + - traces + summary: Get results of a trace search query. + description: Get a list of traces matching a query with the specified id. The response is paginated with a default limit of 100 traces per page. + operationId: getTraceQueryResult + parameters: + - name: queryId + in: path + description: Identifier of the executed query. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + - name: rowId + in: path + description: Identifier of the query row. + required: true + schema: + type: string + example: A + - name: limit + in: query + description: Limit of the number of traces returned in the response. + required: false + schema: + maximum: 500 + minimum: 1 + type: integer + format: int32 + example: 100 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + responses: + '200': + description: Details about the given span query. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceQueryResultResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/metrics: + get: + tags: + - traces + summary: Get trace search query metrics. + description: Get a list of available trace metrics that can be used in trace search queries. + operationId: getMetrics + parameters: [] + responses: + '200': + description: List of available metrics. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceMetricsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/tracequery/fields: + get: + tags: + - traces + summary: Get filter fields for trace search queries. + description: Get a list of available fields which can be used in trace search queries. + operationId: getTraceQueryFields + parameters: [] + responses: + '200': + description: List of available fields. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceFieldsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/tracequery/fields/{field}/values: + get: + tags: + - traces + summary: Get trace search query filter field values. + description: Get a list of available values for the given trace search query filter field. Not all fields support value listing. The response is paginated with a default limit of 10 values per page. + operationId: getTraceQueryFieldValues + parameters: + - name: field + in: path + description: Field identifier. + required: true + schema: + type: string + - name: query + in: query + description: Search filter to apply on the values to be returned. Only values containing the search query term will be returned. + required: false + schema: + type: string + - name: limit + in: query + description: The maximum number of results to fetch. + required: false + schema: + maximum: 500 + minimum: 1 + type: integer + format: int32 + default: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: fieldType + in: query + description: 'Indicates the kind of a field. Possible values: `SpanAttribute`, `SpanEventAttribute`.' + required: false + schema: + pattern: ^(SpanAttribute|SpanEventAttribute)$ + type: string + example: SpanEventAttribute + x-pattern-message: 'Should be one of: `SpanAttribute`, `SpanEventAttribute`.' + responses: + '200': + description: List of available filter values for the given field. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceFieldValuesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}: + get: + tags: + - traces + summary: Get trace details. + description: Get details of a trace with the given identifier. + operationId: getTrace + parameters: + - name: traceId + in: path + description: Identifier of the trace to get the details. + required: true + schema: + type: string + responses: + '200': + description: Details of the trace with the given identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceDetail' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}/exists: + get: + tags: + - traces + summary: Check if the trace exists. + description: Check if the trace with the given identifier exists. + operationId: traceExists + parameters: + - name: traceId + in: path + description: Identifier of the trace to check. + required: true + schema: + type: string + responses: + '200': + description: The response contains the information whether the trace exists with other optional attributes. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceExistsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}/spans: + get: + tags: + - traces + summary: Get a list of trace spans. + description: Get a list of spans for the given trace. The response is paginated with a default limit of 100 spans per page. + operationId: getSpans + parameters: + - name: traceId + in: path + description: Identifier of the trace to get the spans. + required: true + schema: + type: string + - name: limit + in: query + description: The maximum number of results to fetch. + required: false + schema: + maximum: 500 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: List of spans for the given trace. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceSpansResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}/traceEvents: + get: + tags: + - traces + summary: Get a list of events (without their attributes) per span for a trace. + description: Gets a list of the events (without their attributes) attached to each span in a given trace. The response is paginated with a default limit of 100 spans per page. + operationId: getTraceLightEvents + parameters: + - name: traceId + in: path + description: Identifier of the trace for which span events will be returned. + required: true + schema: + maxLength: 32 + minLength: 16 + type: string + example: 695068749d21cd104222a95cabc4707c + - name: limit + in: query + description: The maximum number of spans with events returned by a single query. + required: false + schema: + maximum: 500 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + responses: + '200': + description: Map of spans to events relations. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceLightEventsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}/criticalPath: + get: + tags: + - traces + summary: Get a critical path of a trace. + description: Get a list of span segments composing the critical path of the trace. A span segment represents the processing time that was consumed within the span itself and does not incorporate the processing time of its children. The critical path is the sequence of span segments that contribute to the total trace duration. An increase of the processing time of any segment from the critical path would result in an increase of the total trace processing time. + operationId: getCriticalPath + parameters: + - name: traceId + in: path + description: Identifier of the trace. + required: true + schema: + type: string + - name: limit + in: query + description: The maximum number of results to fetch. + required: false + schema: + maximum: 500 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: List of span segments composing the critical path. + content: + application/json: + schema: + $ref: '#/components/schemas/CriticalPathResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}/criticalPath/breakdown/service: + get: + tags: + - traces + summary: Get a critical path service breakdown of a trace. + description: Get a critical path breakdown by services of the spans contributing to the critical path of a trace with the given identifier. + operationId: getCriticalPathServiceBreakdown + parameters: + - name: traceId + in: path + description: Identifier of the trace. + required: true + schema: + type: string + responses: + '200': + description: List of elements representing the critical path service breakdown. + content: + application/json: + schema: + $ref: '#/components/schemas/CriticalPathServiceBreakdownResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}/spans/{spanId}: + get: + tags: + - traces + summary: Get span details. + description: Get details of a span with the given identifier. + operationId: getSpan + parameters: + - name: traceId + in: path + description: Identifier of the trace the span belongs to. + required: true + schema: + type: string + - name: spanId + in: path + description: Identifier of the span to get the details. + required: true + schema: + type: string + responses: + '200': + description: Details of the span with the given identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceSpanDetail' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/traces/{traceId}/spans/{spanId}/billingInfo: + get: + tags: + - traces + summary: Get span billing details. + description: Get the billing information of the span. + operationId: getSpanBillingInfo + parameters: + - name: traceId + in: path + description: Identifier of the trace the span belongs to. + required: true + schema: + type: string + - name: spanId + in: path + description: Identifier of the span to get the billing info. + required: true + schema: + type: string + responses: + '200': + description: Billing information of the span with the given identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceSpanBillingInfo' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery: + post: + tags: + - spanAnalytics + summary: Run a span analytics query asynchronously. + description: Execute a span analytics query and get the id to fetch its status and results. Use the Span Query Status endpoint to check a query status. When the query has been completed, use the Span Query Result endpoint to get the result of the asynchronous query. + operationId: createSpanQuery + parameters: [] + requestBody: + description: Query parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/SpanQueryRequest' + required: true + responses: + '200': + description: Query execution result. + content: + application/json: + schema: + $ref: '#/components/schemas/SpanQueryResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/{queryId}: + delete: + tags: + - spanAnalytics + summary: Cancel a span analytics query. + description: Cancel a currently processed span search query with the given id. + operationId: cancelSpanQuery + parameters: + - name: queryId + in: path + description: Identifier of the query to cancel. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + responses: + '204': + description: Query canceled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/{queryId}/status: + get: + tags: + - spanAnalytics + summary: Get a span analytics query status. + description: Get a status of a span analytics query with the given id. When the query has been completed, use the Span Query Result endpoint to get the result of the asynchronous query. + operationId: getSpanQueryStatus + parameters: + - name: queryId + in: path + description: Identifier of the executed query. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + responses: + '200': + description: Details about the given span query. + content: + application/json: + schema: + $ref: '#/components/schemas/SpanQueryStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/{queryId}/pause: + put: + tags: + - spanAnalytics + summary: Pause a span analytics query. + description: Pause a currently processed span search query with the given id. + operationId: pauseSpanQuery + parameters: + - name: queryId + in: path + description: Identifier of the query to pause. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + responses: + '204': + description: Query paused successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/{queryId}/resume: + put: + tags: + - spanAnalytics + summary: Resume a span analytics query. + description: Resume a previously paused span search query with the given id. + operationId: resumeSpanQuery + parameters: + - name: queryId + in: path + description: Identifier of the query to resume. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + responses: + '204': + description: Query resumed successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/{queryId}/rows/{rowId}/spans: + get: + tags: + - spanAnalytics + summary: Get results of a span analytics query. + description: Get a list of spans matching a query with the specified id. The response is paginated with a default limit of 100 spans per page. + operationId: getSpanQueryResult + parameters: + - name: queryId + in: path + description: Identifier of the executed query. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + - name: rowId + in: path + description: Identifier of the query row. + required: true + schema: + type: string + example: A + - name: limit + in: query + description: Limit of the number of spans returned in the response. + required: false + schema: + maximum: 500 + minimum: 1 + type: integer + format: int32 + example: 100 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + responses: + '200': + description: Details about the given span query. + content: + application/json: + schema: + $ref: '#/components/schemas/SpanQueryResultSpansResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/{queryId}/rows/{rowId}/facets: + get: + tags: + - spanAnalytics + summary: Get a list of facets of a span analytics query. + description: Get a list of facets of a span analytics query with the specified id. + operationId: getSpanQueryFacets + parameters: + - name: queryId + in: path + description: Identifier of the executed query. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + - name: rowId + in: path + description: Identifier of the query row. + required: true + schema: + type: string + example: A + responses: + '200': + description: The list of facets from the executed query. + content: + application/json: + schema: + $ref: '#/components/schemas/SpanQueryResultFacetsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/{queryId}/aggregates: + get: + tags: + - spanAnalytics + summary: Get span analytics query aggregated results. + description: Get span aggregation results for an aggregated span analytics query with the specified id. Only aggregated rows being part of the executed query will have matching results in the response of this endpoint. + operationId: getSpanQueryAggregates + parameters: + - name: queryId + in: path + description: Identifier of the executed query. + required: true + schema: + type: string + example: 195038749d21ad109242c95cbbc8709d + responses: + '200': + description: The aggregation result of the executed query. + content: + application/json: + schema: + $ref: '#/components/schemas/SpanQueryAggregateResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/fields: + get: + tags: + - spanAnalytics + summary: Get filter fields for span analytics queries. + description: Get a list of available fields which can be used in span analytics queries. + operationId: getSpanQueryFields + parameters: [] + responses: + '200': + description: List of available fields. + content: + application/json: + schema: + $ref: '#/components/schemas/SpanQueryFieldsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/spanquery/fields/{field}/values: + get: + tags: + - spanAnalytics + summary: Get span analytics query filter field values. + description: Get a list of available values for the given span analytics query filter field. Not all fields support value listing. The response is paginated with a default limit of 10 field values per page. + operationId: getSpanQueryFieldValues + parameters: + - name: field + in: path + description: Field identifier. + required: true + schema: + type: string + - name: query + in: query + description: Search filter to apply on the values to be returned. Only values containing the search query term will be returned. + required: false + schema: + type: string + - name: limit + in: query + description: The maximum number of results to fetch. + required: false + schema: + maximum: 500 + minimum: 1 + type: integer + format: int32 + default: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: List of available filter values for the given field. + content: + application/json: + schema: + $ref: '#/components/schemas/TraceFieldValuesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/tracing/serviceMap: + get: + tags: + - serviceMap + summary: Get a service map. + description: Run a search request to get a map of services and connections between them. + operationId: getServiceMap + parameters: [] + responses: + '200': + description: List of nodes and list of edges. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceMapResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + AsyncTraceQueryRequest: + required: + - queryRows + - timeRange + type: object + properties: + queryRows: + type: array + description: A list of trace queries. + items: + $ref: '#/components/schemas/AsyncTraceQueryRow' + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + CreateTraceQueryResponse: + required: + - queryId + type: object + properties: + queryId: + type: string + description: Id of the created query + example: cafaebf2f4f8320f + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + TraceQueryStatusResponse: + required: + - queryRows + - status + type: object + properties: + queryRows: + type: array + description: A list of trace queries. + items: + $ref: '#/components/schemas/TraceQueryRowStatus' + status: + pattern: ^(Processing|Finished|Error|Canceled)$ + type: string + description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Canceled`.' + example: Processing + x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Canceled`. + TraceQueryResultResponse: + required: + - results + type: object + properties: + results: + type: array + description: List of traces matching the query. + items: + $ref: '#/components/schemas/TraceDetail' + next: + type: string + description: Next continuation token. + example: '10001' + TraceMetricsResponse: + required: + - metrics + type: object + properties: + metrics: + type: array + description: List of trace metrics. + items: + $ref: '#/components/schemas/TraceMetricDetail' + TraceFieldsResponse: + required: + - fields + type: object + properties: + fields: + type: array + description: List of filter fields. + items: + $ref: '#/components/schemas/TraceFieldDetail' + TraceFieldValuesResponse: + required: + - fieldValues + - totalCount + type: object + properties: + fieldValues: + type: array + description: List of filter field values. + items: + type: string + totalCount: + type: integer + description: Total number of values for a field matching the query. Can be approximated when it's above 3000. + format: int64 + example: 1234 + next: + type: string + description: Next continuation token. + example: Mi93V0ZqTTBzaW89 + TraceDetail: + required: + - id + type: object + properties: + id: + type: string + description: Trace identifier. + example: 00000000000120CB + rootService: + type: string + description: 'Root service which started the trace. Examples: `user-service`, `authentication-service`, `payment-service`, `/shopping-cart`' + example: user-service + rootResource: + type: string + description: 'Root resource on which the trace was started. Examples: `db.query`, `http.request`, `rpc.call`, `container`' + example: http.request + rootStatus: + $ref: '#/components/schemas/TraceSpanStatus' + rootOperationName: + type: string + description: The name of the operation given to the root span. + example: retrieveAccount + metrics: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/DoubleTracingValue' + description: Calculated trace metrics. + example: + _duration: 143984411 + startedAt: + type: string + description: Date and time the trace was started in [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2019-11-22T09:00:00.000Z' + criticalPathServiceBreakdownSummary: + $ref: '#/components/schemas/CriticalPathServiceBreakdownSummary' + TraceExistsResponse: + required: + - exists + type: object + properties: + exists: + type: boolean + description: Indicates whether the trace with the given trace id exists. + example: true + url: + type: string + description: A path to the trace view page in Sumo Logic UI. + example: '#/trace/00000000000120CB' + TraceSpansResponse: + required: + - spans + - totalCount + type: object + properties: + spanPage: + type: array + description: List of trace spans. + items: + $ref: '#/components/schemas/TraceSpan' + totalCount: + type: integer + description: Total count of spans for this trace. + format: int64 + example: 1234 + next: + type: string + description: Next continuation token. + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + TraceLightEventsResponse: + type: object + properties: + spanEvents: + maxProperties: 1000 + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/LightSpanEvent' + description: Map of span ids to lists of their events, without their attributes. + next: + type: string + description: Next continuation token. + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + CriticalPathResponse: + required: + - segments + type: object + properties: + segments: + type: array + description: List of span segments from the critical path. + items: + $ref: '#/components/schemas/SpanPathSegment' + next: + type: string + description: Next continuation token. + example: Mi93V0ZqTTBzaW89 + CriticalPathServiceBreakdownResponse: + required: + - elements + - idleTime + type: object + properties: + elements: + type: array + description: List of elements representing the critical path service breakdown. + items: + $ref: '#/components/schemas/CriticalPathServiceBreakdownElementDetail' + idleTime: + type: integer + description: Overall time in nanoseconds when no particular operation was in progress. + format: int64 + example: 60000000 + TraceSpanDetail: + required: + - duration + - id + - operationName + - startedAt + - status + type: object + properties: + id: + type: string + description: Identifier of the span. + example: 00000000002317A9 + parentId: + type: string + description: Identifier of the parent span, if any. If the span has no parent it's considered a root span. + example: 000000000003C7BE + operationName: + type: string + description: The name of the operation given to the span. + example: retrieveAccount + resource: + type: string + description: The name of the resource attached to the span. + example: http.request + service: + type: string + description: The name of the service this span is part of. + example: user-service + serviceColor: + type: string + description: Color hex code assigned to the service. + example: '#fa41c6' + serviceType: + $ref: '#/components/schemas/ServiceType' + duration: + type: integer + description: Number of nanoseconds the span lasted. + format: int64 + example: 212957153 + startedAt: + type: string + description: Date and time the span was started in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2019-11-22T09:00:00.000Z' + status: + $ref: '#/components/schemas/TraceSpanStatus' + kind: + pattern: ^(CLIENT|SERVER|PRODUCER|CONSUMER|INTERNAL)$ + type: string + description: 'Span kind describes the relationship between the Span, its parents, and its children in a Trace. Possible values: `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER`, `INTERNAL`.' + example: SERVER + x-pattern-message: Should be either `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER` or `INTERNAL`. + remoteService: + type: string + description: Name of the possible remote span's service. + example: external-service + remoteServiceColor: + type: string + description: Color hex code assigned to the remote service. + example: '#fa41c6' + remoteServiceType: + $ref: '#/components/schemas/ServiceType' + info: + $ref: '#/components/schemas/TraceSpanInfo' + numberOfLinks: + type: integer + description: Number of span links in this span. + format: int32 + example: 2 + errorMessage: + type: string + description: Produced error message (could be a stack trace, database error code, ..) + example: | + Exception in thread "local[9]" java.lang.OutOfMemoryError: Java heap space + at my.app.force.fields.SpaceShipForceField.main(SpaceShipForceField.java:17) + fields: + type: object + additionalProperties: + $ref: '#/components/schemas/TracingValue' + description: Fields attached to this span. + example: + component: + type: StringTracingValue + value: http + http.request.method: + type: StringTracingValue + value: GET + url.full: + type: StringTracingValue + value: https://example.com/v1/users/123 + http.response.status_code: + type: StringTracingValue + value: '200' + criticalPathContribution: + $ref: '#/components/schemas/TraceSpanCriticalPathContribution' + logs: + type: array + description: Logs attached to this span. + example: + - '[19/Dec/2019:10:58:21 +0000] ''GET /v1/users/123 HTTP/1.1'' 200 8215 ''http://111.111.11.1/'' ''Mozilla/5.0 (Macintosh; Intel Mac OS X 11_11_1) AppleWebKit/111.11 (KHTML, like Gecko) Chrome/11.1.1111.11 Safari/111.11''' + - '[19/Dec/2019:10:58:24 +0000] ''GET /logo.png HTTP/1.1'' 404 555 ''http://111.111.11.1/'' ''Mozilla/5.0 (Macintosh; Intel Mac OS X 11_11_1) AppleWebKit/111.11 (KHTML, like Gecko) Chrome/11.1.1111.11 Safari/111.11''' + items: + type: string + events: + type: array + description: Events attached to this span. + items: + $ref: '#/components/schemas/SpanEvent' + links: + type: array + description: List of casually related spans. + items: + $ref: '#/components/schemas/SpanLink' + TraceSpanBillingInfo: + required: + - billedBytes + - billedFormat + type: object + properties: + billedBytes: + type: integer + description: Number of bytes that were charged for the span. + example: 529 + billedFormat: + type: string + description: Billing format of the span. Number of bytes of this representation of the span is equal to `billedBytes`. + example: traceId=2ff9c457b1aa00f4;spanId=97872e33215c4275;parentSpanId=98bcdfc5da874c40;operation=spanId-97872e33215c4275;startTimestamp=1603283111874000000;endTimestamp=1603283112268000000;service=ServiceA;status.code=ERROR;status.message=ERROR;kind=SERVER;custom-tag-2=value2;_sourcehost=127.0.0.1;url.full=https://example.com/api/operation-x;message=Some error message;_sourcecategory=Http Input;custom-tag-1=value1;error=true;_sourcename=Http Input;error.kind=InvalidInput;_collector=trace-generator-collector;http.request.method=GET; + SpanQueryRequest: + required: + - queryRows + - timeRange + type: object + properties: + queryRows: + type: array + description: A list of span analytics queries. + items: + $ref: '#/components/schemas/SpanQueryRow' + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + timeZone: + type: string + description: Time zone for the query time ranges. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + default: UTC + SpanQueryResponse: + required: + - queryId + - queryRows + type: object + properties: + queryId: + type: string + description: Id of the created query + queryRows: + type: array + description: A list of row responses with details about individual queries. + items: + $ref: '#/components/schemas/SpanQueryRowResponse' + hasErrors: + type: boolean + description: Indicates whether there was an error while executing the query. + example: true + default: false + timeRange: + $ref: '#/components/schemas/BeginBoundedTimeRange' + SpanQueryStatusResponse: + required: + - queryRows + - status + type: object + properties: + queryRows: + type: array + description: A list of span analytics queries. + items: + $ref: '#/components/schemas/SpanQueryRowStatus' + status: + pattern: ^(Processing|Finished|Error|Paused)$ + type: string + description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Paused`' + example: Processing + x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Paused`. + SpanQueryResultSpansResponse: + required: + - spanPage + type: object + properties: + spanPage: + type: array + description: List of trace spans. + items: + $ref: '#/components/schemas/SpanQuerySpanData' + next: + type: string + description: Next continuation token. + example: Mi93V0ZqTTBzaW89 + SpanQueryResultFacetsResponse: + required: + - facets + type: object + properties: + facets: + type: array + description: List of facets. + items: + $ref: '#/components/schemas/SpanQueryRowFacet' + SpanQueryAggregateResponse: + required: + - result + type: object + properties: + result: + $ref: '#/components/schemas/SpanQueryAggregateResult' + SpanQueryFieldsResponse: + required: + - fields + type: object + properties: + fields: + type: array + description: List of span fields. + items: + $ref: '#/components/schemas/SpanQueryFieldDetail' + ServiceMapResponse: + required: + - edges + - nodes + type: object + properties: + nodes: + type: array + description: List of service map nodes. + items: + $ref: '#/components/schemas/ServiceMapNode' + edges: + type: array + description: List of service map edges. + items: + $ref: '#/components/schemas/ServiceMapEdge' + AsyncTraceQueryRow: + required: + - query + - rowId + type: object + properties: + query: + $ref: '#/components/schemas/TraceQueryExpression' + rowId: + maxLength: 16 + type: string + description: An identifier used to reference this particular row of the query request while fetching a query result. Within a query, row ids must have distinct values. + example: '#A' + orderBy: + $ref: '#/components/schemas/OrderBy' + ResolvableTimeRange: + required: + - type + type: object + properties: + type: + type: string + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. + example: + type: BeginBoundedTimeRange + from: + type: RelativeTimeRangeBoundary + relativeTime: '-15m' + discriminator: + propertyName: type + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + TraceQueryRowStatus: + required: + - count + - rowId + - status + type: object + properties: + rowId: + type: string + description: A unique identifier of the query. + example: A + status: + pattern: ^(Processing|Finished|Error|Canceled)$ + type: string + description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Canceled`.' + example: Processing + x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Canceled`. + statusMessage: + type: string + description: Descriptive message of the status + example: Finished successfully + count: + minimum: 0 + type: integer + description: Number of results matching the query + format: int64 + example: 3215 + TraceMetricDetail: + required: + - metric + - type + type: object + properties: + metric: + type: string + description: Trace metric name. In trace queries it can be used in `MetricTracingFilter.metric`. + example: _duration + description: + type: string + description: Short description of the metric. + example: The duration of a trace in nanoseconds. + type: + type: string + description: 'The type the values of this field will have. Possible values: `DoubleTracingValue`, `IntegerTracingValue`.' + example: IntegerTracingValue + TraceFieldDetail: + required: + - field + - fieldType + - type + type: object + properties: + field: + type: string + description: Filter field name. + example: operation + fieldType: + pattern: ^(SpanAttribute|SpanEventAttribute)$ + type: string + description: 'Indicates the kind of a field. Possible values: `SpanAttribute`, `SpanEventAttribute`.' + example: SpanEventAttribute + default: SpanAttribute + x-pattern-message: 'Should be one of: `SpanAttribute`, `SpanEventAttribute`.' + valueListing: + type: boolean + description: Indicates whether values for this field can be listed. + example: false + description: + type: string + description: Short description of the field. + example: A piece of the workflow represented by a span + type: + type: string + description: 'The type the values of this field will have. Possible values: `DoubleTracingValue`, `IntegerTracingValue`, `StringTracingValue`, `DateTimeTracingValue`.' + example: StringTracingValue + noValuesReason: + $ref: '#/components/schemas/NoTraceFieldValuesReason' + TraceSpanStatus: + required: + - code + type: object + properties: + code: + type: string + description: 'Status code of the span. Possible values: `OK`, `ERROR`, `UNKNOWN`.' + example: OK + message: + type: string + description: Optional descriptive message about the status, could be an http status code or the kind of an error, e.g. OSError. + example: '404' + DoubleTracingValue: + required: + - type + - value + properties: + type: + type: string + description: Type of the value model. + value: + type: number + format: double + discriminator: + propertyName: type + type: object + CriticalPathServiceBreakdownSummary: + required: + - elements + - idleTime + - otherServicesDuration + type: object + properties: + elements: + type: array + description: List of the elements representing the critical path service duration breakdown - contains the first few services with the longest overall duration of the spans contributing to the critical path. + items: + $ref: '#/components/schemas/CriticalPathServiceBreakdownElementBase' + otherServicesDuration: + type: integer + description: Overall processing time in nanoseconds consumed by the rest of the spans in the critical path (a sum of the duration times of the spans' critical path segments). + format: int64 + example: 12957153 + idleTime: + type: integer + description: Overall time in nanoseconds when no particular operation was in progress. + format: int64 + example: 60000000 + TraceSpan: + required: + - duration + - id + - operationName + - startedAt + - status + type: object + properties: + id: + type: string + description: Identifier of the span. + example: 00000000002317A9 + parentId: + type: string + description: Identifier of the parent span, if any. If the span has no parent it's considered a root span. + example: 000000000003C7BE + operationName: + type: string + description: The name of the operation given to the span. + example: retrieveAccount + resource: + type: string + description: The name of the resource attached to the span. + example: http.request + service: + type: string + description: The name of the service this span is part of. + example: user-service + serviceColor: + type: string + description: Color hex code assigned to the service. + example: '#fa41c6' + serviceType: + $ref: '#/components/schemas/ServiceType' + duration: + type: integer + description: Number of nanoseconds the span lasted. + format: int64 + example: 212957153 + startedAt: + type: string + description: Date and time the span was started in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2019-11-22T09:00:00.000Z' + status: + $ref: '#/components/schemas/TraceSpanStatus' + kind: + pattern: ^(CLIENT|SERVER|PRODUCER|CONSUMER|INTERNAL)$ + type: string + description: 'Span kind describes the relationship between the Span, its parents, and its children in a Trace. Possible values: `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER`, `INTERNAL`.' + example: SERVER + x-pattern-message: Should be either `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER` or `INTERNAL`. + remoteService: + type: string + description: Name of the possible remote span's service. + example: external-service + remoteServiceColor: + type: string + description: Color hex code assigned to the remote service. + example: '#fa41c6' + remoteServiceType: + $ref: '#/components/schemas/ServiceType' + info: + $ref: '#/components/schemas/TraceSpanInfo' + numberOfLinks: + type: integer + description: Number of span links in this span. + format: int32 + example: 2 + LightSpanEvent: + required: + - name + - timestamp + type: object + properties: + timestamp: + type: string + description: Time when an event happened in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2021-04-19T17:36:57.476Z' + name: + type: string + description: Name of the event. + example: domContentLoadedEventStart + description: Light version of Span Event, without the attributes. + SpanPathSegment: + required: + - duration + - ratio + - spanId + - startOffset + type: object + properties: + spanId: + type: string + description: Span identifier. + example: 00000000000120CB + service: + type: string + description: The name of the service this span is part of. + example: user-service + serviceColor: + type: string + description: Color hex code assigned to the service. + example: '#fa41c6' + startOffset: + type: integer + description: Number of nanoseconds from the span startedAt the segment started. + format: int64 + example: 311285715 + duration: + type: integer + description: Number of nanoseconds the span segment lasted. + format: int64 + example: 12957153 + fraction: + type: number + description: The fraction (value between 0.0 and 1.0) from the trace duration time this segment took. + format: double + example: 0.4 + CriticalPathServiceBreakdownElementDetail: + required: + - duration + - longestSegmentDuration + - numSpans + type: object + properties: + service: + type: string + description: The name of the service. + example: user-service + serviceColor: + type: string + description: Color hex code assigned to the service. + example: '#fa41c6' + duration: + type: integer + description: Overall processing time in nanoseconds consumed by the spans belonging to this service in the critical path (a sum of the duration times of the spans' critical path segments). + format: int64 + example: 12957153 + numSpans: + type: integer + description: Number of spans that are part of this service. + format: int32 + example: 12957153 + longestSegmentDuration: + type: integer + description: Number of nanoseconds the longest span segment in the critical path lasted. + format: int64 + example: 12957153 + TracingValue: + required: + - type + properties: + type: + type: string + description: Type of the value model. + discriminator: + propertyName: type + type: object + TraceSpanCriticalPathContribution: + required: + - duration + - fraction + type: object + properties: + duration: + type: integer + description: Overall processing time in nanoseconds consumed by this span in the critical path of its trace (a sum of the duration times of this span's critical path segments). + format: int64 + example: 12957153 + fraction: + type: number + description: The total fraction (value between 0.0 and 1.0) of the trace duration time consumed by this span in the critical path of its trace. + format: double + example: 0.4 + SpanEvent: + description: Span event containing all information (in particular attributes). + required: + - name + - timestamp + type: object + properties: + timestamp: + type: string + description: Time when an event happened in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2021-04-19T17:36:57.476Z' + name: + type: string + description: Name of the event. + example: domContentLoadedEventStart + attributes: + type: array + description: Span event attributes. + items: + $ref: '#/components/schemas/SpanEventAttribute' + SpanLink: + required: + - spanId + - traceId + type: object + properties: + traceId: + type: string + description: Trace identifier of the linked span. + example: 00000000002317A9 + spanId: + type: string + description: Span identifier of the linked span. + example: 000000000003C7BE + description: Details of the linked span. + SpanQueryRow: + required: + - queryString + - rowId + type: object + properties: + queryString: + type: string + description: Query string using the log search syntax. + rowId: + pattern: ^[a-zA-Z0-9_]*$ + type: string + description: An identifier used to reference this particular row of the query request. Within a query, row ids must have distinct values. + example: A + SpanQueryRowResponse: + required: + - isAggregation + - rowId + type: object + properties: + rowId: + type: string + description: A unique identifier of the query. + example: A + errors: + type: array + description: List of errors which occured when executing the query + items: + $ref: '#/components/schemas/SpanQueryRowError' + isAggregation: + type: boolean + description: Indicates whether this query is an aggregation + example: true + default: false + executedQuery: + type: string + description: The executed query after rewriting + example: _index=_trace_spans traceId=00000000002317A9 + BeginBoundedTimeRange: + required: + - type + - from + type: object + properties: + type: + type: string + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. + from: + $ref: '#/components/schemas/TimeRangeBoundary' + to: + $ref: '#/components/schemas/TimeRangeBoundary' + example: + type: BeginBoundedTimeRange + from: + type: RelativeTimeRangeBoundary + relativeTime: '-15m' + discriminator: + propertyName: type + SpanQueryRowStatus: + required: + - count + - rowId + - status + type: object + properties: + rowId: + type: string + description: A unique identifier of the query. + example: A + status: + pattern: ^(Processing|Finished|Error|Paused)$ + type: string + description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Paused`.' + example: Processing + x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Paused`. + statusMessage: + type: string + description: Descriptive message of the status. + example: Finished successfully + count: + minimum: 0 + type: integer + description: Number of results matching the query + format: int64 + example: 3215 + approximatedFieldCounts: + type: boolean + description: Indicates whether facet field cardinality counts are approximated or not. + example: false + facetsCompleted: + type: boolean + description: Indicates whether facets calculation has completed. + example: false + SpanQuerySpanData: + required: + - duration + - startedAt + type: object + properties: + spanId: + type: string + description: Identifier of the span. + example: 00000000002317A9 + traceId: + type: string + description: Identifier of the trace. + example: 1BB004A0005213C2 + parentSpanId: + type: string + description: Identifier of the parent span, if any. If the span has no parent it's considered a root span. + example: 000000000003C7BE + operationName: + type: string + description: The name of the operation given to the span. + example: retrieveAccount + service: + type: string + description: The name of the service this span is part of. + example: user-service + remoteService: + type: string + description: Name of the possible remote span's service. + example: external-service + duration: + type: integer + description: Number of nanoseconds the span lasted. + format: int64 + example: 212957153 + startedAt: + type: string + description: Date and time the span was started in [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2019-11-22T09:00:00.000Z' + status: + $ref: '#/components/schemas/TraceSpanStatus' + kind: + pattern: ^(CLIENT|SERVER|PRODUCER|CONSUMER|INTERNAL)$ + type: string + description: 'Span kind describes the relationship between the Span, its parents, and its children in a Trace. Possible values: `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER`, `INTERNAL`.' + example: SERVER + x-pattern-message: Should be either `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER` or `INTERNAL`. + tagsJSON: + type: string + description: Tags attached to this span as JSON. + example: |- + { + "http.host":"http://example.com", + "http.request.method":"GET" + } + metadata: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Metadata attached to the span. + example: + _sourceCategory: account-backend + SpanQueryRowFacet: + required: + - cardinality + - dataType + - name + type: object + properties: + name: + type: string + description: Name of the field facet. + example: _sourceHost + cardinality: + type: integer + description: The number of unique values this field occured. + format: int32 + example: 3 + dataType: + pattern: ^(String|Int|Long|Double|Boolean)$ + type: string + description: Data type of the field. + example: String + x-pattern-message: Should be either `String`, `Int`, `Long`, `Double` or `Boolean`. + inSchema: + type: boolean + description: Indicates whether the field is available in the span schema. + example: false + valueFrequency: + maxProperties: 1000 + type: object + additionalProperties: + type: integer + format: int64 + description: Map of field value frequencies. + example: + _sourceHost: 34099 + SpanQueryAggregateResult: + required: + - series + - status + type: object + properties: + status: + pattern: ^(Processing|Finished|Error|Paused)$ + type: string + description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Paused`.' + example: Processing + x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Paused`. + statusMessage: + type: string + description: Descriptive message of the status + example: Finished successfully + series: + type: array + description: The series returned from a search. + items: + $ref: '#/components/schemas/SpanQueryAggregateDataSeries' + SpanQueryFieldDetail: + required: + - field + - fieldType + - type + - inSchema + type: object + properties: + field: + type: string + description: Filter field name. + example: operation + fieldType: + pattern: ^(SpanAttribute|SpanEventAttribute)$ + type: string + description: 'Indicates the kind of a field. Possible values: `SpanAttribute`, `SpanEventAttribute`.' + example: SpanEventAttribute + default: SpanAttribute + x-pattern-message: 'Should be one of: `SpanAttribute`, `SpanEventAttribute`.' + valueListing: + type: boolean + description: Indicates whether values for this field can be listed. + example: false + description: + type: string + description: Short description of the field. + example: A piece of the workflow represented by a span + type: + type: string + description: 'The type the values of this field will have. Possible values: `DoubleTracingValue`, `IntegerTracingValue`, `StringTracingValue`, `DateTimeTracingValue`.' + example: StringTracingValue + noValuesReason: + $ref: '#/components/schemas/NoTraceFieldValuesReason' + inSchema: + type: boolean + description: Indicates whether the field is available in the schema. + example: false + ServiceMapNode: + required: + - isRemote + - lastSeenAt + - serviceName + - serviceType + type: object + properties: + serviceName: + type: string + description: Name of a service in a service map. + example: service_name_1 + serviceColor: + type: string + description: Color hex code assigned to the service. + example: '#fa41c6' + lastSeenAt: + type: string + description: The last time in UTC a service has been seen. Formatted as defined by date-time - RFC3339. + format: date-time + example: '2019-11-22T09:00:00.000Z' + isRemote: + type: boolean + description: Indicates whether node comes from inferred remote service or instrumented one. + example: true + serviceType: + $ref: '#/components/schemas/ServiceType' + ServiceMapEdge: + required: + - lastSeenAt + - source + - target + type: object + properties: + source: + type: string + description: Name of a source service. Edge is directed from source to target. + example: service_name_1 + target: + type: string + description: Name of a target service. Edge is directed from source to target. + example: service_name_2 + lastSeenAt: + type: string + description: The last time in UTC an edge has been seen. Formatted as defined by date-time - RFC3339. + format: date-time + example: '2019-11-22T09:00:00.000Z' + TraceQueryExpression: + required: + - type + type: object + properties: + type: + type: string + description: Expression type of the object model. + description: Base query expression object. + discriminator: + propertyName: type + OrderBy: + required: + - fieldName + - order + type: object + properties: + fieldName: + maxLength: 32 + minLength: 1 + type: string + description: 'Field based on which results should be sorted. When not provided, the default behavior is to sort by timestamp descending. Sortable fields values: `trace_id`, `start_timestamp`, `duration`, `spans_number`, `errors`, `status_code`.' + example: start_timestamp + order: + pattern: ^(Asc|Desc)$ + type: string + description: Type of sorting values - descending or ascending. + example: Asc + default: Desc + x-pattern-message: should be either 'Asc' or 'Desc' + NoTraceFieldValuesReason: + required: + - code + - message + type: object + properties: + code: + pattern: ^(HighCardinalityField|AutocompleteDisabled)$ + type: string + description: 'A code uniquely identifying the reason for the lack of trace field values. Possible values: `HighCardinalityField`, `AutocompleteDisabled`.' + example: HighCardinalityField + x-pattern-message: Should be either `HighCardinalityField`, `AutocompleteDisabled`. + message: + type: string + description: A short English-language description of the reason. + example: Autocomplete has been disabled for this field due to high cardinality. + CriticalPathServiceBreakdownElementBase: + required: + - duration + type: object + properties: + service: + type: string + description: The name of the service. + example: user-service + serviceColor: + type: string + description: Color hex code assigned to the service. + example: '#fa41c6' + duration: + type: integer + description: Overall processing time in nanoseconds consumed by the spans belonging to this service in the critical path (a sum of the duration times of the spans' critical path segments). + format: int64 + example: 12957153 + ServiceType: + pattern: ^(Db|HTTP|MQ|Web|Mixed|Unknown|Cpp|DotNET|Erlang|Go|Java|NodeJS|Php|Python|Ruby|WebJS|Swift|MSSQL|MySQL|Oracle|Db2|PostgreSQL|Redshift|Hive|Cloudscape|HSQLDB|Progress|MaxDB|HANADB|Ingres|FirstSQL|EnterpriseDB|Cache|Adabas|Firebird|ApacheDerby|FileMaker|Informix|InstantDB|InterBase|MariaDB|Netezza|PervasivePSQL|PointBase|SQLite|Sybase|Teradata|Vertica|H2|ColdFusion|Cassandra|HBase|MongoDB|Redis|Couchbase|CouchDB|CosmosDB|DynamoDB|Neo4j|Geode|Elasticsearch|Memcached|CockroachDB|RPC|gRPC|JavaRMI|DotNETWCF|ApacheDubbo)$ + type: string + description: Defines type of service. + example: HTTP + x-pattern-message: Should be either `Db`, `HTTP`, `MQ`, `Web`, `Mixed`, `Unknown`, `Cpp`, `DotNET`, `Erlang`, `Go`, `Java`, `NodeJS`, `Php`, `Python`, `Ruby`, `WebJS`, `Swift`, `MSSQL`, `MySQL`, `Oracle`, `Db2`, `PostgreSQL`, `Redshift`, `Hive`, `Cloudscape`, `HSQLDB`, `Progress`, `MaxDB`, `HANADB`, `Ingres`, `FirstSQL`, `EnterpriseDB`, `Cache`, `Adabas`, `Firebird`, `ApacheDerby`, `FileMaker`, `Informix`, `InstantDB`, `InterBase`, `MariaDB`, `Netezza`, `PervasivePSQL`, `PointBase`, `SQLite`, `Sybase`, `Teradata`, `Vertica`, `H2`, `ColdFusion`, `Cassandra`, `HBase`, `MongoDB`, `Redis`, `Couchbase`, `CouchDB`, `CosmosDB`, `DynamoDB`, `Neo4j`, `Geode`, `Elasticsearch`, `Memcached`, `CockroachDB`, `RPC`, `gRPC`, `JavaRMI`, `DotNETWCF` or `ApacheDubbo` + TraceSpanInfo: + required: + - type + type: object + properties: + type: + type: string + description: 'Type of this span. Possible values: `TraceHttpSpanInfo`, `TraceDbSpanInfo`, `TraceMessageBusSpanInfo`.' + example: TraceHttpSpanInfo + discriminator: + propertyName: type + SpanEventAttribute: + type: object + properties: + attributeName: + type: string + description: Name of the attribute. + example: message_details + attributeValue: + $ref: '#/components/schemas/EventAttributeValue' + SpanQueryRowError: + required: + - code + - message + type: object + properties: + code: + type: string + description: The error code. + example: spanquery:query_validation_error + message: + type: string + description: Short description of the occured error. + example: Query A was invalid + details: + type: string + description: Details about the occured error. + example: '[1.78] failure: ''('' expected but '')'' found.' + TimeRangeBoundary: + required: + - type + type: object + properties: + type: + type: string + description: 'Type of the time range boundary. Value must be from list: - `RelativeTimeRangeBoundary`, - `EpochTimeRangeBoundary`, - `Iso8601TimeRangeBoundary`, - `LiteralTimeRangeBoundary`.' + example: RelativeTimeRangeBoundary + discriminator: + propertyName: type + SpanQueryAggregateDataSeries: + required: + - dataPoints + - name + - queryId + type: object + properties: + queryId: + type: string + description: The id of the query. + example: A + name: + type: string + description: | + The meaning of 'name' depends on the series type. + - For results of type 'timeseries', it is the value of the x axis 'field' key. + - For results of type 'nontimeseries', it is the name of one of the fields that is not part of 'xAxisKeys'. + - For results of type 'table', it is the comma-separated string of names of all fields. + example: max(Disk_Used) + dataPoints: + type: array + description: A list of data points in the series. + items: + $ref: '#/components/schemas/SpanQueryAggregatePointData' + aggregateInfo: + $ref: '#/components/schemas/SpanQueryAggregateAggregateData' + metaData: + $ref: '#/components/schemas/SpanQueryAggregateMetaData' + seriesType: + pattern: ^(TIMESERIES|NONTIMESERIES|TABLE)$ + type: string + description: Type of the visual series. + example: TIMESERIES + x-pattern-message: Should be either `TIMESERIES`, `NONTIMESERIES`, `TABLE`. + xAxisKeys: + type: array + description: Keys that will be plotted as a point on the x axis. + example: + - _sourceCategory + - _sourceHost + items: + type: string + valueType: + pattern: ^(STRING|DOUBLE)$ + type: string + description: Type of the values in the series. + example: DOUBLE + x-pattern-message: Should be either `STRING`, `DOUBLE`. + EventAttributeValue: + required: + - type + properties: + type: + pattern: ^(BooleanEventAttributeValue|StringEventAttributeValue|DoubleEventAttributeValue|IntegerEventAttributeValue|BooleanArrayEventAttributeValue|StringArrayEventAttributeValue|DoubleArrayEventAttributeValue|IntegerArrayEventAttributeValue)$ + type: string + description: Type of the event attribute value. + example: BooleanAttributeValue + discriminator: + propertyName: type + type: object + SpanQueryAggregatePointData: + required: + - 'y' + type: object + properties: + x: + type: number + description: Value that represents a point on the x axis. + format: double + example: 1 + 'y': + type: string + description: Value that represents a point on the y axis. + example: '12.3' + xAxisValues: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Values that represents a point on the x axis. + example: + operation: /get/accounts + service: accountService + default: {} + SpanQueryAggregateAggregateData: + required: + - avg + - latest + - max + - min + - sum + type: object + properties: + max: + type: number + description: The maximum value in the series. + format: double + example: 10 + min: + type: number + description: The minimum value in the series. + format: double + example: 1.2 + avg: + type: number + description: The average value in the series. + format: double + example: 5.6 + sum: + type: number + description: The sum of all the values in the series. + format: double + example: 123.4 + latest: + type: number + description: The last value in the series. + format: double + example: 23.4 + count: + type: number + description: The number of values in the series. + format: double + example: 600 + SpanQueryAggregateMetaData: + required: + - data + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: The value of the metadata. + example: + deployment: dev + cluster: frontend + instance: frontend-12 + default: {} diff --git a/provider-dev/source/transformation_rules.yaml b/provider-dev/source/transformation_rules.yaml new file mode 100644 index 0000000..ebd03c5 --- /dev/null +++ b/provider-dev/source/transformation_rules.yaml @@ -0,0 +1,344 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Transformation Rules API + description: Metrics transformation rules. + version: 1.0.0 +paths: + /v1/transformationRules: + get: + tags: + - transformationRuleManagement + summary: Get a list of transformation rules. + description: Get a list of transformation rules in the organization. The response is paginated with a default limit of 100 rules per page. + operationId: getTransformationRules + parameters: + - name: limit + in: query + description: Limit the number of transformation rules returned in the response. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + example: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: List of transformation rules. + content: + application/json: + schema: + $ref: '#/components/schemas/TransformationRulesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - transformationRuleManagement + summary: Create a new transformation rule. + description: Create a new transformation rule. + operationId: createRule + parameters: [] + requestBody: + description: The configuration of the transformation rule to create. + content: + application/json: + schema: + $ref: '#/components/schemas/TransformationRuleRequest' + required: true + responses: + '200': + description: The transformation rule was successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/TransformationRuleResponse' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/transformationRules/{id}: + get: + tags: + - transformationRuleManagement + summary: Get a transformation rule. + description: Get a transformation rule with the given identifier. + operationId: getTransformationRule + parameters: + - name: id + in: path + description: Identifier of transformation rule to return. + required: true + schema: + type: string + responses: + '200': + description: Transformation rule object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/TransformationRuleResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - transformationRuleManagement + summary: Update a transformation rule. + description: Update an existing transformation rule. All properties specified in the request are replaced. Missing properties will remain the same. + operationId: updateTransformationRule + parameters: + - name: id + in: path + description: Identifier of the transformation rule to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the transformation rule. + content: + application/json: + schema: + $ref: '#/components/schemas/TransformationRuleRequest' + required: true + responses: + '200': + description: The transformation rule was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/TransformationRuleResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - transformationRuleManagement + summary: Delete a transformation rule. + description: Delete a transformation rule with the given identifier. + operationId: deleteRule + parameters: + - name: id + in: path + description: Identifier of the transformation rule to delete. + required: true + schema: + type: string + responses: + '204': + description: The transformation rule was successfully deleted. + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + TransformationRulesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of transformation rules. + items: + $ref: '#/components/schemas/TransformationRuleResponse' + next: + type: string + description: Next continuation token. + example: aGNzTmZBN1ZZWFk9 + description: A generic response for transformation rule. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + TransformationRuleRequest: + required: + - enabled + - ruleDefinition + type: object + properties: + ruleDefinition: + $ref: '#/components/schemas/TransformationRuleDefinition' + enabled: + type: boolean + description: True if the rule is enabled. + example: true + description: A request for creating or updating a transformation rule. + TransformationRuleResponse: + type: object + description: A generic response for transformation rule. + required: + - enabled + - ruleDefinition + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + ruleDefinition: + $ref: '#/components/schemas/TransformationRuleDefinition' + enabled: + type: boolean + description: True if the rule is enabled. + example: true + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the transformation rule. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + TransformationRuleDefinition: + required: + - name + - retention + - selector + type: object + properties: + name: + type: string + description: Name of the transformation rule. + example: Transformation Rule 1 + selector: + type: string + description: Selector of the transformation rule. + example: _sourceCategory=metricsstore + dimensionTransformations: + type: array + description: Dimension transformations of the transformation rule. + example: + - transformationType: AggregateOnTransformation + aggregateOn: + - metric + - transformationType: AddOrReplaceTransformation + dimensionToReplace: metric + value: '{{metric}}_aggregated' + items: + $ref: '#/components/schemas/DimensionTransformation' + default: [] + transformedMetricsRetention: + type: integer + description: Retention period in days for the transformed metrics that are generated by this rule. The supported retention periods for transformed metrics are 8 days, and 400 days. If no dimension transformations are defined, this value will be set to 0. + format: int64 + example: 8 + default: 0 + retention: + type: integer + description: Retention period in days for the metrics that are selected by the selector. The supported retention periods for selected metrics are 8 days, 400 days, and 0 (Do not store) if this rule contains dimension transformation. + format: int64 + example: 8 + default: 400 + description: The properties that define a transformation rule. + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + DimensionTransformation: + required: + - transformationType + type: object + properties: + transformationType: + type: string + description: This is the base type of all dimension transformations. + description: Base class of all transformation types. + discriminator: + propertyName: transformationType diff --git a/provider-dev/source/users.yaml b/provider-dev/source/users.yaml new file mode 100644 index 0000000..a6776cc --- /dev/null +++ b/provider-dev/source/users.yaml @@ -0,0 +1,565 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Users API + description: Users and their lifecycle actions - unlock, password reset, email change, welcome email, MFA. + version: 1.0.0 +paths: + /v1/users: + get: + tags: + - userManagement + summary: Get a list of users. + description: Get a list of all users in the organization. The response is paginated with a default limit of 100 users per page. + operationId: listUsers + parameters: + - name: limit + in: query + description: Limit the number of users returned in the response. The number of users returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: sortBy + in: query + description: Sort the list of users by the `firstName`, `lastName`, or `email` field. + required: false + schema: + type: string + - name: email + in: query + description: Find user with the given email address. + required: false + schema: + minLength: 1 + type: string + - name: includeServiceAccounts + in: query + description: Include service accounts while listing users within the organization. + required: false + schema: + type: boolean + responses: + '200': + description: A paginated list of users in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListUserModelsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - userManagement + summary: Create a new user. + description: Create a new user in the organization. + operationId: createUser + parameters: [] + requestBody: + description: Information about the new user. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateUserDefinition' + required: true + responses: + '200': + description: The user has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/UserModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/users/{id}: + get: + tags: + - userManagement + summary: Get a user. + description: Get a user with the given identifier from the organization. + operationId: getUser + parameters: + - name: id + in: path + description: Identifier of user to return. + required: true + schema: + type: string + responses: + '200': + description: User object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/UserModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - userManagement + summary: Update a user. + description: Update an existing user in the organization. + operationId: updateUser + parameters: + - name: id + in: path + description: Identifier of the user to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the user. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateUserDefinition' + required: true + responses: + '200': + description: The user was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/UserModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - userManagement + summary: Delete a user. + description: Delete a user with the given identifier from the organization and transfer their content to the user with the identifier specified in "transferTo". + operationId: deleteUser + parameters: + - name: id + in: path + description: Identifier of the user to delete. + required: true + schema: + type: string + - name: transferTo + in: query + description: Identifier of the user to receive the transfer of content from the deleted user.
**Note:** If `deleteContent` is not set to `true`, and no user identifier is specified in `transferTo`, content from the deleted user is transferred to the executing user. + required: false + schema: + type: string + - name: deleteContent + in: query + description: Whether to delete content from the deleted user or not.
**Warning:** If `deleteContent` is set to `true`, all of the content for the user being deleted is permanently deleted and cannot be recovered. + required: false + schema: + type: boolean + responses: + '204': + description: User was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/users/{id}/email/requestChange: + post: + tags: + - userManagement + summary: Change email address. + description: An email with an activation link is sent to the user’s new email address. The user must click the link in the email within seven days to complete the email address change, or the link will expire. + operationId: requestChangeEmail + parameters: + - name: id + in: path + description: Identifier of the user to change email address. + required: true + schema: + type: string + requestBody: + description: New email address of the user. + content: + application/json: + schema: + $ref: '#/components/schemas/ChangeEmailRequest' + required: true + responses: + '204': + description: Email change request was submitted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/users/{id}/password/reset: + post: + tags: + - userManagement + summary: Reset password. + description: Reset a user's password. + operationId: resetPassword + parameters: + - name: id + in: path + description: Identifier of the user to reset password. + required: true + schema: + type: string + responses: + '204': + description: User's password was reset successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/users/{id}/unlock: + post: + tags: + - userManagement + summary: Unlock a user. + description: Unlock another user's account. + operationId: unlockUser + parameters: + - name: id + in: path + description: The id of the user that needs to be unlocked. + required: true + schema: + type: string + responses: + '204': + description: User's account was unlocked successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/users/{id}/mfa/disable: + put: + tags: + - userManagement + summary: Disable MFA for user. + description: Disable multi-factor authentication for given user. + operationId: disableMfa + parameters: + - name: id + in: path + description: Identifier of the user to disable MFA for. + required: true + schema: + type: string + requestBody: + description: Email and Password of the user to disable MFA for. + content: + application/json: + schema: + $ref: '#/components/schemas/DisableMfaRequest' + required: true + responses: + '204': + description: User's MFA was disabled successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/users/{id}/resendWelcomeEmail: + post: + tags: + - userManagement + summary: Resend verification email. + description: Resend the welcome email to a user. + operationId: resendWelcomeEmail + parameters: + - name: id + in: path + description: Identifier of the user to resend the welcome email. + required: true + schema: + type: string + responses: + '204': + description: Welcome email was resent successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListUserModelsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of users. + items: + $ref: '#/components/schemas/UserModel' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreateUserDefinition: + required: + - email + - firstName + - lastName + - roleIds + type: object + properties: + firstName: + maxLength: 128 + minLength: 1 + type: string + description: First name of the user. + example: John + lastName: + maxLength: 128 + minLength: 0 + type: string + description: Last name of the user. + example: Doe + email: + maxLength: 255 + type: string + description: Email address of the user. + format: email + example: johndoe@acme.com + roleIds: + type: array + description: List of roleIds associated with the user. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + UserModel: + type: object + required: + - email + - firstName + - lastName + - roleIds + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + firstName: + maxLength: 128 + minLength: 1 + type: string + description: First name of the user. + example: John + lastName: + maxLength: 128 + minLength: 0 + type: string + description: Last name of the user. + example: Doe + email: + maxLength: 255 + type: string + description: Email address of the user. + format: email + example: johndoe@acme.com + roleIds: + type: array + description: List of roleIds associated with the user. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the user. + example: 000000000FE20FE2 + isActive: + type: boolean + description: True if the user is active. + example: true + isLocked: + type: boolean + description: This has the value `true` if the user's account has been locked. If a user tries to log into their account several times and fails, his or her account will be locked for security reasons. + example: false + isMfaEnabled: + type: boolean + description: True if multi factor authentication is enabled for the user. + example: false + lastLoginTimestamp: + type: string + description: Timestamp of the last login for the user in UTC. Will be null if the user has never logged in. + format: date-time + UpdateUserDefinition: + required: + - firstName + - lastName + type: object + properties: + firstName: + maxLength: 128 + minLength: 1 + type: string + description: First name of the user. If the caller has `manageUsersAndRoles` capability, this field can be updated for any user. If the caller does NOT have `manageUsersAndRoles` capability, then only the calling user's firstName can be updated. + example: John + lastName: + maxLength: 128 + minLength: 0 + type: string + description: Last name of the user. If the caller has `manageUsersAndRoles` capability, this field can be updated for any user. If the caller does NOT have `manageUsersAndRoles` capability, then only the calling user's lastName can be updated. + example: Doe + isActive: + type: boolean + description: This has the value `true` if the user is active and `false` if they have been deactivated. To modify this field you must have the `manageUserAndRoles` capability. + example: true + roleIds: + type: array + description: List of role identifiers associated with the user. To modify this field you must have the `manageUserAndRoles` capability. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + ChangeEmailRequest: + required: + - email + type: object + properties: + email: + maxLength: 255 + type: string + description: New email address of the user. + format: email + example: johndoe@acme.com + DisableMfaRequest: + required: + - email + - password + type: object + properties: + email: + maxLength: 255 + type: string + description: Email of user whose mfa is being disabled. + format: email + example: johndoe@cme.com + password: + type: string + description: Password of user whose mfa is being disabled. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 diff --git a/tests/integration/mock_sumologic_server.mjs b/tests/integration/mock_sumologic_server.mjs new file mode 100644 index 0000000..f5b534b --- /dev/null +++ b/tests/integration/mock_sumologic_server.mjs @@ -0,0 +1,321 @@ +#!/usr/bin/env node + +// Mock Sumo Logic API for integration-testing the generated sumologic +// provider without an account. Serves canned JSON in the wire shapes the +// real API produces (from the vendor's published examples): paginated lists +// as {"data": [...], "next": ""|null}, the Collector Management API +// wrappers ({"collectors": [...]}, {"collector": {...}}, {"sources": [...]}, +// {"source": {...}}), bare-array responses (monitors search), the log +// search list with its `token` cursor, the data archiving list with +// `nextToken`, the POST-driven OpenTelemetry collectors list with the cursor +// in the request body, SCIM JSON, a JSON-string scalar (account owner) and +// the {"id", "errors": [{"code", "message"}]} error envelope. Mutable +// in-memory stores make the user / role / collector / source lifecycles +// round-trip. +// +// The deployment (region) is the FIRST path segment: the integration runner +// rewrites every service server URL to http://localhost:/{region}/api, +// so the mock records which region each request addressed - proving the +// SUMOLOGIC_ENVIRONMENT resolution and the WHERE region override. +// +// Every request must carry `Authorization: Basic base64(ACCESS_ID:ACCESS_KEY)` +// matching EXPECTED_ACCESS_ID / EXPECTED_ACCESS_KEY or it is rejected 401. +// +// Exports startMockServer() for the test runner; also runnable standalone: +// node tests/integration/mock_sumologic_server.mjs [port] + +import http from 'http'; +import { URL } from 'url'; + +export const EXPECTED_ACCESS_ID = 'suAbCdEfGhIjKl'; +export const EXPECTED_ACCESS_KEY = 'mock-access-key-secret'; +export const USER_ID = '000000000000ABCD'; +export const ADMIN_ROLE_ID = '00000000000001AB'; +export const COLLECTOR_ID = 100000001; +export const SOURCE_ID = 200000001; +export const PARTITION_ID = '0000000000000A01'; + +const REQUEST_ID = 'D3AF4B2B-6C30-46C6-A7B4-FC9A7CFAD0F7'; + +let idCounter = 0; +const newHexId = () => { idCounter++; return (0x1000000 + idCounter).toString(16).toUpperCase().padStart(16, '0'); }; +const newIntId = (base) => { idCounter++; return base + idCounter; }; + +// --------------------------------------------------------------------------- +// Fixtures +// --------------------------------------------------------------------------- + +function userObj(id, firstName, lastName, email, extra = {}) { + return { + firstName, lastName, email, roleIds: [ADMIN_ROLE_ID], id, + createdAt: '2024-01-15T10:20:30Z', createdBy: USER_ID, modifiedAt: '2024-06-01T08:00:00Z', modifiedBy: USER_ID, + isActive: true, isLocked: false, isMfaEnabled: false, lastLoginTimestamp: '2026-09-01T00:00:00Z', ...extra + }; +} +function roleObj(id, name, extra = {}) { + return { + name, description: `${name} role`, filterPredicate: '', users: [USER_ID], capabilities: ['viewCollectors'], autofillDependencies: true, + id, createdAt: '2024-01-15T10:20:30Z', createdBy: USER_ID, modifiedAt: '2024-01-15T10:20:30Z', modifiedBy: USER_ID, systemDefined: false, ...extra + }; +} +function collectorObj(id, name, extra = {}) { + return { + id, name, description: `${name} description`, category: 'stackql/test', collectorType: 'Hosted', collectorVersion: '', alive: true, + lastSeenAlive: 1757900000000, ephemeral: false, timeZone: 'UTC', fields: { _budget: 'default' }, + links: [{ rel: 'sources', href: `/v1/collectors/${id}/sources` }], ...extra + }; +} +function sourceObj(id, collectorId, name, extra = {}) { + return { + id, name, category: 'stackql/test/http', hostName: '', sourceType: 'HTTP', alive: true, automaticDateParsing: true, + multilineProcessingEnabled: true, useAutolineMatching: true, forceTimeZone: false, messagePerRequest: false, encoding: 'UTF-8', + url: `https://collectors.mock.sumologic.com/receiver/v1/http/${collectorId}${id}`, fields: {}, filters: [], cutoffTimestamp: 0, ...extra + }; +} +function partitionObj(id, name) { + return { + name, routingExpression: `_sourceCategory=${name}`, analyticsTier: 'continuous', retentionPeriod: 30, isCompliant: false, isIncludedInDefaultSearch: true, + id, totalBytes: 123456789, isActive: true, newRetentionPeriod: null, retentionEffectiveAt: null, dataForwardingId: null, isSearchable: true, + indexType: 'Partition', reduceRetentionPeriodImmediately: false + }; +} + +export async function startMockServer(port = 0) { + const log = []; + const state = { + authFailures: 0, + users: new Map([ + [USER_ID, userObj(USER_ID, 'Ada', 'Lovelace', 'ada@example.com')], + ['000000000000ABCE', userObj('000000000000ABCE', 'Grace', 'Hopper', 'grace@example.com')], + ['000000000000ABCF', userObj('000000000000ABCF', 'Alan', 'Turing', 'alan@example.com', { isActive: false })] + ]), + roles: new Map([ + [ADMIN_ROLE_ID, roleObj(ADMIN_ROLE_ID, 'Administrator', { systemDefined: true })], + ['00000000000001AC', roleObj('00000000000001AC', 'Analyst')] + ]), + collectors: new Map([[COLLECTOR_ID, collectorObj(COLLECTOR_ID, 'stackql-mock-hosted')]]), + sources: new Map([[SOURCE_ID, sourceObj(SOURCE_ID, COLLECTOR_ID, 'stackql-mock-http')]]), + partitions: new Map([[PARTITION_ID, partitionObj(PARTITION_ID, 'stackql_mock')]]) + }; + + function send(res, status, body, headers = {}) { + const isString = typeof body === 'string'; + const payload = body === undefined ? '' : (isString ? body : JSON.stringify(body)); + res.writeHead(status, { 'Content-Type': headers['Content-Type'] || 'application/json', ...headers }); + res.end(payload); + } + function err(res, status, code, message) { + send(res, status, { id: REQUEST_ID, errors: [{ code, message }] }); + } + // paginate an array with limit/token (token = start index) + function page(items, limit, token, key = 'data', nextKey = 'next') { + const start = token ? parseInt(token, 10) : 0; + const size = limit ? parseInt(limit, 10) : 2; + const slice = items.slice(start, start + size); + const next = start + size < items.length ? String(start + size) : null; + return { [key]: slice, [nextKey]: next }; + } + + const server = http.createServer((req, res) => { + let raw = ''; + req.on('data', (c) => { raw += c; }); + req.on('end', () => { + const url = new URL(req.url, `http://${req.headers.host}`); + const segs = url.pathname.split('/').filter(Boolean); + const region = segs.shift(); // /{region}/api/v1/... + if (segs.shift() !== 'api') return err(res, 404, 'not_found', `unexpected path ${url.pathname}`); + const p = '/' + segs.join('/'); + const q = Object.fromEntries(url.searchParams.entries()); + let body = null; + if (raw) { try { body = JSON.parse(raw); } catch { body = raw; } } + const entry = { method: req.method, region, path: p, query: q, body, authorization: req.headers.authorization || '', ifMatch: req.headers['if-match'] || '', contentType: req.headers['content-type'] || '' }; + log.push(entry); + + // basic auth + const expected = 'Basic ' + Buffer.from(`${EXPECTED_ACCESS_ID}:${EXPECTED_ACCESS_KEY}`).toString('base64'); + if (!entry.authorization || entry.authorization.split(/\s+/)[1] !== expected.split(' ')[1] || !/^basic$/i.test(entry.authorization.split(/\s+/)[0])) { + state.authFailures++; + return err(res, 401, 'unauthorized', 'Credential could not be verified.'); + } + const m = req.method; + let match; + + // ---- users + if (m === 'GET' && p === '/v1/users') { + let items = [...state.users.values()]; + if (q.email) items = items.filter((u) => u.email === q.email); + if (q.sortBy) items = [...items].sort((a, b) => String(a[q.sortBy]).localeCompare(String(b[q.sortBy]))); + return send(res, 200, page(items, q.limit, q.token)); + } + if (m === 'POST' && p === '/v1/users') { + const id = newHexId(); + const u = userObj(id, body.firstName, body.lastName, body.email, { roleIds: body.roleIds || [] }); + state.users.set(id, u); + return send(res, 200, u); + } + if ((match = p.match(/^\/v1\/users\/([^/]+)$/))) { + const u = state.users.get(match[1]); + if (!u) return err(res, 404, 'user:doesnt_exist', 'User does not exist.'); + if (m === 'GET') return send(res, 200, u); + if (m === 'PUT') { Object.assign(u, body); return send(res, 200, u); } + if (m === 'DELETE') { state.users.delete(match[1]); return send(res, 204); } + } + if ((match = p.match(/^\/v1\/users\/([^/]+)\/unlock$/)) && m === 'POST') { + const u = state.users.get(match[1]); + if (!u) return err(res, 404, 'user:doesnt_exist', 'User does not exist.'); + u.isLocked = false; + return send(res, 204); + } + // ---- roles + if (m === 'GET' && p === '/v1/roles') { + let items = [...state.roles.values()]; + if (q.name) items = items.filter((r) => r.name === q.name); + return send(res, 200, page(items, q.limit, q.token)); + } + if (m === 'POST' && p === '/v1/roles') { + const id = newHexId(); + const r = roleObj(id, body.name, { description: body.description, capabilities: body.capabilities || [], users: body.users || [] }); + state.roles.set(id, r); + return send(res, 200, r); + } + if ((match = p.match(/^\/v1\/roles\/([^/]+)$/))) { + const r = state.roles.get(match[1]); + if (!r) return err(res, 404, 'role:doesnt_exist', 'Role does not exist.'); + if (m === 'GET') return send(res, 200, r); + if (m === 'PUT') { Object.assign(r, body); return send(res, 200, r); } + if (m === 'DELETE') { state.roles.delete(match[1]); return send(res, 204); } + } + if ((match = p.match(/^\/v1\/roles\/([^/]+)\/users\/([^/]+)$/))) { + const r = state.roles.get(match[1]); + if (!r) return err(res, 404, 'role:doesnt_exist', 'Role does not exist.'); + if (m === 'PUT') { if (!r.users.includes(match[2])) r.users.push(match[2]); return send(res, 200, r); } + if (m === 'DELETE') { r.users = r.users.filter((u) => u !== match[2]); return send(res, 204); } + } + // ---- collectors (Collector Management API) + if (m === 'GET' && p === '/v1/collectors') { + let items = [...state.collectors.values()]; + if (q.filter === 'hosted') items = items.filter((c) => c.collectorType === 'Hosted'); + return send(res, 200, { collectors: items }); + } + if (m === 'POST' && p === '/v1/collectors') { + if (!body || !body.collector) return err(res, 400, 'collectors.invalid.request', 'collector wrapper missing'); + const id = newIntId(COLLECTOR_ID); + const c = collectorObj(id, body.collector.name, { description: body.collector.description || '', category: body.collector.category || '', collectorType: body.collector.collectorType || 'Hosted', fields: body.collector.fields || {} }); + state.collectors.set(id, c); + return send(res, 200, { collector: c }); + } + if (m === 'GET' && p === '/v1/collectors/overview') { + return send(res, 200, { installedCollectorsCount: 0, installedSourcesCount: 0, hostedCollectorsCount: state.collectors.size, hostedSourcesCount: state.sources.size, offlineCollectorsCount: 0, errors: 0, warnings: 0 }); + } + if ((match = p.match(/^\/v1\/collectors\/name\/([^/]+)$/)) && m === 'GET') { + const c = [...state.collectors.values()].find((x) => x.name === decodeURIComponent(match[1])); + if (!c) return err(res, 404, 'collectors.collector.invalid', 'The specified collector ID or name is invalid.'); + return send(res, 200, { collector: c }, { ETag: `"${c.id}-1"` }); + } + if ((match = p.match(/^\/v1\/collectors\/(\d+)$/))) { + const c = state.collectors.get(parseInt(match[1], 10)); + if (!c) return err(res, 404, 'collectors.collector.invalid', 'The specified collector ID or name is invalid.'); + if (m === 'GET') return send(res, 200, { collector: c }, { ETag: `"${c.id}-1"` }); + if (m === 'PUT') { Object.assign(c, body.collector || {}); return send(res, 200, { collector: c }); } + if (m === 'DELETE') { state.collectors.delete(c.id); return send(res, 200); } + } + if ((match = p.match(/^\/v1\/collectors\/(\d+)\/sources$/))) { + const cid = parseInt(match[1], 10); + if (!state.collectors.has(cid)) return err(res, 404, 'collectors.collector.invalid', 'The specified collector ID or name is invalid.'); + if (m === 'GET') return send(res, 200, { sources: [...state.sources.values()].filter((s) => s.collectorId === cid || cid === COLLECTOR_ID) }); + if (m === 'POST') { + if (!body || !body.source) return err(res, 400, 'collectors.invalid.request', 'source wrapper missing'); + const id = newIntId(SOURCE_ID); + const s = sourceObj(id, cid, body.source.name, { category: body.source.category || '', sourceType: body.source.sourceType || 'HTTP', collectorId: cid }); + state.sources.set(id, s); + return send(res, 200, { source: s }); + } + } + if ((match = p.match(/^\/v1\/collectors\/(\d+)\/sources\/(\d+)$/))) { + const s = state.sources.get(parseInt(match[2], 10)); + if (!s) return err(res, 404, 'collectors.source.invalid', 'The specified source ID is invalid.'); + if (m === 'GET') return send(res, 200, { source: s }, { ETag: `"${s.id}-1"` }); + if (m === 'PUT') { Object.assign(s, body.source || {}); return send(res, 200, { source: s }); } + if (m === 'DELETE') { state.sources.delete(s.id); return send(res, 200); } + } + // ---- partitions + if (m === 'GET' && p === '/v1/partitions') return send(res, 200, page([...state.partitions.values()], q.limit, q.token)); + if ((match = p.match(/^\/v1\/partitions\/([^/]+)$/)) && m === 'GET') { + const pt = state.partitions.get(match[1]); + if (!pt) return err(res, 404, 'partition:not_found', 'Partition not found'); + return send(res, 200, pt); + } + if ((match = p.match(/^\/v1\/partitions\/([^/]+)\/decommission$/)) && m === 'POST') { + const pt = state.partitions.get(match[1]); + if (!pt) return err(res, 404, 'partition:not_found', 'Partition not found'); + pt.isActive = false; + return send(res, 200); + } + // ---- content: personal folder + if (m === 'GET' && p === '/v2/content/folders/personal') { + return send(res, 200, { + createdAt: '2024-01-15T10:20:30Z', createdBy: USER_ID, modifiedAt: '2024-01-15T10:20:30Z', modifiedBy: USER_ID, + id: '0000000000A1B2C3', name: 'Personal', itemType: 'Folder', parentId: '0000000000000000', permissions: ['View', 'Edit', 'Manage'], + description: 'Personal folder', children: [ + { id: '0000000000A1B2C4', name: 'My Searches', itemType: 'Folder', parentId: '0000000000A1B2C3', permissions: ['View'], createdAt: '2024-01-15T10:20:30Z', createdBy: USER_ID, modifiedAt: '2024-01-15T10:20:30Z', modifiedBy: USER_ID }, + { id: '0000000000A1B2C5', name: 'Errors dashboard', itemType: 'Dashboard', parentId: '0000000000A1B2C3', permissions: ['View'], createdAt: '2024-01-15T10:20:30Z', createdBy: USER_ID, modifiedAt: '2024-01-15T10:20:30Z', modifiedBy: USER_ID } + ] + }); + } + // ---- monitors: search (bare array) and root + if (m === 'GET' && p === '/v1/monitors/search') { + if (!q.query) return err(res, 400, 'monitors:invalid_query', 'query is required'); + return send(res, 200, [ + { item: { id: '0000000000000101', name: 'High error rate', description: '', version: 3, createdAt: '2024-01-15T10:20:30Z', createdBy: USER_ID, modifiedAt: '2024-01-15T10:20:30Z', modifiedBy: USER_ID, parentId: '0000000000000100', contentType: 'Monitor', type: 'MonitorsLibraryMonitor', monitorType: 'Logs', isDisabled: false }, path: '/Monitor/High error rate' }, + { item: { id: '0000000000000102', name: 'Latency', description: '', version: 1, createdAt: '2024-01-15T10:20:30Z', createdBy: USER_ID, modifiedAt: '2024-01-15T10:20:30Z', modifiedBy: USER_ID, parentId: '0000000000000100', contentType: 'Monitor', type: 'MonitorsLibraryMonitor', monitorType: 'Metrics', isDisabled: true }, path: '/Monitor/Latency' } + ]); + } + if (m === 'GET' && p === '/v1/monitors/root') { + return send(res, 200, { id: '0000000000000100', name: 'Monitor', description: '', version: 1, createdAt: '2024-01-15T10:20:30Z', createdBy: USER_ID, modifiedAt: '2024-01-15T10:20:30Z', modifiedBy: USER_ID, parentId: '0000000000000000', contentType: 'Folder', type: 'MonitorsLibraryFolder', isSystem: true, isMutable: false, permissions: ['Read'], children: [] }); + } + // ---- log searches: list with a `token` cursor + if (m === 'GET' && p === '/v1/logSearches') { + const items = [1, 2, 3].map((i) => ({ id: `00000000000000L${i}`, name: `saved search ${i}`, description: '', queryString: `_sourceCategory=app${i} | count`, parsingMode: 'Manual', timeZone: 'UTC', schedule: null, createdAt: '2024-01-15T10:20:30Z', createdBy: USER_ID, modifiedAt: '2024-01-15T10:20:30Z', modifiedBy: USER_ID, queryParameters: [] })); + const pg = page(items, q.limit, q.token, 'logSearches', 'token'); + return send(res, 200, { ...pg, warnings: [] }); + } + // ---- data archiving destinations: nextToken cursor + if (m === 'GET' && p === '/v1/dataarchiving/destinations') { + const items = [1, 2, 3].map((i) => ({ id: `00000000000000D${i}`, destinationName: `archive-bucket-${i}`, description: '', authenticationMode: 'RoleBased', roleArn: `arn:aws:iam::123456789012:role/archive${i}`, bucketName: `archive-${i}`, createdAt: '2024-01-15T10:20:30Z', createdBy: USER_ID, modifiedAt: '2024-01-15T10:20:30Z', modifiedBy: USER_ID })); + return send(res, 200, page(items, q.limit, q.token, 'data', 'nextToken')); + } + // ---- OpenTelemetry collectors: POST list with the cursor in the body + if (m === 'POST' && p === '/v1/otCollectors') { + const items = [1, 2, 3].map((i) => ({ id: `00000000000000O${i}`, name: `otel-${i}`, version: '1.2.3', category: 'otel', description: '', tags: { env: 'test' }, fleetId: null, ephemeral: false, alive: i !== 3, healthIncidentsTracker: null })); + const pg = page(items, body?.limit, body?.next); + return send(res, 200, { ...pg, count: items.length }); + } + // ---- account + if (m === 'GET' && p === '/v1/account/status') { + return send(res, 200, { pricingModel: 'credits', canUpdatePlan: true, planType: 'Enterprise', planExpirationDays: 300, applicationUse: 'Production', accountActivated: true, totalCredits: 100000, logModel: 'Continuous', isSubscriptionV2: true }); + } + if (m === 'GET' && p === '/v1/account/accountOwner') return send(res, 200, JSON.stringify('ada@example.com')); + // ---- SCIM + if (m === 'GET' && p === '/v1/scim/Users') { + const users = [...state.users.values()].map((u) => ({ schemas: ['urn:ietf:params:scim:schemas:core:2.0:User'], id: u.id, userName: u.email, name: { givenName: u.firstName, familyName: u.lastName }, emails: [{ value: u.email, primary: true }], active: u.isActive, roles: u.roleIds.map((r) => ({ value: r })) })); + return send(res, 200, { schemas: ['urn:ietf:params:scim:api:messages:2.0:ListResponse'], totalResults: users.length, startIndex: 1, itemsPerPage: users.length, Resources: users }, { 'Content-Type': 'application/scim+json' }); + } + // ---- fields, dashboards + if (m === 'GET' && p === '/v1/fields') return send(res, 200, { data: [{ fieldName: 'service', fieldId: '000000000000F001', dataType: 'String', state: 'Enabled' }, { fieldName: 'env', fieldId: '000000000000F002', dataType: 'String', state: 'Enabled' }] }); + if (m === 'GET' && p === '/v2/dashboards') { + const items = [1, 2].map((i) => ({ id: `0000000000000DA${i}`, title: `Dashboard ${i}`, description: '', folderId: '0000000000A1B2C3', topologyLabelMap: { data: {} }, domain: 'app', refreshInterval: 120, timeRange: { type: 'BeginBoundedTimeRange', from: { type: 'RelativeTimeRangeBoundary', relativeTime: '-15m' } }, panels: [], layout: { layoutType: 'Grid', layoutStructures: [] }, variables: [], theme: 'Light', contentId: `0000000000000CA${i}`, scheduleId: null })); + return send(res, 200, page(items, q.limit, q.token, 'dashboards', 'next')); + } + + return err(res, 404, 'not_found', `no mock route for ${m} ${p}`); + }); + }); + + await new Promise((resolve) => server.listen(port, '127.0.0.1', resolve)); + return { server, port: server.address().port, log, state }; +} + +if (process.argv[1] && process.argv[1].endsWith('mock_sumologic_server.mjs')) { + const { port } = await startMockServer(parseInt(process.argv[2] || '0', 10)); + console.log(`mock Sumo Logic API listening on http://127.0.0.1:${port}/{region}/api (Basic ${EXPECTED_ACCESS_ID}:${EXPECTED_ACCESS_KEY})`); +} diff --git a/tests/integration/run_integration_tests.mjs b/tests/integration/run_integration_tests.mjs new file mode 100644 index 0000000..6db4f76 --- /dev/null +++ b/tests/integration/run_integration_tests.mjs @@ -0,0 +1,315 @@ +#!/usr/bin/env node + +// Integration tests: run the generated sumologic provider (local file +// registry) against the mock Sumo Logic API and assert row-level results +// for each operation archetype: +// - basic-auth header (SUMOLOGIC_ACCESSID / SUMOLOGIC_ACCESSKEY); the mock +// 401s anything else +// - the region server variable: default us2, resolved from +// SUMOLOGIC_ENVIRONMENT (x-stackQL-envVar), a WHERE region value beating +// the environment +// - token / next pagination across pages ($.data lists), the log search +// list with its `token` cursor, the data archiving list with `nextToken` +// and the POST-driven OpenTelemetry collectors list with the cursor in +// the request body +// - the Collector Management API wrappers: $.collectors / $.collector / +// $.sources / $.source unwrapping, and the {"collector": {...}} / +// {"source": {...}} request wrappers on INSERT +// - predicate pushdown of declared query parameters (WHERE email = ...) +// - the snake_case surface: snake WHERE / INSERT / UPDATE keys resolve to +// the camelCase wire names via request.nativeCasing; SELECT columns are +// snake aliases +// - a user INSERT / SELECT / UPDATE (PUT) / DELETE lifecycle, a role +// lifecycle with the assign_user / remove_user EXECs, the users.unlock +// and partitions.decommission lifecycle EXECs +// - the bare-array monitors search, the SCIM list ($.Resources), a +// JSON-string scalar read (account owner), nested JSON columns +// (personal folder children) and the error envelope on 404 +// +// The vendor server template is https-only and cannot address the mock, so +// this runner materialises a TEST COPY of provider-dev/openapi in +// tests/integration/.registry-tmp (gitignored, recreated each run) with the +// server URLs rewritten to http://localhost:/{region}/api - the +// region variable and its x-stackQL-envVar extension are preserved, and the +// mock records the region segment of every request. provider-dev/** is +// never modified. +// +// Requires a stackql binary: $STACKQL, ./stackql, or `stackql` on PATH. +// +// Usage: node tests/integration/run_integration_tests.mjs [--verbose] + +import { spawn } from 'child_process'; +import { existsSync, rmSync, cpSync, readdirSync, readFileSync, writeFileSync } from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import yaml from 'js-yaml'; +import { + startMockServer, EXPECTED_ACCESS_ID, EXPECTED_ACCESS_KEY, USER_ID, ADMIN_ROLE_ID, COLLECTOR_ID, SOURCE_ID, PARTITION_ID +} from './mock_sumologic_server.mjs'; + +const here = path.dirname(fileURLToPath(import.meta.url)); +const repoRoot = path.resolve(here, '..', '..'); +const verbose = process.argv.includes('--verbose'); +const t0 = Date.now(); + +function findStackql() { + if (process.env.STACKQL) return process.env.STACKQL; + const local = path.join(repoRoot, process.platform === 'win32' ? 'stackql.exe' : 'stackql'); + if (existsSync(local)) return local; + return 'stackql'; // PATH +} + +function buildTestRegistry(port) { + const srcDir = path.join(repoRoot, 'provider-dev', 'openapi'); + const tmpDir = path.join(here, '.registry-tmp'); + rmSync(tmpDir, { recursive: true, force: true }); + cpSync(srcDir, tmpDir, { recursive: true }); + const servicesDir = path.join(tmpDir, 'src', 'sumologic', 'v00.00.00000', 'services'); + for (const f of readdirSync(servicesDir)) { + if (!f.endsWith('.yaml')) continue; + const fp = path.join(servicesDir, f); + const doc = yaml.load(readFileSync(fp, 'utf8')); + if (!doc.servers?.[0]?.url) throw new Error(`no top-level servers block found in ${f}`); + if (!doc.servers[0].variables?.region?.['x-stackQL-envVar']) throw new Error(`${f}: region server variable lost its x-stackQL-envVar`); + doc.servers[0].url = `http://127.0.0.1:${port}/{region}/api`; + writeFileSync(fp, yaml.dump(doc, { lineWidth: -1, noRefs: true })); + } + return tmpDir; +} + +const stackqlBin = findStackql(); + +// IMPORTANT: must be async (spawn, not spawnSync) - the mock server runs on +// this process's event loop, so a synchronous wait for stackql deadlocks. +function makeRunSql(registry) { + return function runSql(sql, envOverrides = {}) { + return new Promise((resolve) => { + // SUMOLOGIC_ENVIRONMENT is set like a real user would: any-sdk lists a + // server variable as REQUIRED whenever its env var is unset (the + // default only applies at request time), so with it unset a SELECT + // falls back to us2 but INSERT / UPDATE / EXEC routing does not see + // `region` supplied. The default-fallback test passes undefined + // explicitly. + const env = { + ...process.env, + SUMOLOGIC_ACCESSID: EXPECTED_ACCESS_ID, + SUMOLOGIC_ACCESSKEY: EXPECTED_ACCESS_KEY, + SUMOLOGIC_ENVIRONMENT: 'us2', + ...envOverrides + }; + for (const [k, v] of Object.entries(env)) if (v === undefined) delete env[k]; + const child = spawn(stackqlBin, [`--registry=${registry}`, 'exec', sql, '--output', 'json'], { cwd: repoRoot, env }); + let stdout = '', stderr = ''; + child.stdout.on('data', (d) => { stdout += d; }); + child.stderr.on('data', (d) => { stderr += d; }); + const timer = setTimeout(() => child.kill(), 120000); + child.on('error', (e) => { clearTimeout(timer); resolve({ rows: null, err: String(e) }); }); + child.on('close', () => { + clearTimeout(timer); + stdout = stdout.trim(); + stderr = stderr.trim(); + if (verbose) console.log(` sql: ${sql}\n out: ${stdout.slice(0, 400)}${stderr ? `\n err: ${stderr.slice(0, 400)}` : ''}`); + const errish = /http response status code: [45]|error|panic|FindRoute|no matching operation|cannot find matching operation|disallowed|cannot find any viable servers|not yet supported|not supported/i; + if (errish.test(stderr)) return resolve({ rows: null, err: stderr }); + if (!stdout) return resolve({ rows: [], err: null }); + try { + resolve({ rows: JSON.parse(stdout) ?? [], err: null }); // literal null for zero rows + } catch { + resolve({ rows: [{ _text: stdout }], err: errish.test(stdout) ? stdout : null }); // DML status text + } + }); + }); + }; +} + +const results = []; +function check(name, cond, note = '') { + results.push({ name, pass: !!cond, note }); + console.log(` ${cond ? 'PASS' : 'FAIL'} ${name}${!cond && note ? ` [${String(note).slice(0, 240)}]` : ''}`); +} + +const { server, port, log, state } = await startMockServer(); +const tmpDir = buildTestRegistry(port); +const regPath = tmpDir.split(path.sep).join('/'); +const registry = JSON.stringify({ url: `file://${regPath}`, localDocRoot: regPath, verifyConfig: { nopVerify: true } }); +const runSql = makeRunSql(registry); +console.log(`mock Sumo Logic API on 127.0.0.1:${port}, stackql: ${stackqlBin}`); + +const calls = (mark, method, p) => log.slice(mark).filter((e) => e.method === method && e.path === p); + +try { + // --- meta sanity + let r = await runSql('SHOW SERVICES IN sumologic'); + check('show services (50)', r.rows && r.rows.length === 50, r.err || `got ${r.rows?.length}`); + + // --- basic auth + region default + pagination + let mark = log.length; + r = await runSql('SELECT id, first_name, last_name, email, is_active FROM sumologic.users.users'); + check('users list: 3 rows across 2 pages (token / next pagination, $.data)', r.rows && r.rows.length === 3, r.err || `got ${r.rows?.length}`); + const userCalls = calls(mark, 'GET', '/v1/users'); + check('pagination: second request carries the next token as ?token=', userCalls.length === 2 && userCalls[1].query.token === '2', JSON.stringify(userCalls.map((c) => c.query))); + check('basic auth header sent (Basic base64(accessId:accessKey))', + userCalls.length > 0 && /^basic\s+/i.test(userCalls[0].authorization) && userCalls[0].authorization.split(/\s+/)[1] === Buffer.from(`${EXPECTED_ACCESS_ID}:${EXPECTED_ACCESS_KEY}`).toString('base64'), + JSON.stringify(userCalls.map((c) => c.authorization))); + check('region resolved from SUMOLOGIC_ENVIRONMENT=us2', userCalls.every((c) => c.region === 'us2'), JSON.stringify(userCalls.map((c) => c.region))); + check('snake_case columns (first_name, is_active) on the wire camelCase', r.rows && r.rows[0] && 'first_name' in r.rows[0] && 'is_active' in r.rows[0], JSON.stringify(r.rows?.[0])); + check('no auth failures so far', state.authFailures === 0, `authFailures=${state.authFailures}`); + mark = log.length; + r = await runSql('SELECT id FROM sumologic.users.users', { SUMOLOGIC_ENVIRONMENT: undefined }); + check('region defaults to us2 for SELECT when SUMOLOGIC_ENVIRONMENT is unset', r.rows && r.rows.length === 3 && calls(mark, 'GET', '/v1/users').every((c) => c.region === 'us2'), r.err || JSON.stringify(log.slice(mark).map((e) => e.region))); + r = await runSql('SELECT id FROM sumologic.users.users', { SUMOLOGIC_ACCESSKEY: 'wrong' }); + check('wrong access key -> 401 surfaced', r.err && /401/.test(r.err), r.err || 'no error'); + + // --- region: env-resolved and WHERE override + mark = log.length; + r = await runSql('SELECT id FROM sumologic.users.users', { SUMOLOGIC_ENVIRONMENT: 'au' }); + check('SUMOLOGIC_ENVIRONMENT=au routes to the au deployment', r.rows && r.rows.length === 3 && calls(mark, 'GET', '/v1/users').every((c) => c.region === 'au'), r.err || JSON.stringify(log.slice(mark).map((e) => e.region))); + mark = log.length; + r = await runSql("SELECT id FROM sumologic.users.users WHERE region = 'eu'", { SUMOLOGIC_ENVIRONMENT: 'au' }); + check('WHERE region = eu beats SUMOLOGIC_ENVIRONMENT=au', r.rows && r.rows.length === 3 && calls(mark, 'GET', '/v1/users').every((c) => c.region === 'eu'), r.err || JSON.stringify(log.slice(mark).map((e) => e.region))); + + // --- predicate pushdown: declared query parameter in WHERE + mark = log.length; + r = await runSql("SELECT id, email FROM sumologic.users.users WHERE email = 'grace@example.com'"); + const filtered = calls(mark, 'GET', '/v1/users'); + check('WHERE email pushed down as ?email= (1 row)', r.rows && r.rows.length === 1 && filtered.length === 1 && filtered[0].query.email === 'grace@example.com', r.err || JSON.stringify(filtered.map((c) => c.query))); + + // --- single read + r = await runSql(`SELECT first_name, last_name, json_extract(role_ids, '$[0]') AS role FROM sumologic.users.users WHERE id = '${USER_ID}'`); + check('user get by id (json_extract on role_ids)', r.rows && r.rows.length === 1 && r.rows[0].role === ADMIN_ROLE_ID && r.rows[0].first_name === 'Ada', r.err || JSON.stringify(r.rows)); + + // --- user lifecycle: INSERT / UPDATE (PUT) / DELETE / EXEC unlock + mark = log.length; + r = await runSql(`INSERT INTO sumologic.users.users (first_name, last_name, email, role_ids) SELECT 'Stack', 'QL', 'stackql-smoke@example.com', '["${ADMIN_ROLE_ID}"]'`); + check('user INSERT', !r.err, r.err); + const userPost = calls(mark, 'POST', '/v1/users'); + check('user INSERT wire body {firstName, lastName, email, roleIds[]} (snake -> camel)', + userPost.length === 1 && userPost[0].body?.firstName === 'Stack' && userPost[0].body?.lastName === 'QL' && Array.isArray(userPost[0].body?.roleIds) && userPost[0].body.roleIds[0] === ADMIN_ROLE_ID, + JSON.stringify(userPost.map((c) => c.body))); + const newUser = [...state.users.values()].find((u) => u.email === 'stackql-smoke@example.com'); + check('user exists in mock state', !!newUser); + if (newUser) { + mark = log.length; + // booleans are passed as quoted values: stackql's UPDATE parser rejects a + // bare true/false on the right-hand side of SET + r = await runSql(`UPDATE sumologic.users.users SET first_name = 'Stack', last_name = 'QL-renamed', is_active = 'false', role_ids = '["${ADMIN_ROLE_ID}"]' WHERE id = '${newUser.id}'`); + check('user UPDATE (PUT)', !r.err, r.err); + const userPut = calls(mark, 'PUT', `/v1/users/${newUser.id}`); + check('user UPDATE wire body {firstName, lastName, isActive, roleIds}', userPut.length === 1 && userPut[0].body?.lastName === 'QL-renamed' && String(userPut[0].body?.isActive) === 'false' && Array.isArray(userPut[0].body?.roleIds), JSON.stringify(userPut.map((c) => c.body))); + r = await runSql(`SELECT last_name, is_active FROM sumologic.users.users WHERE id = '${newUser.id}'`); + check('user reflects UPDATE', r.rows && r.rows[0]?.last_name === 'QL-renamed' && (r.rows[0]?.is_active === false || r.rows[0]?.is_active === 0 || r.rows[0]?.is_active === 'false'), r.err || JSON.stringify(r.rows)); + mark = log.length; + r = await runSql(`EXEC sumologic.users.users.unlock @id = '${newUser.id}'`); + check('users.unlock EXEC -> POST /v1/users/{id}/unlock', !r.err && calls(mark, 'POST', `/v1/users/${newUser.id}/unlock`).length === 1, r.err || JSON.stringify(log.slice(mark).map((e) => `${e.method} ${e.path}`))); + mark = log.length; + r = await runSql(`DELETE FROM sumologic.users.users WHERE id = '${newUser.id}'`); + check('user DELETE (204)', !r.err && calls(mark, 'DELETE', `/v1/users/${newUser.id}`).length === 1, r.err); + check('user gone from mock state', !state.users.has(newUser.id)); + } + + // --- role lifecycle with assign_user / remove_user EXECs + mark = log.length; + r = await runSql(`INSERT INTO sumologic.roles.roles (name, description, capabilities) SELECT 'stackql-smoke-role', 'smoke', '["viewCollectors"]'`); + check('role INSERT', !r.err, r.err); + const newRole = [...state.roles.values()].find((x) => x.name === 'stackql-smoke-role'); + if (newRole) { + mark = log.length; + r = await runSql(`EXEC sumologic.roles.roles.assign_user @roleId = '${newRole.id}', @userId = '${USER_ID}'`); + check('roles.assign_user EXEC -> PUT /v1/roles/{roleId}/users/{userId}', !r.err && calls(mark, 'PUT', `/v1/roles/${newRole.id}/users/${USER_ID}`).length === 1 && newRole.users.includes(USER_ID), r.err || JSON.stringify(log.slice(mark).map((e) => `${e.method} ${e.path}`))); + r = await runSql(`EXEC sumologic.roles.roles.remove_user @roleId = '${newRole.id}', @userId = '${USER_ID}'`); + check('roles.remove_user EXEC -> DELETE', !r.err && !newRole.users.includes(USER_ID), r.err); + r = await runSql(`DELETE FROM sumologic.roles.roles WHERE id = '${newRole.id}'`); + check('role DELETE', !r.err && !state.roles.has(newRole.id), r.err); + } else { + check('role exists in mock state', false, 'INSERT did not create the role'); + } + r = await runSql("SELECT id, name FROM sumologic.roles.roles WHERE name = 'Administrator'"); + check('roles list filtered by name (pushdown)', r.rows && r.rows.length === 1 && r.rows[0].id === ADMIN_ROLE_ID, r.err || JSON.stringify(r.rows)); + + // --- Collector Management API wrappers + r = await runSql('SELECT id, name, collector_type, alive FROM sumologic.collectors.collectors'); + check('collectors list ($.collectors unwrapped, snake columns)', r.rows && r.rows.length === 1 && r.rows[0].collector_type === 'Hosted', r.err || JSON.stringify(r.rows)); + r = await runSql(`SELECT name, category FROM sumologic.collectors.collectors WHERE id = '${COLLECTOR_ID}'`); + check('collector get ($.collector unwrapped)', r.rows && r.rows.length === 1 && r.rows[0].name === 'stackql-mock-hosted', r.err || JSON.stringify(r.rows)); + r = await runSql("SELECT id FROM sumologic.collectors.collectors WHERE name = 'stackql-mock-hosted'"); + check('collector get_by_name', r.rows && r.rows.length === 1 && String(r.rows[0].id) === String(COLLECTOR_ID), r.err || JSON.stringify(r.rows)); + mark = log.length; + r = await runSql(`INSERT INTO sumologic.collectors.collectors (collector) SELECT '{"name": "stackql-smoke-collector", "collectorType": "Hosted", "category": "stackql/smoke", "description": "smoke"}'`); + check('collector INSERT', !r.err, r.err); + const collPost = calls(mark, 'POST', '/v1/collectors'); + check('collector INSERT wire body {"collector": {name, collectorType ...}}', collPost.length === 1 && collPost[0].body?.collector?.name === 'stackql-smoke-collector' && collPost[0].body.collector.collectorType === 'Hosted', JSON.stringify(collPost.map((c) => c.body))); + const newColl = [...state.collectors.values()].find((c) => c.name === 'stackql-smoke-collector'); + if (newColl) { + mark = log.length; + r = await runSql(`INSERT INTO sumologic.collectors.sources (collectorId, source) SELECT '${newColl.id}', '{"name": "stackql-smoke-http", "sourceType": "HTTP", "category": "stackql/smoke/http"}'`); + check('source INSERT under the new collector', !r.err, r.err); + const srcPost = calls(mark, 'POST', `/v1/collectors/${newColl.id}/sources`); + check('source INSERT wire body {"source": {...}}', srcPost.length === 1 && srcPost[0].body?.source?.sourceType === 'HTTP', JSON.stringify(srcPost.map((c) => c.body))); + const newSrc = [...state.sources.values()].find((s) => s.name === 'stackql-smoke-http'); + if (newSrc) { + r = await runSql(`SELECT id, name, source_type, url FROM sumologic.collectors.sources WHERE collector_id = '${newColl.id}'`); + check('sources list ($.sources, snake collector_id -> collectorId path param)', r.rows && r.rows.some((s) => s.name === 'stackql-smoke-http') && r.rows[0].source_type === 'HTTP', r.err || JSON.stringify(r.rows)); + r = await runSql(`SELECT name FROM sumologic.collectors.sources WHERE collector_id = '${newColl.id}' AND source_id = '${newSrc.id}'`); + check('source get ($.source)', r.rows && r.rows.length === 1 && r.rows[0].name === 'stackql-smoke-http', r.err || JSON.stringify(r.rows)); + r = await runSql(`DELETE FROM sumologic.collectors.sources WHERE collector_id = '${newColl.id}' AND source_id = '${newSrc.id}'`); + check('source DELETE', !r.err && !state.sources.has(newSrc.id), r.err); + } + r = await runSql(`DELETE FROM sumologic.collectors.collectors WHERE id = '${newColl.id}'`); + check('collector DELETE', !r.err && !state.collectors.has(newColl.id), r.err); + } else { + check('collector exists in mock state', false, 'INSERT did not create the collector'); + } + r = await runSql(`SELECT id, name FROM sumologic.collectors.sources WHERE collector_id = '${COLLECTOR_ID}'`); + check('seed source listed', r.rows && r.rows.length === 1 && String(r.rows[0].id) === String(SOURCE_ID), r.err || JSON.stringify(r.rows)); + r = await runSql('SELECT hosted_collectors_count, hosted_sources_count FROM sumologic.collectors.overview'); + check('collectors overview (singleton)', r.rows && r.rows.length === 1 && String(r.rows[0].hosted_collectors_count) === '1', r.err || JSON.stringify(r.rows)); + + // --- partitions list + decommission EXEC + r = await runSql('SELECT id, name, retention_period, is_active FROM sumologic.partitions.partitions'); + check('partitions list', r.rows && r.rows.length === 1 && r.rows[0].name === 'stackql_mock', r.err || JSON.stringify(r.rows)); + mark = log.length; + r = await runSql(`EXEC sumologic.partitions.partitions.decommission @id = '${PARTITION_ID}'`); + check('partitions.decommission EXEC', !r.err && calls(mark, 'POST', `/v1/partitions/${PARTITION_ID}/decommission`).length === 1 && state.partitions.get(PARTITION_ID).isActive === false, r.err); + + // --- other envelopes + r = await runSql("SELECT json_extract(item, '$.name') AS name, path FROM sumologic.monitors.search WHERE query = 'type:monitor'"); + check('monitors search (bare array wrapped): 2 rows with item/path', r.rows && r.rows.length === 2 && r.rows[0].name === 'High error rate' && r.rows[0].path === '/Monitor/High error rate', r.err || JSON.stringify(r.rows)); + r = await runSql('SELECT id, name, content_type FROM sumologic.monitors.root'); + check('monitors root (singleton get)', r.rows && r.rows.length === 1 && r.rows[0].content_type === 'Folder', r.err || JSON.stringify(r.rows)); + mark = log.length; + r = await runSql('SELECT id, name, query_string FROM sumologic.log_searches.log_searches'); + check('log searches list: 3 rows across 2 pages via the token cursor override', r.rows && r.rows.length === 3 && calls(mark, 'GET', '/v1/logSearches').length === 2, r.err || `rows=${r.rows?.length} calls=${calls(mark, 'GET', '/v1/logSearches').length}`); + mark = log.length; + r = await runSql('SELECT id, destination_name FROM sumologic.data_archiving.destinations'); + check('data archiving destinations: 3 rows across 2 pages via the nextToken override', r.rows && r.rows.length === 3 && calls(mark, 'GET', '/v1/dataarchiving/destinations').length === 2, r.err || `rows=${r.rows?.length} calls=${calls(mark, 'GET', '/v1/dataarchiving/destinations').length}`); + mark = log.length; + r = await runSql('SELECT id, name, alive FROM sumologic.ot_collectors.ot_collectors'); + const otCalls = calls(mark, 'POST', '/v1/otCollectors'); + check('ot_collectors list (SELECT over POST, $.data): 3 rows across 2 pages with the cursor in the body', r.rows && r.rows.length === 3 && otCalls.length === 2 && otCalls[1].body?.next === '2', r.err || `rows=${r.rows?.length} calls=${JSON.stringify(otCalls.map((c) => c.body))}`); + r = await runSql('SELECT id, title, folder_id FROM sumologic.dashboards.dashboards'); + check('dashboards list ($.dashboards)', r.rows && r.rows.length === 2 && r.rows[0].title === 'Dashboard 1', r.err || JSON.stringify(r.rows)); + r = await runSql('SELECT field_name, data_type FROM sumologic.fields.fields'); + check('fields list ($.data, no pagination)', r.rows && r.rows.length === 2 && r.rows[0].field_name === 'service', r.err || JSON.stringify(r.rows)); + r = await runSql('SELECT id, user_name, active FROM sumologic.scim.users'); + check('SCIM users list (application/scim+json, $.Resources)', r.rows && r.rows.length === 3 && r.rows[0].user_name === 'ada@example.com', r.err || JSON.stringify(r.rows)); + r = await runSql('SELECT plan_type, account_activated FROM sumologic.account.status'); + check('account status (singleton)', r.rows && r.rows.length === 1 && r.rows[0].plan_type === 'Enterprise', r.err || JSON.stringify(r.rows)); + r = await runSql('SELECT account_owner FROM sumologic.account.account_owner'); + check('account owner (bare JSON string wrapped by the response transform) returns a row', r.rows && r.rows.length === 1 && r.rows[0].account_owner === 'ada@example.com', r.err || JSON.stringify(r.rows)); + r = await runSql("SELECT name, item_type, json_array_length(children) AS n, json_extract(children, '$[1].itemType') AS second FROM sumologic.content.personal_folder"); + check('personal folder (nested children JSON column)', r.rows && r.rows.length === 1 && String(r.rows[0].n) === '2' && r.rows[0].second === 'Dashboard', r.err || JSON.stringify(r.rows)); + + // --- negative path: error envelope surfaces + r = await runSql("SELECT first_name FROM sumologic.users.users WHERE id = 'does-not-exist'"); + check('404 error envelope surfaced', r.err && /404/.test(r.err), r.err || 'no error'); +} finally { + server.close(); +} + +const failed = results.filter((x) => !x.pass); +console.log(`\n${results.length - failed.length}/${results.length} passed in ${((Date.now() - t0) / 1000).toFixed(1)}s`); +if (failed.length) { + console.log('failed:'); + for (const f of failed) console.log(` - ${f.name}${f.note ? `: ${String(f.note).slice(0, 300)}` : ''}`); + process.exit(1); +} diff --git a/tests/offline_validation.mjs b/tests/offline_validation.mjs new file mode 100644 index 0000000..6d1a266 --- /dev/null +++ b/tests/offline_validation.mjs @@ -0,0 +1,163 @@ +#!/usr/bin/env node + +// Quick offline validation of the generated provider against the local file +// registry - no network, no server, no credentials. Runs SHOW SERVICES / +// SHOW RESOURCES / SHOW METHODS and DESCRIBE EXTENDED over representative +// resources and asserts the expected shape of this build: the service +// split, the resource inventory per service, the region server variable +// (SUMOLOGIC_ENVIRONMENT via x-stackQL-envVar, default us2), the snake_case +// column surface, the lifecycle EXEC methods on their parent resources, the +// SCIM REPLACE method and the reason-coded skips. Exit 1 on any failure. +// +// Usage: node tests/offline_validation.mjs +// Binary resolution: $STACKQL, ./stackql(.exe), then PATH. + +import { spawn } from 'child_process'; +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import yaml from 'js-yaml'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const regPath = path.join(repoRoot, 'provider-dev', 'openapi').replace(/\\/g, '/'); +const registry = JSON.stringify({ url: `file://${regPath}`, localDocRoot: regPath, verifyConfig: { nopVerify: true } }); + +function findBinary() { + if (process.env.STACKQL && fs.existsSync(process.env.STACKQL)) return process.env.STACKQL; + for (const name of ['stackql', 'stackql.exe']) { + const local = path.join(repoRoot, name); + if (fs.existsSync(local)) return local; + } + return 'stackql'; // PATH +} +const bin = findBinary(); + +function runSql(sql, envOverrides = {}) { + return new Promise((resolve) => { + const env = { ...process.env, ...envOverrides }; + for (const [k, v] of Object.entries(envOverrides)) if (v === undefined) delete env[k]; + const child = spawn(bin, [`--registry=${registry}`, 'exec', sql, '--output', 'json'], { cwd: repoRoot, env }); + let stdout = '', stderr = ''; + child.stdout.on('data', (d) => (stdout += d)); + child.stderr.on('data', (d) => (stderr += d)); + child.on('close', (code) => { + let rows = []; + try { rows = JSON.parse(stdout) ?? []; } catch { rows = []; } + resolve({ code, rows, stdout, stderr }); + }); + child.on('error', (err) => resolve({ code: -1, rows: [], stdout: '', stderr: String(err) })); + }); +} + +const results = []; +function check(name, cond, note = '') { + results.push({ name, pass: !!cond, note }); + console.log(` ${cond ? 'PASS' : 'FAIL'} ${name}${cond ? '' : ` [${String(note).slice(0, 200)}]`}`); +} + +const EXPECTED_SERVICES = ['access_keys', 'account', 'apps', 'archive', 'budgets', 'collectors', 'connections', 'content', 'content_sync', 'dashboards', + 'data_archiving', 'data_deletion_rules', 'data_masking_rules', 'dynamic_parsing_rules', 'event_extraction_rules', 'extraction_rules', 'feature_settings', + 'fields', 'health_events', 'ingest_budgets', 'log_searches', 'logs_data_forwarding', 'lookup_tables', 'macros', 'metrics_queries', 'metrics_searches', + 'monitors', 'muting_schedules', 'oauth', 'organizations', 'ot_collectors', 'parsers', 'partitions', 'password_policy', 'policies', 'roles', 'saml', + 'scheduled_views', 'schemas', 'scim', 'search_jobs', 'service_accounts', 'service_allowlist', 'slos', 'source_templates', 'threat_intel', 'tokens', + 'tracing', 'transformation_rules', 'users']; +const EXPECTED_RESOURCES = { + users: ['users'], + collectors: ['collectors', 'offline_collectors', 'overview', 'sources', 'upgradable_collectors', 'upgrade_targets', 'upgrades'], + content: ['admin_recommended_folder_jobs', 'admin_recommended_folder_results', 'copy_jobs', 'delete_jobs', 'export_jobs', 'export_results', 'folders', + 'global_folder_jobs', 'global_folder_results', 'import_jobs', 'import_results', 'installed_apps_folder_jobs', 'installed_apps_folder_results', 'items', + 'paths', 'permissions', 'personal_folder'], + monitors: ['monitors', 'paths', 'permission_summaries', 'permissions', 'playbook_details', 'playbooks', 'root', 'search', 'usage_info'], + policies: ['access_keys_lifetime', 'audit', 'data_access_level', 'data_deletion', 'max_user_session_timeout', 'oauth_cimd', 'search_audit', + 'share_dashboards_outside_organization', 'timestamp_format', 'user_concurrent_sessions_limit'], + roles: ['roles', 'roles_v2'], + apps: ['app_subscriptions', 'apps', 'apps_v2', 'install_jobs', 'install_jobs_v2', 'uninstall_jobs', 'upgrade_jobs'], + tracing: ['critical_path_service_breakdowns', 'critical_paths', 'metrics', 'service_map', 'span_billing_info', 'span_queries', 'span_query_aggregates', + 'span_query_facets', 'span_query_field_values', 'span_query_fields', 'span_query_results', 'spans', 'trace_events', 'trace_existence', 'trace_queries', + 'trace_query_field_values', 'trace_query_fields', 'trace_query_results', 'traces'] +}; + +console.log(`offline validation against ${regPath} using ${bin}`); +const t0 = Date.now(); + +// --- provider document +const providerDoc = yaml.load(fs.readFileSync(path.join(repoRoot, 'provider-dev', 'openapi', 'src', 'sumologic', 'v00.00.00000', 'provider.yaml'), 'utf8')); +check('provider.yaml: basic auth on SUMOLOGIC_ACCESSID / SUMOLOGIC_ACCESSKEY', + providerDoc.config?.auth?.type === 'basic' && providerDoc.config.auth.username_var === 'SUMOLOGIC_ACCESSID' && providerDoc.config.auth.password_var === 'SUMOLOGIC_ACCESSKEY', + JSON.stringify(providerDoc.config)); +check('provider.yaml: snake_case_aliases enabled', providerDoc.config?.snake_case_aliases === true); +check(`provider.yaml: ${EXPECTED_SERVICES.length} services`, Object.keys(providerDoc.providerServices || {}).sort().join(',') === EXPECTED_SERVICES.join(','), + Object.keys(providerDoc.providerServices || {}).sort().join(',')); + +// --- SHOW SERVICES / RESOURCES +let r = await runSql('SHOW SERVICES IN sumologic'); +check(`SHOW SERVICES: ${EXPECTED_SERVICES.length} services`, r.rows.length === EXPECTED_SERVICES.length && EXPECTED_SERVICES.every((s) => r.rows.some((x) => x.name === s)), + r.stderr || r.rows.map((x) => x.name).join(',')); +for (const [service, expected] of Object.entries(EXPECTED_RESOURCES)) { + r = await runSql(`SHOW RESOURCES IN sumologic.${service}`); + const got = r.rows.map((x) => x.name).sort(); + check(`SHOW RESOURCES IN sumologic.${service}: ${expected.length} resources`, got.join(',') === expected.join(','), r.stderr || got.join(',')); +} + +// --- region server variable: default us2, env-resolved, never listed as required +r = await runSql('SHOW METHODS IN sumologic.users.users', { SUMOLOGIC_ENVIRONMENT: undefined }); +const methodNames = r.rows.map((m) => m.MethodName).sort(); +check('users.users methods: list, get, create, update, delete + lifecycle EXECs', + ['create', 'delete', 'disable_mfa', 'get', 'list', 'request_change_email', 'resend_welcome_email', 'reset_password', 'unlock', 'update'].every((m) => methodNames.includes(m)), + r.stderr || methodNames.join(',')); +// any-sdk lists a server variable as required whenever its env var is unset +// (the default only applies at request time), so SHOW METHODS reports region +// with SUMOLOGIC_ENVIRONMENT unset and drops it once the variable is set +const listMethod = r.rows.find((m) => m.MethodName === 'list'); +check('users.list: region listed as required while SUMOLOGIC_ENVIRONMENT is unset', listMethod && String(listMethod.RequiredParams || '').includes('region'), JSON.stringify(listMethod)); +r = await runSql('SHOW METHODS IN sumologic.users.users', { SUMOLOGIC_ENVIRONMENT: 'au' }); +check('users.list: region not required once SUMOLOGIC_ENVIRONMENT is set', r.rows.some((m) => m.MethodName === 'list' && !String(m.RequiredParams || '').includes('region')), r.stderr); +const usersDoc = yaml.load(fs.readFileSync(path.join(repoRoot, 'provider-dev', 'openapi', 'src', 'sumologic', 'v00.00.00000', 'services', 'users.yaml'), 'utf8')); +check('users.yaml: region server variable carries x-stackQL-envVar SUMOLOGIC_ENVIRONMENT with default us2 and the 11 deployments', + usersDoc.servers?.[0]?.variables?.region?.['x-stackQL-envVar'] === 'SUMOLOGIC_ENVIRONMENT' && usersDoc.servers[0].variables.region.default === 'us2' && usersDoc.servers[0].variables.region.enum.length === 11, + JSON.stringify(usersDoc.servers)); +check('users.yaml: service-level pagination config (token query / next body)', + usersDoc['x-stackQL-config']?.pagination?.requestToken?.key === 'token' && usersDoc['x-stackQL-config'].pagination.responseToken?.key === 'next', + JSON.stringify(usersDoc['x-stackQL-config'])); + +// --- snake_case surface +r = await runSql('DESCRIBE EXTENDED sumologic.users.users'); +let cols = r.rows.map((c) => c.name); +check('DESCRIBE users.users: snake_case columns (first_name, is_active, role_ids)', ['first_name', 'is_active', 'role_ids', 'email'].every((c) => cols.includes(c)), r.stderr || cols.join(',')); +r = await runSql('DESCRIBE EXTENDED sumologic.collectors.collectors'); +cols = r.rows.map((c) => c.name); +check('DESCRIBE collectors.collectors: unwrapped $.collector columns (collector_type, last_seen_alive)', ['collector_type', 'last_seen_alive', 'alive', 'name'].every((c) => cols.includes(c)), r.stderr || cols.join(',')); +r = await runSql('DESCRIBE EXTENDED sumologic.partitions.partitions'); +cols = r.rows.map((c) => c.name); +check('DESCRIBE partitions.partitions: routing_expression, retention_period, analytics_tier', ['routing_expression', 'retention_period', 'analytics_tier'].every((c) => cols.includes(c)), r.stderr || cols.join(',')); + +// --- method shapes +r = await runSql('SHOW EXTENDED METHODS IN sumologic.monitors.search'); +check('monitors.search.list requires query', r.rows.some((m) => m.MethodName === 'list' && String(m.RequiredParams || '').includes('query')), r.stderr || JSON.stringify(r.rows)); +r = await runSql('SHOW EXTENDED METHODS IN sumologic.monitors.monitors'); +check('monitors.monitors: get / get_by_path / create / update / delete + copy, move, export, import, disable_by_ids EXECs', + ['get', 'get_by_path', 'create', 'update', 'delete', 'copy', 'move', 'export', 'import', 'disable_by_ids', 'read_by_ids', 'delete_by_ids'].every((m) => r.rows.some((x) => x.MethodName === m)), + r.stderr || r.rows.map((x) => x.MethodName).join(',')); +check('monitors.monitors.create requires parentId (query) - snake alias parent_id', r.rows.some((m) => m.MethodName === 'create' && /parentId|parent_id/.test(String(m.RequiredParams))), JSON.stringify(r.rows.find((m) => m.MethodName === 'create'))); +r = await runSql('SHOW EXTENDED METHODS IN sumologic.scim.users'); +check('scim.users: update (PATCH) and replace (PUT) both present', r.rows.some((m) => m.MethodName === 'update' && m.SQLVerb === 'UPDATE') && r.rows.some((m) => m.MethodName === 'replace' && m.SQLVerb === 'REPLACE'), r.stderr || JSON.stringify(r.rows.map((m) => [m.MethodName, m.SQLVerb]))); +r = await runSql('SHOW EXTENDED METHODS IN sumologic.lookup_tables.lookup_tables'); +check('lookup_tables: upload (multipart) is skipped, truncate / upsert_row / delete_row are EXECs', !r.rows.some((m) => m.MethodName === 'upload') && ['truncate', 'upsert_row', 'delete_row'].every((m) => r.rows.some((x) => x.MethodName === m && x.SQLVerb === 'EXEC')), r.stderr || r.rows.map((x) => x.MethodName).join(',')); +r = await runSql('SHOW EXTENDED METHODS IN sumologic.scheduled_views.scheduled_views'); +check('scheduled_views: pause / start / disable EXECs on the resource', ['pause', 'start', 'disable'].every((m) => r.rows.some((x) => x.MethodName === m && x.SQLVerb === 'EXEC')), r.stderr || r.rows.map((x) => x.MethodName).join(',')); +r = await runSql('SHOW EXTENDED METHODS IN sumologic.source_templates.source_templates'); +check('source_templates: only the v2 surface (deprecated v1 skipped)', r.rows.length === 8 && r.rows.every((m) => !/sourceTemplate\//.test(String(m.MethodName))), r.stderr || r.rows.map((x) => x.MethodName).join(',')); +r = await runSql('SHOW INSERT INTO sumologic.users.users', { SUMOLOGIC_ENVIRONMENT: 'us2' }); +check('SHOW INSERT users.users renders snake body columns (first_name, role_ids)', /first_name/.test(r.stdout) && /role_ids/.test(r.stdout), r.stderr || r.stdout.slice(0, 200)); +r = await runSql('SHOW INSERT INTO sumologic.collectors.collectors', { SUMOLOGIC_ENVIRONMENT: 'us2' }); +check('SHOW INSERT collectors.collectors renders the collector wrapper column', /collector/.test(r.stdout), r.stderr || r.stdout.slice(0, 200)); +r = await runSql('DESCRIBE EXTENDED sumologic.account.account_owner'); +check('DESCRIBE account.account_owner: account_owner column (scalar response wrapped)', r.rows.some((c) => c.name === 'account_owner'), r.stderr || JSON.stringify(r.rows)); + +const failed = results.filter((x) => !x.pass); +console.log(`\n${results.length - failed.length}/${results.length} passed in ${((Date.now() - t0) / 1000).toFixed(1)}s`); +if (failed.length) { + console.log('failed:'); + for (const f of failed) console.log(` - ${f.name}${f.note ? `: ${String(f.note).slice(0, 300)}` : ''}`); + process.exit(1); +} diff --git a/tests/smoke_test.mjs b/tests/smoke_test.mjs new file mode 100644 index 0000000..8363486 --- /dev/null +++ b/tests/smoke_test.mjs @@ -0,0 +1,296 @@ +#!/usr/bin/env node + +// Live smoke test for the sumologic stackql provider. +// +// Exercises the queries and mutations a Sumo Logic user is most likely to +// run (the surface the Terraform provider's examples lead with) against a +// real account: read smokes over users, roles, service accounts, access +// keys, collectors and sources, the personal folder, dashboards, monitors, +// partitions, fields, scheduled views, ingest budgets, connections, tokens, +// apps and account status; then a disposable write lifecycle - a hosted +// collector with an HTTP source (INSERT / SELECT / DELETE), a role (INSERT / +// UPDATE / DELETE), a folder in the personal folder (INSERT / UPDATE and the +// asynchronous delete job started with EXEC and polled with SELECT) and a +// monitor folder (INSERT / DELETE). Every object created is named +// `stackql-smoke-` and swept at the start and the end of the run. +// +// Cost: none of the objects touched are billable - hosted collectors, +// sources with no data sent, roles, folders and monitor folders are free; +// no search jobs are started and no data is ingested. The run is a few +// dozen API calls, well inside the API rate limit. +// +// Credentials and the deployment come from the environment, exactly as the +// provider itself reads them (`make smoke-test` sources .env): +// +// SUMOLOGIC_ACCESSID access ID (basic-auth username) +// SUMOLOGIC_ACCESSKEY access key (basic-auth password) +// SUMOLOGIC_ENVIRONMENT deployment, e.g. us2 / au / eu (default us2) +// +// Usage: +// node tests/smoke_test.mjs # local provider (provider-dev/openapi) +// node tests/smoke_test.mjs --live # the published provider from the stackql registry +// node tests/smoke_test.mjs --read-only # read smokes only, no writes +// node tests/smoke_test.mjs --cleanup-only # sweep stackql-smoke-* breadcrumbs and exit +// node tests/smoke_test.mjs --verbose # print every statement and result +// +// Binary resolution: $STACKQL, ./stackql, then `stackql` on PATH. + +import { spawn } from 'child_process'; +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const args = process.argv.slice(2); +const live = args.includes('--live'); +const readOnly = args.includes('--read-only'); +const cleanupOnly = args.includes('--cleanup-only'); +const verbose = args.includes('--verbose'); +const SMOKE_PREFIX = 'stackql-smoke-'; +const stamp = String(Date.now()).slice(-6); +const NAME = `${SMOKE_PREFIX}${stamp}`; +const INTER_REQUEST_DELAY_MS = 250; + +for (const v of ['SUMOLOGIC_ACCESSID', 'SUMOLOGIC_ACCESSKEY']) { + if (!process.env[v]) { + console.error(`${v} is not set - see the header of this script (make smoke-test sources .env)`); + process.exit(2); + } +} +const region = process.env.SUMOLOGIC_ENVIRONMENT || 'us2'; + +function findStackql() { + if (process.env.STACKQL && fs.existsSync(process.env.STACKQL)) return process.env.STACKQL; + const local = path.join(repoRoot, process.platform === 'win32' ? 'stackql.exe' : 'stackql'); + if (fs.existsSync(local)) return local; + return 'stackql'; +} +const bin = findStackql(); +const regPath = path.join(repoRoot, 'provider-dev', 'openapi').replace(/\\/g, '/'); +const registryArg = live ? null : `--registry=${JSON.stringify({ url: `file://${regPath}`, localDocRoot: regPath, verifyConfig: { nopVerify: true } })}`; + +const ERROR_RE = /http response status code: [45]|error|panic|FindRoute|no matching operation|cannot find matching operation|cannot find any viable servers|disallowed|not yet supported|not supported/i; +let requests = 0; + +function q(sql) { + return new Promise((resolve) => { + const run = () => { + requests++; + const argv = []; + if (registryArg) argv.push(registryArg); + argv.push('exec', sql, '--output', 'json'); + const child = spawn(bin, argv, { cwd: repoRoot, env: process.env }); + let stdout = '', stderr = ''; + child.stdout.on('data', (d) => { stdout += d; }); + child.stderr.on('data', (d) => { stderr += d; }); + const timer = setTimeout(() => child.kill(), 180000); + child.on('error', (e) => { clearTimeout(timer); resolve({ rows: null, err: String(e) }); }); + child.on('close', () => { + clearTimeout(timer); + stdout = stdout.trim(); stderr = stderr.trim(); + if (verbose) console.log(` sql: ${sql}\n out: ${stdout.slice(0, 300)}${stderr ? `\n err: ${stderr.slice(0, 300)}` : ''}`); + if (ERROR_RE.test(stderr)) return resolve({ rows: null, err: stderr }); + if (!stdout) return resolve({ rows: [], err: null }); + try { resolve({ rows: JSON.parse(stdout) ?? [], err: null }); } catch { resolve({ rows: [{ _text: stdout }], err: ERROR_RE.test(stdout) ? stdout : null }); } + }); + }; + setTimeout(run, requests ? INTER_REQUEST_DELAY_MS : 0); + }); +} + +const results = []; +function record(name, pass, note = '') { + results.push({ name, pass, note }); + console.log(` ${pass ? 'PASS' : 'FAIL'} ${name}${!pass && note ? ` [${String(note).slice(0, 200)}]` : ''}`); +} +async function step(name, sql, { expectRows = false, contains = null, predicate = null } = {}) { + const { rows, err } = await q(sql); + if (err) { record(name, false, err); return null; } + const blob = JSON.stringify(rows); + if (expectRows && (!rows || rows.length === 0)) { record(name, false, 'expected rows, got none'); return null; } + if (contains && !blob.includes(contains)) { record(name, false, `'${contains}' not in result ${blob.slice(0, 120)}`); return null; } + if (predicate && !predicate(rows)) { record(name, false, `predicate failed on ${blob.slice(0, 160)}`); return null; } + record(name, true); + return rows; +} +async function waitFor(name, sql, pred, { timeoutMs = 120000, intervalMs = 5000 } = {}) { + const start = Date.now(); + let last = ''; + while (Date.now() - start < timeoutMs) { + const { rows, err } = await q(sql); + last = err || JSON.stringify(rows).slice(0, 160); + if (!err && pred(rows)) { record(name, true); return rows; } + await new Promise((r) => setTimeout(r, intervalMs)); + } + record(name, false, `timeout: ${last}`); + return null; +} + +// ------------------------------------------------------------- breadcrumbs +async function sweep() { + console.log('== breadcrumb sweep =='); + let { rows, err } = await q('SELECT id, name FROM sumologic.collectors.collectors WHERE filter = \'hosted\''); + if (err) console.log(` WARN collector sweep list failed: ${err.slice(0, 120)}`); + for (const c of rows || []) { + if (!String(c.name).startsWith(SMOKE_PREFIX)) continue; + console.log(` sweeping collector ${c.name}`); + const s = await q(`SELECT id FROM sumologic.collectors.sources WHERE collector_id = '${c.id}'`); + for (const src of s.rows || []) await q(`DELETE FROM sumologic.collectors.sources WHERE collector_id = '${c.id}' AND source_id = '${src.id}'`); + await q(`DELETE FROM sumologic.collectors.collectors WHERE id = '${c.id}'`); + } + ({ rows, err } = await q('SELECT id, name FROM sumologic.roles.roles')); + if (err) console.log(` WARN role sweep list failed: ${err.slice(0, 120)}`); + for (const r of rows || []) { + if (!String(r.name).startsWith(SMOKE_PREFIX)) continue; + console.log(` sweeping role ${r.name}`); + await q(`DELETE FROM sumologic.roles.roles WHERE id = '${r.id}'`); + } + ({ rows, err } = await q('SELECT children FROM sumologic.content.personal_folder')); + if (err) console.log(` WARN personal folder read failed: ${err.slice(0, 120)}`); + let children = []; + try { children = JSON.parse(rows?.[0]?.children || '[]'); } catch { children = []; } + for (const ch of children) { + if (!String(ch.name).startsWith(SMOKE_PREFIX)) continue; + console.log(` sweeping folder ${ch.name}`); + await q(`EXEC sumologic.content.delete_jobs.start @id = '${ch.id}'`); + } + ({ rows, err } = await q(`SELECT json_extract(item, '$.id') AS id, json_extract(item, '$.name') AS name FROM sumologic.monitors.search WHERE query = 'name:${SMOKE_PREFIX}'`)); + if (err) console.log(` WARN monitor sweep search failed: ${err.slice(0, 120)}`); + for (const m of rows || []) { + if (!String(m.name).startsWith(SMOKE_PREFIX)) continue; + console.log(` sweeping monitor folder ${m.name}`); + await q(`DELETE FROM sumologic.monitors.monitors WHERE id = '${m.id}'`); + } +} + +// -------------------------------------------------------------- read path +async function readSmokes() { + console.log('== read smokes =='); + await step('show services', 'SHOW SERVICES IN sumologic', { expectRows: true, contains: 'collectors' }); + await step('account status', 'SELECT plan_type, account_activated, pricing_model FROM sumologic.account.status', { expectRows: true }); + await step('users (snake_case columns, paginated)', 'SELECT id, first_name, last_name, email, is_active FROM sumologic.users.users', { expectRows: true, predicate: (r) => 'first_name' in r[0] }); + const users = await step('users with limit = 1 (pagination traverses every page)', 'SELECT id, email FROM sumologic.users.users WHERE limit = 1', { expectRows: true }); + const allUsers = await step('users total', 'SELECT count(*) AS n FROM sumologic.users.users', { expectRows: true }); + if (users && allUsers) record('pagination: limit = 1 returns the same row count as the default page size', users.length === Number(allUsers[0].n), `${users.length} vs ${allUsers[0].n}`); + await step('roles', 'SELECT id, name, system_defined, json_array_length(capabilities) AS capabilities FROM sumologic.roles.roles', { expectRows: true, contains: 'Administrator' }); + await step('roles filtered by name (predicate pushdown)', "SELECT id, name FROM sumologic.roles.roles WHERE name = 'Administrator'", { expectRows: true, predicate: (r) => r.length === 1 }); + await step('service accounts', 'SELECT id, name, email, is_active FROM sumologic.service_accounts.service_accounts'); + await step('personal access keys', 'SELECT id, label, disabled, created_at FROM sumologic.access_keys.personal_access_keys', { expectRows: true }); + const collectors = await step('collectors (Collector Management API, $.collectors)', 'SELECT id, name, collector_type, alive, collector_version FROM sumologic.collectors.collectors'); + if (collectors && collectors.length > 0) { + const c = collectors[0]; + await step('collector get by id ($.collector)', `SELECT name, collector_type FROM sumologic.collectors.collectors WHERE id = '${c.id}'`, { expectRows: true, contains: String(c.name) }); + await step('collector get by name', `SELECT id FROM sumologic.collectors.collectors WHERE name = '${String(c.name).replace(/'/g, "''")}'`, { expectRows: true }); + await step('sources of the first collector', `SELECT id, name, source_type, category FROM sumologic.collectors.sources WHERE collector_id = '${c.id}'`); + } + await step('collectors overview', 'SELECT installed_collectors_count, hosted_collectors_count, hosted_sources_count FROM sumologic.collectors.overview', { expectRows: true }); + await step('personal folder (nested children JSON)', 'SELECT id, name, item_type, json_array_length(children) AS items FROM sumologic.content.personal_folder', { expectRows: true }); + await step('dashboards', 'SELECT id, title, folder_id, refresh_interval FROM sumologic.dashboards.dashboards'); + await step('monitors root', 'SELECT id, name, content_type FROM sumologic.monitors.root', { expectRows: true }); + await step('monitors search (bare array)', "SELECT json_extract(item, '$.name') AS name, path FROM sumologic.monitors.search WHERE query = 'type:monitor'"); + await step('partitions', 'SELECT id, name, analytics_tier, retention_period, is_active FROM sumologic.partitions.partitions', { expectRows: true }); + await step('fields', 'SELECT field_name, field_id, data_type, state FROM sumologic.fields.fields'); + await step('field quota', 'SELECT quota, remaining FROM sumologic.fields.quota', { expectRows: true }); + await step('scheduled views', 'SELECT id, index_name, query, retention_period FROM sumologic.scheduled_views.scheduled_views'); + await step('ingest budgets', 'SELECT id, name, capacity_bytes, usage_bytes, usage_status FROM sumologic.ingest_budgets.ingest_budgets'); + await step('connections', 'SELECT id, name, type FROM sumologic.connections.connections'); + await step('tokens', 'SELECT id, name, type, status FROM sumologic.tokens.tokens'); + await step('log searches (token cursor)', 'SELECT id, name, query_string FROM sumologic.log_searches.log_searches'); + await step('apps catalog (v2)', 'SELECT uuid, name, version FROM sumologic.apps.apps_v2', { expectRows: true }); + await step('health events', 'SELECT event_id, event_name, severity_level, event_time FROM sumologic.health_events.health_events'); + await step('password policy', 'SELECT min_length, max_length, must_contain_digits FROM sumologic.password_policy.password_policy', { expectRows: true }); + await step('audit policy', 'SELECT enabled FROM sumologic.policies.audit', { expectRows: true }); +} + +// ------------------------------------------------------------- write path +async function collectorLifecycle() { + console.log(`== hosted collector + HTTP source lifecycle (${NAME}) ==`); + await step('collector INSERT (Hosted)', `INSERT INTO sumologic.collectors.collectors (collector) SELECT '{"name": "${NAME}", "collectorType": "Hosted", "category": "stackql/smoke", "description": "stackql smoke test"}'`); + const rows = await step('collector visible by name', `SELECT id, name, collector_type FROM sumologic.collectors.collectors WHERE name = '${NAME}'`, { expectRows: true, contains: 'Hosted' }); + if (!rows) return; + const cid = rows[0].id; + try { + await step('source INSERT (HTTP)', `INSERT INTO sumologic.collectors.sources (collector_id, source) SELECT '${cid}', '{"name": "${NAME}-http", "sourceType": "HTTP", "category": "stackql/smoke/http", "messagePerRequest": false}'`); + const srcs = await step('source visible in list ($.sources)', `SELECT id, name, source_type, url FROM sumologic.collectors.sources WHERE collector_id = '${cid}'`, { expectRows: true, contains: `${NAME}-http` }); + const sid = (srcs || []).find((s) => s.name === `${NAME}-http`)?.id; + if (sid) { + await step('source get ($.source)', `SELECT name, url FROM sumologic.collectors.sources WHERE collector_id = '${cid}' AND source_id = '${sid}'`, { expectRows: true, contains: 'https://' }); + await step('source DELETE', `DELETE FROM sumologic.collectors.sources WHERE collector_id = '${cid}' AND source_id = '${sid}'`); + } + } finally { + await step('collector DELETE', `DELETE FROM sumologic.collectors.collectors WHERE id = '${cid}'`); + const gone = await q(`SELECT id FROM sumologic.collectors.collectors WHERE name = '${NAME}'`); + record('collector gone after DELETE', !!gone.err || (gone.rows || []).length === 0, gone.err ? '' : JSON.stringify(gone.rows)); + } +} + +async function roleLifecycle() { + console.log(`== role lifecycle (${NAME}) ==`); + await step('role INSERT', `INSERT INTO sumologic.roles.roles (name, description, capabilities) SELECT '${NAME}', 'stackql smoke test', '["viewCollectors"]'`); + const rows = await step('role visible after INSERT', `SELECT id, name, description FROM sumologic.roles.roles WHERE name = '${NAME}'`, { expectRows: true }); + if (!rows) return; + const rid = rows[0].id; + try { + await step('role UPDATE (PUT replaces the role)', `UPDATE sumologic.roles.roles SET name = '${NAME}', description = 'stackql smoke test (updated)', capabilities = '["viewCollectors"]' WHERE id = '${rid}'`); + await step('role reflects UPDATE', `SELECT description FROM sumologic.roles.roles WHERE id = '${rid}'`, { expectRows: true, contains: '(updated)' }); + } finally { + await step('role DELETE', `DELETE FROM sumologic.roles.roles WHERE id = '${rid}'`); + } +} + +async function folderLifecycle() { + console.log(`== personal folder child lifecycle (${NAME}) ==`); + const personal = await step('personal folder id', 'SELECT id FROM sumologic.content.personal_folder', { expectRows: true }); + if (!personal) return; + await step('folder INSERT', `INSERT INTO sumologic.content.folders (name, description, parent_id) SELECT '${NAME}', 'stackql smoke test', '${personal[0].id}'`); + const pf = await q('SELECT children FROM sumologic.content.personal_folder'); + let child = null; + try { child = JSON.parse(pf.rows?.[0]?.children || '[]').find((c) => c.name === NAME); } catch { child = null; } + record('folder visible in personal folder children', !!child, pf.err || 'not found'); + if (!child) return; + await step('folder get', `SELECT name, description FROM sumologic.content.folders WHERE id = '${child.id}'`, { expectRows: true, contains: NAME }); + await step('folder UPDATE', `UPDATE sumologic.content.folders SET name = '${NAME}', description = 'stackql smoke test (updated)' WHERE id = '${child.id}'`); + const del = await q(`EXEC sumologic.content.delete_jobs.start @id = '${child.id}'`); + record('folder delete job started (EXEC delete_jobs.start)', !del.err, del.err || ''); + const jobId = del.rows?.[0]?.id; + if (jobId) { + await waitFor('folder delete job reaches Success (SELECT delete_jobs)', `SELECT status FROM sumologic.content.delete_jobs WHERE id = '${child.id}' AND job_id = '${jobId}'`, (r) => r?.[0]?.status === 'Success', { timeoutMs: 60000, intervalMs: 3000 }); + } else { + record('folder delete job id returned', false, JSON.stringify(del.rows)); + } +} + +async function monitorFolderLifecycle() { + console.log(`== monitor folder lifecycle (${NAME}) ==`); + const root = await step('monitors root id', 'SELECT id FROM sumologic.monitors.root', { expectRows: true }); + if (!root) return; + await step('monitor folder INSERT (parentId query param + typed body)', `INSERT INTO sumologic.monitors.monitors (parent_id, name, description, type) SELECT '${root[0].id}', '${NAME}', 'stackql smoke test', 'MonitorsLibraryFolder'`); + const found = await step('monitor folder visible via search', `SELECT json_extract(item, '$.id') AS id, json_extract(item, '$.name') AS name FROM sumologic.monitors.search WHERE query = 'name:${NAME}'`, { expectRows: true, contains: NAME }); + const id = (found || []).find((m) => m.name === NAME)?.id; + if (id) { + await step('monitor folder get', `SELECT name, content_type FROM sumologic.monitors.monitors WHERE id = '${id}'`, { expectRows: true, contains: 'Folder' }); + await step('monitor folder DELETE', `DELETE FROM sumologic.monitors.monitors WHERE id = '${id}'`); + } +} + +// ----------------------------------------------------------------- main +console.log(`sumologic smoke test registry=${live ? 'published (stackql registry)' : 'local provider-dev/openapi'} region=${region} name=${NAME} stackql=${bin}`); +if (live) { + const pull = await q('REGISTRY PULL sumologic'); + record('registry pull sumologic', !pull.err, pull.err || ''); +} +await sweep(); +if (!cleanupOnly) { + await readSmokes(); + if (!readOnly) { + await collectorLifecycle(); + await roleLifecycle(); + await folderLifecycle(); + await monitorFolderLifecycle(); + await sweep(); + } +} +const failed = results.filter((r) => !r.pass); +console.log(`\n== summary ==\n ${results.length - failed.length} passed, ${failed.length} failed; ${requests} statements (registry: ${live ? 'published' : 'local'})`); +for (const f of failed) console.log(` FAIL ${f.name} [${String(f.note).slice(0, 160)}]`); +process.exit(failed.length ? 1 : 0); diff --git a/website/.gitignore b/website/.gitignore index b2d6de3..dc32d51 100644 --- a/website/.gitignore +++ b/website/.gitignore @@ -18,3 +18,6 @@ npm-debug.log* yarn-debug.log* yarn-error.log* + +# vendored shared docusaurus config (cloned at build time) +.shared-config diff --git a/website/README.md b/website/README.md index b28211a..37bb162 100644 --- a/website/README.md +++ b/website/README.md @@ -1,20 +1,17 @@ # Website -This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator. +The `sumologic` provider microsite, built with [Docusaurus](https://docusaurus.io/) 3.10 on the shared [stackql/docusaurus-config](https://github.com/stackql/docusaurus-config) (vendored into `.shared-config/` by the `prestart` / `prebuild` hooks) and served at https://sumologic-provider.stackql.io. -## Installation +The content under `docs/` is generated - run `make docs` from the repository root (it renders `provider-dev/docgen/provider-data/headerContent1.txt` and `headerContent2.txt` into `docs/index.md` and one page per resource, then sanitizes the output for MDX). Do not edit `docs/` by hand. -```bash -yarn -``` - -## Local Development +## Local development ```bash +yarn yarn start ``` -This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. +Starts a local dev server; most changes are reflected live. ## Build @@ -22,20 +19,14 @@ This command starts a local development server and opens up a browser window. Mo yarn build ``` -This command generates static content into the `build` directory and can be served using any static contents hosting service. +Generates the static site into `build/` (the same command the deployment workflow runs). `make docs-build` from the repository root does `yarn install && yarn build`. ## Deployment -Using SSH: +The site is deployed with GitHub Pages through GitHub Actions - there is no Netlify site and no `gh-pages` branch: -```bash -USE_SSH=true yarn deploy -``` - -Not using SSH: - -```bash -GIT_USER= yarn deploy -``` +- `.github/workflows/prod-web-deploy.yml` runs on every push to `main` that touches `website/**`, builds the site and publishes `website/build` with `actions/upload-pages-artifact` + `actions/deploy-pages` +- `.github/workflows/test-web-deploy.yml` test-builds the site on pull requests +- `static/CNAME` (`sumologic-provider.stackql.io`) is copied into the build so the custom domain is set on every deployment -If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. +Repository settings: Settings -> Pages -> Build and deployment -> Source: **GitHub Actions**; Custom domain: `sumologic-provider.stackql.io`; Enforce HTTPS on. DNS: a `CNAME` record for `sumologic-provider.stackql.io` pointing at `stackql.github.io.`. diff --git a/website/docs/index.md b/website/docs/index.md index 58b3718..c00de71 100644 --- a/website/docs/index.md +++ b/website/docs/index.md @@ -1,83 +1,283 @@ ---- -title: sumologic -hide_title: false -hide_table_of_contents: false -keywords: - - sumologic - - stackql - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage Sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png -id: 'provider-intro' ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; - -Cloud-native, real-time, unified logs and metrics analytics platform. +--- +title: sumologic +hide_title: false +hide_table_of_contents: false +keywords: + - sumologic + - sumo logic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory + - observability +description: Query, provision and manage Sumo Logic collectors, sources, users, roles, monitors, dashboards, partitions, fields and the rest of the Sumo Logic platform using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +id: 'provider-intro' +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; + +Query, provision and operate the Sumo Logic platform using SQL - collectors and sources, users, roles and service accounts, access keys, the content library (folders, dashboards, saved searches), monitors, SLOs and muting schedules, partitions, scheduled views, fields and extraction rules, ingest budgets, connections, lookup tables, apps, security policies, tracing and search jobs. The provider covers the Sumo Logic API reference (every deployment) together with the Collector Management API. + :::info[Provider Summary] -total services: __32__ -total resources: __182__ +total services: __50__ +total resources: __213__ ::: -See also: -[[` SHOW `]](https://stackql.io/docs/language-spec/show) [[` DESCRIBE `]](https://stackql.io/docs/language-spec/describe) [[` REGISTRY `]](https://stackql.io/docs/language-spec/registry) -* * * - -## Installation - -To pull the latest version of the `sumologic` provider, run the following command: - -```bash -REGISTRY PULL sumologic; -``` -> To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). - -## Authentication - -The following system environment variables are used for authentication by default: - -- - SumoLogic Access ID (see Generating an Access Key) -- - SumoLogic Access Key (see Generating an Access Key) - -These variables are sourced at runtime (from the local machine or as CI variables/secrets). - -
- -Using different environment variables - -To use different environment variables (instead of the defaults), use the `--auth` flag of the `stackql` program. For example: - -```bash - -AUTH='{ "sumologic": { "type": "basic", "username_var": "YOUR_SUMOLOGIC_ACCESS_ID_VAR", "password_var": "YOUR_SUMOLOGIC_ACCESS_KEY_VAR" }}' -stackql shell --auth="${AUTH}" - -``` -or using PowerShell: - -```powershell - -$Auth = "{ 'sumologic': { 'type': 'basic', 'username_var': 'YOUR_SUMOLOGIC_ACCESS_ID_VAR', 'password_var': 'YOUR_SUMOLOGIC_ACCESS_KEY_VAR' }}" -stackql.exe shell --auth=$Auth - -``` -
- - -## Server Parameters - - -The following parameter is required for the `sumologic` provider if you are not using the `us2` region: - -- - The SumoLogic regional endpoint (e.g. au, ca, de, eu, fed, in, jp) - -This parameter would be supplied to the `WHERE` clause of each `SELECT` statement if you are not usign the `us2` region. +See also: +[[` SHOW `]](https://stackql.io/docs/language-spec/show) [[` DESCRIBE `]](https://stackql.io/docs/language-spec/describe) [[` REGISTRY `]](https://stackql.io/docs/language-spec/registry) +* * * + +## Installation + +To pull the latest version of the `sumologic` provider, run the following command: + +```bash +REGISTRY PULL sumologic; +``` +> To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). + +## Authentication + +The provider authenticates with a Sumo Logic access key pair using HTTP Basic auth (the access ID is the username, the access key is the password). Create a key in the Sumo Logic console under Administration -> Security -> Access Keys (see Access Keys). The following environment variables are read by default - the same variables the Terraform provider uses: + +- - Sumo Logic access ID +- - Sumo Logic access key +- - the deployment your account lives in (`us1`, `us2`, `au`, `ca`, `ch`, `de`, `eu`, `fed`, `in`, `jp` or `kr`, see Sumo Logic endpoints by deployment) + +These variables are sourced at runtime (from the local machine or as CI variables/secrets): + +```bash +export SUMOLOGIC_ACCESSID='su...' +export SUMOLOGIC_ACCESSKEY='...' +export SUMOLOGIC_ENVIRONMENT='us2' +``` + +or using PowerShell: + +```powershell +$env:SUMOLOGIC_ACCESSID = 'su...' +$env:SUMOLOGIC_ACCESSKEY = '...' +$env:SUMOLOGIC_ENVIRONMENT = 'us2' +``` + +
+ +Using different environment variables + +To use different environment variables for the access key pair, use the `--auth` flag of the `stackql` program. For example: + +```bash +AUTH='{ "sumologic": { "type": "basic", "username_var": "YOUR_SUMOLOGIC_ACCESS_ID_VAR", "password_var": "YOUR_SUMOLOGIC_ACCESS_KEY_VAR" }}' +stackql shell --auth="${AUTH}" +``` + +or using PowerShell: + +```powershell +$Auth = "{ 'sumologic': { 'type': 'basic', 'username_var': 'YOUR_SUMOLOGIC_ACCESS_ID_VAR', 'password_var': 'YOUR_SUMOLOGIC_ACCESS_KEY_VAR' }}" +stackql.exe shell --auth=$Auth +``` + +
+ +## Deployment (region) + +Every Sumo Logic deployment has its own API endpoint (`https://api.us2.sumologic.com/api`, `https://api.au.sumologic.com/api` and so on; `us1` is `https://api.sumologic.com/api`). The deployment is the server parameter of every resource, resolved from the environment variable, so with the variable set queries need no `WHERE region` clause: + +```sql +SELECT id, first_name, last_name, email FROM sumologic.users.users; +``` + +A `WHERE region = '...'` value always takes precedence over the environment, which is how a single session addresses accounts in several deployments: + +```sql +SELECT id, name FROM sumologic.collectors.collectors WHERE region = 'au'; +``` + +With unset, `region` is listed as a required parameter by `SHOW METHODS` and must be supplied on `INSERT`, `UPDATE`, `DELETE` and `EXEC` statements (a `SELECT` without it falls back to `us2`, the default of the previous provider release). Access keys are deployment-specific: a key created in one deployment is rejected (`401`) by every other endpoint, so a `401` on a fresh key usually means the wrong `region`. + +## Column and parameter casing + +The Sumo Logic API is camelCase on the wire. Columns, `WHERE` parameters and `INSERT` / `UPDATE` columns are presented in `snake_case` (`first_name`, `is_active`, `role_ids`, `collector_type`); the provider translates them to the wire names. Nested JSON columns keep the wire casing inside the value, so `json_extract(children, '$[0].itemType')` uses `itemType`. + +## Pagination and pushdown + +Paginated lists (users, roles, partitions, dashboards, connections, health events and the other `limit` / `token` lists) are traversed automatically - a `SELECT` returns every page. Every documented query or header parameter of an operation can be supplied in the `WHERE` clause and is sent on the wire, so filtering happens server-side where the API supports it: + +```sql +-- ?email= on GET /v1/users +SELECT id, first_name, last_name FROM sumologic.users.users WHERE email = 'ada@example.com'; + +-- ?filter=hosted on GET /v1/collectors (Collector Management API) +SELECT id, name, category FROM sumologic.collectors.collectors WHERE filter = 'hosted'; + +-- ?query= on GET /v1/monitors/search +SELECT json_extract(item, '$.name') AS name, path FROM sumologic.monitors.search WHERE query = 'type:monitor'; +``` + +## Users and roles + +Users with their state and role assignment: + +```sql +SELECT id, first_name, last_name, email, is_active, is_locked, is_mfa_enabled, last_login_timestamp, + json_array_length(role_ids) AS roles +FROM sumologic.users.users +ORDER BY last_login_timestamp DESC; +``` + +Roles and the capabilities they grant: + +```sql +SELECT id, name, description, system_defined, json_array_length(capabilities) AS capabilities, json_array_length(users) AS users +FROM sumologic.roles.roles; +``` + +## Collectors and sources + +The collector estate - type, liveness and version: + +```sql +SELECT id, name, collector_type, alive, collector_version, category, ephemeral, last_seen_alive +FROM sumologic.collectors.collectors +ORDER BY alive, name; +``` + +Sources of one collector: + +```sql +SELECT id, name, source_type, category, alive, url +FROM sumologic.collectors.sources +WHERE collector_id = '100000001'; +``` + +Installed collectors that have been offline for more than 30 days: + +```sql +SELECT id, name, collector_version, last_seen_alive +FROM sumologic.collectors.offline_collectors +WHERE alive_before_days = 30; +``` + +## Content library, monitors and dashboards + +The personal folder and its children: + +```sql +SELECT id, name, item_type, json_extract(children, '$[0].name') AS first_child, json_array_length(children) AS items +FROM sumologic.content.personal_folder; +``` + +Dashboards (New) with their folder and refresh interval: + +```sql +SELECT id, title, folder_id, refresh_interval, theme +FROM sumologic.dashboards.dashboards; +``` + +Monitors, disabled or not, from the monitors library search: + +```sql +SELECT json_extract(item, '$.name') AS name, + json_extract(item, '$.monitorType') AS monitor_type, + json_extract(item, '$.isDisabled') AS is_disabled, + path +FROM sumologic.monitors.search +WHERE query = 'type:monitor'; +``` + +## Data tiers, partitions and budgets + +Partitions with tier and retention: + +```sql +SELECT id, name, analytics_tier, retention_period, is_active, is_included_in_default_search, total_bytes +FROM sumologic.partitions.partitions +ORDER BY total_bytes DESC; +``` + +Ingest budgets and their current usage: + +```sql +SELECT id, name, capacity_bytes, usage_bytes, usage_status, action, reset_time, timezone +FROM sumologic.ingest_budgets.ingest_budgets; +``` + +## Provision, mutate and tear down + +Mutations use the same SQL grammar - `INSERT` creates a resource, `UPDATE` replaces it (Sumo Logic updates are `PUT`s, so supply every required field), `EXEC` invokes lifecycle actions and `DELETE` removes it. Structured values (arrays, objects) are passed as JSON strings, and booleans are quoted (`is_active = 'false'`) - a bare `true` / `false` on the right-hand side of `SET` is not accepted. A hosted collector with an HTTP source end to end (the Collector Management API wraps its bodies in `collector` / `source` objects, passed as JSON values): + +```sql +-- create a hosted collector +INSERT INTO sumologic.collectors.collectors (collector) +SELECT '{"name": "stackql-hosted", "collectorType": "Hosted", "category": "stackql/demo", "description": "Created by StackQL"}'; + +-- find its id +SELECT id FROM sumologic.collectors.collectors WHERE name = 'stackql-hosted'; + +-- add an HTTP source to it +INSERT INTO sumologic.collectors.sources (collector_id, source) +SELECT '100000002', '{"name": "stackql-http", "sourceType": "HTTP", "category": "stackql/demo/http", "messagePerRequest": false}'; + +-- remove both +DELETE FROM sumologic.collectors.sources WHERE collector_id = '100000002' AND source_id = '200000002'; +DELETE FROM sumologic.collectors.collectors WHERE id = '100000002'; +``` + +A role from creation to deletion, with a user assignment in between: + +```sql +INSERT INTO sumologic.roles.roles (name, description, capabilities) +SELECT 'stackql-readers', 'Read-only', '["viewCollectors", "viewFieldExtraction"]'; + +EXEC sumologic.roles.roles.assign_user @roleId = '00000000000001AC', @userId = '000000000000ABCD'; + +UPDATE sumologic.roles.roles +SET name = 'stackql-readers', description = 'Read-only (audited)', capabilities = '["viewCollectors"]' +WHERE id = '00000000000001AC'; + +DELETE FROM sumologic.roles.roles WHERE id = '00000000000001AC'; +``` + +Deactivating a user (a `PUT`, so the name and role assignment are supplied again): + +```sql +UPDATE sumologic.users.users +SET first_name = 'Ada', last_name = 'Lovelace', is_active = 'false', role_ids = '["00000000000001AB"]' +WHERE id = '000000000000ABCD'; +``` + +## Lifecycle operations + +State transitions are `EXEC` methods on the resource they act on, addressed with the wire-cased parameter names: + +```sql +EXEC sumologic.users.users.unlock @id = '000000000000ABCD'; + +EXEC sumologic.scheduled_views.scheduled_views.pause @id = '0000000000000A01'; + +EXEC sumologic.partitions.partitions.decommission @id = '0000000000000A02'; + +EXEC sumologic.monitors.monitors.disable_by_ids @ids = '0000000000000101,0000000000000102'; +``` + +Asynchronous jobs follow the same shape: an `EXEC` starts the job on a `_jobs` resource, a `SELECT` on the same resource polls its status, and a `_results` resource reads the outcome: + +```sql +EXEC sumologic.content.export_jobs.start @id = '0000000000A1B2C5'; + +SELECT status, status_message FROM sumologic.content.export_jobs +WHERE content_id = '0000000000A1B2C5' AND job_id = '5B4C3D2E1F0A9B8C'; + +SELECT type, name FROM sumologic.content.export_results +WHERE content_id = '0000000000A1B2C5' AND job_id = '5B4C3D2E1F0A9B8C'; +``` + ## Services
-metrics_queries
metrics_searches
monitors
+muting_schedules
+oauth
+organizations
+ot_collectors
+parsers
partitions
password_policy
-plan
policies
roles
saml
scheduled_views
+schemas
+scim
+search_jobs
+service_accounts
service_allowlist
slos
+source_templates
+threat_intel
tokens
tracing
transformation_rules
diff --git a/website/docs/services/access_keys/access_keys/index.md b/website/docs/services/access_keys/access_keys/index.md index 38d5a39..6f4d840 100644 --- a/website/docs/services/access_keys/access_keys/index.md +++ b/website/docs/services/access_keys/access_keys/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an access_keys resource. ## Overview - +
Nameaccess_keys
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an access_keys resource. The following fields are returned by `SELECT` queries: - + A list of all access keys in your account. @@ -56,39 +57,59 @@ A list of all access keys in your account. Identifier of the access key. (example: su0w3Q37CBzHUM) - + + string + Identifier of the service account who owns the access key. (example: 0000000006743FDA) (wire: serviceAccountId) + + + array - An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: 1. Requests with an ORIGIN header but the allowlist is empty. 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: 1. Requests with an ORIGIN header but the allowlist is empty. 2. Requests with an ORIGIN header that don't match any entry in the allowlist. (wire: corsHeaders) - + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) - + string - Identifier of the user who created the access key. (example: 0000000006743FDD) + Identifier of the user who created the access key. (example: 0000000006743FDD) (wire: createdBy) boolean Indicates whether the access key is disabled or not. + + + array + Effective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. (wire: effectiveScopes) + string The name of the access key. (example: collector access key) - + string (date-time) - Last used timestamp in UTC.
**Note:** Property not in use, it is part of an upcoming feature. (example: 2018-10-16T09:10:00Z) + Last used timestamp in UTC. <br /> **Note:** Property not in use, it is part of an upcoming feature. (example: 2018-10-16T09:10:00.000Z) (wire: lastUsed) - + string (date-time) - Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) + + + + string + Identifier of the user who modified the access key. (example: 0000000006743FDD) (wire: modifiedBy) + + + + array + Scopes assigned to the key. ### Alerting - adminMonitorsV2 - viewMonitorsV2 - manageMonitorsV2 ### Data Management - manageApps - viewCollectors - manageCollectors - viewConnections - manageConnections - contentAdmin - viewFieldExtractionRules - manageFieldExtractionRules - viewFields - manageFields - manageBudgets - viewLibrary - manageLibrary - viewPartitions - managePartitions - manageS3DataForwarding - viewScheduledViews - manageScheduledViews - manageTokens ### Logs - runLogSearch ### Metrics - runMetricsQuery ### Reliability Management - viewSlos - manageSlos ### Security - manageAccessKeys - viewPersonalAccessKeys - managePersonalAccessKeys ### UserManagement - viewUsersAndRoles - manageUsersAndRoles @@ -111,32 +132,39 @@ The following methods are available for this resource: - + region limit, token List all access keys in your account. - + - region, data__label + region, label + + Creates a new access ID and key pair. The new access key can be used from the domains specified in corsHeaders field. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject:<br /> 1. Requests with an ORIGIN header but the allowlist is empty.<br /> 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + + + + + id, region, disabled - Creates a new access ID and key pair. The new access key can be used from the domains specified in corsHeaders field. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject:
1. Requests with an ORIGIN header but the allowlist is empty.
2. Requests with an ORIGIN header that don't match any entry in the allowlist. + Updates the properties of existing accessKey by accessId. It can be used to enable or disable the access key and to update the corsHeaders list. - + id, region Deletes the access key with the given accessId. - + - id, region, disabled + id, region - Updates the properties of existing accessKey by accessId. It can be used to enable or disable the access key and to update the corsHeaders list. + Generates a new secret for the access key that is passed in the call, keeping the same access ID. @@ -157,12 +185,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - The accessId of the access key to update. + The accessId of the access key to rotate the secret for. string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -180,27 +208,31 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + List all access keys in your account. ```sql SELECT id, -corsHeaders, -createdAt, -createdBy, +service_account_id, +cors_headers, +created_at, +created_by, disabled, +effective_scopes, label, -lastUsed, -modifiedAt +last_used, +modified_at, +modified_by, +scopes FROM sumologic.access_keys.access_keys -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' ; @@ -212,60 +244,150 @@ AND token = '{{ token }}' ## `INSERT` examples - + -Creates a new access ID and key pair. The new access key can be used from the domains specified in corsHeaders field. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject:
1. Requests with an ORIGIN header but the allowlist is empty.
2. Requests with an ORIGIN header that don't match any entry in the allowlist. +Creates a new access ID and key pair. The new access key can be used from the domains specified in corsHeaders field. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject:<br /> 1. Requests with an ORIGIN header but the allowlist is empty.<br /> 2. Requests with an ORIGIN header that don't match any entry in the allowlist. ```sql INSERT INTO sumologic.access_keys.access_keys ( -data__label, -data__corsHeaders, +label, +cors_headers, +scopes, region ) SELECT '{{ label }}' /* required */, -'{{ corsHeaders }}', +'{{ cors_headers }}', +'{{ scopes }}', '{{ region }}' RETURNING id, -corsHeaders, -createdAt, -createdBy, +service_account_id, +cors_headers, +created_at, +created_by, disabled, +effective_scopes, key, label, -lastUsed, -modifiedAt +last_used, +modified_at, +modified_by, +scopes ; ```
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: access_keys props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the access_keys resource. - name: label - value: string + value: "{{ label }}" description: | A name for the access key to be created. - - name: corsHeaders - value: array + - name: cors_headers + value: + - "{{ cors_headers }}" description: | An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: 1. Requests with an ORIGIN header but the allowlist is empty. 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + - name: scopes + value: + - "{{ scopes }}" + description: | + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + ### Logs + - runLogSearch + ### Metrics + - runMetricsQuery + ### Reliability Management + - viewSlos + - manageSlos + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles +`} + + +
+ + +## `UPDATE` examples + + + + +Updates the properties of existing accessKey by accessId. It can be used to enable or disable the access key and to update the corsHeaders list. + +```sql +UPDATE sumologic.access_keys.access_keys +SET +disabled = {{ disabled }}, +cors_headers = '{{ cors_headers }}', +scopes = '{{ scopes }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND disabled = {{ disabled }} --required +RETURNING +id, +service_account_id, +cors_headers, +created_at, +created_by, +disabled, +effective_scopes, +label, +last_used, +modified_at, +modified_by, +scopes; ``` @@ -274,19 +396,19 @@ modifiedAt ## `DELETE` examples - + Deletes the access key with the given accessId. ```sql DELETE FROM sumologic.access_keys.access_keys WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` @@ -295,25 +417,22 @@ AND region = '{{ region }}' --required ## Lifecycle Methods +EXEC variables use wire (API) names. + - + -Updates the properties of existing accessKey by accessId. It can be used to enable or disable the access key and to update the corsHeaders list. +Generates a new secret for the access key that is passed in the call, keeping the same access ID. ```sql -EXEC sumologic.access_keys.access_keys.updateAccessKey +EXEC sumologic.access_keys.access_keys.rotate_secret @id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"disabled": {{ disabled }}, -"corsHeaders": "{{ corsHeaders }}" -}' +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/access_keys/index.md b/website/docs/services/access_keys/index.md index 3cbb71c..9a2a4be 100644 --- a/website/docs/services/access_keys/index.md +++ b/website/docs/services/access_keys/index.md @@ -18,16 +18,17 @@ access_keys service documentation. :::info[Service Summary] -total resources: __2__ +total resources: __3__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/access_keys/personal/index.md b/website/docs/services/access_keys/personal/index.md deleted file mode 100644 index 7dc8d2e..0000000 --- a/website/docs/services/access_keys/personal/index.md +++ /dev/null @@ -1,171 +0,0 @@ ---- -title: personal -hide_title: false -hide_table_of_contents: false -keywords: - - personal - - access_keys - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a personal resource. - -## Overview - - - - -
Namepersonal
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -A list of all access keys that belong to the user making the request. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the access key. (example: su0w3Q37CBzHUM)
arrayAn array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: 1. Requests with an ORIGIN header but the allowlist is empty. 2. Requests with an ORIGIN header that don't match any entry in the allowlist.
string (date-time)Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z)
stringIdentifier of the user who created the access key. (example: 0000000006743FDD)
booleanIndicates whether the access key is disabled or not.
stringThe name of the access key. (example: collector access key)
string (date-time)Last used timestamp in UTC.
**Note:** Property not in use, it is part of an upcoming feature. (example: 2018-10-16T09:10:00Z)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z)
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
regionList all access keys that belong to your user.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## `SELECT` examples - - - - -List all access keys that belong to your user. - -```sql -SELECT -id, -corsHeaders, -createdAt, -createdBy, -disabled, -label, -lastUsed, -modifiedAt -FROM sumologic.access_keys.personal -WHERE region = '{{ region }}' -- required -; -``` - - diff --git a/website/docs/services/access_keys/personal_access_keys/index.md b/website/docs/services/access_keys/personal_access_keys/index.md new file mode 100644 index 0000000..545e5ff --- /dev/null +++ b/website/docs/services/access_keys/personal_access_keys/index.md @@ -0,0 +1,196 @@ +--- +title: personal_access_keys +hide_title: false +hide_table_of_contents: false +keywords: + - personal_access_keys + - access_keys + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a personal_access_keys resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A list of all access keys that belong to the user making the request. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the access key. (example: su0w3Q37CBzHUM)
stringIdentifier of the service account who owns the access key. (example: 0000000006743FDA) (wire: serviceAccountId)
arrayAn array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: 1. Requests with an ORIGIN header but the allowlist is empty. 2. Requests with an ORIGIN header that don't match any entry in the allowlist. (wire: corsHeaders)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the access key. (example: 0000000006743FDD) (wire: createdBy)
booleanIndicates whether the access key is disabled or not.
arrayEffective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. (wire: effectiveScopes)
stringThe name of the access key. (example: collector access key)
string (date-time)Last used timestamp in UTC. <br /> **Note:** Property not in use, it is part of an upcoming feature. (example: 2018-10-16T09:10:00.000Z) (wire: lastUsed)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who modified the access key. (example: 0000000006743FDD) (wire: modifiedBy)
arrayScopes assigned to the key. ### Alerting - adminMonitorsV2 - viewMonitorsV2 - manageMonitorsV2 ### Data Management - manageApps - viewCollectors - manageCollectors - viewConnections - manageConnections - contentAdmin - viewFieldExtractionRules - manageFieldExtractionRules - viewFields - manageFields - manageBudgets - viewLibrary - manageLibrary - viewPartitions - managePartitions - manageS3DataForwarding - viewScheduledViews - manageScheduledViews - manageTokens ### Logs - runLogSearch ### Metrics - runMetricsQuery ### Reliability Management - viewSlos - manageSlos ### Security - manageAccessKeys - viewPersonalAccessKeys - managePersonalAccessKeys ### UserManagement - viewUsersAndRoles - manageUsersAndRoles
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionList all access keys that belong to your user.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +List all access keys that belong to your user. + +```sql +SELECT +id, +service_account_id, +cors_headers, +created_at, +created_by, +disabled, +effective_scopes, +label, +last_used, +modified_at, +modified_by, +scopes +FROM sumologic.access_keys.personal_access_keys +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/access_keys/scopes/index.md b/website/docs/services/access_keys/scopes/index.md new file mode 100644 index 0000000..129afd2 --- /dev/null +++ b/website/docs/services/access_keys/scopes/index.md @@ -0,0 +1,154 @@ +--- +title: scopes +hide_title: false +hide_table_of_contents: false +keywords: + - scopes + - access_keys + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a scopes resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A list of scopes that can be added to an access key. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the scope. (example: managePartitions)
arrayAny scopes that are required for this scope to be enabled. (wire: dependsOn)
objectThe group that the scope belongs to.
stringThe UI label for the scope. (example: Manage Partitions)
stringType of scope. (example: Manage)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionGet a list of all of the scopes that can be added to an access key.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get a list of all of the scopes that can be added to an access key. + +```sql +SELECT +id, +depends_on, +group, +label, +type +FROM sumologic.access_keys.scopes +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/account/account_owner/index.md b/website/docs/services/account/account_owner/index.md index 2c52115..450610e 100644 --- a/website/docs/services/account/account_owner/index.md +++ b/website/docs/services/account/account_owner/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an account_owner resource. ## Overview - +
Nameaccount_owner
Name
TypeResource
Id
@@ -31,8 +32,32 @@ Creates, updates, deletes, gets or lists an account_owner resource. The following fields are returned by `SELECT` queries: -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringEmail address of the account owner (the bare JSON string returned by the API, wrapped so it projects as a row). (wire: accountOwner)
+
+
## Methods @@ -50,8 +75,8 @@ The following methods are available for this resource: - - + + region Returns the user identifier of the account owner. @@ -75,26 +100,28 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) -## Lifecycle Methods +## `SELECT` examples - + Returns the user identifier of the account owner. ```sql -EXEC sumologic.account.account_owner.getAccountOwner -@region='{{ region }}' --required +SELECT +account_owner +FROM sumologic.account.account_owner +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/account/index.md b/website/docs/services/account/index.md index 7f9ba0c..b4d322c 100644 --- a/website/docs/services/account/index.md +++ b/website/docs/services/account/index.md @@ -18,7 +18,7 @@ account service documentation. :::info[Service Summary] -total resources: __4__ +total resources: __6__ ::: @@ -26,10 +26,12 @@ total resources: __4__ \ No newline at end of file diff --git a/website/docs/services/plan/pending_update_request/index.md b/website/docs/services/account/pending_update_request/index.md similarity index 64% rename from website/docs/services/plan/pending_update_request/index.md rename to website/docs/services/account/pending_update_request/index.md index 0bc7325..dd9d386 100644 --- a/website/docs/services/plan/pending_update_request/index.md +++ b/website/docs/services/account/pending_update_request/index.md @@ -4,7 +4,7 @@ hide_title: false hide_table_of_contents: false keywords: - pending_update_request - - plan + - account - sumologic - infrastructure-as-code - configuration-as-data @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,9 +23,9 @@ Creates, updates, deletes, gets or lists a pending_update_request r ## Overview - + - +
Namepending_update_request
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a pending_update_request r The following fields are returned by `SELECT` queries: - + Pending plan update request. @@ -51,9 +52,9 @@ Pending plan update request. - + string (date) - The date on which the update request was created. + The date on which the update request was created. (wire: createdOn) @@ -81,14 +82,14 @@ The following methods are available for this resource: - + region Get the pending plan update request which will be applicable from next billing cycle. - + region @@ -113,7 +114,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -121,21 +122,21 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the pending plan update request which will be applicable from next billing cycle. ```sql SELECT -createdOn, +created_on, plan -FROM sumologic.plan.pending_update_request -WHERE region = '{{ region }}' -- required +FROM sumologic.account.pending_update_request +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` @@ -145,18 +146,18 @@ WHERE region = '{{ region }}' -- required ## `DELETE` examples - + Delete the pending plan update request which would be applicable from next billing cycle. ```sql -DELETE FROM sumologic.plan.pending_update_request -WHERE region = '{{ region }}' --required +DELETE FROM sumologic.account.pending_update_request +WHERE region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/account/status/index.md b/website/docs/services/account/status/index.md index b2a180a..a653c19 100644 --- a/website/docs/services/account/status/index.md +++ b/website/docs/services/account/status/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a status resource. ## Overview - +
Namestatus
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a status resource. The following fields are returned by `SELECT` queries: - + Overview of the account. @@ -51,34 +52,49 @@ Overview of the account. - + boolean - If the account is activated or not + If the account is activated or not (wire: accountActivated) - + string - The current usage of the application. (pattern: ^(ALLOWED|ALLOWED_WITH_WARNING|THROTTLED|RESTRICTED)$, example: ALLOWED) + The current usage of the application. (pattern: <code>^(ALLOWED|ALLOWED_WITH_WARNING|THROTTLED|RESTRICTED)$</code>, example: ALLOWED) (wire: applicationUse) - + boolean - If the plan can be updated by the given user + If the plan can be updated by the given user (wire: canUpdatePlan) - + + boolean + Indicates whether the account has v2 subscription enabled. (wire: isSubscriptionV2) + + + + string + The log model of the account (pattern: <code>^(Flex|Tiered|FlexPlusTiered)$</code>, example: Flex) (wire: logModel) + + + integer - The number of days in which the plan will expire + The number of days in which the plan will expire (wire: planExpirationDays) - + string - Whether the account is `Free`/`Trial`/`Paid` (pattern: ^(Free|Trial|Paid)$, example: Free) + Whether the account is `Free`/`Trial`/`Paid` (pattern: <code>^(Free|Trial|Paid)$</code>, example: Free) (wire: planType) - + string - Whether the account is `cloudflex` or `credits` (pattern: ^(credits|cloudflex)$, example: credits) + Whether the account is `cloudflex` or `credits` (pattern: <code>^(credits|cloudflex)$</code>, example: credits) (wire: pricingModel) + + + + integer + Total amount of credits assigned to the account (wire: totalCredits) @@ -101,7 +117,7 @@ The following methods are available for this resource: - + region @@ -126,7 +142,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -134,25 +150,28 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get information related to the account's plan, pricing model, expiration and payment status. ```sql SELECT -accountActivated, -applicationUse, -canUpdatePlan, -planExpirationDays, -planType, -pricingModel +account_activated, +application_use, +can_update_plan, +is_subscription_v2, +log_model, +plan_expiration_days, +plan_type, +pricing_model, +total_credits FROM sumologic.account.status -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/account/subdomain/index.md b/website/docs/services/account/subdomain/index.md index 9bd5b97..867e736 100644 --- a/website/docs/services/account/subdomain/index.md +++ b/website/docs/services/account/subdomain/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a subdomain resource. ## Overview - +
Namesubdomain
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a subdomain resource. The following fields are returned by `SELECT` queries: - + The subdomain's definition. @@ -51,24 +52,24 @@ The subdomain's definition. - + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt) - + string - Identifier of the user who created the resource. + Identifier of the user who created the resource. (wire: createdBy) - + string (date-time) - Last modification timestamp in UTC. + Last modification timestamp in UTC. (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. + Identifier of the user who last modified the resource. (wire: modifiedBy) @@ -78,7 +79,7 @@ The subdomain's definition. string - Login URL corresponding to the subdomain. (example: https://your-company.sumologic.com) + Login URL corresponding to the subdomain. (example: https:​//your-company.sumologic.com) @@ -101,32 +102,39 @@ The following methods are available for this resource: - + region Get the configured subdomain. - + - region, data__subdomain + region, subdomain Create a subdomain. Only the Account Owner can create a subdomain. - + + + region, subdomain + + Update a subdomain. Only the Account Owner can update the subdomain. + + + region Delete the configured subdomain. - + - region, subdomain + email, region - Update a subdomain. Only the Account Owner can update the subdomain. + Send an email with the subdomain information for a user with the given email address. @@ -144,10 +152,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + Email address of the user to get subdomain information. + string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -155,25 +168,25 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the configured subdomain. ```sql SELECT -createdAt, -createdBy, -modifiedAt, -modifiedBy, +created_at, +created_by, +modified_at, +modified_by, subdomain, url FROM sumologic.account.subdomain -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` @@ -183,29 +196,29 @@ WHERE region = '{{ region }}' -- required ## `INSERT` examples - + Create a subdomain. Only the Account Owner can create a subdomain. ```sql INSERT INTO sumologic.account.subdomain ( -data__subdomain, +subdomain, region ) SELECT '{{ subdomain }}' /* required */, '{{ region }}' RETURNING -createdAt, -createdBy, -modifiedAt, -modifiedBy, +created_at, +created_by, +modified_at, +modified_by, subdomain, url ; @@ -213,17 +226,48 @@ url -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: subdomain props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the subdomain resource. - name: subdomain - value: string + value: "{{ subdomain }}" description: | The new subdomain. +`} + + + + + +## `UPDATE` examples + + + + +Update a subdomain. Only the Account Owner can update the subdomain. + +```sql +UPDATE sumologic.account.subdomain +SET +subdomain = '{{ subdomain }}' +WHERE +region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND subdomain = '{{ subdomain }}' --required +RETURNING +created_at, +created_by, +modified_at, +modified_by, +subdomain, +url; ``` @@ -232,18 +276,18 @@ url ## `DELETE` examples - + Delete the configured subdomain. ```sql DELETE FROM sumologic.account.subdomain -WHERE region = '{{ region }}' --required +WHERE region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` @@ -252,23 +296,22 @@ WHERE region = '{{ region }}' --required ## Lifecycle Methods +EXEC variables use wire (API) names. + - + -Update a subdomain. Only the Account Owner can update the subdomain. +Send an email with the subdomain information for a user with the given email address. ```sql -EXEC sumologic.account.subdomain.updateSubdomain -@region='{{ region }}' --required -@@json= -'{ -"subdomain": "{{ subdomain }}" -}' +EXEC sumologic.account.subdomain.recover +@email='{{ email }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/account/subdomain_recover/index.md b/website/docs/services/account/subdomain_recover/index.md deleted file mode 100644 index 886fd48..0000000 --- a/website/docs/services/account/subdomain_recover/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: subdomain_recover -hide_title: false -hide_table_of_contents: false -keywords: - - subdomain_recover - - account - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a subdomain_recover resource. - -## Overview - - - - -
Namesubdomain_recover
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
email, regionSend an email with the subdomain information for a user with the given email address.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringEmail address of the user to get subdomain information.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Send an email with the subdomain information for a user with the given email address. - -```sql -EXEC sumologic.account.subdomain_recover.recoverSubdomains -@email='{{ email }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/account/usage_forecast/index.md b/website/docs/services/account/usage_forecast/index.md new file mode 100644 index 0000000..2a5bf4d --- /dev/null +++ b/website/docs/services/account/usage_forecast/index.md @@ -0,0 +1,160 @@ +--- +title: usage_forecast +hide_title: false +hide_table_of_contents: false +keywords: + - usage_forecast + - account + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a usage_forecast resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Usage Forecast. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
number (double)Average credit usage per day till now. (wire: averageUsage)
number (double)Total expected usage by the end of contract period. (wire: forecastedUsage)
number (double)Percentage of allocated credits that will be used in the contract period. (wire: forecastedUsagePercentage)
number (double)Days remaining till all the credits are consumed. (wire: remainingDays)
number (double)Percentage of total credits used till date. (wire: usagePercentage)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionnumber_of_daysGet usage forecast with respect to last number of days specified. If nothing is provided for last number of days, the average of term period will be taken to do the forecast.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
numberNumber of days to use for calculating average usage and forecast. (wire: numberOfDays)
+ +## `SELECT` examples + + + + +Get usage forecast with respect to last number of days specified. If nothing is provided for last number of days, the average of term period will be taken to do the forecast. + +```sql +SELECT +average_usage, +forecasted_usage, +forecasted_usage_percentage, +remaining_days, +usage_percentage +FROM sumologic.account.usage_forecast +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND number_of_days = '{{ number_of_days }}' +; +``` + + diff --git a/website/docs/services/account/usage_reports/index.md b/website/docs/services/account/usage_reports/index.md new file mode 100644 index 0000000..5e52437 --- /dev/null +++ b/website/docs/services/account/usage_reports/index.md @@ -0,0 +1,250 @@ +--- +title: usage_reports +hide_title: false +hide_table_of_contents: false +keywords: + - usage_reports + - account + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a usage_reports resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Status response containing status and downloadURL if successful. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringAn error code describing the type of error. (example: auth:password_too_short)
stringAn optional fuller English-language description of the error. (example: Your password was 5 characters long, the minimum length is 12 characters. See http:​//example.com/password for more information.)
stringA short English-language description of the error. (example: Your password was too short.)
stringAn optional list of metadata about the error. (opaque JSON object)
stringS3 presigned download URL for the report. It is valid for 10 minutes. (example: www.example.com) (wire: reportDownloadURL)
stringStatus export (pattern: <code>^(Success|InProgress|Failed)$</code>, example: Success)
stringStatus message export (example: Successful request) (wire: statusMessage)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, regionGet the report download URL and status using Job Id.
regionExport the credit usage details as csv for the specific period of time given as input in the form of a start and end date with a specific grouping according to `day`, `week`, `month`, Note that this API will work only for credits plan customers.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringJob Id for the report to be exported. (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get the report download URL and status using Job Id. + +```sql +SELECT +code, +detail, +message, +meta, +report_download_url, +status, +status_message +FROM sumologic.account.usage_reports +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples + + + + +Export the credit usage details as csv for the specific period of time given as input in the form of a start and end date with a specific grouping according to `day`, `week`, `month`, Note that this API will work only for credits plan customers. + +```sql +INSERT INTO sumologic.account.usage_reports ( +start_date, +end_date, +group_by, +report_type, +include_deployment_charge, +region +) +SELECT +'{{ start_date }}', +'{{ end_date }}', +'{{ group_by }}', +'{{ report_type }}', +{{ include_deployment_charge }}, +'{{ region }}' +RETURNING +job_id +; +``` + + + +{`# Description fields are for documentation purposes +- name: usage_reports + props: + - name: region + value: "{{ region }}" + description: Required parameter for the usage_reports resource. + - name: start_date + value: "{{ start_date }}" + description: | + Start date, without the time, of the usage data to fetch. If no value is provided startDate is used as the start of the subscription. The start date cannot be before the start of the subscription. + - name: end_date + value: "{{ end_date }}" + description: | + End date, without the time, of usage data to fetch. If no value is provided endDate is used as the end of the subscription. The end date cannot be after the end of the subscription. + - name: group_by + value: "{{ group_by }}" + description: | + Perform a groupBy operation on the usage details. If no value is provided data is grouped by \`Day\` - \`day\`: Aggregate the data by day - \`week\`: Aggregate the data by week. Week starts at Monday and ends at sunday night. - \`month\`: Aggregate the data by calendar month. + default: day + - name: report_type + value: "{{ report_type }}" + description: | + Specifies the type of report to be exported. Available types are \`standard\` and \`detailed\`. An additional \`childDetailed\` type is available for Sumo Orgs parents. Detailed report will have raw consumption along with the credits breakdown. If no value is provided Standard reports will be exported. + default: standard + - name: include_deployment_charge + value: {{ include_deployment_charge }} + description: | + Deployment charges will be applied to the returned usages csv if this is set to true and the organization is a part of Sumo Organizations as a child organization. + default: false +`} + + + diff --git a/website/docs/services/apps/app_subscriptions/index.md b/website/docs/services/apps/app_subscriptions/index.md new file mode 100644 index 0000000..32c4299 --- /dev/null +++ b/website/docs/services/apps/app_subscriptions/index.md @@ -0,0 +1,196 @@ +--- +title: app_subscriptions +hide_title: false +hide_table_of_contents: false +keywords: + - app_subscriptions + - apps + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an app_subscriptions resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Information about user's subscription status for the app. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
booleanShow if the user has subscribed to the app or not. value is true, if the user has subscribed to the app
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
uuid, regionGet Subscription status for the user for a specific app. This will indicate whether the user has subscribed to the app or not.
uuid, regionUnsubscribe from an app. This will remove the user's subscription to notifications for the app.
uuid, regionSubscribe to an app upgrade notification. This will allow the user to receive notifications for the app updates.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringUUID of the app to subscribe to. (example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5)
+ +## `SELECT` examples + + + + +Get Subscription status for the user for a specific app. This will indicate whether the user has subscribed to the app or not. + +```sql +SELECT +status +FROM sumologic.apps.app_subscriptions +WHERE uuid = '{{ uuid }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `DELETE` examples + + + + +Unsubscribe from an app. This will remove the user's subscription to notifications for the app. + +```sql +DELETE FROM sumologic.apps.app_subscriptions +WHERE uuid = '{{ uuid }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Subscribe to an app upgrade notification. This will allow the user to receive notifications for the app updates. + +```sql +EXEC sumologic.apps.app_subscriptions.subscribe +@uuid='{{ uuid }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/apps/apps/index.md b/website/docs/services/apps/apps/index.md index e9baaba..7850f6e 100644 --- a/website/docs/services/apps/apps/index.md +++ b/website/docs/services/apps/apps/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an apps resource. ## Overview - +
Nameapps
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an apps resource. The following fields are returned by `SELECT` queries: - + The retrieved app. @@ -52,19 +53,19 @@ The retrieved app. - + object - + (wire: appDefinition) - + object - + (wire: appManifest) - + List of all available apps. @@ -78,9 +79,14 @@ List of all available apps. - - array - An array of Apps + + object + (wire: appDefinition) + + + + object + (wire: appManifest) @@ -103,19 +109,26 @@ The following methods are available for this resource: - + uuid, region Gets the app with the given universally unique identifier (UUID). - + region Lists all available apps from the App Catalog. + + + + uuid, region, description, destinationFolderId, name + + Installs the app with given UUID in the folder specified using destinationFolderId. + @@ -135,12 +148,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) string (uuid) - The identifier of the app to retrieve. + UUID of the app to install. @@ -148,35 +161,67 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Gets the app with the given universally unique identifier (UUID). ```sql SELECT -appDefinition, -appManifest +app_definition, +app_manifest FROM sumologic.apps.apps WHERE uuid = '{{ uuid }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + Lists all available apps from the App Catalog. ```sql SELECT -apps +app_definition, +app_manifest FROM sumologic.apps.apps -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Installs the app with given UUID in the folder specified using destinationFolderId. + +```sql +EXEC sumologic.apps.apps.install +@uuid='{{ uuid }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"name": "{{ name }}", +"description": "{{ description }}", +"destinationFolderId": "{{ destinationFolderId }}", +"dataSourceValues": "{{ dataSourceValues }}" +}' ; ``` diff --git a/website/docs/services/apps/apps_v2/index.md b/website/docs/services/apps/apps_v2/index.md new file mode 100644 index 0000000..f10c144 --- /dev/null +++ b/website/docs/services/apps/apps_v2/index.md @@ -0,0 +1,383 @@ +--- +title: apps_v2 +hide_title: false +hide_table_of_contents: false +keywords: + - apps_v2 + - apps + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an apps_v2 resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Information about the requested app. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string (url)URL prefix for where the app is stored. (example: https:​//some_bucket.s3.amazonaws.com/path/to/app/version/) (wire: baseUrl)
string (byte)Content of the config YAML file, as Base64-encoded string.
objectContent of various files part of app package, as Base64-encoded string.
string (byte)Content of the manifest YAML file, as Base64-encoded string.
string (byte)Content of the README markdown file, as Base64-encoded string.
string (uuid)UUID of the app. (example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5)
stringVersion of the app. (example: 1.0.0)
+
+ + +List of apps. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringName of the app. (example: AWS CloudTrail)
arrayAccount types of which the app is available to. (wire: accountTypes)
objectA map of attributes for this app. Attributes allow to group apps based on different criteria.
stringAuthor of the app. (example: Sumo Logic)
booleanWhether the app is in beta.
stringDescription of the app. (example: AWS CloudTrail app description)
stringURL of the icon for the app. (example: https:​//some-bucket.s3.amazonaws.com/AWSCloudTrail.png)
booleanWhether the app is installable or not as not all apps are installable.
integer (int32)Number of times the app was installed.
stringLatest version of the app. (example: 1.1.0) (wire: latestVersion)
string (date-time)The timestamp in UTC of the most recent modification of the app. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
booleanWhether the app should show up on sumologic.com/applications webpage. (wire: showOnMarketplace)
stringUUID of the app. (example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
uuid, regionversionGet details about an app with the given UUID and version. The details include:<br /><br /> 1. The base URL for all the resource for the app.<br /> 2. The app manifest
regionname, authorList all apps from the App Catalog.
uuid, regionSchedule an asynchronous job to install the app with the given UUID and version from the App Catalog. The app will be installed in 'Installed Apps' folder in the Content Library.<br /><br />_You get back an identifier of asynchronous job in response to this endpoint. You can then use the app install status API to get the status of the installation request. See Asynchronous-Request section for more details on how to work with asynchronous request._
uuid, regionSchedule an asynchronous job to uninstall app with the given UUID.<br /><br />_You get back an identifier of asynchronous job in response to this endpoint. You can then use the app uninstall status API to get the status of the uninstallation request. See Asynchronous-Request section for more details on how to work with asynchronous request._
uuid, regionSchedule an asynchronous job to upgrade the app with the given UUID and version from the App Catalog. The app will be installed in 'Installed Apps' folder in the Content Library.<br /><br />_You get back an identifier of asynchronous job in response to this endpoint. You can then use the app upgrade status API to get the status of the upgrade request. See Asynchronous-Request section for more details on how to work with asynchronous request._
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringUUID of the app to upgrade. (example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5)
stringAuthor of the app. (example: Sumo%20Logic)
stringName of the app. (example: AWS%20CloudTrail)
stringVersion of the app. The latest version is used if this is omitted or specified as "latest". (example: 1.0.0)
+ +## `SELECT` examples + + + + +Get details about an app with the given UUID and version. The details include:<br /><br /> 1. The base URL for all the resource for the app.<br /> 2. The app manifest + +```sql +SELECT +base_url, +config, +files, +manifest, +readme, +uuid, +version +FROM sumologic.apps.apps_v2 +WHERE uuid = '{{ uuid }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND version = '{{ version }}' +; +``` + + + +List all apps from the App Catalog. + +```sql +SELECT +name, +account_types, +attributes, +author, +beta, +description, +icon, +installable, +installs, +latest_version, +modified_at, +show_on_marketplace, +uuid +FROM sumologic.apps.apps_v2 +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND name = '{{ name }}' +AND author = '{{ author }}' +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Schedule an asynchronous job to install the app with the given UUID and version from the App Catalog. The app will be installed in 'Installed Apps' folder in the Content Library.<br /><br />_You get back an identifier of asynchronous job in response to this endpoint. You can then use the app install status API to get the status of the installation request. See Asynchronous-Request section for more details on how to work with asynchronous request._ + +```sql +EXEC sumologic.apps.apps_v2.install +@uuid='{{ uuid }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"version": "{{ version }}", +"parameters": "{{ parameters }}" +}' +; +``` + + + +Schedule an asynchronous job to uninstall app with the given UUID.<br /><br />_You get back an identifier of asynchronous job in response to this endpoint. You can then use the app uninstall status API to get the status of the uninstallation request. See Asynchronous-Request section for more details on how to work with asynchronous request._ + +```sql +EXEC sumologic.apps.apps_v2.uninstall +@uuid='{{ uuid }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Schedule an asynchronous job to upgrade the app with the given UUID and version from the App Catalog. The app will be installed in 'Installed Apps' folder in the Content Library.<br /><br />_You get back an identifier of asynchronous job in response to this endpoint. You can then use the app upgrade status API to get the status of the upgrade request. See Asynchronous-Request section for more details on how to work with asynchronous request._ + +```sql +EXEC sumologic.apps.apps_v2.upgrade +@uuid='{{ uuid }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"version": "{{ version }}", +"parameters": "{{ parameters }}" +}' +; +``` + + diff --git a/website/docs/services/apps/index.md b/website/docs/services/apps/index.md index 749e4f9..9816525 100644 --- a/website/docs/services/apps/index.md +++ b/website/docs/services/apps/index.md @@ -18,17 +18,21 @@ apps service documentation. :::info[Service Summary] -total resources: __3__ +total resources: __7__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/apps/install/index.md b/website/docs/services/apps/install/index.md deleted file mode 100644 index 02ff875..0000000 --- a/website/docs/services/apps/install/index.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: install -hide_title: false -hide_table_of_contents: false -keywords: - - install - - apps - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an install resource. - -## Overview - - - - -
Nameinstall
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
uuid, region, description, destinationFolderId, nameInstalls the app with given UUID in the folder specified using destinationFolderId.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
string (uuid)UUID of the app to install.
- -## Lifecycle Methods - - - - -Installs the app with given UUID in the folder specified using destinationFolderId. - -```sql -EXEC sumologic.apps.install.installApp -@uuid='{{ uuid }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"name": "{{ name }}", -"description": "{{ description }}", -"destinationFolderId": "{{ destinationFolderId }}", -"dataSourceValues": "{{ dataSourceValues }}" -}' -; -``` - - diff --git a/website/docs/services/apps/install_status/index.md b/website/docs/services/apps/install_jobs/index.md similarity index 63% rename from website/docs/services/apps/install_status/index.md rename to website/docs/services/apps/install_jobs/index.md index 15e2a5f..e08ec6e 100644 --- a/website/docs/services/apps/install_status/index.md +++ b/website/docs/services/apps/install_jobs/index.md @@ -1,9 +1,9 @@ --- -title: install_status +title: install_jobs hide_title: false hide_table_of_contents: false keywords: - - install_status + - install_jobs - apps - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists an install_status resource. +Creates, updates, deletes, gets or lists an install_jobs resource. ## Overview - + - +
Nameinstall_status
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an install_status resource The following fields are returned by `SELECT` queries: - + The status of the app install job. @@ -61,9 +62,9 @@ The status of the app install job. Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). - + string - Additional status message generated if the status is not `Failed`. + Additional status message generated if the status is not `Failed`. (wire: statusMessage) @@ -86,9 +87,9 @@ The following methods are available for this resource: - + - jobId, region + job_id, region Get the status of an asynchronous app install request for the given job identifier. @@ -108,15 +109,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - - + + string - The identifier of the asynchronous install job. + The identifier of the asynchronous install job. (wire: jobId) string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -124,12 +125,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the status of an asynchronous app install request for the given job identifier. @@ -137,10 +138,10 @@ Get the status of an asynchronous app install request for the given job identifi SELECT error, status, -statusMessage -FROM sumologic.apps.install_status -WHERE jobId = '{{ jobId }}' -- required -AND region = '{{ region }}' -- required +status_message +FROM sumologic.apps.install_jobs +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/apps/install_jobs_v2/index.md b/website/docs/services/apps/install_jobs_v2/index.md new file mode 100644 index 0000000..a628dcf --- /dev/null +++ b/website/docs/services/apps/install_jobs_v2/index.md @@ -0,0 +1,160 @@ +--- +title: install_jobs_v2 +hide_title: false +hide_table_of_contents: false +keywords: + - install_jobs_v2 + - apps + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an install_jobs_v2 resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Status of the app installation job. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the folder in which the app was installed. (example: 0000000001578BE8) (wire: folderId)
stringInstance identifier of the installed app. This field is not set yet but is a placeholder for future use. (example: 0000000001578BE8) (wire: instanceId)
object
stringPath of the folder in which the app was installed. (example: /Library/Installed Apps/AWS CloudTrail)
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). (example: Success)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, regionGet the status of an asynchronous app install request for the given job identifier.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the asynchronous job for installing the app. (example: C03E086C137F38B4) (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get the status of an asynchronous app install request for the given job identifier. + +```sql +SELECT +folder_id, +instance_id, +error, +path, +status +FROM sumologic.apps.install_jobs_v2 +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/apps/uninstall_jobs/index.md b/website/docs/services/apps/uninstall_jobs/index.md new file mode 100644 index 0000000..b6962ca --- /dev/null +++ b/website/docs/services/apps/uninstall_jobs/index.md @@ -0,0 +1,142 @@ +--- +title: uninstall_jobs +hide_title: false +hide_table_of_contents: false +keywords: + - uninstall_jobs + - apps + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an uninstall_jobs resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Status of the app uninstall job. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
arrayMore information about the failure if the status is `Failed`.
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). (example: Success)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, regionGet the status of an asynchronous app uninstall request for the given job identifier.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the asynchronous job for uninstalling the app. (example: C03E086C137F38B4) (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get the status of an asynchronous app uninstall request for the given job identifier. + +```sql +SELECT +errors, +status +FROM sumologic.apps.uninstall_jobs +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/apps/upgrade_jobs/index.md b/website/docs/services/apps/upgrade_jobs/index.md new file mode 100644 index 0000000..7fe1ec7 --- /dev/null +++ b/website/docs/services/apps/upgrade_jobs/index.md @@ -0,0 +1,160 @@ +--- +title: upgrade_jobs +hide_title: false +hide_table_of_contents: false +keywords: + - upgrade_jobs + - apps + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a upgrade_jobs resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Status of the app upgrade job. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the folder in which the app was upgraded. (example: 0000000001578BE8) (wire: folderId)
stringInstance identifier of the upgraded app. This field is not set yet but is a placeholder for future use. (example: 0000000001578BE8) (wire: instanceId)
object
stringPath of the folder in which the app was upgraded. (example: /Library/Installed Apps/AWS CloudTrail)
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). (example: Success)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, regionGet the status of an asynchronous app upgrade request for the given job identifier.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the asynchronous job for upgrading the app. (example: C03E086C137F38B4) (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get the status of an asynchronous app upgrade request for the given job identifier. + +```sql +SELECT +folder_id, +instance_id, +error, +path, +status +FROM sumologic.apps.upgrade_jobs +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/archive/index.md b/website/docs/services/archive/index.md index 725315f..10ba2ff 100644 --- a/website/docs/services/archive/index.md +++ b/website/docs/services/archive/index.md @@ -25,9 +25,9 @@ total resources: __2__ ## Resources \ No newline at end of file diff --git a/website/docs/services/archive/jobs_count/index.md b/website/docs/services/archive/job_counts/index.md similarity index 73% rename from website/docs/services/archive/jobs_count/index.md rename to website/docs/services/archive/job_counts/index.md index 2d6653b..8f216e4 100644 --- a/website/docs/services/archive/jobs_count/index.md +++ b/website/docs/services/archive/job_counts/index.md @@ -1,9 +1,9 @@ --- -title: jobs_count +title: job_counts hide_title: false hide_table_of_contents: false keywords: - - jobs_count + - job_counts - archive - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a jobs_count resource. +Creates, updates, deletes, gets or lists a job_counts resource. ## Overview - + - +
Namejobs_count
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a jobs_count resource. The following fields are returned by `SELECT` queries: - + A list of Archive Sources with ingestion jobs. @@ -50,6 +51,11 @@ A list of Archive Sources with ingestion jobs. + + + string + Identifier for the archive source. (example: 000000000606C009) (wire: sourceId) + integer (int64) @@ -70,11 +76,6 @@ A list of Archive Sources with ingestion jobs. integer (int64) The total number of archive jobs with scanning status for the archive source. - - - string - Identifier for the archive source. (example: 000000000606C009) - integer (int64) @@ -101,7 +102,7 @@ The following methods are available for this resource: - + region @@ -126,7 +127,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -134,25 +135,25 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a list of all Archive Sources with the count and status of ingestion jobs. ```sql SELECT +source_id, failed, ingesting, pending, scanning, -sourceId, succeeded -FROM sumologic.archive.jobs_count -WHERE region = '{{ region }}' -- required +FROM sumologic.archive.job_counts +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/archive/jobs/index.md b/website/docs/services/archive/jobs/index.md index 65b2d86..0ce648b 100644 --- a/website/docs/services/archive/jobs/index.md +++ b/website/docs/services/archive/jobs/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a jobs resource. ## Overview - +
Namejobs
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a jobs resource. The following fields are returned by `SELECT` queries: - + A paginated list of ingestion jobs for an Archive Source. @@ -61,24 +62,24 @@ A paginated list of ingestion jobs for an Archive Source. The name of the ingestion job. - + string (date-time) - The creation timestamp in UTC of the ingestion job. (example: 2018-10-16T09:10:00Z) + The creation timestamp in UTC of the ingestion job. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) - + string - The identifier of the user who created the ingestion job. (example: 0000000006743FDD) + The identifier of the user who created the ingestion job. (example: 0000000006743FDD) (wire: createdBy) - + string (date-time) - The ending timestamp of the ingestion job. (example: 2018-10-16T10:10:00Z) + The ending timestamp of the ingestion job. (example: 2018-10-16T10:10:00.000Z) (wire: endTime) - + string (date-time) - The starting timestamp of the ingestion job. (example: 2018-10-16T09:10:00Z) + The starting timestamp of the ingestion job. (example: 2018-10-16T09:10:00.000Z) (wire: startTime) @@ -86,19 +87,19 @@ A paginated list of ingestion jobs for an Archive Source. The status of the ingestion job, either `Pending`,`Scanning`,`Ingesting`,`Failed`, or `Succeeded`. (example: Scanning) - + integer (int64) - The total bytes ingested by the ingestion job. + The total bytes ingested by the ingestion job. (wire: totalBytesIngested) - + integer (int64) - The total number of objects ingested by the ingestion job. + The total number of objects ingested by the ingestion job. (wire: totalObjectsIngested) - + integer (int64) - The total number of objects scanned by the ingestion job. + The total number of objects scanned by the ingestion job. (wire: totalObjectsScanned) @@ -121,23 +122,23 @@ The following methods are available for this resource: - + - sourceId, region + source_id, region limit, token Get a list of all the ingestion jobs created on an Archive Source. The response is paginated with a default limit of 10 jobs per page. - + - sourceId, region, data__endTime, data__name, data__startTime + source_id, region, end_time, name, start_time Create an ingestion job to pull data from your S3 bucket. - + - sourceId, id, region + source_id, id, region Delete an ingestion job with the given identifier from the organization. The delete operation is only possible for jobs with a Succeeded or Failed status. @@ -165,12 +166,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) - - + + string - The identifier of the Archive Source. + The identifier of the Archive Source. (wire: sourceId) @@ -188,12 +189,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a list of all the ingestion jobs created on an Archive Source. The response is paginated with a default limit of 10 jobs per page. @@ -201,17 +202,17 @@ Get a list of all the ingestion jobs created on an Archive Source. The response SELECT id, name, -createdAt, -createdBy, -endTime, -startTime, +created_at, +created_by, +end_time, +start_time, status, -totalBytesIngested, -totalObjectsIngested, -totalObjectsScanned +total_bytes_ingested, +total_objects_ingested, +total_objects_scanned FROM sumologic.archive.jobs -WHERE sourceId = '{{ sourceId }}' -- required -AND region = '{{ region }}' -- required +WHERE source_id = '{{ source_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' ; @@ -223,69 +224,69 @@ AND token = '{{ token }}' ## `INSERT` examples - + Create an ingestion job to pull data from your S3 bucket. ```sql INSERT INTO sumologic.archive.jobs ( -data__name, -data__startTime, -data__endTime, -sourceId, +name, +start_time, +end_time, +source_id, region ) SELECT '{{ name }}' /* required */, -'{{ startTime }}' /* required */, -'{{ endTime }}' /* required */, -'{{ sourceId }}', +'{{ start_time }}' /* required */, +'{{ end_time }}' /* required */, +'{{ source_id }}', '{{ region }}' RETURNING id, name, -createdAt, -createdBy, -endTime, -startTime, +created_at, +created_by, +end_time, +start_time, status, -totalBytesIngested, -totalObjectsIngested, -totalObjectsScanned +total_bytes_ingested, +total_objects_ingested, +total_objects_scanned ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: jobs props: - - name: sourceId - value: string + - name: source_id + value: "{{ source_id }}" description: Required parameter for the jobs resource. - name: region - value: string + value: "{{ region }}" description: Required parameter for the jobs resource. - name: name - value: string + value: "{{ name }}" description: | The name of the ingestion job. - - name: startTime - value: string + - name: start_time + value: "{{ start_time }}" description: | The starting timestamp of the ingestion job. - - name: endTime - value: string + - name: end_time + value: "{{ end_time }}" description: | The ending timestamp of the ingestion job. -``` +`} + @@ -293,20 +294,20 @@ totalObjectsScanned ## `DELETE` examples - + Delete an ingestion job with the given identifier from the organization. The delete operation is only possible for jobs with a Succeeded or Failed status. ```sql DELETE FROM sumologic.archive.jobs -WHERE sourceId = '{{ sourceId }}' --required +WHERE source_id = '{{ source_id }}' --required AND id = '{{ id }}' --required -AND region = '{{ region }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/budgets/budgets/index.md b/website/docs/services/budgets/budgets/index.md new file mode 100644 index 0000000..6e8ebb5 --- /dev/null +++ b/website/docs/services/budgets/budgets/index.md @@ -0,0 +1,669 @@ +--- +title: budgets +hide_title: false +hide_table_of_contents: false +keywords: + - budgets + - budgets + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a budgets resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The requested budget. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringId of the budget.
stringName of the budget.
stringOrg Id of the org for the budget. (wire: orgId)
stringAction to be taken if the budget is breached (pattern: <code>^(StopScan|StopForeGroundScan|Warn)$</code>, example: Warn)
stringGrouping of the budget. (pattern: <code>^(PerEntity|Sum)$</code>, example: PerEntity) (wire: applicableOn)
stringType of the budget. (pattern: <code>^(ScanBudget)$</code>, example: ScanBudget) (wire: budgetType)
arrayCaller modules this budget applies to. Empty list means budget applies to all callers. (wire: callerModules)
integer (int64)Capacity of the budget.
string (date-time)Date & time when budget was created. (wire: createdAt)
stringId of the user who created the budget. (wire: createdBy)
stringGrouping Entity of the budget. (pattern: <code>^(User)$</code>, example: User) (wire: groupBy)
string (date-time)Date & time when budget was last modified. (wire: modifiedAt)
stringId of the user who last modified the budget. (wire: modifiedBy)
integer (int32)The date of the month when the budget resets, applicable for time based budgets with a Monthly window. Must be a valid day of the month (1-28). (wire: resetDateOfMonth)
stringThe day of the week when the budget resets, applicable for time based budgets with a Weekly window. Must be a valid day of the week. (pattern: <code>^(MONDAY|TUESDAY|WEDNESDAY|THURSDAY|FRIDAY|SATURDAY|SUNDAY)$</code>, default: MONDAY) (wire: resetDayOfWeek)
stringReset time of the time based scan budget in HH:MM format (example: 23:30, default: 00:00) (wire: resetTime)
stringTime zone of the reset time for the time based scan budget. Follow the format in the [IANA Time Zone Database](https:​//en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). (example: America/Los_Angeles, default: Etc/UTC) (wire: resetTimeZone)
object
stringSignifies the state of the budget. (Active/Inactive) (pattern: <code>^(active|inactive)$</code>, example: active)
stringUnit of the budget. (pattern: <code>^(GB|MB|TB|KB)$</code>, example: GB)
stringWindow of the budget. Use Daily/Weekly/Monthly for creating a time based budget (beta) (pattern: <code>^(Query|Daily|Weekly|Monthly)$</code>, example: Query)
+
+ + +Budgets assigned to the org. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringId of the budget.
stringName of the budget.
stringOrg Id of the org for the budget. (wire: orgId)
stringAction to be taken if the budget is breached (pattern: <code>^(StopScan|StopForeGroundScan|Warn)$</code>, example: Warn)
stringGrouping of the budget. (pattern: <code>^(PerEntity|Sum)$</code>, example: PerEntity) (wire: applicableOn)
stringType of the budget. (pattern: <code>^(ScanBudget)$</code>, example: ScanBudget) (wire: budgetType)
arrayCaller modules this budget applies to. Empty list means budget applies to all callers. (wire: callerModules)
integer (int64)Capacity of the budget.
string (date-time)Date & time when budget was created. (wire: createdAt)
stringId of the user who created the budget. (wire: createdBy)
stringGrouping Entity of the budget. (pattern: <code>^(User)$</code>, example: User) (wire: groupBy)
string (date-time)Date & time when budget was last modified. (wire: modifiedAt)
stringId of the user who last modified the budget. (wire: modifiedBy)
integer (int32)The date of the month when the budget resets, applicable for time based budgets with a Monthly window. Must be a valid day of the month (1-28). (wire: resetDateOfMonth)
stringThe day of the week when the budget resets, applicable for time based budgets with a Weekly window. Must be a valid day of the week. (pattern: <code>^(MONDAY|TUESDAY|WEDNESDAY|THURSDAY|FRIDAY|SATURDAY|SUNDAY)$</code>, default: MONDAY) (wire: resetDayOfWeek)
stringReset time of the time based scan budget in HH:MM format (example: 23:30, default: 00:00) (wire: resetTime)
stringTime zone of the reset time for the time based scan budget. Follow the format in the [IANA Time Zone Database](https:​//en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). (example: America/Los_Angeles, default: Etc/UTC) (wire: resetTimeZone)
object
stringSignifies the state of the budget. (Active/Inactive) (pattern: <code>^(active|inactive)$</code>, example: active)
stringUnit of the budget. (pattern: <code>^(GB|MB|TB|KB)$</code>, example: GB)
stringWindow of the budget. Use Daily/Weekly/Monthly for creating a time based budget (beta) (pattern: <code>^(Query|Daily|Weekly|Monthly)$</code>, example: Query)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
budget_id, regionGet budget
regionlimit, tokenGet budgets
region, action, applicable_on, budget_type, capacity, group_by, name, scope, unit, windowCreate a budget definition
budget_id, region, action, applicable_on, budget_type, capacity, group_by, name, scope, unit, windowUpdate budget
budget_id, regionDelete budget
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe id of the budget. (wire: budgetId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
integer (int32)Limit the number of budgets returned in the response. The number of budgets returned may be less than the `limit`.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results.
+ +## `SELECT` examples + + + + +Get budget + +```sql +SELECT +id, +name, +org_id, +action, +applicable_on, +budget_type, +caller_modules, +capacity, +created_at, +created_by, +group_by, +modified_at, +modified_by, +reset_date_of_month, +reset_day_of_week, +reset_time, +reset_time_zone, +scope, +status, +unit, +window +FROM sumologic.budgets.budgets +WHERE budget_id = '{{ budget_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Get budgets + +```sql +SELECT +id, +name, +org_id, +action, +applicable_on, +budget_type, +caller_modules, +capacity, +created_at, +created_by, +group_by, +modified_at, +modified_by, +reset_date_of_month, +reset_day_of_week, +reset_time, +reset_time_zone, +scope, +status, +unit, +window +FROM sumologic.budgets.budgets +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +; +``` + + + + +## `INSERT` examples + + + + +Create a budget definition + +```sql +INSERT INTO sumologic.budgets.budgets ( +name, +capacity, +unit, +budget_type, +scope, +window, +applicable_on, +group_by, +action, +caller_modules, +status, +region +) +SELECT +'{{ name }}' /* required */, +{{ capacity }} /* required */, +'{{ unit }}' /* required */, +'{{ budget_type }}' /* required */, +'{{ scope }}' /* required */, +'{{ window }}' /* required */, +'{{ applicable_on }}' /* required */, +'{{ group_by }}' /* required */, +'{{ action }}' /* required */, +'{{ caller_modules }}', +'{{ status }}', +'{{ region }}' +RETURNING +id, +name, +org_id, +action, +applicable_on, +budget_type, +caller_modules, +capacity, +created_at, +created_by, +group_by, +modified_at, +modified_by, +reset_date_of_month, +reset_day_of_week, +reset_time, +reset_time_zone, +scope, +status, +unit, +window +; +``` + + + +{`# Description fields are for documentation purposes +- name: budgets + props: + - name: region + value: "{{ region }}" + description: Required parameter for the budgets resource. + - name: name + value: "{{ name }}" + description: | + Name of the budget. + - name: capacity + value: {{ capacity }} + description: | + Capacity of the budget. + - name: unit + value: "{{ unit }}" + description: | + Unit of the budget. + - name: budget_type + value: "{{ budget_type }}" + description: | + Type of the budget. + - name: scope + value: + includedUsers: + - "{{ includedUsers }}" + excludedUsers: + - "{{ excludedUsers }}" + includedRoles: + - "{{ includedRoles }}" + excludedRoles: + - "{{ excludedRoles }}" + - name: window + value: "{{ window }}" + description: | + Window of the budget. Use Daily/Weekly/Monthly for creating a time based budget (beta) + - name: applicable_on + value: "{{ applicable_on }}" + description: | + Grouping of the budget. + - name: group_by + value: "{{ group_by }}" + description: | + Grouping Entity of the budget. + - name: action + value: "{{ action }}" + description: | + Action to be taken if the budget is breached + - name: caller_modules + value: + - "{{ caller_modules }}" + description: | + Caller modules this budget applies to. Empty list means budget applies to all callers. + - name: status + value: "{{ status }}" + description: | + Signifies the state of the budget. (Active/Inactive) +`} + + + + + +## `UPDATE` examples + + + + +Update budget + +```sql +UPDATE sumologic.budgets.budgets +SET +name = '{{ name }}', +capacity = {{ capacity }}, +unit = '{{ unit }}', +budget_type = '{{ budget_type }}', +scope = '{{ scope }}', +window = '{{ window }}', +applicable_on = '{{ applicable_on }}', +group_by = '{{ group_by }}', +action = '{{ action }}', +caller_modules = '{{ caller_modules }}', +status = '{{ status }}' +WHERE +budget_id = '{{ budget_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND action = '{{ action }}' --required +AND applicable_on = '{{ applicable_on }}' --required +AND budget_type = '{{ budget_type }}' --required +AND capacity = '{{ capacity }}' --required +AND group_by = '{{ group_by }}' --required +AND name = '{{ name }}' --required +AND scope = '{{ scope }}' --required +AND unit = '{{ unit }}' --required +AND window = '{{ window }}' --required +RETURNING +id, +name, +org_id, +action, +applicable_on, +budget_type, +caller_modules, +capacity, +created_at, +created_by, +group_by, +modified_at, +modified_by, +reset_date_of_month, +reset_day_of_week, +reset_time, +reset_time_zone, +scope, +status, +unit, +window; +``` + + + + +## `DELETE` examples + + + + +Delete budget + +```sql +DELETE FROM sumologic.budgets.budgets +WHERE budget_id = '{{ budget_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/budgets/index.md b/website/docs/services/budgets/index.md new file mode 100644 index 0000000..946d92b --- /dev/null +++ b/website/docs/services/budgets/index.md @@ -0,0 +1,33 @@ +--- +title: budgets +hide_title: false +hide_table_of_contents: false +keywords: + - budgets + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +budgets service documentation. + +:::info[Service Summary] + +total resources: __2__ + +::: + +## Resources +
+ +
+usages +
+
\ No newline at end of file diff --git a/website/docs/services/budgets/usages/index.md b/website/docs/services/budgets/usages/index.md new file mode 100644 index 0000000..aa7a5ce --- /dev/null +++ b/website/docs/services/budgets/usages/index.md @@ -0,0 +1,214 @@ +--- +title: usages +hide_title: false +hide_table_of_contents: false +keywords: + - usages + - budgets + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a usages resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The requested budget usage. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringBudget id. (wire: budgetId)
integer (int64)Budget usage (in bytes).
integer (int64)Budget usage percentage. (wire: usagePercentage)
+
+ + +Scan budget usages. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringBudget id. (wire: budgetId)
integer (int64)Budget usage (in bytes).
integer (int64)Budget usage percentage. (wire: usagePercentage)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
budget_id, regionGet budget usage
regionlimit, tokenGet budget usages
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe id of the budget. (wire: budgetId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
integer (int32)Limit the number of budget usages returned in the response. The number of budget usages returned may be less than the `limit`.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results.
+ +## `SELECT` examples + + + + +Get budget usage + +```sql +SELECT +budget_id, +usage, +usage_percentage +FROM sumologic.budgets.usages +WHERE budget_id = '{{ budget_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Get budget usages + +```sql +SELECT +budget_id, +usage, +usage_percentage +FROM sumologic.budgets.usages +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +; +``` + + diff --git a/website/docs/services/collectors/collectors/index.md b/website/docs/services/collectors/collectors/index.md index 068d071..29bd460 100644 --- a/website/docs/services/collectors/collectors/index.md +++ b/website/docs/services/collectors/collectors/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a collectors resource. ## Overview - +
Namecollectors
Name
TypeResource
Id
@@ -32,13 +33,14 @@ Creates, updates, deletes, gets or lists a collectors resource. The following fields are returned by `SELECT` queries: - + @@ -52,42 +54,52 @@ The following fields are returned by `SELECT` queries: - + + + + + + + + + + + - + - + - + - + - + - + - + - + - - - + + + @@ -97,67 +109,57 @@ The following fields are returned by `SELECT` queries: - + - - - - - - + - - - + + + - + - + - + - - - - - - - - + + + - + - + - + - + - + - + - + - +
integerIdentifierUnique identifier of the Collector.
string Name of the Collector. It must be unique on your account.
stringHost name of the Collector. (wire: hostName)
stringName of the OS the Collector is installed on (Installed Collectors only). (wire: osName)
booleanWhen a Collector is running it sends Sumo a heartbeat message every 15 seconds. If no heartbeat message is received after 30 minutes this becomes false.When a Collector is running it sends a heartbeat every 15 seconds. If no heartbeat is received for 30 minutes this becomes false.
stringThe Category of the Collector, used as metadata when searching data.The category of the Collector, used as metadata when searching data.
stringThe Collector type: Installable or HostedThe Collector type: Installable or Hosted. (wire: collectorType)
stringVersion of the Collector software installed.Version of the Collector software installed. (wire: collectorVersion)
stringCan be specified instead of cutoffTimestamp to provide a relative offset with respect to the current time. Example: use "-1h", "-1d", or "-1w" to collect data thats less than one hour, one day, or one week old, respectively.Can be specified instead of cutoffTimestamp to provide a relative offset with respect to the current time, for example -1h, -1d or -1w. (wire: cutoffRelativeTime)
integer0 (collects all data)|Only collect data from files with a modified date more recent than this timestamp, specified as milliseconds since epochinteger (int64)Only collect data from files with a modified date more recent than this timestamp, in milliseconds since epoch (0 collects all data). (wire: cutoffTimestamp)
booleanWhen true, the collector will be deleted after 12 hours of inactivity. For more information, see Setting a Collector as Ephemeral.When true, the Collector is deleted after 12 hours of inactivity.
objectJSON map of key-value fields (metadata) to apply to the Collector.
stringHost name of the Collector. The hostname can be a maximum of 128 characters.JSON map of key-value fields (metadata) applied to the Collector. (opaque JSON object)
integerThe last time the Sumo Logic service received an active heartbeat from the Collector, specified as milliseconds since epoch.integer (int64)The last time the Sumo Logic service received an active heartbeat from the Collector, in milliseconds since epoch. (wire: lastSeenAlive)
arrayRelated links.
stringArchitecture of the OS that Collector is installed on. [Installed Collectors only]Architecture of the OS the Collector is installed on (Installed Collectors only). (wire: osArch)
stringName of OS that Collector is installed on. [Installed Collectors only]
integerTime that the Collector has been running, in milliseconds. [Installed Collectors only]integer (int64)Time that the Collector has been running, in milliseconds (Installed Collectors only). (wire: osTime)
stringVersion of the OS that Collector is installed on. [Installed Collectors only]Version of the OS the Collector is installed on (Installed Collectors only). (wire: osVersion)
stringFor installed Collectors, whether the Collector is using local source configuration management (using a JSON file), or cloud management (using the UI)For Installed Collectors, whether Sources are managed locally from a JSON file (Json) or from the cloud (UI). (wire: sourceSyncMode)
integerWhen CPU utilization exceeds this threshold, the Collector will slow down its rate of ingestion to lower its CPU utilization.When CPU utilization exceeds this threshold the Collector slows its rate of ingestion. (wire: targetCpu)
stringTime zone of the Collector. For a list of possible values, refer to the "TZ" column in this Wikipedia article.Time zone of the Collector (TZ database name). (wire: timeZone)
- + @@ -171,42 +173,52 @@ The following fields are returned by `SELECT` queries: - + + + + + + + + + + + - + - + - + - + - + - + - + - + - - - + + + @@ -216,62 +228,171 @@ The following fields are returned by `SELECT` queries: - + - - - - - - + - - - + + + - + - + - + + + + + + - + - + - + + + + + + - + - + - + + + +
integerIdentifierUnique identifier of the Collector.
string Name of the Collector. It must be unique on your account.
stringHost name of the Collector. (wire: hostName)
stringName of the OS the Collector is installed on (Installed Collectors only). (wire: osName)
booleanWhen a Collector is running it sends Sumo a heartbeat message every 15 seconds. If no heartbeat message is received after 30 minutes this becomes false.When a Collector is running it sends a heartbeat every 15 seconds. If no heartbeat is received for 30 minutes this becomes false.
stringThe Category of the Collector, used as metadata when searching data.The category of the Collector, used as metadata when searching data.
stringThe Collector type: Installable or HostedThe Collector type: Installable or Hosted. (wire: collectorType)
stringVersion of the Collector software installed.Version of the Collector software installed. (wire: collectorVersion)
stringCan be specified instead of cutoffTimestamp to provide a relative offset with respect to the current time. Example: use "-1h", "-1d", or "-1w" to collect data thats less than one hour, one day, or one week old, respectively.Can be specified instead of cutoffTimestamp to provide a relative offset with respect to the current time, for example -1h, -1d or -1w. (wire: cutoffRelativeTime)
integer0 (collects all data)|Only collect data from files with a modified date more recent than this timestamp, specified as milliseconds since epochinteger (int64)Only collect data from files with a modified date more recent than this timestamp, in milliseconds since epoch (0 collects all data). (wire: cutoffTimestamp)
booleanWhen true, the collector will be deleted after 12 hours of inactivity. For more information, see Setting a Collector as Ephemeral.When true, the Collector is deleted after 12 hours of inactivity.
objectJSON map of key-value fields (metadata) to apply to the Collector.
stringHost name of the Collector. The hostname can be a maximum of 128 characters.JSON map of key-value fields (metadata) applied to the Collector. (opaque JSON object)
integerThe last time the Sumo Logic service received an active heartbeat from the Collector, specified as milliseconds since epoch.integer (int64)The last time the Sumo Logic service received an active heartbeat from the Collector, in milliseconds since epoch. (wire: lastSeenAlive)
arrayRelated links.
stringArchitecture of the OS that Collector is installed on. [Installed Collectors only]Architecture of the OS the Collector is installed on (Installed Collectors only). (wire: osArch)
integer (int64)Time that the Collector has been running, in milliseconds (Installed Collectors only). (wire: osTime)
stringName of OS that Collector is installed on. [Installed Collectors only]Version of the OS the Collector is installed on (Installed Collectors only). (wire: osVersion)
stringFor Installed Collectors, whether Sources are managed locally from a JSON file (Json) or from the cloud (UI). (wire: sourceSyncMode)
integerTime that the Collector has been running, in milliseconds. [Installed Collectors only]When CPU utilization exceeds this threshold the Collector slows its rate of ingestion. (wire: targetCpu)
stringVersion of the OS that Collector is installed on. [Installed Collectors only]Time zone of the Collector (TZ database name). (wire: timeZone)
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - +
NameDatatypeDescription
integerUnique identifier of the Collector.
stringName of the Collector. It must be unique on your account.
stringHost name of the Collector. (wire: hostName)
stringName of the OS the Collector is installed on (Installed Collectors only). (wire: osName)
booleanWhen a Collector is running it sends a heartbeat every 15 seconds. If no heartbeat is received for 30 minutes this becomes false.
stringFor installed Collectors, whether the Collector is using local source configuration management (using a JSON file), or cloud management (using the UI)The category of the Collector, used as metadata when searching data.
stringThe Collector type: Installable or Hosted. (wire: collectorType)
stringVersion of the Collector software installed. (wire: collectorVersion)
stringCan be specified instead of cutoffTimestamp to provide a relative offset with respect to the current time, for example -1h, -1d or -1w. (wire: cutoffRelativeTime)
integer (int64)Only collect data from files with a modified date more recent than this timestamp, in milliseconds since epoch (0 collects all data). (wire: cutoffTimestamp)
stringDescription of the Collector.
booleanWhen true, the Collector is deleted after 12 hours of inactivity.
stringJSON map of key-value fields (metadata) applied to the Collector. (opaque JSON object)
integer (int64)The last time the Sumo Logic service received an active heartbeat from the Collector, in milliseconds since epoch. (wire: lastSeenAlive)
arrayRelated links.
stringArchitecture of the OS the Collector is installed on (Installed Collectors only). (wire: osArch)
integer (int64)Time that the Collector has been running, in milliseconds (Installed Collectors only). (wire: osTime)
stringVersion of the OS the Collector is installed on (Installed Collectors only). (wire: osVersion)
stringFor Installed Collectors, whether Sources are managed locally from a JSON file (Json) or from the cloud (UI). (wire: sourceSyncMode)
integerWhen CPU utilization exceeds this threshold, the Collector will slow down its rate of ingestion to lower its CPU utilization.When CPU utilization exceeds this threshold the Collector slows its rate of ingestion. (wire: targetCpu)
stringTime zone of the Collector. For a list of possible values, refer to the "TZ" column in this Wikipedia article.Time zone of the Collector (TZ database name). (wire: timeZone)
@@ -294,46 +415,46 @@ The following methods are available for this resource: - + + + id, region + + Get the Collector with the specified identifier. The response carries an ETag header, which must be supplied as If-Match on an update. + + + name, region Get the Collector with the specified name. - + region filter, limit, offset Get a list of Collectors with an optional limit and offset. - + - region - - Create Hosted Collector. This method can only be used to create Hosted Collectors. You must install a Collector manually to create an Installed Collector. - - - - - id, region + region, collector - Delete Collector by ID + Create a Hosted Collector. This method can only be used to create Hosted Collectors; an Installed Collector is created by installing the collector software on a host. - - - id, region - - Get the Collector with the specified Identifier. + + + id, region, collector + if-_match + Update a Collector. The Collector Management API requires the If-Match header to carry the ETag returned by a previous GET of the same Collector; the request body is the full Collector object wrapped in collector. - - + + id, region - Update a Collector + Delete the Collector with the specified identifier. @@ -354,7 +475,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Id of the collector to update. + Unique identifier of the Collector. @@ -364,22 +485,27 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) string - Filter the Collectors returned using one of the available filter types:installed, hosted, dead, or alive. + Filter the Collectors returned using one of the available filter types: installed, hosted, dead, or alive. + + + + string + The ETag value returned in the response headers of a previous GET of this object. The Collector Management API requires it on updates. (wire: If-Match) integer - Max number of Collectors to return. + Maximum number of Collectors to return (default 1000). integer - Offset into the list of Collectors. + Offset into the list of Collectors (default 0). @@ -387,13 +513,47 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + + +Get the Collector with the specified identifier. The response carries an ETag header, which must be supplied as If-Match on an update. + +```sql +SELECT +id, +name, +host_name, +os_name, +alive, +category, +collector_type, +collector_version, +cutoff_relative_time, +cutoff_timestamp, +description, +ephemeral, +fields, +last_seen_alive, +links, +os_arch, +os_time, +os_version, +source_sync_mode, +target_cpu, +time_zone +FROM sumologic.collectors.collectors +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + Get the Collector with the specified name. @@ -401,32 +561,32 @@ Get the Collector with the specified name. SELECT id, name, +host_name, +os_name, alive, category, -collectorType, -collectorVersion, -cutoffRelativeTime, -cutoffTimestamp, +collector_type, +collector_version, +cutoff_relative_time, +cutoff_timestamp, description, ephemeral, fields, -hostName, -lastSeenAlive, +last_seen_alive, links, -osArch, -osName, -osTime, -osVersion, -sourceSyncMode, -targetCpu, -timeZone +os_arch, +os_time, +os_version, +source_sync_mode, +target_cpu, +time_zone FROM sumologic.collectors.collectors WHERE name = '{{ name }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + Get a list of Collectors with an optional limit and offset. @@ -434,27 +594,27 @@ Get a list of Collectors with an optional limit and offset. SELECT id, name, +host_name, +os_name, alive, category, -collectorType, -collectorVersion, -cutoffRelativeTime, -cutoffTimestamp, +collector_type, +collector_version, +cutoff_relative_time, +cutoff_timestamp, description, ephemeral, fields, -hostName, -lastSeenAlive, +last_seen_alive, links, -osArch, -osName, -osTime, -osVersion, -sourceSyncMode, -targetCpu, -timeZone +os_arch, +os_time, +os_version, +source_sync_mode, +target_cpu, +time_zone FROM sumologic.collectors.collectors -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND filter = '{{ filter }}' AND limit = '{{ limit }}' AND offset = '{{ offset }}' @@ -467,23 +627,23 @@ AND offset = '{{ offset }}' ## `INSERT` examples - + -Create Hosted Collector. This method can only be used to create Hosted Collectors. You must install a Collector manually to create an Installed Collector. +Create a Hosted Collector. This method can only be used to create Hosted Collectors; an Installed Collector is created by installing the collector software on a host. ```sql INSERT INTO sumologic.collectors.collectors ( -data__collector, +collector, region ) SELECT -'{{ collector }}', +'{{ collector }}' /* required */, '{{ region }}' RETURNING collector @@ -492,94 +652,89 @@ collector -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: collectors props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the collectors resource. - name: collector - value: object -``` + description: | + Collector object. + value: + id: {{ id }} + name: "{{ name }}" + description: "{{ description }}" + category: "{{ category }}" + collectorType: "{{ collectorType }}" + collectorVersion: "{{ collectorVersion }}" + alive: {{ alive }} + lastSeenAlive: {{ lastSeenAlive }} + ephemeral: {{ ephemeral }} + hostName: "{{ hostName }}" + timeZone: "{{ timeZone }}" + sourceSyncMode: "{{ sourceSyncMode }}" + cutoffTimestamp: {{ cutoffTimestamp }} + cutoffRelativeTime: "{{ cutoffRelativeTime }}" + targetCpu: {{ targetCpu }} + osName: "{{ osName }}" + osVersion: "{{ osVersion }}" + osArch: "{{ osArch }}" + osTime: {{ osTime }} + fields: "{{ fields }}" + links: + - rel: "{{ rel }}" + href: "{{ href }}" +`} + -## `DELETE` examples +## `UPDATE` examples - + -Delete Collector by ID +Update a Collector. The Collector Management API requires the If-Match header to carry the ETag returned by a previous GET of the same Collector; the request body is the full Collector object wrapped in collector. ```sql -DELETE FROM sumologic.collectors.collectors -WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required -; +UPDATE sumologic.collectors.collectors +SET +collector = '{{ collector }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND collector = '{{ collector }}' --required +AND if-_match = '{{ if-_match}}' +RETURNING +collector; ``` -## Lifecycle Methods +## `DELETE` examples - + -Get the Collector with the specified Identifier. +Delete the Collector with the specified identifier. ```sql -EXEC sumologic.collectors.collectors.get_collector_by_id -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - - -Update a Collector - -```sql -EXEC sumologic.collectors.collectors.update_collector -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"alive": {{ alive }}, -"category": "{{ category }}", -"collectorType": "{{ collectorType }}", -"collectorVersion": "{{ collectorVersion }}", -"fields": "{{ fields }}", -"id": {{ id }}, -"lastSeenAlive": {{ lastSeenAlive }}, -"links": "{{ links }}", -"name": "{{ name }}", -"description": "{{ description }}", -"timeZone": "{{ timeZone }}", -"cutoffRelativeTime": "{{ cutoffRelativeTime }}", -"cutoffTimestamp": {{ cutoffTimestamp }}, -"ephemeral": {{ ephemeral }}, -"hostName": "{{ hostName }}", -"sourceSyncMode": "{{ sourceSyncMode }}", -"targetCpu": {{ targetCpu }}, -"osName": "{{ osName }}", -"osVersion": "{{ osVersion }}", -"osArch": "{{ osArch }}", -"osTime": {{ osTime }} -}' +DELETE FROM sumologic.collectors.collectors +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/collectors/index.md b/website/docs/services/collectors/index.md index d137f30..f47296a 100644 --- a/website/docs/services/collectors/index.md +++ b/website/docs/services/collectors/index.md @@ -18,7 +18,7 @@ collectors service documentation. :::info[Service Summary] -total resources: __3__ +total resources: __7__ ::: @@ -26,9 +26,13 @@ total resources: __3__ \ No newline at end of file diff --git a/website/docs/services/collectors/offline_collectors/index.md b/website/docs/services/collectors/offline_collectors/index.md index 338c924..0a63395 100644 --- a/website/docs/services/collectors/offline_collectors/index.md +++ b/website/docs/services/collectors/offline_collectors/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an offline_collectors reso ## Overview - +
Nameoffline_collectors
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an offline_collectors reso The following fields are returned by `SELECT` queries: - + @@ -51,42 +52,52 @@ The following fields are returned by `SELECT` queries: - + + + + + + + + + + + - + - + - + - + - + - + - + - + - - - + + + @@ -96,62 +107,52 @@ The following fields are returned by `SELECT` queries: - + - - - - - - + - - - + + + - - - - - - + - + - + - - - + + + - + - + - + - + - + - + - + - +
integerIdentifierUnique identifier of the Collector.
string Name of the Collector. It must be unique on your account.
stringHost name of the Collector. (wire: hostName)
stringName of the OS the Collector is installed on (Installed Collectors only). (wire: osName)
booleanWhen a Collector is running it sends Sumo a heartbeat message every 15 seconds. If no heartbeat message is received after 30 minutes this becomes false.When a Collector is running it sends a heartbeat every 15 seconds. If no heartbeat is received for 30 minutes this becomes false.
stringThe Category of the Collector, used as metadata when searching data.The category of the Collector, used as metadata when searching data.
stringThe Collector type: Installable or HostedThe Collector type: Installable or Hosted. (wire: collectorType)
stringVersion of the Collector software installed.Version of the Collector software installed. (wire: collectorVersion)
stringCan be specified instead of cutoffTimestamp to provide a relative offset with respect to the current time. Example: use "-1h", "-1d", or "-1w" to collect data thats less than one hour, one day, or one week old, respectively.Can be specified instead of cutoffTimestamp to provide a relative offset with respect to the current time, for example -1h, -1d or -1w. (wire: cutoffRelativeTime)
integer0 (collects all data)|Only collect data from files with a modified date more recent than this timestamp, specified as milliseconds since epochinteger (int64)Only collect data from files with a modified date more recent than this timestamp, in milliseconds since epoch (0 collects all data). (wire: cutoffTimestamp)
booleanWhen true, the collector will be deleted after 12 hours of inactivity. For more information, see Setting a Collector as Ephemeral.When true, the Collector is deleted after 12 hours of inactivity.
objectJSON map of key-value fields (metadata) to apply to the Collector.
stringHost name of the Collector. The hostname can be a maximum of 128 characters.JSON map of key-value fields (metadata) applied to the Collector. (opaque JSON object)
integerThe last time the Sumo Logic service received an active heartbeat from the Collector, specified as milliseconds since epoch.integer (int64)The last time the Sumo Logic service received an active heartbeat from the Collector, in milliseconds since epoch. (wire: lastSeenAlive)
array
stringArchitecture of the OS that Collector is installed on. [Installed Collectors only]Related links.
stringName of OS that Collector is installed on. [Installed Collectors only]Architecture of the OS the Collector is installed on (Installed Collectors only). (wire: osArch)
integerTime that the Collector has been running, in milliseconds. [Installed Collectors only]integer (int64)Time that the Collector has been running, in milliseconds (Installed Collectors only). (wire: osTime)
stringVersion of the OS that Collector is installed on. [Installed Collectors only]Version of the OS the Collector is installed on (Installed Collectors only). (wire: osVersion)
stringFor installed Collectors, whether the Collector is using local source configuration management (using a JSON file), or cloud management (using the UI)For Installed Collectors, whether Sources are managed locally from a JSON file (Json) or from the cloud (UI). (wire: sourceSyncMode)
integerWhen CPU utilization exceeds this threshold, the Collector will slow down its rate of ingestion to lower its CPU utilization.When CPU utilization exceeds this threshold the Collector slows its rate of ingestion. (wire: targetCpu)
stringTime zone of the Collector. For a list of possible values, refer to the "TZ" column in this Wikipedia article.Time zone of the Collector (TZ database name). (wire: timeZone)
@@ -174,12 +175,19 @@ The following methods are available for this resource: - + region - aliveBeforeDays, limit, offset + alive_before_days, limit, offset Get a list of Installed Collectors last seen alive before a specified number of days with an optional limit and offset. + + + + region + alive_before_days + Delete Installed Collectors last seen alive before a specified number of days. The delete task is initiated asynchronously. + @@ -199,22 +207,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) - - + + integer - Filter the Collectors returned using one of the available filter types:installed, hosted, dead, or alive. + Minimum number of days the Collectors have been offline (default 100, minimum 1). (wire: aliveBeforeDays) integer - Minimum number of days the Collectors have been offline, must be at least 1 day. + Maximum number of Collectors to return (default 1000). integer - Offset into the list of Collectors. + Offset into the list of Collectors (default 0). @@ -222,12 +230,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a list of Installed Collectors last seen alive before a specified number of days with an optional limit and offset. @@ -235,31 +243,53 @@ Get a list of Installed Collectors last seen alive before a specified number of SELECT id, name, +host_name, +os_name, alive, category, -collectorType, -collectorVersion, -cutoffRelativeTime, -cutoffTimestamp, +collector_type, +collector_version, +cutoff_relative_time, +cutoff_timestamp, description, ephemeral, fields, -hostName, -lastSeenAlive, +last_seen_alive, links, -osArch, -osName, -osTime, -osVersion, -sourceSyncMode, -targetCpu, -timeZone +os_arch, +os_time, +os_version, +source_sync_mode, +target_cpu, +time_zone FROM sumologic.collectors.offline_collectors -WHERE region = '{{ region }}' -- required -AND aliveBeforeDays = '{{ aliveBeforeDays }}' +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND alive_before_days = '{{ alive_before_days }}' AND limit = '{{ limit }}' AND offset = '{{ offset }}' ; ``` + + +## `DELETE` examples + + + + +Delete Installed Collectors last seen alive before a specified number of days. The delete task is initiated asynchronously. + +```sql +DELETE FROM sumologic.collectors.offline_collectors +WHERE region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND alive_before_days = '{{ alive_before_days }}' +; +``` + + diff --git a/website/docs/services/collectors/overview/index.md b/website/docs/services/collectors/overview/index.md new file mode 100644 index 0000000..bb721cc --- /dev/null +++ b/website/docs/services/collectors/overview/index.md @@ -0,0 +1,164 @@ +--- +title: overview +hide_title: false +hide_table_of_contents: false +keywords: + - overview + - collectors + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an overview resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer
integer (wire: hostedCollectorsCount)
integer (wire: hostedSourcesCount)
integer (wire: installedCollectorsCount)
integer (wire: installedSourcesCount)
integer (wire: offlineCollectorsCount)
integer
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionSummary counts of Installed and Hosted Collectors and Sources, offline Collectors, errors and warnings.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Summary counts of Installed and Hosted Collectors and Sources, offline Collectors, errors and warnings. + +```sql +SELECT +errors, +hosted_collectors_count, +hosted_sources_count, +installed_collectors_count, +installed_sources_count, +offline_collectors_count, +warnings +FROM sumologic.collectors.overview +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/collectors/sources/index.md b/website/docs/services/collectors/sources/index.md index 33e3faf..cebe802 100644 --- a/website/docs/services/collectors/sources/index.md +++ b/website/docs/services/collectors/sources/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a sources resource. ## Overview - +
Namesources
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a sources resource. The following fields are returned by `SELECT` queries: - + @@ -52,102 +53,152 @@ The following fields are returned by `SELECT` queries: - + - + + + + + + - + - + - + - + - - - + + + + + + + + + + + + + + + + + + - + + + + + + - + - - + + - + - + - + - + - + - + + + + + + - + - + - + + + + + + - + - + - + - + - + - + + + + + + + + + + + + + + + + - + - + - +
integerSource identifer.Unique identifier of the Source.
stringSource name.Name of the Source.
stringHost name assigned to data from this Source (the _sourceHost metadata field). (wire: hostName)
booleanSource alive.Whether the Source is alive.
booleanSource automaticDateParsing.Whether timestamps are parsed automatically. (wire: automaticDateParsing)
stringSource category.Source category (the _sourceCategory metadata field).
integerSource cutoffTimestamp.stringContent type of the data collected (used by some cloud Source types). (wire: contentType)
stringRelative offset instead of cutoffTimestamp, for example -1h, -1d or -1w. (wire: cutoffRelativeTime)
integer (int64)Only collect data more recent than this timestamp, in milliseconds since epoch. (wire: cutoffTimestamp)
arrayDefault date formats used to parse timestamps. (wire: defaultDateFormats)
arraySource denylist.Path expressions to exclude from collection (file Sources).
stringDescription of the Source.
stringSource encoding.Character encoding of the data (default UTF-8).
objectSource fields.stringJSON map of key-value fields (metadata) applied to the Source. (opaque JSON object)
arraySource filters.Processing rules (Exclude, Include, Hash, Mask, Forward) applied to the Source.
booleanSource forceTimeZone.When true, the timeZone is applied to all messages. (wire: forceTimeZone)
stringSource hashAlgorithm.Hash algorithm used by Hash processing rules. (wire: hashAlgorithm)
integerCollection interval in milliseconds (metrics and script Sources).
stringSource hostName.Regular expression that marks the start of a message when useAutolineMatching is false. (wire: manualPrefixRegexp)
booleanSource messagePerRequest.For HTTP Sources, whether each request is a single message. (wire: messagePerRequest)
arrayMetrics to collect (SystemStats Sources).
booleanSource multilineProcessingEnabled.Whether multiline message processing is enabled. (wire: multilineProcessingEnabled)
stringSource pathExpression.Path expression of the files to collect (file Sources). (wire: pathExpression)
stringSource sourceType.Type of the Source, for example HTTP, LocalFile, RemoteFileV2, Syslog, SystemStats, Polling, Script, and the cloud-to-cloud types. (wire: sourceType)
stringSource status (cloud Sources). (opaque JSON object)
stringCloud-to-cloud Source configuration. (opaque JSON object) (wire: thirdPartyRef)
stringTime zone applied to messages when forceTimeZone is true or the message has no time zone. (wire: timeZone)
stringSource url.Unique URL of an HTTP Source endpoint.
booleanSource useAutolineMatching.Whether message boundaries are inferred automatically. (wire: useAutolineMatching)
- + @@ -161,97 +212,147 @@ The following fields are returned by `SELECT` queries: - + - + + + + + + - + - + - + - + - - - + + + + + + + + + + + + + + + + + + - + + + + + + - + - - + + - + - + - + - + - + + + + + + - + - + - + - + + + + + + - + - + - + - + - + - + + + + + + + + + + + + + + + + - + - + - +
integerSource identifer.Unique identifier of the Source.
stringSource name.Name of the Source.
stringHost name assigned to data from this Source (the _sourceHost metadata field). (wire: hostName)
booleanSource alive.Whether the Source is alive.
booleanSource automaticDateParsing.Whether timestamps are parsed automatically. (wire: automaticDateParsing)
stringSource category.Source category (the _sourceCategory metadata field).
integerSource cutoffTimestamp.stringContent type of the data collected (used by some cloud Source types). (wire: contentType)
stringRelative offset instead of cutoffTimestamp, for example -1h, -1d or -1w. (wire: cutoffRelativeTime)
integer (int64)Only collect data more recent than this timestamp, in milliseconds since epoch. (wire: cutoffTimestamp)
arrayDefault date formats used to parse timestamps. (wire: defaultDateFormats)
arraySource denylist.Path expressions to exclude from collection (file Sources).
stringDescription of the Source.
stringSource encoding.Character encoding of the data (default UTF-8).
objectSource fields.stringJSON map of key-value fields (metadata) applied to the Source. (opaque JSON object)
arraySource filters.Processing rules (Exclude, Include, Hash, Mask, Forward) applied to the Source.
booleanSource forceTimeZone.When true, the timeZone is applied to all messages. (wire: forceTimeZone)
stringSource hashAlgorithm.Hash algorithm used by Hash processing rules. (wire: hashAlgorithm)
integerCollection interval in milliseconds (metrics and script Sources).
stringSource hostName.Regular expression that marks the start of a message when useAutolineMatching is false. (wire: manualPrefixRegexp)
booleanSource messagePerRequest.For HTTP Sources, whether each request is a single message. (wire: messagePerRequest)
arrayMetrics to collect (SystemStats Sources).
booleanSource multilineProcessingEnabled.Whether multiline message processing is enabled. (wire: multilineProcessingEnabled)
stringSource pathExpression.Path expression of the files to collect (file Sources). (wire: pathExpression)
stringSource sourceType.Type of the Source, for example HTTP, LocalFile, RemoteFileV2, Syslog, SystemStats, Polling, Script, and the cloud-to-cloud types. (wire: sourceType)
stringSource status (cloud Sources). (opaque JSON object)
stringCloud-to-cloud Source configuration. (opaque JSON object) (wire: thirdPartyRef)
stringTime zone applied to messages when forceTimeZone is true or the message has no time zone. (wire: timeZone)
stringSource url.Unique URL of an HTTP Source endpoint.
booleanSource useAutolineMatching.Whether message boundaries are inferred automatically. (wire: useAutolineMatching)
@@ -274,39 +375,39 @@ The following methods are available for this resource: - + - collectorId, sourceId, region - - Gets information about a specified Collector and Source. + collector_id, source_id, region + download + Get information about a specified Source of a Collector. The response carries an ETag header, which must be supplied as If-Match on an update. - + - collectorId, region - - Gets information about all Sources for a specified Collector. + collector_id, region + download + Get information about all Sources of a specified Collector. - + - collectorId, region + collector_id, region, source - Creates a new Source for a Collector. See Use JSON to Configure Sources for required fields for the request JSON file. + Create a new Source on a Collector. The request body is the Source definition wrapped in a source object; see the vendor documentation (Use JSON to Configure Sources) for the fields required by each sourceType. - - - collectorId, sourceId, region - - Delete Source by ID + + + collector_id, source_id, region, source + if-_match + Update a Source. The Collector Management API requires the If-Match header to carry the ETag returned by a previous GET of the same Source; the request body is the full Source object wrapped in source. - - - collectorId, sourceId, region + + + collector_id, source_id, region - Update a source + Delete the specified Source of a Collector. @@ -324,20 +425,30 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - - + + string - Unique Collector identifier. + Unique identifier of the Collector. (wire: collectorId) string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) + + + + string + Unique identifier of the Source. (wire: sourceId) - - + + + boolean + When true, the response is the JSON configuration of the Source(s), suitable for registering a new Collector or creating a new Source. + + + string - Unique Source identifier. + The ETag value returned in the response headers of a previous GET of this object. The Collector Management API requires it on updates. (wire: If-Match) @@ -345,72 +456,94 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Gets information about a specified Collector and Source. +Get information about a specified Source of a Collector. The response carries an ETag header, which must be supplied as If-Match on an update. ```sql SELECT id, name, +host_name, alive, -automaticDateParsing, +automatic_date_parsing, category, -cutoffTimestamp, +content_type, +cutoff_relative_time, +cutoff_timestamp, +default_date_formats, denylist, +description, encoding, fields, filters, -forceTimeZone, -hashAlgorithm, -hostName, -messagePerRequest, -multilineProcessingEnabled, -pathExpression, -sourceType, +force_time_zone, +hash_algorithm, +interval, +manual_prefix_regexp, +message_per_request, +metrics, +multiline_processing_enabled, +path_expression, +source_type, +status, +third_party_ref, +time_zone, url, -useAutolineMatching +use_autoline_matching FROM sumologic.collectors.sources -WHERE collectorId = '{{ collectorId }}' -- required -AND sourceId = '{{ sourceId }}' -- required -AND region = '{{ region }}' -- required +WHERE collector_id = '{{ collector_id }}' -- required +AND source_id = '{{ source_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND download = '{{ download }}' ; ``` - + -Gets information about all Sources for a specified Collector. +Get information about all Sources of a specified Collector. ```sql SELECT id, name, +host_name, alive, -automaticDateParsing, +automatic_date_parsing, category, -cutoffTimestamp, +content_type, +cutoff_relative_time, +cutoff_timestamp, +default_date_formats, denylist, +description, encoding, fields, filters, -forceTimeZone, -hashAlgorithm, -hostName, -messagePerRequest, -multilineProcessingEnabled, -pathExpression, -sourceType, +force_time_zone, +hash_algorithm, +interval, +manual_prefix_regexp, +message_per_request, +metrics, +multiline_processing_enabled, +path_expression, +source_type, +status, +third_party_ref, +time_zone, url, -useAutolineMatching +use_autoline_matching FROM sumologic.collectors.sources -WHERE collectorId = '{{ collectorId }}' -- required -AND region = '{{ region }}' -- required +WHERE collector_id = '{{ collector_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND download = '{{ download }}' ; ``` @@ -420,130 +553,134 @@ AND region = '{{ region }}' -- required ## `INSERT` examples - + -Creates a new Source for a Collector. See Use JSON to Configure Sources for required fields for the request JSON file. +Create a new Source on a Collector. The request body is the Source definition wrapped in a source object; see the vendor documentation (Use JSON to Configure Sources) for the fields required by each sourceType. ```sql INSERT INTO sumologic.collectors.sources ( -data__source, -collectorId, +source, +collector_id, region ) SELECT -'{{ source }}', -'{{ collectorId }}', +'{{ source }}' /* required */, +'{{ collector_id }}', '{{ region }}' RETURNING -id, -name, -alive, -automaticDateParsing, -category, -cutoffTimestamp, -denylist, -encoding, -fields, -filters, -forceTimeZone, -hashAlgorithm, -hostName, -messagePerRequest, -multilineProcessingEnabled, -pathExpression, -sourceType, -url, -useAutolineMatching +source ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: sources props: - - name: collectorId - value: string + - name: collector_id + value: "{{ collector_id }}" description: Required parameter for the sources resource. - name: region - value: string + value: "{{ region }}" description: Required parameter for the sources resource. - name: source - value: object -``` + description: | + Source object. The set of properties depends on the sourceType; the properties listed here are the common ones. + value: + id: {{ id }} + name: "{{ name }}" + description: "{{ description }}" + category: "{{ category }}" + hostName: "{{ hostName }}" + sourceType: "{{ sourceType }}" + contentType: "{{ contentType }}" + alive: {{ alive }} + url: "{{ url }}" + encoding: "{{ encoding }}" + timeZone: "{{ timeZone }}" + forceTimeZone: {{ forceTimeZone }} + automaticDateParsing: {{ automaticDateParsing }} + multilineProcessingEnabled: {{ multilineProcessingEnabled }} + useAutolineMatching: {{ useAutolineMatching }} + manualPrefixRegexp: "{{ manualPrefixRegexp }}" + messagePerRequest: {{ messagePerRequest }} + defaultDateFormats: + - "{{ defaultDateFormats }}" + pathExpression: "{{ pathExpression }}" + denylist: + - "{{ denylist }}" + filters: + - filterType: "{{ filterType }}" + name: "{{ name }}" + regexp: "{{ regexp }}" + mask: "{{ mask }}" + fields: "{{ fields }}" + cutoffTimestamp: {{ cutoffTimestamp }} + cutoffRelativeTime: "{{ cutoffRelativeTime }}" + hashAlgorithm: "{{ hashAlgorithm }}" + interval: {{ interval }} + metrics: + - "{{ metrics }}" + thirdPartyRef: "{{ thirdPartyRef }}" + status: "{{ status }}" +`} + -## `DELETE` examples +## `UPDATE` examples - + -Delete Source by ID +Update a Source. The Collector Management API requires the If-Match header to carry the ETag returned by a previous GET of the same Source; the request body is the full Source object wrapped in source. ```sql -DELETE FROM sumologic.collectors.sources -WHERE collectorId = '{{ collectorId }}' --required -AND sourceId = '{{ sourceId }}' --required -AND region = '{{ region }}' --required -; +UPDATE sumologic.collectors.sources +SET +source = '{{ source }}' +WHERE +collector_id = '{{ collector_id }}' --required +AND source_id = '{{ source_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND source = '{{ source }}' --required +AND if-_match = '{{ if-_match}}' +RETURNING +source; ``` -## Lifecycle Methods +## `DELETE` examples - + -Update a source +Delete the specified Source of a Collector. ```sql -EXEC sumologic.collectors.sources.update_source -@collectorId='{{ collectorId }}' --required, -@sourceId='{{ sourceId }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"id": {{ id }}, -"name": "{{ name }}", -"category": "{{ category }}", -"hostName": "{{ hostName }}", -"automaticDateParsing": {{ automaticDateParsing }}, -"multilineProcessingEnabled": {{ multilineProcessingEnabled }}, -"useAutolineMatching": {{ useAutolineMatching }}, -"alive": {{ alive }}, -"forceTimeZone": {{ forceTimeZone }}, -"messagePerRequest": {{ messagePerRequest }}, -"sourceType": "{{ sourceType }}", -"encoding": "{{ encoding }}", -"hashAlgorithm": "{{ hashAlgorithm }}", -"url": "{{ url }}", -"pathExpression": "{{ pathExpression }}", -"denylist": "{{ denylist }}", -"filters": "{{ filters }}", -"fields": "{{ fields }}", -"cutoffTimestamp": {{ cutoffTimestamp }} -}' +DELETE FROM sumologic.collectors.sources +WHERE collector_id = '{{ collector_id }}' --required +AND source_id = '{{ source_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/collectors/upgradable_collectors/index.md b/website/docs/services/collectors/upgradable_collectors/index.md new file mode 100644 index 0000000..771c963 --- /dev/null +++ b/website/docs/services/collectors/upgradable_collectors/index.md @@ -0,0 +1,266 @@ +--- +title: upgradable_collectors +hide_title: false +hide_table_of_contents: false +keywords: + - upgradable_collectors + - collectors + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a upgradable_collectors resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerUnique identifier of the Collector.
stringName of the Collector. It must be unique on your account.
stringHost name of the Collector. (wire: hostName)
stringName of the OS the Collector is installed on (Installed Collectors only). (wire: osName)
booleanWhen a Collector is running it sends a heartbeat every 15 seconds. If no heartbeat is received for 30 minutes this becomes false.
stringThe category of the Collector, used as metadata when searching data.
stringThe Collector type: Installable or Hosted. (wire: collectorType)
stringVersion of the Collector software installed. (wire: collectorVersion)
stringCan be specified instead of cutoffTimestamp to provide a relative offset with respect to the current time, for example -1h, -1d or -1w. (wire: cutoffRelativeTime)
integer (int64)Only collect data from files with a modified date more recent than this timestamp, in milliseconds since epoch (0 collects all data). (wire: cutoffTimestamp)
stringDescription of the Collector.
booleanWhen true, the Collector is deleted after 12 hours of inactivity.
stringJSON map of key-value fields (metadata) applied to the Collector. (opaque JSON object)
integer (int64)The last time the Sumo Logic service received an active heartbeat from the Collector, in milliseconds since epoch. (wire: lastSeenAlive)
arrayRelated links.
stringArchitecture of the OS the Collector is installed on (Installed Collectors only). (wire: osArch)
integer (int64)Time that the Collector has been running, in milliseconds (Installed Collectors only). (wire: osTime)
stringVersion of the OS the Collector is installed on (Installed Collectors only). (wire: osVersion)
stringFor Installed Collectors, whether Sources are managed locally from a JSON file (Json) or from the cloud (UI). (wire: sourceSyncMode)
integerWhen CPU utilization exceeds this threshold the Collector slows its rate of ingestion. (wire: targetCpu)
stringTime zone of the Collector (TZ database name). (wire: timeZone)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionto_version, offset, limitGet the Installed Collectors that can be upgraded (or downgraded) to the specified version.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
integerMaximum number of Collectors to return (default 50).
integerOffset into the list of Collectors (default 0).
stringTarget Collector version. Defaults to the latest version. (wire: toVersion)
+ +## `SELECT` examples + + + + +Get the Installed Collectors that can be upgraded (or downgraded) to the specified version. + +```sql +SELECT +id, +name, +host_name, +os_name, +alive, +category, +collector_type, +collector_version, +cutoff_relative_time, +cutoff_timestamp, +description, +ephemeral, +fields, +last_seen_alive, +links, +os_arch, +os_time, +os_version, +source_sync_mode, +target_cpu, +time_zone +FROM sumologic.collectors.upgradable_collectors +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND to_version = '{{ to_version }}' +AND offset = '{{ offset }}' +AND limit = '{{ limit }}' +; +``` + + diff --git a/website/docs/services/tracing/tracequery_fields/index.md b/website/docs/services/collectors/upgrade_targets/index.md similarity index 52% rename from website/docs/services/tracing/tracequery_fields/index.md rename to website/docs/services/collectors/upgrade_targets/index.md index 41e5d8c..20a3063 100644 --- a/website/docs/services/tracing/tracequery_fields/index.md +++ b/website/docs/services/collectors/upgrade_targets/index.md @@ -1,10 +1,10 @@ --- -title: tracequery_fields +title: upgrade_targets hide_title: false hide_table_of_contents: false keywords: - - tracequery_fields - - tracing + - upgrade_targets + - collectors - sumologic - infrastructure-as-code - configuration-as-data @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a tracequery_fields resource. +Creates, updates, deletes, gets or lists a upgrade_targets resource. ## Overview - + - +
Nametracequery_fields
Name
TypeResource
Id
Id
## Fields @@ -32,14 +33,12 @@ Creates, updates, deletes, gets or lists a tracequery_fields resour The following fields are returned by `SELECT` queries: - - -List of available fields. + @@ -51,9 +50,14 @@ List of available fields. - - - + + + + + + + +
arrayList of filter fields.booleanWhether this is the latest version.
stringCollector version.
@@ -76,11 +80,11 @@ The following methods are available for this resource: - + region - Get a list of available fields which can be used in trace search queries. + Get the Installed Collector versions available as upgrade (or downgrade) targets. @@ -101,7 +105,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -109,20 +113,21 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Get a list of available fields which can be used in trace search queries. +Get the Installed Collector versions available as upgrade (or downgrade) targets. ```sql SELECT -fields -FROM sumologic.tracing.tracequery_fields -WHERE region = '{{ region }}' -- required +latest, +version +FROM sumologic.collectors.upgrade_targets +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/collectors/upgrades/index.md b/website/docs/services/collectors/upgrades/index.md new file mode 100644 index 0000000..ad29b89 --- /dev/null +++ b/website/docs/services/collectors/upgrades/index.md @@ -0,0 +1,222 @@ +--- +title: upgrades +hide_title: false +hide_table_of_contents: false +keywords: + - upgrades + - collectors + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a upgrades resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the upgrade task.
integerIdentifier of the Collector being upgraded. (wire: collectorId)
stringStatus message.
integer (int64)Time the upgrade was requested, in milliseconds since epoch. (wire: requestTime)
integerUpgrade status: 0 not started, 1 running, 2 succeeded, 3 failed, 6 progressing.
stringTarget version. (wire: toVersion)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
upgrade_task_id, regionGet the status of a Collector upgrade task.
region, collector_idStart an upgrade (or downgrade) task for an Installed Collector. Poll the returned task with the upgrade status method.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringIdentifier of the upgrade task. (wire: upgradeTaskId)
+ +## `SELECT` examples + + + + +Get the status of a Collector upgrade task. + +```sql +SELECT +id, +collector_id, +message, +request_time, +status, +to_version +FROM sumologic.collectors.upgrades +WHERE upgrade_task_id = '{{ upgrade_task_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples + + + + +Start an upgrade (or downgrade) task for an Installed Collector. Poll the returned task with the upgrade status method. + +```sql +INSERT INTO sumologic.collectors.upgrades ( +collector_id, +to_version, +region +) +SELECT +{{ collector_id }} /* required */, +'{{ to_version }}', +'{{ region }}' +RETURNING +id, +link +; +``` + + + +{`# Description fields are for documentation purposes +- name: upgrades + props: + - name: region + value: "{{ region }}" + description: Required parameter for the upgrades resource. + - name: collector_id + value: {{ collector_id }} + description: | + Identifier of the Installed Collector to upgrade. + - name: to_version + value: "{{ to_version }}" + description: | + Target version. Defaults to the latest version. +`} + + + diff --git a/website/docs/services/connections/connections/index.md b/website/docs/services/connections/connections/index.md index 5634105..b53158d 100644 --- a/website/docs/services/connections/connections/index.md +++ b/website/docs/services/connections/connections/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a connections resource. ## Overview - +
Nameconnections
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a connections resource. The following fields are returned by `SELECT` queries: - + Connection object that was requested. @@ -62,14 +63,14 @@ Connection object that was requested. Name of the connection. - + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt) - + string - Identifier of the user who created the resource. + Identifier of the user who created the resource. (wire: createdBy) @@ -77,14 +78,14 @@ Connection object that was requested. Description of the connection. - + string (date-time) - Last modification timestamp in UTC. + Last modification timestamp in UTC. (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. + Identifier of the user who last modified the resource. (wire: modifiedBy) @@ -94,7 +95,7 @@ Connection object that was requested. - + A paginated list of connections in the organization. @@ -108,14 +109,44 @@ A paginated list of connections in the organization. - - array - List of connections. + + string + Unique identifier for the connection. + + + + string + Name of the connection. + + + + string (date-time) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt) + + + + string + Identifier of the user who created the resource. (wire: createdBy) - + string - Next continuation token. + Description of the connection. + + + + string (date-time) + Last modification timestamp in UTC. (wire: modifiedAt) + + + + string + Identifier of the user who last modified the resource. (wire: modifiedBy) + + + + string + Type of connection. Valid values are `WebhookConnection`, `ServiceNowConnection`. @@ -138,39 +169,53 @@ The following methods are available for this resource: - + - id, type, region - + id, region + type Get a connection with the given identifier. - + region limit, token Get a list of all connections in the organization. The response is paginated with a default limit of 100 connections per page. - + - region, data__name, data__type + region, name, type Create a new connection in the organization. - + + + id, region, name, type + + Update an existing connection. + + + id, type, region Delete a connection with the given identifier. - + - id, region, name, type + region, name, type + functionalities, connectionId + Test a new connection url is valid and can connect. + + + + + region - Update an existing connection. + Get incident templates for CloudSOAR connections. @@ -191,18 +236,28 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the connection to update. + Identifier of the connection to delete. string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) string Type of connection to delete. Valid values are `WebhookConnection`, `ServiceNowConnection`. + + + string + Unique identifier of an existing connection to test. It should be provided when the request body of an existing connection contains masked authorization headers. If not provided, the authorization headers will not be correctly unmasked, and the test may fail due to unauthorized access. (example: 0000000000123ABC) + + + + array + A comma-separated functionalities of webhook payload to test. Acceptable values: `alert`, `resolution`. (example: alert,resolution) + integer (int32) @@ -213,19 +268,24 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + + + string + Type of connection to return. Valid values are `WebhookConnection`, `ServiceNowConnection`. + ## `SELECT` examples - + Get a connection with the given identifier. @@ -233,29 +293,35 @@ Get a connection with the given identifier. SELECT id, name, -createdAt, -createdBy, +created_at, +created_by, description, -modifiedAt, -modifiedBy, +modified_at, +modified_by, type FROM sumologic.connections.connections WHERE id = '{{ id }}' -- required -AND type = '{{ type }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND type = '{{ type }}' ; ``` - + Get a list of all connections in the organization. The response is paginated with a default limit of 100 connections per page. ```sql SELECT -data, -next +id, +name, +created_at, +created_by, +description, +modified_at, +modified_by, +type FROM sumologic.connections.connections -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' ; @@ -267,21 +333,21 @@ AND token = '{{ token }}' ## `INSERT` examples - + Create a new connection in the organization. ```sql INSERT INTO sumologic.connections.connections ( -data__type, -data__name, -data__description, +type, +name, +description, region ) SELECT @@ -292,37 +358,74 @@ SELECT RETURNING id, name, -createdAt, -createdBy, +created_at, +created_by, description, -modifiedAt, -modifiedBy, +modified_at, +modified_by, type ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: connections props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the connections resource. - name: type - value: string + value: "{{ type }}" description: | - Type of connection. Valid values are `WebhookDefinition`, `ServiceNowDefinition`. + Type of connection. Valid values are \`WebhookDefinition\`, \`ServiceNowDefinition\`. - name: name - value: string + value: "{{ name }}" description: | Name of the connection. - name: description - value: string + value: "{{ description }}" description: | Description of the connection. default: +`} + + + + + +## `UPDATE` examples + + + + +Update an existing connection. + +```sql +UPDATE sumologic.connections.connections +SET +type = '{{ type }}', +name = '{{ name }}', +description = '{{ description }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND name = '{{ name }}' --required +AND type = '{{ type }}' --required +RETURNING +id, +name, +created_at, +created_by, +description, +modified_at, +modified_by, +type; ``` @@ -331,12 +434,12 @@ type ## `DELETE` examples - + Delete a connection with the given identifier. @@ -344,7 +447,7 @@ Delete a connection with the given identifier. DELETE FROM sumologic.connections.connections WHERE id = '{{ id }}' --required AND type = '{{ type }}' --required -AND region = '{{ region }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` @@ -353,20 +456,24 @@ AND region = '{{ region }}' --required ## Lifecycle Methods +EXEC variables use wire (API) names. + - + -Update an existing connection. +Test a new connection url is valid and can connect. ```sql -EXEC sumologic.connections.connections.updateConnection -@id='{{ id }}' --required, -@region='{{ region }}' --required +EXEC sumologic.connections.connections.test +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@functionalities='{{ functionalities }}', +@connectionId='{{ connectionId }}' @@json= '{ "type": "{{ type }}", @@ -376,4 +483,20 @@ EXEC sumologic.connections.connections.updateConnection ; ``` + + +Get incident templates for CloudSOAR connections. + +```sql +EXEC sumologic.connections.connections.get_incident_templates +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"url": "{{ url }}", +"authHeader": "{{ authHeader }}", +"connectionId": "{{ connectionId }}" +}' +; +``` + diff --git a/website/docs/services/connections/index.md b/website/docs/services/connections/index.md index afc90d3..44e3d77 100644 --- a/website/docs/services/connections/index.md +++ b/website/docs/services/connections/index.md @@ -18,17 +18,16 @@ connections service documentation. :::info[Service Summary] -total resources: __3__ +total resources: __1__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/connections/test/index.md b/website/docs/services/connections/test/index.md deleted file mode 100644 index 7bbe9ca..0000000 --- a/website/docs/services/connections/test/index.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: test -hide_title: false -hide_table_of_contents: false -keywords: - - test - - connections - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a test resource. - -## Overview - - - - -
Nametest
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
region, name, typefunctionalities, connectionIdTest a new connection url is valid and can connect.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringUnique identifier of an existing connection to test. It should be provided when the request body of an existing connection contains masked authorization headers. If not provided, the authorization headers will not be correctly unmasked, and the test may fail due to unauthorized access. (example: 0000000000123ABC)
arrayA comma-separated functionalities of webhook payload to test. Acceptable values: `alert`, `resolution`. (example: alert,resolution)
- -## Lifecycle Methods - - - - -Test a new connection url is valid and can connect. - -```sql -EXEC sumologic.connections.test.testConnection -@region='{{ region }}' --required, -@functionalities='{{ functionalities }}', -@connectionId='{{ connectionId }}' -@@json= -'{ -"type": "{{ type }}", -"name": "{{ name }}", -"description": "{{ description }}" -}' -; -``` - - diff --git a/website/docs/services/content/admin_recommended_folder_jobs/index.md b/website/docs/services/content/admin_recommended_folder_jobs/index.md new file mode 100644 index 0000000..dc46044 --- /dev/null +++ b/website/docs/services/content/admin_recommended_folder_jobs/index.md @@ -0,0 +1,184 @@ +--- +title: admin_recommended_folder_jobs +hide_title: false +hide_table_of_contents: false +keywords: + - admin_recommended_folder_jobs + - content + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an admin_recommended_folder_jobs resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Asynchronous Admin Recommended folder job status. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
object
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`).
stringAdditional status message generated if the status is not `Failed`. (wire: statusMessage)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, regionGet the status of an asynchronous Admin Recommended folder job for the given job identifier. If job succeeds, use Admin Recommended Job Result endpoint to fetch top-level content items in Admin Recommended folder.
regionisAdminModeSchedule an asynchronous job to get the top-level Admin Recommended content items. You can read more about Admin Recommended folder [here](https:​//help.sumologic.com/Manage/Content_Sharing/Admin_Mode#move-important-content-to-admin-recommended).<br /><br />_You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier of the asynchronous Admin Recommended folder job. (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringSet this to "true" if you want to perform the request as a Content Administrator.
+ +## `SELECT` examples + + + + +Get the status of an asynchronous Admin Recommended folder job for the given job identifier. If job succeeds, use Admin Recommended Job Result endpoint to fetch top-level content items in Admin Recommended folder. + +```sql +SELECT +error, +status, +status_message +FROM sumologic.content.admin_recommended_folder_jobs +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Schedule an asynchronous job to get the top-level Admin Recommended content items. You can read more about Admin Recommended folder [here](https:​//help.sumologic.com/Manage/Content_Sharing/Admin_Mode#move-important-content-to-admin-recommended).<br /><br />_You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._ + +```sql +EXEC sumologic.content.admin_recommended_folder_jobs.start +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@isAdminMode='{{ isAdminMode }}' +; +``` + + diff --git a/website/docs/services/content/folders_admin_recommended_result/index.md b/website/docs/services/content/admin_recommended_folder_results/index.md similarity index 59% rename from website/docs/services/content/folders_admin_recommended_result/index.md rename to website/docs/services/content/admin_recommended_folder_results/index.md index a2c3111..5434efa 100644 --- a/website/docs/services/content/folders_admin_recommended_result/index.md +++ b/website/docs/services/content/admin_recommended_folder_results/index.md @@ -1,9 +1,9 @@ --- -title: folders_admin_recommended_result +title: admin_recommended_folder_results hide_title: false hide_table_of_contents: false keywords: - - folders_admin_recommended_result + - admin_recommended_folder_results - content - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a folders_admin_recommended_result resource. +Creates, updates, deletes, gets or lists an admin_recommended_folder_results resource. ## Overview - + - +
Namefolders_admin_recommended_result
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a folders_admin_recommended_resul The following fields are returned by `SELECT` queries: - + Admin Recommended folder. @@ -60,45 +61,50 @@ Admin Recommended folder. string The name of the content item. (example: Personal) + + + string + Identifier of the parent content item. (example: 0000000001C41EF2) (wire: parentId) + array A list of the content items. - + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) - + string - Identifier of the user who created the resource. (example: 0000000006743FDD) + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) string - The description of the folder. (example: This is a sample folder.) + Description of the content item. (example: Personal folder for John Doe) - - string - Type of the content item. Supported values are: 1. Folder 2. Search 3. Report (for old dashboards) 4. Dashboard (for new dashboards) 5. Lookups (example: Folder) + + boolean + Indicates whether the content item refers to scheduled search. This field is only relevant to `Search` content type. (wire: isScheduled) - - string (date-time) - Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z) + + string + Type of the content item. Supported values are: 1. Folder 2. Search 3. Report (for old dashboards) 4. Dashboard (for new dashboards) 5. Lookups (example: Folder) (wire: itemType) - - string - Identifier of the user who last modified the resource. (example: 0000000006743FE8) + + string (date-time) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Identifier of the parent content item. (example: 0000000001C41EF2) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) @@ -126,9 +132,9 @@ The following methods are available for this resource: - + - jobId, region + job_id, region Get result of an Admin Recommended job for the given job identifier. The result will be "Admin Recommended" folder with a list of top-level Admin Recommended content items in `children` field. @@ -148,15 +154,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - - + + string - The identifier of the asynchronous Admin Recommended folder job. + The identifier of the asynchronous Admin Recommended folder job. (wire: jobId) string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -164,12 +170,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get result of an Admin Recommended job for the given job identifier. The result will be "Admin Recommended" folder with a list of top-level Admin Recommended content items in `children` field. @@ -177,18 +183,19 @@ Get result of an Admin Recommended job for the given job identifier. The result SELECT id, name, +parent_id, children, -createdAt, -createdBy, +created_at, +created_by, description, -itemType, -modifiedAt, -modifiedBy, -parentId, +is_scheduled, +item_type, +modified_at, +modified_by, permissions -FROM sumologic.content.folders_admin_recommended_result -WHERE jobId = '{{ jobId }}' -- required -AND region = '{{ region }}' -- required +FROM sumologic.content.admin_recommended_folder_results +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/content/copy/index.md b/website/docs/services/content/copy/index.md deleted file mode 100644 index abc034c..0000000 --- a/website/docs/services/content/copy/index.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: copy -hide_title: false -hide_table_of_contents: false -keywords: - - copy - - content - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a copy resource. - -## Overview - - - - -
Namecopy
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, destinationFolder, regionisAdminModeStart an asynchronous content copy job with the given identifier to the destination folder. If the content item is a folder, everything under the folder is copied recursively.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe identifier of the destination folder.
stringThe identifier of the content item to copy. Identifiers from the Library in the Sumo user interface are provided in decimal format which is incompatible with this API. The identifier needs to be in hexadecimal format.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringSet this to "true" if you want to perform the request as a Content Administrator.
- -## Lifecycle Methods - - - - -Start an asynchronous content copy job with the given identifier to the destination folder. If the content item is a folder, everything under the folder is copied recursively. - -```sql -EXEC sumologic.content.copy.beginAsyncCopy -@id='{{ id }}' --required, -@destinationFolder='{{ destinationFolder }}' --required, -@region='{{ region }}' --required, -@isAdminMode='{{ isAdminMode }}' -; -``` - - diff --git a/website/docs/services/content/copy_jobs/index.md b/website/docs/services/content/copy_jobs/index.md new file mode 100644 index 0000000..b1778e6 --- /dev/null +++ b/website/docs/services/content/copy_jobs/index.md @@ -0,0 +1,203 @@ +--- +title: copy_jobs +hide_title: false +hide_table_of_contents: false +keywords: + - copy_jobs + - content + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a copy_jobs resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The status of the content copy job. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
object
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`).
stringAdditional status message generated if the status is not `Failed`. (wire: statusMessage)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, job_id, regionis_admin_modeGet the status of the copy request with the given job identifier. On success, field `statusMessage` will contain identifier of the newly copied content in format: `id: {hexIdentifier}`.<br />
id, destinationFolder, regionisAdminModeStart an asynchronous content copy job with the given identifier to the destination folder. If the content item is a folder, everything under the folder is copied recursively.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier of the destination folder.
stringThe identifier of the content item to copy. Identifiers from the Library in the Sumo user interface are provided in decimal format which is incompatible with this API. The identifier needs to be in hexadecimal format.
stringThe identifier of the asynchronous copy request job. (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringSet this to "true" if you want to perform the request as a Content Administrator.
stringSet this to "true" if you want to perform the request as a Content Administrator. (wire: isAdminMode)
+ +## `SELECT` examples + + + + +Get the status of the copy request with the given job identifier. On success, field `statusMessage` will contain identifier of the newly copied content in format: `id: {hexIdentifier}`.<br /> + +```sql +SELECT +error, +status, +status_message +FROM sumologic.content.copy_jobs +WHERE id = '{{ id }}' -- required +AND job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND is_admin_mode = '{{ is_admin_mode }}' +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Start an asynchronous content copy job with the given identifier to the destination folder. If the content item is a folder, everything under the folder is copied recursively. + +```sql +EXEC sumologic.content.copy_jobs.start +@id='{{ id }}' --required, +@destinationFolder='{{ destinationFolder }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@isAdminMode='{{ isAdminMode }}' +; +``` + + diff --git a/website/docs/services/content/copy_status/index.md b/website/docs/services/content/copy_status/index.md deleted file mode 100644 index 6c6615e..0000000 --- a/website/docs/services/content/copy_status/index.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: copy_status -hide_title: false -hide_table_of_contents: false -keywords: - - copy_status - - content - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a copy_status resource. - -## Overview - - - - -
Namecopy_status
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, jobId, regionisAdminModeGet the status of the copy request with the given job identifier. On success, field `statusMessage` will contain identifier of the newly copied content in format: `id: {hexIdentifier}`.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe identifier of the content which was copied.
stringThe identifier of the asynchronous copy request job.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringSet this to "true" if you want to perform the request as a Content Administrator.
- -## Lifecycle Methods - - - - -Get the status of the copy request with the given job identifier. On success, field `statusMessage` will contain identifier of the newly copied content in format: `id: {hexIdentifier}`.
- -```sql -EXEC sumologic.content.copy_status.asyncCopyStatus -@id='{{ id }}' --required, -@jobId='{{ jobId }}' --required, -@region='{{ region }}' --required, -@isAdminMode='{{ isAdminMode }}' -; -``` -
-
diff --git a/website/docs/services/content/delete/index.md b/website/docs/services/content/delete/index.md deleted file mode 100644 index 8cf9b48..0000000 --- a/website/docs/services/content/delete/index.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: delete -hide_title: false -hide_table_of_contents: false -keywords: - - delete - - content - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a delete resource. - -## Overview - - - - -
Namedelete
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionisAdminModeStart an asynchronous content deletion job with the given identifier.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the content to delete. Identifiers from the Library in the Sumo user interface are provided in decimal format which is incompatible with this API. The identifier needs to be in hexadecimal format.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringSet this to "true" if you want to perform the request as a Content Administrator.
- -## Lifecycle Methods - - - - -Start an asynchronous content deletion job with the given identifier. - -```sql -EXEC sumologic.content.delete.beginAsyncDelete -@id='{{ id }}' --required, -@region='{{ region }}' --required, -@isAdminMode='{{ isAdminMode }}' -; -``` - - diff --git a/website/docs/services/content/delete_status/index.md b/website/docs/services/content/delete_jobs/index.md similarity index 51% rename from website/docs/services/content/delete_status/index.md rename to website/docs/services/content/delete_jobs/index.md index 22d2ad8..3347c60 100644 --- a/website/docs/services/content/delete_status/index.md +++ b/website/docs/services/content/delete_jobs/index.md @@ -1,9 +1,9 @@ --- -title: delete_status +title: delete_jobs hide_title: false hide_table_of_contents: false keywords: - - delete_status + - delete_jobs - content - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a delete_status resource. +Creates, updates, deletes, gets or lists a delete_jobs resource. ## Overview - + - +
Namedelete_status
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a delete_status resource. The following fields are returned by `SELECT` queries: - + The status of the content deletion job. @@ -61,9 +62,9 @@ The status of the content deletion job. Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). - + string - Additional status message generated if the status is not `Failed`. + Additional status message generated if the status is not `Failed`. (wire: statusMessage) @@ -86,12 +87,19 @@ The following methods are available for this resource: - + - id, jobId, region - isAdminMode + id, job_id, region + is_admin_mode Get the status of an asynchronous content deletion job request for the given job identifier. + + + + id, region + isAdminMode + Start an asynchronous content deletion job with the given identifier. + @@ -111,35 +119,40 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the content to delete. + Identifier of the content to delete. Identifiers from the Library in the Sumo user interface are provided in decimal format which is incompatible with this API. The identifier needs to be in hexadecimal format. - - + + string - The identifier of the asynchronous job. + The identifier of the asynchronous job. (wire: jobId) string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) string Set this to "true" if you want to perform the request as a Content Administrator. + + + string + Set this to "true" if you want to perform the request as a Content Administrator. (wire: isAdminMode) + ## `SELECT` examples - + Get the status of an asynchronous content deletion job request for the given job identifier. @@ -147,12 +160,37 @@ Get the status of an asynchronous content deletion job request for the given job SELECT error, status, -statusMessage -FROM sumologic.content.delete_status +status_message +FROM sumologic.content.delete_jobs WHERE id = '{{ id }}' -- required -AND jobId = '{{ jobId }}' -- required -AND region = '{{ region }}' -- required -AND isAdminMode = '{{ isAdminMode }}' +AND job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND is_admin_mode = '{{ is_admin_mode }}' +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Start an asynchronous content deletion job with the given identifier. + +```sql +EXEC sumologic.content.delete_jobs.start +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@isAdminMode='{{ isAdminMode }}' ; ``` diff --git a/website/docs/services/content/export/index.md b/website/docs/services/content/export/index.md deleted file mode 100644 index d459572..0000000 --- a/website/docs/services/content/export/index.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: export -hide_title: false -hide_table_of_contents: false -keywords: - - export - - content - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an export resource. - -## Overview - - - - -
Nameexport
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionisAdminModeSchedule an _asynchronous_ export of content with the given identifier. You will get back an asynchronous job identifier on success. Use the [getAsyncExportStatus] endpoint and the job identifier you got back in the response to track the status of an asynchronous export job.
If the content item is a folder, everything under the folder is exported recursively. Keep in mind when exporting large folders that there is a limit of 1000 content objects that can be exported at once. If you want to import more than 1000 content objects, then be sure to split the import into batches of 1000 objects or less.
The results from the export are compatible with the Library import feature in the Sumo Logic user interface as well as the API content import job.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe identifier of the content item to export. Identifiers from the Library in the Sumo user interface are provided in decimal format which is incompatible with this API. The identifier needs to be in hexadecimal format.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringSet this to "true" if you want to perform the request as a Content Administrator.
- -## Lifecycle Methods - - - - -Schedule an _asynchronous_ export of content with the given identifier. You will get back an asynchronous job identifier on success. Use the [getAsyncExportStatus] endpoint and the job identifier you got back in the response to track the status of an asynchronous export job.
If the content item is a folder, everything under the folder is exported recursively. Keep in mind when exporting large folders that there is a limit of 1000 content objects that can be exported at once. If you want to import more than 1000 content objects, then be sure to split the import into batches of 1000 objects or less.
The results from the export are compatible with the Library import feature in the Sumo Logic user interface as well as the API content import job. - -```sql -EXEC sumologic.content.export.beginAsyncExport -@id='{{ id }}' --required, -@region='{{ region }}' --required, -@isAdminMode='{{ isAdminMode }}' -; -``` -
-
diff --git a/website/docs/services/content/export_jobs/index.md b/website/docs/services/content/export_jobs/index.md new file mode 100644 index 0000000..9e792ff --- /dev/null +++ b/website/docs/services/content/export_jobs/index.md @@ -0,0 +1,202 @@ +--- +title: export_jobs +hide_title: false +hide_table_of_contents: false +keywords: + - export_jobs + - content + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an export_jobs resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The status of the export job. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
object
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`).
stringAdditional status message generated if the status is not `Failed`. (wire: statusMessage)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
content_id, job_id, regionis_admin_modeGet the status of an asynchronous content export request for the given job identifier. On success, use the getExportResult endpoint to get the result of the export job.
id, regionisAdminModeSchedule an _asynchronous_ export of content with the given identifier. You will get back an asynchronous job identifier on success. Use the getAsyncExportStatus endpoint and the job identifier you got back in the response to track the status of an asynchronous export job.<br />If the content item is a folder, everything under the folder is exported recursively. Keep in mind when exporting large folders that there is a limit of 1000 content objects that can be exported at once. If you want to import more than 1000 content objects, then be sure to split the import into batches of 1000 objects or less.<br />The results from the export are compatible with the Library import feature in the Sumo Logic user interface as well as the API content import job.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier of the exported content item. (wire: contentId)
stringThe identifier of the content item to export. Identifiers from the Library in the Sumo user interface are provided in decimal format which is incompatible with this API. The identifier needs to be in hexadecimal format.
stringThe identifier of the asynchronous export job. (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringSet this to "true" if you want to perform the request as a Content Administrator.
stringSet this to "true" if you want to perform the request as a Content Administrator. (wire: isAdminMode)
+ +## `SELECT` examples + + + + +Get the status of an asynchronous content export request for the given job identifier. On success, use the getExportResult endpoint to get the result of the export job. + +```sql +SELECT +error, +status, +status_message +FROM sumologic.content.export_jobs +WHERE content_id = '{{ content_id }}' -- required +AND job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND is_admin_mode = '{{ is_admin_mode }}' +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Schedule an _asynchronous_ export of content with the given identifier. You will get back an asynchronous job identifier on success. Use the getAsyncExportStatus endpoint and the job identifier you got back in the response to track the status of an asynchronous export job.<br />If the content item is a folder, everything under the folder is exported recursively. Keep in mind when exporting large folders that there is a limit of 1000 content objects that can be exported at once. If you want to import more than 1000 content objects, then be sure to split the import into batches of 1000 objects or less.<br />The results from the export are compatible with the Library import feature in the Sumo Logic user interface as well as the API content import job. + +```sql +EXEC sumologic.content.export_jobs.start +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@isAdminMode='{{ isAdminMode }}' +; +``` + + diff --git a/website/docs/services/content/export_result/index.md b/website/docs/services/content/export_results/index.md similarity index 59% rename from website/docs/services/content/export_result/index.md rename to website/docs/services/content/export_results/index.md index b181bf4..66d16b0 100644 --- a/website/docs/services/content/export_result/index.md +++ b/website/docs/services/content/export_results/index.md @@ -1,9 +1,9 @@ --- -title: export_result +title: export_results hide_title: false hide_table_of_contents: false keywords: - - export_result + - export_results - content - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists an export_result resource. +Creates, updates, deletes, gets or lists an export_results resource. ## Overview - + - +
Nameexport_result
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an export_result resource. The following fields are returned by `SELECT` queries: - + The result of export job. @@ -81,10 +82,10 @@ The following methods are available for this resource: - + - contentId, jobId, region - isAdminMode + content_id, job_id, region + is_admin_mode Get results from content export job for the given job identifier. The results from this export are incompatible with the Library import feature in the Sumo user interface. @@ -103,25 +104,25 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - - + + string - The identifier of the exported content item. + The identifier of the exported content item. (wire: contentId) - - + + string - The identifier of the asynchronous job. + The identifier of the asynchronous job. (wire: jobId) string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) - - + + string - Set this to "true" if you want to perform the request as a Content Administrator. + Set this to "true" if you want to perform the request as a Content Administrator. (wire: isAdminMode) @@ -129,12 +130,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get results from content export job for the given job identifier. The results from this export are incompatible with the Library import feature in the Sumo user interface. @@ -142,11 +143,11 @@ Get results from content export job for the given job identifier. The results fr SELECT name, type -FROM sumologic.content.export_result -WHERE contentId = '{{ contentId }}' -- required -AND jobId = '{{ jobId }}' -- required -AND region = '{{ region }}' -- required -AND isAdminMode = '{{ isAdminMode }}' +FROM sumologic.content.export_results +WHERE content_id = '{{ content_id }}' -- required +AND job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND is_admin_mode = '{{ is_admin_mode }}' ; ``` diff --git a/website/docs/services/content/export_status/index.md b/website/docs/services/content/export_status/index.md deleted file mode 100644 index cc4d9a8..0000000 --- a/website/docs/services/content/export_status/index.md +++ /dev/null @@ -1,159 +0,0 @@ ---- -title: export_status -hide_title: false -hide_table_of_contents: false -keywords: - - export_status - - content - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an export_status resource. - -## Overview - - - - -
Nameexport_status
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -The status of the export job. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
object
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`).
stringAdditional status message generated if the status is not `Failed`.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
contentId, jobId, regionisAdminModeGet the status of an asynchronous content export request for the given job identifier. On success, use the [getExportResult] endpoint to get the result of the export job.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe identifier of the exported content item.
stringThe identifier of the asynchronous export job.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringSet this to "true" if you want to perform the request as a Content Administrator.
- -## `SELECT` examples - - - - -Get the status of an asynchronous content export request for the given job identifier. On success, use the [getExportResult] endpoint to get the result of the export job. - -```sql -SELECT -error, -status, -statusMessage -FROM sumologic.content.export_status -WHERE contentId = '{{ contentId }}' -- required -AND jobId = '{{ jobId }}' -- required -AND region = '{{ region }}' -- required -AND isAdminMode = '{{ isAdminMode }}' -; -``` - - diff --git a/website/docs/services/content/folders/index.md b/website/docs/services/content/folders/index.md index dc10c19..f7d2611 100644 --- a/website/docs/services/content/folders/index.md +++ b/website/docs/services/content/folders/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a folders resource. ## Overview - +
Namefolders
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a folders resource. The following fields are returned by `SELECT` queries: - + Folder that was requested. @@ -60,45 +61,50 @@ Folder that was requested. string The name of the content item. (example: Personal) + + + string + Identifier of the parent content item. (example: 0000000001C41EF2) (wire: parentId) + array A list of the content items. - + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) - + string - Identifier of the user who created the resource. (example: 0000000006743FDD) + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) string - The description of the folder. (example: This is a sample folder.) + Description of the content item. (example: Personal folder for John Doe) - - string - Type of the content item. Supported values are: 1. Folder 2. Search 3. Report (for old dashboards) 4. Dashboard (for new dashboards) 5. Lookups (example: Folder) + + boolean + Indicates whether the content item refers to scheduled search. This field is only relevant to `Search` content type. (wire: isScheduled) - - string (date-time) - Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z) + + string + Type of the content item. Supported values are: 1. Folder 2. Search 3. Report (for old dashboards) 4. Dashboard (for new dashboards) 5. Lookups (example: Folder) (wire: itemType) - - string - Identifier of the user who last modified the resource. (example: 0000000006743FE8) + + string (date-time) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Identifier of the parent content item. (example: 0000000001C41EF2) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) @@ -126,24 +132,24 @@ The following methods are available for this resource: - + id, region - isAdminMode + is_admin_mode Get a folder with the given identifier. Set the header parameter `isAdminMode` to `"true"` if fetching a folder inside "Admin Recommended" folder. - + - region, data__name, data__parentId - isAdminMode + region, name, parent_id + is_admin_mode Creates a new folder under the given parent folder. Set the header parameter `isAdminMode` to `"true"` to create a folder inside "Admin Recommended" folder. - - + + id, region, name - isAdminMode + is_admin_mode Update an existing folder with the given identifier. Set the header parameter `isAdminMode` to `"true"` if updating a folder inside "Admin Recommended" folder. @@ -170,12 +176,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) - - + + string - Set this to "true" if you want to perform the request as a Content Administrator. + Set this to "true" if you want to perform the request as a Content Administrator. (wire: isAdminMode) @@ -183,12 +189,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a folder with the given identifier. Set the header parameter `isAdminMode` to `"true"` if fetching a folder inside "Admin Recommended" folder. @@ -196,19 +202,20 @@ Get a folder with the given identifier. Set the header parameter `isAdminMode` t SELECT id, name, +parent_id, children, -createdAt, -createdBy, +created_at, +created_by, description, -itemType, -modifiedAt, -modifiedBy, -parentId, +is_scheduled, +item_type, +modified_at, +modified_by, permissions FROM sumologic.content.folders WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required -AND isAdminMode = '{{ isAdminMode }}' +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND is_admin_mode = '{{ is_admin_mode }}' ; ``` @@ -218,97 +225,111 @@ AND isAdminMode = '{{ isAdminMode }}' ## `INSERT` examples - + Creates a new folder under the given parent folder. Set the header parameter `isAdminMode` to `"true"` to create a folder inside "Admin Recommended" folder. ```sql INSERT INTO sumologic.content.folders ( -data__name, -data__description, -data__parentId, +name, +description, +parent_id, region, -isAdminMode +is_admin_mode ) SELECT '{{ name }}' /* required */, '{{ description }}', -'{{ parentId }}' /* required */, +'{{ parent_id }}' /* required */, '{{ region }}', -'{{ isAdminMode }}' +'{{ is_admin_mode }}' RETURNING id, name, +parent_id, children, -createdAt, -createdBy, +created_at, +created_by, description, -itemType, -modifiedAt, -modifiedBy, -parentId, +is_scheduled, +item_type, +modified_at, +modified_by, permissions ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: folders props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the folders resource. - name: name - value: string + value: "{{ name }}" description: | The name of the folder. - name: description - value: string + value: "{{ description }}" description: | The description of the folder. - - name: parentId - value: string + - name: parent_id + value: "{{ parent_id }}" description: | The identifier of the parent folder. - - name: isAdminMode - value: string + - name: is_admin_mode + value: "{{ is_admin_mode }}" description: Set this to "true" if you want to perform the request as a Content Administrator. -``` + description: Set this to "true" if you want to perform the request as a Content Administrator. +`} + -## Lifecycle Methods +## `UPDATE` examples - + Update an existing folder with the given identifier. Set the header parameter `isAdminMode` to `"true"` if updating a folder inside "Admin Recommended" folder. ```sql -EXEC sumologic.content.folders.updateFolder -@id='{{ id }}' --required, -@region='{{ region }}' --required, -@isAdminMode='{{ isAdminMode }}' -@@json= -'{ -"name": "{{ name }}", -"description": "{{ description }}" -}' -; +UPDATE sumologic.content.folders +SET +name = '{{ name }}', +description = '{{ description }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND name = '{{ name }}' --required +AND is_admin_mode = '{{ is_admin_mode}}' +RETURNING +id, +name, +parent_id, +children, +created_at, +created_by, +description, +is_scheduled, +item_type, +modified_at, +modified_by, +permissions; ``` diff --git a/website/docs/services/content/folders_admin_recommended/index.md b/website/docs/services/content/folders_admin_recommended/index.md deleted file mode 100644 index d961ef1..0000000 --- a/website/docs/services/content/folders_admin_recommended/index.md +++ /dev/null @@ -1,135 +0,0 @@ ---- -title: folders_admin_recommended -hide_title: false -hide_table_of_contents: false -keywords: - - folders_admin_recommended - - content - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a folders_admin_recommended resource. - -## Overview - - - - -
Namefolders_admin_recommended
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -An asynchronous job to get the Admin Recommended folder has been scheduled. - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier to get the status of an asynchronous job. (example: C03E086C137F38B4)
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
regionisAdminModeSchedule an asynchronous job to get the top-level Admin Recommended content items. You can read more about Admin Recommended folder [here](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode#move-important-content-to-admin-recommended).

_You get back a identifier of asynchronous job in response to this endpoint. See [Asynchronous-Request] section for more details on how to work with asynchronous request._
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringSet this to "true" if you want to perform the request as a Content Administrator.
- -## `SELECT` examples - - - - -Schedule an asynchronous job to get the top-level Admin Recommended content items. You can read more about Admin Recommended folder [here](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode#move-important-content-to-admin-recommended).

_You get back a identifier of asynchronous job in response to this endpoint. See [Asynchronous-Request] section for more details on how to work with asynchronous request._ - -```sql -SELECT -id -FROM sumologic.content.folders_admin_recommended -WHERE region = '{{ region }}' -- required -AND isAdminMode = '{{ isAdminMode }}' -; -``` -
-
diff --git a/website/docs/services/content/folders_admin_recommended_status/index.md b/website/docs/services/content/folders_admin_recommended_status/index.md deleted file mode 100644 index bfb6b12..0000000 --- a/website/docs/services/content/folders_admin_recommended_status/index.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: folders_admin_recommended_status -hide_title: false -hide_table_of_contents: false -keywords: - - folders_admin_recommended_status - - content - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a folders_admin_recommended_status resource. - -## Overview - - - - -
Namefolders_admin_recommended_status
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -Asynchronous Admin Recommended folder job status. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
object
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`).
stringAdditional status message generated if the status is not `Failed`.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
jobId, regionGet the status of an asynchronous Admin Recommended folder job for the given job identifier. If job succeeds, use [Admin Recommended Job Result] endpoint to fetch top-level content items in Admin Recommended folder.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe identifier of the asynchronous Admin Recommended folder job.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## `SELECT` examples - - - - -Get the status of an asynchronous Admin Recommended folder job for the given job identifier. If job succeeds, use [Admin Recommended Job Result] endpoint to fetch top-level content items in Admin Recommended folder. - -```sql -SELECT -error, -status, -statusMessage -FROM sumologic.content.folders_admin_recommended_status -WHERE jobId = '{{ jobId }}' -- required -AND region = '{{ region }}' -- required -; -``` - - diff --git a/website/docs/services/content/folders_global/index.md b/website/docs/services/content/folders_global/index.md deleted file mode 100644 index 22f1dbe..0000000 --- a/website/docs/services/content/folders_global/index.md +++ /dev/null @@ -1,135 +0,0 @@ ---- -title: folders_global -hide_title: false -hide_table_of_contents: false -keywords: - - folders_global - - content - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a folders_global resource. - -## Overview - - - - -
Namefolders_global
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -An asynchronous job to get a list of all content items been scheduled. - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier to get the status of an asynchronous job. (example: C03E086C137F38B4)
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
regionisAdminModeSchedule an asynchronous job to get Global View. Global View contains all top-level content items that a user has permissions to view in the organization. User can traverse the top-level folders using [GetFolder API] to get rest of the content items. Make sure you set `isAdminMode` header parameter to `true` when traversing top-level items.

_Global View is not a real folder, therefore there is no folder identifier associated with it_.

_You get back a identifier of asynchronous job in response to this endpoint. See [Asynchronous-Request] section for more details on how to work with asynchronous request._
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringSet this to "true" if you want to perform the request as a Content Administrator.
- -## `SELECT` examples - - - - -Schedule an asynchronous job to get Global View. Global View contains all top-level content items that a user has permissions to view in the organization. User can traverse the top-level folders using [GetFolder API] to get rest of the content items. Make sure you set `isAdminMode` header parameter to `true` when traversing top-level items.

_Global View is not a real folder, therefore there is no folder identifier associated with it_.

_You get back a identifier of asynchronous job in response to this endpoint. See [Asynchronous-Request] section for more details on how to work with asynchronous request._ - -```sql -SELECT -id -FROM sumologic.content.folders_global -WHERE region = '{{ region }}' -- required -AND isAdminMode = '{{ isAdminMode }}' -; -``` -
-
diff --git a/website/docs/services/content/folders_global_status/index.md b/website/docs/services/content/folders_global_status/index.md deleted file mode 100644 index fe32ae4..0000000 --- a/website/docs/services/content/folders_global_status/index.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: folders_global_status -hide_title: false -hide_table_of_contents: false -keywords: - - folders_global_status - - content - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a folders_global_status resource. - -## Overview - - - - -
Namefolders_global_status
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -Asynchronous Global View job status. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
object
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`).
stringAdditional status message generated if the status is not `Failed`.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
jobId, regionGet the status of an asynchronous Global View job for the given job identifier. If job succeeds, use [Global View Result] endpoint to fetch all content items that you have permissions to view.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe identifier of the asynchronous Global View job.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## `SELECT` examples - - - - -Get the status of an asynchronous Global View job for the given job identifier. If job succeeds, use [Global View Result] endpoint to fetch all content items that you have permissions to view. - -```sql -SELECT -error, -status, -statusMessage -FROM sumologic.content.folders_global_status -WHERE jobId = '{{ jobId }}' -- required -AND region = '{{ region }}' -- required -; -``` - - diff --git a/website/docs/services/content/folders_import_status/index.md b/website/docs/services/content/folders_import_status/index.md deleted file mode 100644 index cf0e340..0000000 --- a/website/docs/services/content/folders_import_status/index.md +++ /dev/null @@ -1,159 +0,0 @@ ---- -title: folders_import_status -hide_title: false -hide_table_of_contents: false -keywords: - - folders_import_status - - content - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a folders_import_status resource. - -## Overview - - - - -
Namefolders_import_status
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -The status of the import job. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
object
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`).
stringAdditional status message generated if the status is not `Failed`.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
folderId, jobId, regionisAdminModeGet the status of a content import job for the given job identifier.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe identifier of the folder to import into.
stringThe identifier of the import request.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringSet this to "true" if you want to perform the request as a Content Administrator.
- -## `SELECT` examples - - - - -Get the status of a content import job for the given job identifier. - -```sql -SELECT -error, -status, -statusMessage -FROM sumologic.content.folders_import_status -WHERE folderId = '{{ folderId }}' -- required -AND jobId = '{{ jobId }}' -- required -AND region = '{{ region }}' -- required -AND isAdminMode = '{{ isAdminMode }}' -; -``` - - diff --git a/website/docs/services/content/global_folder_jobs/index.md b/website/docs/services/content/global_folder_jobs/index.md new file mode 100644 index 0000000..195b2a2 --- /dev/null +++ b/website/docs/services/content/global_folder_jobs/index.md @@ -0,0 +1,184 @@ +--- +title: global_folder_jobs +hide_title: false +hide_table_of_contents: false +keywords: + - global_folder_jobs + - content + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a global_folder_jobs resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Asynchronous Global View job status. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
object
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`).
stringAdditional status message generated if the status is not `Failed`. (wire: statusMessage)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, regionGet the status of an asynchronous Global View job for the given job identifier. If job succeeds, use Global View Result endpoint to fetch all content items that you have permissions to view.
regionisAdminModeSchedule an asynchronous job to get Global View. Global View contains all top-level content items that a user has permissions to view in the organization. User can traverse the top-level folders using GetFolder API to get rest of the content items. Make sure you set `isAdminMode` header parameter to `true` when traversing top-level items.<br /><br />_Global View is not a real folder, therefore there is no folder identifier associated with it_.<br /><br />_You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier of the asynchronous Global View job. (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringSet this to "true" if you want to perform the request as a Content Administrator.
+ +## `SELECT` examples + + + + +Get the status of an asynchronous Global View job for the given job identifier. If job succeeds, use Global View Result endpoint to fetch all content items that you have permissions to view. + +```sql +SELECT +error, +status, +status_message +FROM sumologic.content.global_folder_jobs +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Schedule an asynchronous job to get Global View. Global View contains all top-level content items that a user has permissions to view in the organization. User can traverse the top-level folders using GetFolder API to get rest of the content items. Make sure you set `isAdminMode` header parameter to `true` when traversing top-level items.<br /><br />_Global View is not a real folder, therefore there is no folder identifier associated with it_.<br /><br />_You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._ + +```sql +EXEC sumologic.content.global_folder_jobs.start +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@isAdminMode='{{ isAdminMode }}' +; +``` + + diff --git a/website/docs/services/content/folders_global_result/index.md b/website/docs/services/content/global_folder_results/index.md similarity index 55% rename from website/docs/services/content/folders_global_result/index.md rename to website/docs/services/content/global_folder_results/index.md index efcea46..2bedd31 100644 --- a/website/docs/services/content/folders_global_result/index.md +++ b/website/docs/services/content/global_folder_results/index.md @@ -1,9 +1,9 @@ --- -title: folders_global_result +title: global_folder_results hide_title: false hide_table_of_contents: false keywords: - - folders_global_result + - global_folder_results - content - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a folders_global_result resource. +Creates, updates, deletes, gets or lists a global_folder_results resource. ## Overview - + - +
Namefolders_global_result
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a folders_global_result re The following fields are returned by `SELECT` queries: - + List of all content items with view permission. @@ -61,34 +62,44 @@ List of all content items with view permission. The name of the content item. (example: Personal) - + + string + Identifier of the parent content item. (example: 0000000001C41EF2) (wire: parentId) + + + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) - + string - Identifier of the user who created the resource. (example: 0000000006743FDD) + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) - + string - Type of the content item. Supported values are: 1. Folder 2. Search 3. Report (for old dashboards) 4. Dashboard (for new dashboards) 5. Lookups (example: Folder) + Description of the content item. (example: Personal folder for John Doe) - - string (date-time) - Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z) + + boolean + Indicates whether the content item refers to scheduled search. This field is only relevant to `Search` content type. (wire: isScheduled) - + string - Identifier of the user who last modified the resource. (example: 0000000006743FE8) + Type of the content item. Supported values are: 1. Folder 2. Search 3. Report (for old dashboards) 4. Dashboard (for new dashboards) 5. Lookups (example: Folder) (wire: itemType) + + + + string (date-time) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Identifier of the parent content item. (example: 0000000001C41EF2) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) @@ -116,9 +127,9 @@ The following methods are available for this resource: - + - jobId, region + job_id, region Get result of a Global View job for the given job identifier. The result will be a list of all content items that a user has permissions to view in the organization. @@ -138,15 +149,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - - + + string - The identifier of the asynchronous Global View job. + The identifier of the asynchronous Global View job. (wire: jobId) string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -154,12 +165,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get result of a Global View job for the given job identifier. The result will be a list of all content items that a user has permissions to view in the organization. @@ -167,16 +178,18 @@ Get result of a Global View job for the given job identifier. The result will be SELECT id, name, -createdAt, -createdBy, -itemType, -modifiedAt, -modifiedBy, -parentId, +parent_id, +created_at, +created_by, +description, +is_scheduled, +item_type, +modified_at, +modified_by, permissions -FROM sumologic.content.folders_global_result -WHERE jobId = '{{ jobId }}' -- required -AND region = '{{ region }}' -- required +FROM sumologic.content.global_folder_results +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/content/folders_import/index.md b/website/docs/services/content/import_jobs/index.md similarity index 56% rename from website/docs/services/content/folders_import/index.md rename to website/docs/services/content/import_jobs/index.md index 28524cc..e635478 100644 --- a/website/docs/services/content/folders_import/index.md +++ b/website/docs/services/content/import_jobs/index.md @@ -1,9 +1,9 @@ --- -title: folders_import +title: import_jobs hide_title: false hide_table_of_contents: false keywords: - - folders_import + - import_jobs - content - sumologic - infrastructure-as-code @@ -15,24 +15,61 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a folders_import resource. +Creates, updates, deletes, gets or lists an import_jobs resource. ## Overview - + - +
Namefolders_import
Name
TypeResource
Id
Id
## Fields The following fields are returned by `SELECT` queries: -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +The status of the import job. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
object
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`).
stringAdditional status message generated if the status is not `Failed`. (wire: statusMessage)
+
+
## Methods @@ -50,7 +87,14 @@ The following methods are available for this resource: - + + + folder_id, job_id, region + is_admin_mode + Get the status of a content import job for the given job identifier. + + + folderId, region, name, type isAdminMode, overwrite @@ -77,16 +121,31 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string The identifier of the folder to import into. Identifiers from the Library in the Sumo user interface are provided in decimal format which is incompatible with this API. The identifier needs to be in hexadecimal format. + + + string + The identifier of the folder to import into. (wire: folderId) + + + + string + The identifier of the import request. (wire: jobId) + string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) string Set this to "true" if you want to perform the request as a Content Administrator. + + + string + Set this to "true" if you want to perform the request as a Content Administrator. (wire: isAdminMode) + boolean @@ -95,22 +154,52 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# +## `SELECT` examples + + + + +Get the status of a content import job for the given job identifier. + +```sql +SELECT +error, +status, +status_message +FROM sumologic.content.import_jobs +WHERE folder_id = '{{ folder_id }}' -- required +AND job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND is_admin_mode = '{{ is_admin_mode }}' +; +``` + + + + ## Lifecycle Methods +EXEC variables use wire (API) names. + - + Schedule an asynchronous import of content inside an existing folder with the given identifier. Import requests can be used to create or update content within a folder. Content items need to have a unique name within their folder. If there is already a content item with the same name in the folder, you can set the `overwrite` parameter to `true` to overwrite existing content items. By default, the `overwrite` parameter is set to `false`, where the import will fail if a content item with the same name already exist. Keep in mind when importing large folders that there is a limit of 1000 content objects that can be imported at once. If you want to import more than 1000 content objects, then be sure to split the import into batches of 1000 objects or less. ```sql -EXEC sumologic.content.folders_import.beginAsyncImport +EXEC sumologic.content.import_jobs.start @folderId='{{ folderId }}' --required, -@region='{{ region }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, @isAdminMode='{{ isAdminMode }}', @overwrite={{ overwrite }} @@json= diff --git a/website/docs/services/content/import_results/index.md b/website/docs/services/content/import_results/index.md new file mode 100644 index 0000000..4956d9c --- /dev/null +++ b/website/docs/services/content/import_results/index.md @@ -0,0 +1,160 @@ +--- +title: import_results +hide_title: false +hide_table_of_contents: false +keywords: + - import_results + - content + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an import_results resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The result of the import job. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
arrayDetailed listing of failed import items.
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`).
objectSummary about the import job indicating total, success and failure count.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
folder_id, job_id, regionis_admin_modeGet the complete summary of content import job for the given job identifier.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier of the folder to import into. (wire: folderId)
stringThe identifier of the import request. (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringSet this to "true" if you want to perform the request as a Content Administrator. (wire: isAdminMode)
+ +## `SELECT` examples + + + + +Get the complete summary of content import job for the given job identifier. + +```sql +SELECT +failures, +status, +summary +FROM sumologic.content.import_results +WHERE folder_id = '{{ folder_id }}' -- required +AND job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND is_admin_mode = '{{ is_admin_mode }}' +; +``` + + diff --git a/website/docs/services/content/index.md b/website/docs/services/content/index.md index 087f0c3..6ea6d27 100644 --- a/website/docs/services/content/index.md +++ b/website/docs/services/content/index.md @@ -18,36 +18,31 @@ content service documentation. :::info[Service Summary] -total resources: __22__ +total resources: __17__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/content/installed_apps_folder_jobs/index.md b/website/docs/services/content/installed_apps_folder_jobs/index.md new file mode 100644 index 0000000..60a271e --- /dev/null +++ b/website/docs/services/content/installed_apps_folder_jobs/index.md @@ -0,0 +1,184 @@ +--- +title: installed_apps_folder_jobs +hide_title: false +hide_table_of_contents: false +keywords: + - installed_apps_folder_jobs + - content + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an installed_apps_folder_jobs resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Asynchronous Installed Apps folder job status. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
object
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`).
stringAdditional status message generated if the status is not `Failed`. (wire: statusMessage)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, regionGet the status of an asynchronous Installed Apps folder job for the given job identifier. If job succeeds, use Installed Apps Job Result endpoint to fetch top-level content items in Installed Apps folder.
regionisAdminModeSchedule an asynchronous job to get the top-level Installed Apps content items.<br /><br />_You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier of the asynchronous Installed Apps folder job. (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringSet this to "true" if you want to perform the request as a Content Administrator.
+ +## `SELECT` examples + + + + +Get the status of an asynchronous Installed Apps folder job for the given job identifier. If job succeeds, use Installed Apps Job Result endpoint to fetch top-level content items in Installed Apps folder. + +```sql +SELECT +error, +status, +status_message +FROM sumologic.content.installed_apps_folder_jobs +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Schedule an asynchronous job to get the top-level Installed Apps content items.<br /><br />_You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._ + +```sql +EXEC sumologic.content.installed_apps_folder_jobs.start +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@isAdminMode='{{ isAdminMode }}' +; +``` + + diff --git a/website/docs/services/content/installed_apps_folder_results/index.md b/website/docs/services/content/installed_apps_folder_results/index.md new file mode 100644 index 0000000..d18e7bd --- /dev/null +++ b/website/docs/services/content/installed_apps_folder_results/index.md @@ -0,0 +1,202 @@ +--- +title: installed_apps_folder_results +hide_title: false +hide_table_of_contents: false +keywords: + - installed_apps_folder_results + - content + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an installed_apps_folder_results resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Installed Apps folder. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the content item. (example: 000000000C1C17C6)
stringThe name of the content item. (example: Personal)
stringIdentifier of the parent content item. (example: 0000000001C41EF2) (wire: parentId)
arrayA list of the content items.
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
stringDescription of the content item. (example: Personal folder for John Doe)
booleanIndicates whether the content item refers to scheduled search. This field is only relevant to `Search` content type. (wire: isScheduled)
stringType of the content item. Supported values are: 1. Folder 2. Search 3. Report (for old dashboards) 4. Dashboard (for new dashboards) 5. Lookups (example: Folder) (wire: itemType)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
arrayList of permissions the user has on the content item.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, regionGet result of an Installed Apps job for the given job identifier. The result will be "Installed Apps" folder with a list of top-level Installed Apps content items in `children` field.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier of the asynchronous Installed Apps folder job. (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get result of an Installed Apps job for the given job identifier. The result will be "Installed Apps" folder with a list of top-level Installed Apps content items in `children` field. + +```sql +SELECT +id, +name, +parent_id, +children, +created_at, +created_by, +description, +is_scheduled, +item_type, +modified_at, +modified_by, +permissions +FROM sumologic.content.installed_apps_folder_results +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/content/items/index.md b/website/docs/services/content/items/index.md new file mode 100644 index 0000000..6b558e7 --- /dev/null +++ b/website/docs/services/content/items/index.md @@ -0,0 +1,244 @@ +--- +title: items +hide_title: false +hide_table_of_contents: false +keywords: + - items + - content + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an items resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Content item corresponding to the given path. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the content item. (example: 000000000C1C17C6)
stringThe name of the content item. (example: Personal)
stringIdentifier of the parent content item. (example: 0000000001C41EF2) (wire: parentId)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
stringDescription of the content item. (example: Personal folder for John Doe)
booleanIndicates whether the content item refers to scheduled search. This field is only relevant to `Search` content type. (wire: isScheduled)
stringType of the content item. Supported values are: 1. Folder 2. Search 3. Report (for old dashboards) 4. Dashboard (for new dashboards) 5. Lookups (example: Folder) (wire: itemType)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
arrayList of permissions the user has on the content item.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
path, regionGet a content item corresponding to the given path.<br /><br />_Path is specified in the required query parameter `path`. The path should be URL encoded._ For example, to get "Acme Corp" folder of a user "user@sumo.com" you can use the following curl command:<br /> ```bash<br /> curl https:​//api.sumologic.com/api/v2/content/path?path=/Library/Users/user%40sumo.com/Acme%20Corp<br /> ```<br /><br /><br />The absolute path to a content item should be specified to get the item. The content library has "Library" folder at the root level. For items in "Personal" folder, the base path is "/Library/Users/user@sumo.com" where "user@sumo.com" is the email address of the user. For example if a user with email address `wile@acme.com` has `Rockets` folder inside Personal folder, the path of Rockets folder will be `/Library/Users/wile@acme.com/Rockets`.<br /><br />For items in "Admin Recommended" folder, the base path is "/Library/Admin Recommended". For example, given a folder `Acme` in Admin Recommended folder, the path will be `/Library/Admin Recommended/Acme`.
destinationFolderId, id, regionisAdminModeMoves an item from its current location to another folder.<br />
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the destination folder.
stringIdentifier of the item the user wants to move.
stringPath of the content item to retrieve. (example: /Library/Users/user@sumo.com/SampleFolder)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringSet this to "true" if you want to perform the request as a Content Administrator.
+ +## `SELECT` examples + + + + +Get a content item corresponding to the given path.<br /><br />_Path is specified in the required query parameter `path`. The path should be URL encoded._ For example, to get "Acme Corp" folder of a user "user@sumo.com" you can use the following curl command:<br /> ```bash<br /> curl https:​//api.sumologic.com/api/v2/content/path?path=/Library/Users/user%40sumo.com/Acme%20Corp<br /> ```<br /><br /><br />The absolute path to a content item should be specified to get the item. The content library has "Library" folder at the root level. For items in "Personal" folder, the base path is "/Library/Users/user@sumo.com" where "user@sumo.com" is the email address of the user. For example if a user with email address `wile@acme.com` has `Rockets` folder inside Personal folder, the path of Rockets folder will be `/Library/Users/wile@acme.com/Rockets`.<br /><br />For items in "Admin Recommended" folder, the base path is "/Library/Admin Recommended". For example, given a folder `Acme` in Admin Recommended folder, the path will be `/Library/Admin Recommended/Acme`. + +```sql +SELECT +id, +name, +parent_id, +created_at, +created_by, +description, +is_scheduled, +item_type, +modified_at, +modified_by, +permissions +FROM sumologic.content.items +WHERE path = '{{ path }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Moves an item from its current location to another folder.<br /> + +```sql +EXEC sumologic.content.items.move +@destinationFolderId='{{ destinationFolderId }}' --required, +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@isAdminMode='{{ isAdminMode }}' +; +``` + + diff --git a/website/docs/services/content/move/index.md b/website/docs/services/content/move/index.md deleted file mode 100644 index e3913f2..0000000 --- a/website/docs/services/content/move/index.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: move -hide_title: false -hide_table_of_contents: false -keywords: - - move - - content - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a move resource. - -## Overview - - - - -
Namemove
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
destinationFolderId, id, regionisAdminModeMoves an item from its current location to another folder.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the destination folder.
stringIdentifier of the item the user wants to move.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringSet this to "true" if you want to perform the request as a Content Administrator.
- -## Lifecycle Methods - - - - -Moves an item from its current location to another folder.
- -```sql -EXEC sumologic.content.move.moveItem -@destinationFolderId='{{ destinationFolderId }}' --required, -@id='{{ id }}' --required, -@region='{{ region }}' --required, -@isAdminMode='{{ isAdminMode }}' -; -``` -
-
diff --git a/website/docs/services/content/path/index.md b/website/docs/services/content/path/index.md deleted file mode 100644 index 9f2408a..0000000 --- a/website/docs/services/content/path/index.md +++ /dev/null @@ -1,231 +0,0 @@ ---- -title: path -hide_title: false -hide_table_of_contents: false -keywords: - - path - - content - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a path resource. - -## Overview - - - - -
Namepath
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -Full path of the content item. - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringPath of the content item. (example: /Library/Users/user@test.com/SampleFolder)
-
- - -Content item corresponding to the given path. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the content item. (example: 000000000C1C17C6)
stringThe name of the content item. (example: Personal)
string (date-time)Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD)
stringType of the content item. Supported values are: 1. Folder 2. Search 3. Report (for old dashboards) 4. Dashboard (for new dashboards) 5. Lookups (example: Folder)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8)
stringIdentifier of the parent content item. (example: 0000000001C41EF2)
arrayList of permissions the user has on the content item.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
contentId, regionGet full path of a content item with the given identifier.
path, regionGet a content item corresponding to the given path.

_Path is specified in the required query parameter `path`. The path should be URL encoded._ For example, to get "Acme Corp" folder of a user "user@sumo.com" you can use the following curl command:
```bash
curl https://api.sumologic.com/api/v2/content/path?path=/Library/Users/user%40sumo.com/Acme%20Corp
```


The absolute path to a content item should be specified to get the item. The content library has "Library" folder at the root level. For items in "Personal" folder, the base path is "/Library/Users/user@sumo.com" where "user@sumo.com" is the email address of the user. For example if a user with email address `wile@acme.com` has `Rockets` folder inside Personal folder, the path of Rockets folder will be `/Library/Users/wile@acme.com/Rockets`.

For items in "Admin Recommended" folder, the base path is "/Library/Admin Recommended". For example, given a folder `Acme` in Admin Recommended folder, the path will be `/Library/Admin Recommended/Acme`.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the content item to get the path.
stringPath of the content item to retrieve. (example: /Library/Users/user@sumo.com/SampleFolder)
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## `SELECT` examples - - - - -Get full path of a content item with the given identifier.
- -```sql -SELECT -path -FROM sumologic.content.path -WHERE contentId = '{{ contentId }}' -- required -AND region = '{{ region }}' -- required -; -``` -
- - -Get a content item corresponding to the given path.

_Path is specified in the required query parameter `path`. The path should be URL encoded._ For example, to get "Acme Corp" folder of a user "user@sumo.com" you can use the following curl command:
```bash
curl https://api.sumologic.com/api/v2/content/path?path=/Library/Users/user%40sumo.com/Acme%20Corp
```


The absolute path to a content item should be specified to get the item. The content library has "Library" folder at the root level. For items in "Personal" folder, the base path is "/Library/Users/user@sumo.com" where "user@sumo.com" is the email address of the user. For example if a user with email address `wile@acme.com` has `Rockets` folder inside Personal folder, the path of Rockets folder will be `/Library/Users/wile@acme.com/Rockets`.

For items in "Admin Recommended" folder, the base path is "/Library/Admin Recommended". For example, given a folder `Acme` in Admin Recommended folder, the path will be `/Library/Admin Recommended/Acme`. - -```sql -SELECT -id, -name, -createdAt, -createdBy, -itemType, -modifiedAt, -modifiedBy, -parentId, -permissions -FROM sumologic.content.path -WHERE path = '{{ path }}' -- required -AND region = '{{ region }}' -- required -; -``` -
-
diff --git a/website/docs/services/content/paths/index.md b/website/docs/services/content/paths/index.md new file mode 100644 index 0000000..63b94bc --- /dev/null +++ b/website/docs/services/content/paths/index.md @@ -0,0 +1,142 @@ +--- +title: paths +hide_title: false +hide_table_of_contents: false +keywords: + - paths + - content + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a paths resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Full path of the content item. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringPath of the content item. (example: /Library/Users/user@test.com/SampleFolder)
arrayThe items in the path of the content. (wire: pathItems)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
content_id, regionGet full path of a content item with the given identifier.<br />
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the content item to get the path. (wire: contentId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get full path of a content item with the given identifier.<br /> + +```sql +SELECT +path, +path_items +FROM sumologic.content.paths +WHERE content_id = '{{ content_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/content/permissions/index.md b/website/docs/services/content/permissions/index.md index a423e4b..6b91f12 100644 --- a/website/docs/services/content/permissions/index.md +++ b/website/docs/services/content/permissions/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a permissions resource. ## Overview - +
Namepermissions
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a permissions resource. The following fields are returned by `SELECT` queries: - + A list of permissions for the requested content item. @@ -51,14 +52,14 @@ A list of permissions for the requested content item. - + array - Explicitly assigned content permissions. + Explicitly assigned content permissions. (wire: explicitPermissions) - + array - Implicitly inherited content permissions. + Implicitly inherited content permissions. (wire: implicitPermissions) @@ -81,12 +82,26 @@ The following methods are available for this resource: - + id, region - explicitOnly, isAdminMode + explicit_only, is_admin_mode Returns content permissions of a content item with the given identifier. + + + + id, region, contentPermissionAssignments, notificationMessage, notifyRecipients + isAdminMode + Add permissions to a content item with the given identifier. + + + + + id, region, contentPermissionAssignments, notificationMessage, notifyRecipients + isAdminMode + Remove permissions from a content item with the given identifier. + @@ -111,42 +126,97 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) - - + + boolean - There are two permission types: explicit and implicit. Permissions specifically assigned to the content item are explicit. Permissions derived from a parent content item, like a folder are implicit. To return only explicit permissions set this to true. + There are two permission types: explicit and implicit. Permissions specifically assigned to the content item are explicit. Permissions derived from a parent content item, like a folder are implicit. To return only explicit permissions set this to true. (wire: explicitOnly) string Set this to "true" if you want to perform the request as a Content Administrator. + + + string + Set this to "true" if you want to perform the request as a Content Administrator. (wire: isAdminMode) + ## `SELECT` examples - + Returns content permissions of a content item with the given identifier. ```sql SELECT -explicitPermissions, -implicitPermissions +explicit_permissions, +implicit_permissions FROM sumologic.content.permissions WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required -AND explicitOnly = '{{ explicitOnly }}' -AND isAdminMode = '{{ isAdminMode }}' +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND explicit_only = '{{ explicit_only }}' +AND is_admin_mode = '{{ is_admin_mode }}' +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Add permissions to a content item with the given identifier. + +```sql +EXEC sumologic.content.permissions.add +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@isAdminMode='{{ isAdminMode }}' +@@json= +'{ +"contentPermissionAssignments": "{{ contentPermissionAssignments }}", +"notifyRecipients": {{ notifyRecipients }}, +"notificationMessage": "{{ notificationMessage }}" +}' +; +``` + + + +Remove permissions from a content item with the given identifier. + +```sql +EXEC sumologic.content.permissions.remove +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@isAdminMode='{{ isAdminMode }}' +@@json= +'{ +"contentPermissionAssignments": "{{ contentPermissionAssignments }}", +"notifyRecipients": {{ notifyRecipients }}, +"notificationMessage": "{{ notificationMessage }}" +}' ; ``` diff --git a/website/docs/services/content/permissions_add/index.md b/website/docs/services/content/permissions_add/index.md deleted file mode 100644 index 4e82e6f..0000000 --- a/website/docs/services/content/permissions_add/index.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: permissions_add -hide_title: false -hide_table_of_contents: false -keywords: - - permissions_add - - content - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a permissions_add resource. - -## Overview - - - - -
Namepermissions_add
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, region, contentPermissionAssignments, notificationMessage, notifyRecipientsisAdminModeAdd permissions to a content item with the given identifier.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe identifier of the content item.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringSet this to "true" if you want to perform the request as a Content Administrator.
- -## Lifecycle Methods - - - - -Add permissions to a content item with the given identifier. - -```sql -EXEC sumologic.content.permissions_add.addContentPermissions -@id='{{ id }}' --required, -@region='{{ region }}' --required, -@isAdminMode='{{ isAdminMode }}' -@@json= -'{ -"contentPermissionAssignments": "{{ contentPermissionAssignments }}", -"notifyRecipients": {{ notifyRecipients }}, -"notificationMessage": "{{ notificationMessage }}" -}' -; -``` - - diff --git a/website/docs/services/content/permissions_remove/index.md b/website/docs/services/content/permissions_remove/index.md deleted file mode 100644 index a77b36a..0000000 --- a/website/docs/services/content/permissions_remove/index.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: permissions_remove -hide_title: false -hide_table_of_contents: false -keywords: - - permissions_remove - - content - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a permissions_remove resource. - -## Overview - - - - -
Namepermissions_remove
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, region, contentPermissionAssignments, notificationMessage, notifyRecipientsisAdminModeRemove permissions from a content item with the given identifier.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe identifier of the content item.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringSet this to "true" if you want to perform the request as a Content Administrator.
- -## Lifecycle Methods - - - - -Remove permissions from a content item with the given identifier. - -```sql -EXEC sumologic.content.permissions_remove.removeContentPermissions -@id='{{ id }}' --required, -@region='{{ region }}' --required, -@isAdminMode='{{ isAdminMode }}' -@@json= -'{ -"contentPermissionAssignments": "{{ contentPermissionAssignments }}", -"notifyRecipients": {{ notifyRecipients }}, -"notificationMessage": "{{ notificationMessage }}" -}' -; -``` - - diff --git a/website/docs/services/content/folders_personal/index.md b/website/docs/services/content/personal_folder/index.md similarity index 59% rename from website/docs/services/content/folders_personal/index.md rename to website/docs/services/content/personal_folder/index.md index d928f1e..82ea15f 100644 --- a/website/docs/services/content/folders_personal/index.md +++ b/website/docs/services/content/personal_folder/index.md @@ -1,9 +1,9 @@ --- -title: folders_personal +title: personal_folder hide_title: false hide_table_of_contents: false keywords: - - folders_personal + - personal_folder - content - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a folders_personal resource. +Creates, updates, deletes, gets or lists a personal_folder resource. ## Overview - + - +
Namefolders_personal
Name
TypeResource
Id
Id
## Fields @@ -32,14 +33,14 @@ Creates, updates, deletes, gets or lists a folders_personal resourc The following fields are returned by `SELECT` queries: - + -The personal folder of the current user.
+The personal folder of the current user.<br /> @@ -60,45 +61,50 @@ The personal folder of the current user.
+ + + + + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - + - + @@ -126,7 +132,7 @@ The following methods are available for this resource: - + @@ -151,7 +157,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - +
string The name of the content item. (example: Personal)
stringIdentifier of the parent content item. (example: 0000000001C41EF2) (wire: parentId)
array A list of the content items.
string (date-time)Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD)Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
stringThe description of the folder. (example: This is a sample folder.)Description of the content item. (example: Personal folder for John Doe)
stringType of the content item. Supported values are: 1. Folder 2. Search 3. Report (for old dashboards) 4. Dashboard (for new dashboards) 5. Lookups (example: Folder)booleanIndicates whether the content item refers to scheduled search. This field is only relevant to `Search` content type. (wire: isScheduled)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z)stringType of the content item. Supported values are: 1. Folder 2. Search 3. Report (for old dashboards) 4. Dashboard (for new dashboards) 5. Lookups (example: Folder) (wire: itemType)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8)string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the parent content item. (example: 0000000001C41EF2)Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
region
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
@@ -159,12 +165,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the personal folder of the current user. @@ -172,17 +178,18 @@ Get the personal folder of the current user. SELECT id, name, +parent_id, children, -createdAt, -createdBy, +created_at, +created_by, description, -itemType, -modifiedAt, -modifiedBy, -parentId, +is_scheduled, +item_type, +modified_at, +modified_by, permissions -FROM sumologic.content.folders_personal -WHERE region = '{{ region }}' -- required +FROM sumologic.content.personal_folder +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/content_sync/index.md b/website/docs/services/content_sync/index.md new file mode 100644 index 0000000..60eab82 --- /dev/null +++ b/website/docs/services/content_sync/index.md @@ -0,0 +1,34 @@ +--- +title: content_sync +hide_title: false +hide_table_of_contents: false +keywords: + - content_sync + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +content_sync service documentation. + +:::info[Service Summary] + +total resources: __3__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/content_sync/sync_job_info/index.md b/website/docs/services/content_sync/sync_job_info/index.md new file mode 100644 index 0000000..be895cd --- /dev/null +++ b/website/docs/services/content_sync/sync_job_info/index.md @@ -0,0 +1,148 @@ +--- +title: sync_job_info +hide_title: false +hide_table_of_contents: false +keywords: + - sync_job_info + - content_sync + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a sync_job_info resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Information of Content Sync Job. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
arrayList of Content and Configuration Information. (wire: contentList)
object (wire: destinationChildOrgInfo)
object (wire: sourceChildOrgInfo)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, regionInformation Of Content Sync Job by ID.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringId of Content Sync Job (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Information Of Content Sync Job by ID. + +```sql +SELECT +content_list, +destination_child_org_info, +source_child_org_info +FROM sumologic.content_sync.sync_job_info +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/content_sync/sync_job_results/index.md b/website/docs/services/content_sync/sync_job_results/index.md new file mode 100644 index 0000000..a23195c --- /dev/null +++ b/website/docs/services/content_sync/sync_job_results/index.md @@ -0,0 +1,154 @@ +--- +title: sync_job_results +hide_title: false +hide_table_of_contents: false +keywords: + - sync_job_results + - content_sync + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a sync_job_results resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Result of Content Sync Job. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of Content or Configuration (example: MATCH-S00574) (wire: contentId)
object (wire: childOrganization)
stringMessage Passed while processing content or configuration sync. (example: Sync Failed due to an Internal Error, Please check with support team for more details.)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, status, regionGet Result Of Content Sync Job by ID.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringId of Content Sync Job (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringSpecific Status of Content Sync Job Result to be fetched. Possible values are "SUCCESS", "FAILED", "WARNING", "CANCELLED".
+ +## `SELECT` examples + + + + +Get Result Of Content Sync Job by ID. + +```sql +SELECT +content_id, +child_organization, +message +FROM sumologic.content_sync.sync_job_results +WHERE job_id = '{{ job_id }}' -- required +AND status = '{{ status }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/content_sync/sync_jobs/index.md b/website/docs/services/content_sync/sync_jobs/index.md new file mode 100644 index 0000000..30bedef --- /dev/null +++ b/website/docs/services/content_sync/sync_jobs/index.md @@ -0,0 +1,316 @@ +--- +title: sync_jobs +hide_title: false +hide_table_of_contents: false +keywords: + - sync_jobs + - content_sync + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a sync_jobs resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Content Sync Job Status + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerContent Sync Job progress percentage.
stringContent Sync Job status. (example: Success)
+
+ + +Last triggered Content Sync Job Details. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringContent Sync Job Id. (example: 68B6D772B616DC06) (wire: jobId)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, regionGet Status of Content Sync Job.
regionGet Content Sync Job Id of last triggered job.
region, content_list, destination_child_org_info, source_child_org_infoSync Content and Configuration across Organization.
jobId, regionretryOptionsRetry Content Sync Job by ID to re-execute job.
jobId, regionCancel In Progress Sync Job by ID..
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringId of Content Sync Job
stringId of Content Sync Job (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringControls which contents to retry
+ +## `SELECT` examples + + + + +Get Status of Content Sync Job. + +```sql +SELECT +progress, +status +FROM sumologic.content_sync.sync_jobs +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Get Content Sync Job Id of last triggered job. + +```sql +SELECT +job_id +FROM sumologic.content_sync.sync_jobs +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples + + + + +Sync Content and Configuration across Organization. + +```sql +INSERT INTO sumologic.content_sync.sync_jobs ( +source_child_org_info, +destination_child_org_info, +content_list, +region +) +SELECT +'{{ source_child_org_info }}' /* required */, +'{{ destination_child_org_info }}' /* required */, +'{{ content_list }}' /* required */, +'{{ region }}' +RETURNING +job_id +; +``` + + + +{`# Description fields are for documentation purposes +- name: sync_jobs + props: + - name: region + value: "{{ region }}" + description: Required parameter for the sync_jobs resource. + - name: source_child_org_info + value: + orgId: "{{ orgId }}" + orgName: "{{ orgName }}" + - name: destination_child_org_info + value: + included: + - orgId: "{{ orgId }}" + orgName: "{{ orgName }}" + excluded: + - orgId: "{{ orgId }}" + orgName: "{{ orgName }}" + - name: content_list + description: | + List of Content and Configuration Information. + value: + - id: "{{ id }}" + type: "{{ type }}" + name: "{{ name }}" + options: "{{ options }}" +`} + + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Retry Content Sync Job by ID to re-execute job. + +```sql +EXEC sumologic.content_sync.sync_jobs.retry +@jobId='{{ jobId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@retryOptions='{{ retryOptions }}' +; +``` + + + +Cancel In Progress Sync Job by ID.. + +```sql +EXEC sumologic.content_sync.sync_jobs.cancel +@jobId='{{ jobId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/dashboards/dashboards/index.md b/website/docs/services/dashboards/dashboards/index.md index 71a21db..c686f96 100644 --- a/website/docs/services/dashboards/dashboards/index.md +++ b/website/docs/services/dashboards/dashboards/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a dashboards resource. ## Overview - +
Namedashboards
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a dashboards resource. The following fields are returned by `SELECT` queries: - + Dashboard object that was requested. @@ -57,9 +58,19 @@ Dashboard object that was requested. Unique identifier for the dashboard. This id is used to get detailed information about the dashboard, such as panels, variables and the layout. (example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2) - + string - Content identifier for the dashboard. This id is used to connect to the Sumo Content Library and get general metadata about the dashboard. Use this id if you want to search for dashboards in Sumo folders. (example: 1) + Content identifier for the dashboard. This id is used to connect to the Sumo Content Library and get general metadata about the dashboard. Use this id if you want to search for dashboards in Sumo folders. (example: 1) (wire: contentId) + + + + string + The identifier of the folder to save the dashboard in. By default it is saved in your personal folder. (example: 000000000C1C17C6) (wire: folderId) + + + + string + Scheduled report identifier for the dashboard. Only most recently modified report schedule is rerun per dashboard. This id is used to manage the schedule details through the scheduled report API. (example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd) (wire: scheduleId) @@ -71,45 +82,55 @@ Dashboard object that was requested. string If set denotes that the dashboard concerns a given domain (e.g. `aws`, `k8s`, `app`). (example: aws, default: ) - - - string - The identifier of the folder to save the dashboard in. By default it is saved in your personal folder. (example: 000000000C1C17C6) - array If set to non-empty array denotes that the dashboard concerns given hierarchies. + + + boolean + Whether to highlight threshold violations. (wire: highlightViolations) + + + + boolean + Is the dashboard public (wire: isPublic) + object + + + object + The organization details to run the dashboard by + array Panels in the dashboard. - + integer (int32) - Interval of time (in seconds) to automatically refresh the dashboard. A value of 0 means we never automatically refresh the dashboard. Allowed values are `0`, `30`, `60`, 120`, `300`, `900`, `3600`, `86400`. + Interval of time (in seconds) to automatically refresh the dashboard. A value of 0 means we never automatically refresh the dashboard. Allowed values are `0`, `30`, `60`, `120`, `300`, `900`, `1800`, `3600`, `7200`, `86400`. (wire: refreshInterval) - - string - Scheduled report identifier for the dashboard. Only most recently modified report schedule is rerun per dashboard. This id is used to manage the schedule details through the scheduled report API. (example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd) + + integer (int32) + Count of report schedules for the dashboard. (wire: scheduleCount) string - Theme for the dashboard. Either `Light` or `Dark`. (pattern: ^(light|dark|Light|Dark)$, example: light, default: Light, x-pattern-message: Must be `Light`, or `Dark`) + Theme for the dashboard. Either `Light` or `Dark`. (pattern: <code>^(light|dark|Light|Dark)$</code>, example: light, default: Light, x-pattern-message: Must be `Light`, or `Dark`) - + object - + (wire: timeRange) @@ -117,9 +138,9 @@ Dashboard object that was requested. Title of the dashboard. (example: Kubernetes Dashboard) - + object - Map of the topology labels. Each label has a key and a list of values. If a value is `*`, it means the label will match content for all values of its key. + Map of the topology labels. Each label has a key and a list of values. If a value is `*`, it means the label will match content for all values of its key. (wire: topologyLabelMap) @@ -129,7 +150,7 @@ Dashboard object that was requested. - + Paginated list of dashboards under the Personal folder created by the user. @@ -143,14 +164,99 @@ Paginated list of dashboards under the Personal folder created by the user. - + + string + Unique identifier for the dashboard. This id is used to get detailed information about the dashboard, such as panels, variables and the layout. (example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2) + + + + string + Content identifier for the dashboard. This id is used to connect to the Sumo Content Library and get general metadata about the dashboard. Use this id if you want to search for dashboards in Sumo folders. (example: 1) (wire: contentId) + + + + string + The identifier of the folder to save the dashboard in. By default it is saved in your personal folder. (example: 000000000C1C17C6) (wire: folderId) + + + + string + Scheduled report identifier for the dashboard. Only most recently modified report schedule is rerun per dashboard. This id is used to manage the schedule details through the scheduled report API. (example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd) (wire: scheduleId) + + + + string + Description of the dashboard. (example: A view of pods, namespaces and nodes of your cluster.) + + + + string + If set denotes that the dashboard concerns a given domain (e.g. `aws`, `k8s`, `app`). (example: aws, default: ) + + + array - List of dashboards. + If set to non-empty array denotes that the dashboard concerns given hierarchies. + + + + boolean + Whether to highlight threshold violations. (wire: highlightViolations) + + + + boolean + Is the dashboard public (wire: isPublic) + + + + object + + + + + object + The organization details to run the dashboard by + + + + array + Panels in the dashboard. + + + + integer (int32) + Interval of time (in seconds) to automatically refresh the dashboard. A value of 0 means we never automatically refresh the dashboard. Allowed values are `0`, `30`, `60`, `120`, `300`, `900`, `1800`, `3600`, `7200`, `86400`. (wire: refreshInterval) + + + + integer (int32) + Count of report schedules for the dashboard. (wire: scheduleCount) + + + + string + Theme for the dashboard. Either `Light` or `Dark`. (pattern: <code>^(light|dark|Light|Dark)$</code>, example: light, default: Light, x-pattern-message: Must be `Light`, or `Dark`) - + + object + (wire: timeRange) + + + string - Next continuation token. `token` is set to null when no more pages are left. (example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc) + Title of the dashboard. (example: Kubernetes Dashboard) + + + + object + Map of the topology labels. Each label has a key and a list of values. If a value is `*`, it means the label will match content for all values of its key. (wire: topologyLabelMap) + + + + array + Variables to apply to the panels. @@ -173,39 +279,39 @@ The following methods are available for this resource: - + id, region Get a dashboard by the given identifier. - + region limit, token, mode List all dashboards under the Personal folder created by the user or under folders viewable by user. - + - region, data__timeRange, data__title + region, time_range, title Creates a new dashboard. - - - id, region + + + id, region, time_range, title - Delete a dashboard by the given identifier. + Update a dashboard by the given identifier. - - - id, region, timeRange, title + + + id, region - Update a dashboard by the given identifier. + Delete a dashboard by the given identifier. @@ -226,12 +332,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the dashboard to update. + Identifier of the dashboard to delete. string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -254,49 +360,70 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a dashboard by the given identifier. ```sql SELECT id, -contentId, +content_id, +folder_id, +schedule_id, description, domain, -folderId, hierarchies, +highlight_violations, +is_public, layout, +organizations, panels, -refreshInterval, -scheduleId, +refresh_interval, +schedule_count, theme, -timeRange, +time_range, title, -topologyLabelMap, +topology_label_map, variables FROM sumologic.dashboards.dashboards WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + List all dashboards under the Personal folder created by the user or under folders viewable by user. ```sql SELECT -dashboards, -next +id, +content_id, +folder_id, +schedule_id, +description, +domain, +hierarchies, +highlight_violations, +is_public, +layout, +organizations, +panels, +refresh_interval, +schedule_count, +theme, +time_range, +title, +topology_label_map, +variables FROM sumologic.dashboards.dashboards -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' AND mode = '{{ mode }}' @@ -309,179 +436,251 @@ AND mode = '{{ mode }}' ## `INSERT` examples - + Creates a new dashboard. ```sql INSERT INTO sumologic.dashboards.dashboards ( -data__title, -data__description, -data__folderId, -data__topologyLabelMap, -data__domain, -data__hierarchies, -data__refreshInterval, -data__timeRange, -data__panels, -data__layout, -data__variables, -data__theme, +title, +description, +folder_id, +topology_label_map, +domain, +hierarchies, +refresh_interval, +time_range, +panels, +layout, +variables, +theme, +is_public, +highlight_violations, +organizations, region ) SELECT '{{ title }}' /* required */, '{{ description }}', -'{{ folderId }}', -'{{ topologyLabelMap }}', +'{{ folder_id }}', +'{{ topology_label_map }}', '{{ domain }}', '{{ hierarchies }}', -{{ refreshInterval }}, -'{{ timeRange }}' /* required */, +{{ refresh_interval }}, +'{{ time_range }}' /* required */, '{{ panels }}', '{{ layout }}', '{{ variables }}', '{{ theme }}', +{{ is_public }}, +{{ highlight_violations }}, +'{{ organizations }}', '{{ region }}' RETURNING id, -contentId, +content_id, +folder_id, +schedule_id, description, domain, -folderId, hierarchies, +highlight_violations, +is_public, layout, +organizations, panels, -refreshInterval, -scheduleId, +refresh_interval, +schedule_count, theme, -timeRange, +time_range, title, -topologyLabelMap, +topology_label_map, variables ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: dashboards props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the dashboards resource. - name: title - value: string + value: "{{ title }}" description: | Title of the dashboard. - name: description - value: string + value: "{{ description }}" description: | Description of the dashboard. - - name: folderId - value: string + - name: folder_id + value: "{{ folder_id }}" description: | The identifier of the folder to save the dashboard in. By default it is saved in your personal folder. - - name: topologyLabelMap - value: object + - name: topology_label_map description: | - Map of the topology labels. Each label has a key and a list of values. If a value is `*`, it means the label will match content for all values of its key. + Map of the topology labels. Each label has a key and a list of values. If a value is \`*\`, it means the label will match content for all values of its key. + value: + data: "{{ data }}" - name: domain - value: string + value: "{{ domain }}" description: | - If set denotes that the dashboard concerns a given domain (e.g. `aws`, `k8s`, `app`). + If set denotes that the dashboard concerns a given domain (e.g. \`aws\`, \`k8s\`, \`app\`). default: - name: hierarchies - value: array + value: + - "{{ hierarchies }}" description: | If set to non-empty array denotes that the dashboard concerns given hierarchies. default: - - name: refreshInterval - value: integer + - name: refresh_interval + value: {{ refresh_interval }} description: | - Interval of time (in seconds) to automatically refresh the dashboard. A value of 0 means we never automatically refresh the dashboard. Allowed values are `0`, `30`, `60`, 120`, `300`, `900`, `3600`, `86400`. - - name: timeRange - value: object + Interval of time (in seconds) to automatically refresh the dashboard. A value of 0 means we never automatically refresh the dashboard. Allowed values are \`0\`, \`30\`, \`60\`, \`120\`, \`300\`, \`900\`, \`1800\`, \`3600\`, \`7200\`, \`86400\`. + - name: time_range + value: + type: "{{ type }}" - name: panels - value: array description: | Panels in the dashboard. + value: + - id: "{{ id }}" + key: "{{ key }}" + title: "{{ title }}" + visualSettings: "{{ visualSettings }}" + keepVisualSettingsConsistentWithParent: {{ keepVisualSettingsConsistentWithParent }} + panelType: "{{ panelType }}" - name: layout - value: object + value: + layoutType: "{{ layoutType }}" + layoutStructures: + - key: "{{ key }}" + structure: "{{ structure }}" - name: variables - value: array description: | Variables to apply to the panels. + value: + - id: "{{ id }}" + name: "{{ name }}" + displayName: "{{ displayName }}" + defaultValue: "{{ defaultValue }}" + sourceDefinition: + variableSourceType: "{{ variableSourceType }}" + allowMultiSelect: {{ allowMultiSelect }} + includeAllOption: {{ includeAllOption }} + hideFromUI: {{ hideFromUI }} + valueType: "{{ valueType }}" - name: theme - value: string + value: "{{ theme }}" description: | - Theme for the dashboard. Either `Light` or `Dark`. + Theme for the dashboard. Either \`Light\` or \`Dark\`. default: Light -``` + - name: is_public + value: {{ is_public }} + description: | + Is the dashboard public + default: false + - name: highlight_violations + value: {{ highlight_violations }} + description: | + Whether to highlight threshold violations. + default: false + - name: organizations + description: | + The organization details to run the dashboard by + value: + defaultOrgIds: + - "{{ defaultOrgIds }}" +`} + -## `DELETE` examples +## `UPDATE` examples - + -Delete a dashboard by the given identifier. +Update a dashboard by the given identifier. ```sql -DELETE FROM sumologic.dashboards.dashboards -WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required -; +UPDATE sumologic.dashboards.dashboards +SET +title = '{{ title }}', +description = '{{ description }}', +folder_id = '{{ folder_id }}', +topology_label_map = '{{ topology_label_map }}', +domain = '{{ domain }}', +hierarchies = '{{ hierarchies }}', +refresh_interval = {{ refresh_interval }}, +time_range = '{{ time_range }}', +panels = '{{ panels }}', +layout = '{{ layout }}', +variables = '{{ variables }}', +theme = '{{ theme }}', +is_public = {{ is_public }}, +highlight_violations = {{ highlight_violations }}, +organizations = '{{ organizations }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND time_range = '{{ time_range }}' --required +AND title = '{{ title }}' --required +RETURNING +id, +content_id, +folder_id, +schedule_id, +description, +domain, +hierarchies, +highlight_violations, +is_public, +layout, +organizations, +panels, +refresh_interval, +schedule_count, +theme, +time_range, +title, +topology_label_map, +variables; ``` -## Lifecycle Methods +## `DELETE` examples - + -Update a dashboard by the given identifier. +Delete a dashboard by the given identifier. ```sql -EXEC sumologic.dashboards.dashboards.updateDashboard -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"title": "{{ title }}", -"description": "{{ description }}", -"folderId": "{{ folderId }}", -"topologyLabelMap": "{{ topologyLabelMap }}", -"domain": "{{ domain }}", -"hierarchies": "{{ hierarchies }}", -"refreshInterval": {{ refreshInterval }}, -"timeRange": "{{ timeRange }}", -"panels": "{{ panels }}", -"layout": "{{ layout }}", -"variables": "{{ variables }}", -"theme": "{{ theme }}" -}' +DELETE FROM sumologic.dashboards.dashboards +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/dashboards/index.md b/website/docs/services/dashboards/index.md index f6127d8..94126b1 100644 --- a/website/docs/services/dashboards/index.md +++ b/website/docs/services/dashboards/index.md @@ -18,7 +18,7 @@ dashboards service documentation. :::info[Service Summary] -total resources: __4__ +total resources: __5__ ::: @@ -26,10 +26,11 @@ total resources: __4__ \ No newline at end of file diff --git a/website/docs/services/dashboards/migration_results/index.md b/website/docs/services/dashboards/migration_results/index.md new file mode 100644 index 0000000..c7ad18c --- /dev/null +++ b/website/docs/services/dashboards/migration_results/index.md @@ -0,0 +1,160 @@ +--- +title: migration_results +hide_title: false +hide_table_of_contents: false +keywords: + - migration_results + - dashboards + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a migration_results resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Dashboard migration job result. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
objectA mapping of Legacy Dashboard Content Ids to migrated Dashboard(New) Content Ids. Only successful migration are shown here, see errors field for failed migrations and the failure reason.
objectA mapping of Legacy Dashboards Content Identifiers that failed validation to the failure reason(s).
objectA mapping of Legacy Dashboard Content Ids to migrated Dashboard(New) info. Only successful migration are shown here, see errors field for failed migrations and the failure reason. (wire: richData)
object
objectA mapping of Legacy Dashboards Content Identifiers to warnings.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, regionGet the result of an asynchronous Dashboard Migration request for the given job identifier.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier of the asynchronous Dashboard Migration job. (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get the result of an asynchronous Dashboard Migration request for the given job identifier. + +```sql +SELECT +data, +errors, +rich_data, +status, +warnings +FROM sumologic.dashboards.migration_results +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/dashboards/migrations/index.md b/website/docs/services/dashboards/migrations/index.md new file mode 100644 index 0000000..fb3ba46 --- /dev/null +++ b/website/docs/services/dashboards/migrations/index.md @@ -0,0 +1,234 @@ +--- +title: migrations +hide_title: false +hide_table_of_contents: false +keywords: + - migrations + - dashboards + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a migrations resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Dashboard migration job status. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
object
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`).
stringAdditional status message generated if the status is not `Failed`. (wire: statusMessage)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, regionGet the status of an asynchronous Dashboard Migration job for the given job identifier. If job succeeds, use Dashboard Migration Result endpoint to see results of the migration.
region, content_idsSchedule an asynchronous job to migrate a list of legacy Dashboards to Dashboard(New). Once migration is finished, the migrated dashboards will be in the same folder as the corresponding legacy Dashboard.<br />Note: This feature is in beta and may not support all existing features of legacy dashboards.<br />
region, contentIdsGet a preview of migrating Legacy Dashboards to Dashboard(New)
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier of the asynchronous Dashboard Migration job. (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get the status of an asynchronous Dashboard Migration job for the given job identifier. If job succeeds, use Dashboard Migration Result endpoint to see results of the migration. + +```sql +SELECT +error, +status, +status_message +FROM sumologic.dashboards.migrations +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples + + + + +Schedule an asynchronous job to migrate a list of legacy Dashboards to Dashboard(New). Once migration is finished, the migrated dashboards will be in the same folder as the corresponding legacy Dashboard.<br />Note: This feature is in beta and may not support all existing features of legacy dashboards.<br /> + +```sql +INSERT INTO sumologic.dashboards.migrations ( +content_ids, +region +) +SELECT +'{{ content_ids }}' /* required */, +'{{ region }}' +RETURNING +job_id +; +``` + + + +{`# Description fields are for documentation purposes +- name: migrations + props: + - name: region + value: "{{ region }}" + description: Required parameter for the migrations resource. + - name: content_ids + value: + - "{{ content_ids }}" + description: | + Content identifiers of the Legacy dashboards. +`} + + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Get a preview of migrating Legacy Dashboards to Dashboard(New) + +```sql +EXEC sumologic.dashboards.migrations.preview +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"contentIds": "{{ contentIds }}" +}' +; +``` + + diff --git a/website/docs/services/dashboards/report_jobs/index.md b/website/docs/services/dashboards/report_jobs/index.md index 5f49456..925896b 100644 --- a/website/docs/services/dashboards/report_jobs/index.md +++ b/website/docs/services/dashboards/report_jobs/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a report_jobs resource. ## Overview - +
Namereport_jobs
Name
TypeResource
Id
@@ -31,8 +32,44 @@ Creates, updates, deletes, gets or lists a report_jobs resource. The following fields are returned by `SELECT` queries: -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + + +The status of the report generation job. + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
object
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`).
stringAdditional status message generated if the status is not `Failed`. (wire: statusMessage)
+
+
## Methods @@ -50,11 +87,18 @@ The following methods are available for this resource: - - - region, action, exportFormat, template, timezone + + + job_id, region + + Get the status of an asynchronous report generation request for the given job identifier. On success, use the getReportGenerationResult endpoint to get the result of the report generation job. + + + + + region, action, export_format, template, timezone - Schedule an asynchronous job to generate a report from a template. All items in the template will be included unless specified. See template section for more details on individual templates. Reports can be generated in Pdf or Png format and exported in various methods (ex. direct download). You will get back an asynchronous job identifier on success. Use the [getAsyncReportGenerationStatus] endpoint and the job identifier you got back in the response to track the status of an asynchronous report generation job.
+ Schedule an asynchronous job to generate a report from a template. All items in the template will be included unless specified. See template section for more details on individual templates. Reports can be generated in Pdf or Png format and exported in various methods (ex. direct download). You will get back an asynchronous job identifier on success. Use the getAsyncReportGenerationStatus endpoint and the job identifier you got back in the response to track the status of an asynchronous report generation job.<br /> @@ -72,37 +116,114 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The identifier of the asynchronous report generation job. (wire: jobId) + string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) -## Lifecycle Methods +## `SELECT` examples + + + + +Get the status of an asynchronous report generation request for the given job identifier. On success, use the getReportGenerationResult endpoint to get the result of the report generation job. + +```sql +SELECT +error, +status, +status_message +FROM sumologic.dashboards.report_jobs +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples - + -Schedule an asynchronous job to generate a report from a template. All items in the template will be included unless specified. See template section for more details on individual templates. Reports can be generated in Pdf or Png format and exported in various methods (ex. direct download). You will get back an asynchronous job identifier on success. Use the [getAsyncReportGenerationStatus] endpoint and the job identifier you got back in the response to track the status of an asynchronous report generation job.
+Schedule an asynchronous job to generate a report from a template. All items in the template will be included unless specified. See template section for more details on individual templates. Reports can be generated in Pdf or Png format and exported in various methods (ex. direct download). You will get back an asynchronous job identifier on success. Use the getAsyncReportGenerationStatus endpoint and the job identifier you got back in the response to track the status of an asynchronous report generation job.<br /> ```sql -EXEC sumologic.dashboards.report_jobs.generateDashboardReport -@region='{{ region }}' --required -@@json= -'{ -"action": "{{ action }}", -"exportFormat": "{{ exportFormat }}", -"timezone": "{{ timezone }}", -"template": "{{ template }}" -}' +INSERT INTO sumologic.dashboards.report_jobs ( +action, +export_format, +timezone, +template, +theme, +export_width, +region +) +SELECT +'{{ action }}' /* required */, +'{{ export_format }}' /* required */, +'{{ timezone }}' /* required */, +'{{ template }}' /* required */, +'{{ theme }}', +{{ export_width }}, +'{{ region }}' +RETURNING +id ; ``` +
+ + +{`# Description fields are for documentation purposes +- name: report_jobs + props: + - name: region + value: "{{ region }}" + description: Required parameter for the report_jobs resource. + - name: action + description: | + The base class of all report action types. \`DirectDownloadReportAction\` downloads dashboard from browser. New action types may be supported in the future. + value: + actionType: "{{ actionType }}" + - name: export_format + value: "{{ export_format }}" + description: | + File format of the report. Can be \`Pdf\` or \`Png\`. \`Pdf\` is portable document format. \`Png\` is portable graphics image format. + - name: timezone + value: "{{ timezone }}" + description: | + Time zone for the query time ranges. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + - name: template + value: + templateType: "{{ templateType }}" + - name: theme + value: "{{ theme }}" + description: | + Theme for the report rendering. If absent, the default theme of the dashboard is used. + - name: export_width + value: {{ export_width }} + description: | + Pixel width of the exported PDF or PNG. If absent, the default width is used. +`} +
diff --git a/website/docs/services/dashboards/report_jobs_result/index.md b/website/docs/services/dashboards/report_jobs_result/index.md deleted file mode 100644 index 8b7a00b..0000000 --- a/website/docs/services/dashboards/report_jobs_result/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: report_jobs_result -hide_title: false -hide_table_of_contents: false -keywords: - - report_jobs_result - - dashboards - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a report_jobs_result resource. - -## Overview - - - - -
Namereport_jobs_result
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
jobId, regionGet the result of an asynchronous report generation request for the given job identifier.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe identifier of the asynchronous report generation job.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Get the result of an asynchronous report generation request for the given job identifier. - -```sql -EXEC sumologic.dashboards.report_jobs_result.getAsyncReportGenerationResult -@jobId='{{ jobId }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/dashboards/report_jobs_status/index.md b/website/docs/services/dashboards/report_jobs_status/index.md deleted file mode 100644 index 5706aa8..0000000 --- a/website/docs/services/dashboards/report_jobs_status/index.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: report_jobs_status -hide_title: false -hide_table_of_contents: false -keywords: - - report_jobs_status - - dashboards - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a report_jobs_status resource. - -## Overview - - - - -
Namereport_jobs_status
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -The status of the report generation job. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
object
stringWhether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`).
stringAdditional status message generated if the status is not `Failed`.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
jobId, regionGet the status of an asynchronous report generation request for the given job identifier. On success, use the [getReportGenerationResult] endpoint to get the result of the report generation job.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe identifier of the asynchronous report generation job.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## `SELECT` examples - - - - -Get the status of an asynchronous report generation request for the given job identifier. On success, use the [getReportGenerationResult] endpoint to get the result of the report generation job. - -```sql -SELECT -error, -status, -statusMessage -FROM sumologic.dashboards.report_jobs_status -WHERE jobId = '{{ jobId }}' -- required -AND region = '{{ region }}' -- required -; -``` - - diff --git a/website/docs/services/dashboards/report_schedules/index.md b/website/docs/services/dashboards/report_schedules/index.md new file mode 100644 index 0000000..e8f2f2d --- /dev/null +++ b/website/docs/services/dashboards/report_schedules/index.md @@ -0,0 +1,557 @@ +--- +title: report_schedules +hide_title: false +hide_table_of_contents: false +keywords: + - report_schedules + - dashboards + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a report_schedules resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Dashboard report schedule object that was requested. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of dashboard the schedule will generate report for. (example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2) (wire: dashboardId)
stringIdentifier of the dashboard report schedule. (example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd) (wire: scheduleId)
stringCron-like expression specifying the report's schedule. Field scheduleType must be set to "Custom", otherwise, scheduleType takes precedence over cronExpression. (example: 0 0/15 * * * ? *) (wire: cronExpression)
objectThe base class of all connection types. (wire: emailNotification)
integerPixel width of the exported PDF or PNG. If absent, the default width is used. (wire: exportWidth)
booleanIs the dashboard report schedule active (wire: isActive)
stringFile format of the report. Can be `Pdf` or `Png`. `Pdf` is portable document format. `Png` is portable graphics image format. (pattern: <code>^(Pdf|Png)$</code>, example: Pdf, x-pattern-message: should be one of the following: 'Pdf', 'Png') (wire: reportFormat)
stringRun schedule of the scheduled report. Set to "Custom" to specify the schedule with a CRON expression. Possible schedule types are: - `RealTime` - `15Minutes` - `1Hour` - `2Hours` - `4Hours` - `6Hours` - `8Hours` - `12Hours` - `1Day` - `1Week` - `Custom` (example: 1Day) (wire: scheduleType)
stringTheme for the report rendering. Must be `Light` or `Dark`. If absent, the dashboard's own theme is used. (pattern: <code>^(light|dark|Light|Dark)$</code>, example: Light, x-pattern-message: Must be `Light`, `light`, `dark` or `Dark`)
object (wire: timeRange)
stringTime zone identifier for time specification. Either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used. (example: America/Los_Angeles) (wire: timeZone)
object (wire: variableValues)
+
+ + +Paginated list of dashboard report schedules created by the user. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of dashboard the schedule will generate report for. (example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2) (wire: dashboardId)
stringIdentifier of the dashboard report schedule. (example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd) (wire: scheduleId)
stringCron-like expression specifying the report's schedule. Field scheduleType must be set to "Custom", otherwise, scheduleType takes precedence over cronExpression. (example: 0 0/15 * * * ? *) (wire: cronExpression)
objectThe base class of all connection types. (wire: emailNotification)
integerPixel width of the exported PDF or PNG. If absent, the default width is used. (wire: exportWidth)
booleanIs the dashboard report schedule active (wire: isActive)
stringFile format of the report. Can be `Pdf` or `Png`. `Pdf` is portable document format. `Png` is portable graphics image format. (pattern: <code>^(Pdf|Png)$</code>, example: Pdf, x-pattern-message: should be one of the following: 'Pdf', 'Png') (wire: reportFormat)
stringRun schedule of the scheduled report. Set to "Custom" to specify the schedule with a CRON expression. Possible schedule types are: - `RealTime` - `15Minutes` - `1Hour` - `2Hours` - `4Hours` - `6Hours` - `8Hours` - `12Hours` - `1Day` - `1Week` - `Custom` (example: 1Day) (wire: scheduleType)
stringTheme for the report rendering. Must be `Light` or `Dark`. If absent, the dashboard's own theme is used. (pattern: <code>^(light|dark|Light|Dark)$</code>, example: Light, x-pattern-message: Must be `Light`, `light`, `dark` or `Dark`)
object (wire: timeRange)
stringTime zone identifier for time specification. Either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used. (example: America/Los_Angeles) (wire: timeZone)
object (wire: variableValues)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
schedule_id, regionGet the schedule of a scheduled dashboard report by the given identifier.
regiondashboard_id, limit, tokenList all dashboard report schedules created by the user.
region, dashboard_id, email_notification, report_format, schedule_type, time_zoneSchedule dashboard report to send at a specific date and time. The report should be sent as attachment or downloadable URL in one of the following notification types: 'Email', 'AWSLambda', 'AzureFunctions', 'Datadog', 'HipChat', 'Jira', 'NewRelic', 'Opsgenie', 'PagerDuty', 'Slack', 'MicrosoftTeams', 'ServiceNow', 'SumoCloudSOAR' and 'Webhook'.
schedule_id, region, dashboard_id, email_notification, report_format, schedule_type, time_zoneUpdate the schedule of a scheduled dashboard report by the given identifier.
schedule_id, regionDelete the schedule of a scheduled dashboard report by the given identifier. The scheduled dashboard report will no longer be generated and sent.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringUUID of the dashboard report schedule to delete. (wire: scheduleId)
stringUUID of the dashboard that the report shedules are associated with. (wire: dashboardId)
integer (int32)Limit the number of dashboard report schedules returned in the response. The number of dashboard report schedules returned may be less than the `limit`. (example: 50)
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. (example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc)
+ +## `SELECT` examples + + + + +Get the schedule of a scheduled dashboard report by the given identifier. + +```sql +SELECT +dashboard_id, +schedule_id, +cron_expression, +email_notification, +export_width, +is_active, +report_format, +schedule_type, +theme, +time_range, +time_zone, +variable_values +FROM sumologic.dashboards.report_schedules +WHERE schedule_id = '{{ schedule_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +List all dashboard report schedules created by the user. + +```sql +SELECT +dashboard_id, +schedule_id, +cron_expression, +email_notification, +export_width, +is_active, +report_format, +schedule_type, +theme, +time_range, +time_zone, +variable_values +FROM sumologic.dashboards.report_schedules +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND dashboard_id = '{{ dashboard_id }}' +AND limit = '{{ limit }}' +AND token = '{{ token }}' +; +``` + + + + +## `INSERT` examples + + + + +Schedule dashboard report to send at a specific date and time. The report should be sent as attachment or downloadable URL in one of the following notification types: 'Email', 'AWSLambda', 'AzureFunctions', 'Datadog', 'HipChat', 'Jira', 'NewRelic', 'Opsgenie', 'PagerDuty', 'Slack', 'MicrosoftTeams', 'ServiceNow', 'SumoCloudSOAR' and 'Webhook'. + +```sql +INSERT INTO sumologic.dashboards.report_schedules ( +dashboard_id, +time_range, +variable_values, +report_format, +schedule_type, +cron_expression, +time_zone, +email_notification, +is_active, +theme, +export_width, +region +) +SELECT +'{{ dashboard_id }}' /* required */, +'{{ time_range }}', +'{{ variable_values }}', +'{{ report_format }}' /* required */, +'{{ schedule_type }}' /* required */, +'{{ cron_expression }}', +'{{ time_zone }}' /* required */, +'{{ email_notification }}' /* required */, +{{ is_active }}, +'{{ theme }}', +{{ export_width }}, +'{{ region }}' +RETURNING +dashboard_id, +schedule_id, +cron_expression, +email_notification, +export_width, +is_active, +report_format, +schedule_type, +theme, +time_range, +time_zone, +variable_values +; +``` + + + +{`# Description fields are for documentation purposes +- name: report_schedules + props: + - name: region + value: "{{ region }}" + description: Required parameter for the report_schedules resource. + - name: dashboard_id + value: "{{ dashboard_id }}" + description: | + Identifier of dashboard the schedule will generate report for. + - name: time_range + value: + type: "{{ type }}" + - name: variable_values + value: + data: "{{ data }}" + richData: "{{ richData }}" + - name: report_format + value: "{{ report_format }}" + description: | + File format of the report. Can be \`Pdf\` or \`Png\`. \`Pdf\` is portable document format. \`Png\` is portable graphics image format. + - name: schedule_type + value: "{{ schedule_type }}" + description: | + Run schedule of the scheduled report. Set to "Custom" to specify the schedule with a CRON expression. Possible schedule types are: + - \`RealTime\` + - \`15Minutes\` + - \`1Hour\` + - \`2Hours\` + - \`4Hours\` + - \`6Hours\` + - \`8Hours\` + - \`12Hours\` + - \`1Day\` + - \`1Week\` + - \`Custom\` + - name: cron_expression + value: "{{ cron_expression }}" + description: | + Cron-like expression specifying the report's schedule. Field scheduleType must be set to "Custom", otherwise, scheduleType takes precedence over cronExpression. + - name: time_zone + value: "{{ time_zone }}" + description: | + Time zone identifier for time specification. Either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used. + - name: email_notification + description: | + The base class of all connection types. + value: + connectionType: "{{ connectionType }}" + recipients: + - "{{ recipients }}" + subject: "{{ subject }}" + messageBody: "{{ messageBody }}" + timeZone: "{{ timeZone }}" + includeQuery: {{ includeQuery }} + includeResultSet: {{ includeResultSet }} + - name: is_active + value: {{ is_active }} + description: | + Is the dashboard report schedule active + default: true + - name: theme + value: "{{ theme }}" + description: | + Theme for the report rendering. Must be \`Light\` or \`Dark\`. If absent, the dashboard's own theme is used. + - name: export_width + value: {{ export_width }} + description: | + Pixel width of the exported PDF or PNG. If absent, the default width is used. +`} + + + + + +## `UPDATE` examples + + + + +Update the schedule of a scheduled dashboard report by the given identifier. + +```sql +UPDATE sumologic.dashboards.report_schedules +SET +dashboard_id = '{{ dashboard_id }}', +time_range = '{{ time_range }}', +variable_values = '{{ variable_values }}', +report_format = '{{ report_format }}', +schedule_type = '{{ schedule_type }}', +cron_expression = '{{ cron_expression }}', +time_zone = '{{ time_zone }}', +email_notification = '{{ email_notification }}', +is_active = {{ is_active }}, +theme = '{{ theme }}', +export_width = {{ export_width }} +WHERE +schedule_id = '{{ schedule_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND dashboard_id = '{{ dashboard_id }}' --required +AND email_notification = '{{ email_notification }}' --required +AND report_format = '{{ report_format }}' --required +AND schedule_type = '{{ schedule_type }}' --required +AND time_zone = '{{ time_zone }}' --required +RETURNING +dashboard_id, +schedule_id, +cron_expression, +email_notification, +export_width, +is_active, +report_format, +schedule_type, +theme, +time_range, +time_zone, +variable_values; +``` + + + + +## `DELETE` examples + + + + +Delete the schedule of a scheduled dashboard report by the given identifier. The scheduled dashboard report will no longer be generated and sent. + +```sql +DELETE FROM sumologic.dashboards.report_schedules +WHERE schedule_id = '{{ schedule_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/data_archiving/destinations/index.md b/website/docs/services/data_archiving/destinations/index.md new file mode 100644 index 0000000..d64fb5e --- /dev/null +++ b/website/docs/services/data_archiving/destinations/index.md @@ -0,0 +1,395 @@ +--- +title: destinations +hide_title: false +hide_table_of_contents: false +keywords: + - destinations + - data_archiving + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a destinations resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Data archiving destination object requested. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the data archiving destination. (example: 1)
stringName of the data archiving destination. (example: my-archive-destination) (wire: destinationName)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
object (wire: destinationConfig)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
+
+ + +List of all data archiving destinations. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the data archiving destination. (example: 1)
stringName of the data archiving destination. (example: my-archive-destination) (wire: destinationName)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
object (wire: destinationConfig)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet a data archiving destination by the given identifier.
regionlimit, tokenGet a list of all data archiving destinations configured for installed collectors.
region, destination_name, destination_configCreate a new data archiving destination.
id, region, destination_config, destination_nameUpdate a data archiving destination by the given identifier.
id, regionDelete an existing data archiving destination with the given identifier.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the data archiving destination to delete. (example: 1)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
integer (int32)Limit the number of destinations returned in the response. The number of destinations returned may be less than the `limit`.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left.
+ +## `SELECT` examples + + + + +Get a data archiving destination by the given identifier. + +```sql +SELECT +id, +destination_name, +created_at, +created_by, +destination_config, +modified_at, +modified_by +FROM sumologic.data_archiving.destinations +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Get a list of all data archiving destinations configured for installed collectors. + +```sql +SELECT +id, +destination_name, +created_at, +created_by, +destination_config, +modified_at, +modified_by +FROM sumologic.data_archiving.destinations +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +; +``` + + + + +## `INSERT` examples + + + + +Create a new data archiving destination. + +```sql +INSERT INTO sumologic.data_archiving.destinations ( +destination_name, +destination_config, +region +) +SELECT +'{{ destination_name }}' /* required */, +'{{ destination_config }}' /* required */, +'{{ region }}' +RETURNING +id, +destination_name, +created_at, +created_by, +destination_config, +modified_at, +modified_by +; +``` + + + +{`# Description fields are for documentation purposes +- name: destinations + props: + - name: region + value: "{{ region }}" + description: Required parameter for the destinations resource. + - name: destination_name + value: "{{ destination_name }}" + description: | + Name of the data archiving destination. + - name: destination_config + value: + destinationType: "{{ destinationType }}" +`} + + + + + +## `UPDATE` examples + + + + +Update a data archiving destination by the given identifier. + +```sql +UPDATE sumologic.data_archiving.destinations +SET +destination_name = '{{ destination_name }}', +destination_config = '{{ destination_config }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND destination_config = '{{ destination_config }}' --required +AND destination_name = '{{ destination_name }}' --required +RETURNING +id, +destination_name, +created_at, +created_by, +destination_config, +modified_at, +modified_by; +``` + + + + +## `DELETE` examples + + + + +Delete an existing data archiving destination with the given identifier. + +```sql +DELETE FROM sumologic.data_archiving.destinations +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/data_archiving/index.md b/website/docs/services/data_archiving/index.md new file mode 100644 index 0000000..eab9203 --- /dev/null +++ b/website/docs/services/data_archiving/index.md @@ -0,0 +1,33 @@ +--- +title: data_archiving +hide_title: false +hide_table_of_contents: false +keywords: + - data_archiving + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +data_archiving service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/data_deletion_rules/data_deletion_rules/index.md b/website/docs/services/data_deletion_rules/data_deletion_rules/index.md new file mode 100644 index 0000000..acdeb78 --- /dev/null +++ b/website/docs/services/data_deletion_rules/data_deletion_rules/index.md @@ -0,0 +1,544 @@ +--- +title: data_deletion_rules +hide_title: false +hide_table_of_contents: false +keywords: + - data_deletion_rules + - data_deletion_rules + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a data_deletion_rules resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The data deletion Rule Definition that was requested + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier for the deletion rule.
stringName of the deletion rule. (wire: ruleName)
booleanFlag to order the search results in the order collector received it. This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. (wire: byReceiptTime)
string (date-time)Creation timestamp in UTC. (wire: createdAt)
stringIdentifier of the user who created the deletion rule. (example: 0000000006743FE8) (wire: createdBy)
arrayList of the different units of deleted ranges since the deletion rule has been created. (wire: deletedRanges)
integer (int64)End time of the search as a number of milliseconds. (wire: endMillis)
stringErrors related to the deletion rule.
string (date-time)Last modification timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
stringDefine the parsing mode to scan the JSON format log messages. Possible values are: 1. `AutoParse` 2. `Manual` In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https:​//help.sumologic.com/?cid=0011). (pattern: <code>^(AutoParse|Manual)$</code>, example: AutoParse, default: Manual) (wire: parsingMode)
stringquery to filter out the logs that need to be deleted.
stringReason mentioning what data is being deleted and why. (wire: ruleReason)
integer (int64)Start time of the search as a number of milliseconds. (wire: startMillis)
stringStatus of the deletion rule.
stringTimezone for the resolving timerange from startMillis,endMillis (default: UTC)
+
+ + +A paginated list of data deletion Rules + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier for the deletion rule.
stringName of the deletion rule. (wire: ruleName)
booleanFlag to order the search results in the order collector received it. This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. (wire: byReceiptTime)
string (date-time)Creation timestamp in UTC. (wire: createdAt)
stringIdentifier of the user who created the deletion rule. (example: 0000000006743FE8) (wire: createdBy)
arrayList of the different units of deleted ranges since the deletion rule has been created. (wire: deletedRanges)
integer (int64)End time of the search as a number of milliseconds. (wire: endMillis)
stringErrors related to the deletion rule.
string (date-time)Last modification timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
stringDefine the parsing mode to scan the JSON format log messages. Possible values are: 1. `AutoParse` 2. `Manual` In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https:​//help.sumologic.com/?cid=0011). (pattern: <code>^(AutoParse|Manual)$</code>, example: AutoParse, default: Manual) (wire: parsingMode)
stringquery to filter out the logs that need to be deleted.
stringReason mentioning what data is being deleted and why. (wire: ruleReason)
integer (int64)Start time of the search as a number of milliseconds. (wire: startMillis)
stringStatus of the deletion rule.
stringTimezone for the resolving timerange from startMillis,endMillis (default: UTC)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet Data Deletion Rule information for the given Id with updated fields.
regionlimit, tokenGet a list of data deletion rules in the organization. The response is paginated with a default limit of 50 rules.
region, end_millis, query, rule_name, rule_reason, start_millisCreate a new data deletion rule to delete logs.
id, regionDelete the data Deletion Rule with the given Id. Allowed only if the rule is cancelled.
id, regionCancel the data Deletion Rule with the given Id. Allowed only if the rule is waiting for approval.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the Deletion Rule to cancel
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
integer (int32)Limit the number of deletion Rules returned in the response (example: 100)
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left.
+ +## `SELECT` examples + + + + +Get Data Deletion Rule information for the given Id with updated fields. + +```sql +SELECT +id, +rule_name, +by_receipt_time, +created_at, +created_by, +deleted_ranges, +end_millis, +error, +modified_at, +modified_by, +parsing_mode, +query, +rule_reason, +start_millis, +status, +timezone +FROM sumologic.data_deletion_rules.data_deletion_rules +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Get a list of data deletion rules in the organization. The response is paginated with a default limit of 50 rules. + +```sql +SELECT +id, +rule_name, +by_receipt_time, +created_at, +created_by, +deleted_ranges, +end_millis, +error, +modified_at, +modified_by, +parsing_mode, +query, +rule_reason, +start_millis, +status, +timezone +FROM sumologic.data_deletion_rules.data_deletion_rules +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +; +``` + + + + +## `INSERT` examples + + + + +Create a new data deletion rule to delete logs. + +```sql +INSERT INTO sumologic.data_deletion_rules.data_deletion_rules ( +rule_name, +rule_reason, +query, +start_millis, +end_millis, +by_receipt_time, +timezone, +parsing_mode, +region +) +SELECT +'{{ rule_name }}' /* required */, +'{{ rule_reason }}' /* required */, +'{{ query }}' /* required */, +{{ start_millis }} /* required */, +{{ end_millis }} /* required */, +{{ by_receipt_time }}, +'{{ timezone }}', +'{{ parsing_mode }}', +'{{ region }}' +RETURNING +id, +rule_name, +by_receipt_time, +created_at, +created_by, +deleted_ranges, +end_millis, +error, +modified_at, +modified_by, +parsing_mode, +query, +rule_reason, +start_millis, +status, +timezone +; +``` + + + +{`# Description fields are for documentation purposes +- name: data_deletion_rules + props: + - name: region + value: "{{ region }}" + description: Required parameter for the data_deletion_rules resource. + - name: rule_name + value: "{{ rule_name }}" + description: | + Name of the deletion rule. + - name: rule_reason + value: "{{ rule_reason }}" + description: | + Reason mentioning what data is being deleted and why. + - name: query + value: "{{ query }}" + description: | + query to filter out the logs that need to be deleted. + - name: start_millis + value: {{ start_millis }} + description: | + Start time of the search as a number of milliseconds. + - name: end_millis + value: {{ end_millis }} + description: | + End time of the search as a number of milliseconds. + - name: by_receipt_time + value: {{ by_receipt_time }} + description: | + Flag to order the search results in the order collector received it. This has the value \`true\` if the search is to be run by receipt time and \`false\` if it is to be run by message time. + default: false + - name: timezone + value: "{{ timezone }}" + description: | + Timezone for the resolving timerange from startMillis,endMillis + default: UTC + - name: parsing_mode + value: "{{ parsing_mode }}" + description: | + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. \`AutoParse\` + 2. \`Manual\` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + default: Manual +`} + + + + + +## `DELETE` examples + + + + +Delete the data Deletion Rule with the given Id. Allowed only if the rule is cancelled. + +```sql +DELETE FROM sumologic.data_deletion_rules.data_deletion_rules +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Cancel the data Deletion Rule with the given Id. Allowed only if the rule is waiting for approval. + +```sql +EXEC sumologic.data_deletion_rules.data_deletion_rules.cancel +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/data_deletion_rules/index.md b/website/docs/services/data_deletion_rules/index.md new file mode 100644 index 0000000..a562b22 --- /dev/null +++ b/website/docs/services/data_deletion_rules/index.md @@ -0,0 +1,33 @@ +--- +title: data_deletion_rules +hide_title: false +hide_table_of_contents: false +keywords: + - data_deletion_rules + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +data_deletion_rules service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/data_masking_rules/data_masking_rules/index.md b/website/docs/services/data_masking_rules/data_masking_rules/index.md new file mode 100644 index 0000000..bcc9407 --- /dev/null +++ b/website/docs/services/data_masking_rules/data_masking_rules/index.md @@ -0,0 +1,495 @@ +--- +title: data_masking_rules +hide_title: false +hide_table_of_contents: false +keywords: + - data_masking_rules + - data_masking_rules + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a data_masking_rules resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Data masking rule object that was requested. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the data masking rule. (example: 00000000FF42A0C3)
stringName of the data masking rule. Use a name that makes it easy to identify the rule. Must be unique within the organization. This field is immutable and cannot be changed after creation. (example: Email Masking)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
stringOptional description of the data masking rule. Provide context about what PII this rule masks and why it's needed. (example: Masks email addresses in application logs)
booleanWhether the data masking rule is active. Only enabled rules are applied to search results. Set to false to temporarily disable a rule without deleting it.
stringThe string to replace matched PII with. Defaults to '##redactedPII##' if not specified. Use descriptive mask strings like 'EMAIL_REDACTED' or 'PHONE_REDACTED' for clarity. (example: EMAIL_REDACTED, default: ##redactedPII##) (wire: maskString)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
stringRegular expression pattern to match PII data that should be masked. The pattern must be valid according to Java regex syntax. All matches in search results will be replaced with the mask string. Required when creating a rule. When updating, if omitted the existing pattern is retained. (example: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b) (wire: regexPattern)
+
+ + +A paginated list of data masking rules. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the data masking rule. (example: 00000000FF42A0C3)
stringName of the data masking rule. Use a name that makes it easy to identify the rule. Must be unique within the organization. This field is immutable and cannot be changed after creation. (example: Email Masking)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
stringOptional description of the data masking rule. Provide context about what PII this rule masks and why it's needed. (example: Masks email addresses in application logs)
booleanWhether the data masking rule is active. Only enabled rules are applied to search results. Set to false to temporarily disable a rule without deleting it.
stringThe string to replace matched PII with. Defaults to '##redactedPII##' if not specified. Use descriptive mask strings like 'EMAIL_REDACTED' or 'PHONE_REDACTED' for clarity. (example: EMAIL_REDACTED, default: ##redactedPII##) (wire: maskString)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
stringRegular expression pattern to match PII data that should be masked. The pattern must be valid according to Java regex syntax. All matches in search results will be replaced with the mask string. Required when creating a rule. When updating, if omitted the existing pattern is retained. (example: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b) (wire: regexPattern)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet a data masking rule with the given identifier.
regionlimit, tokenGet a list of all data masking rules for the current organization. The response is paginated with a default limit of 100 rules per page.
region, enabled, name, regex_patternCreate a new data masking rule. The rule will be applied to search results at query time, replacing matches of the regex pattern with the specified mask string.<br />**Note:** Changes to data masking rules may take up to 30 seconds to take effect.
id, region, enabledUpdate an existing data masking rule. Only the fields provided in the request are updated; omitted fields retain their current values. The rule name is immutable and cannot be changed after creation.<br />**Note:** Changes to data masking rules may take up to 30 seconds to take effect.
id, regionDelete a data masking rule with the given identifier.<br />**Note:** Changes to data masking rules may take up to 30 seconds to take effect.
region, regexPattern, textEvaluate a regex pattern against input text. This endpoint can be used to test regex patterns for data masking rules. You can provide your own mask string which will be used for masking, otherwise it will be masked with default value of ##redactedPII##. The response includes the masked text, match count, and positions of matches in the masked output text.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the data masking rule to delete.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
integer (int32)Limit the number of data masking rules returned in the response. The number of rules returned may be less than the `limit`.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results.
+ +## `SELECT` examples + + + + +Get a data masking rule with the given identifier. + +```sql +SELECT +id, +name, +created_at, +created_by, +description, +enabled, +mask_string, +modified_at, +modified_by, +regex_pattern +FROM sumologic.data_masking_rules.data_masking_rules +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Get a list of all data masking rules for the current organization. The response is paginated with a default limit of 100 rules per page. + +```sql +SELECT +id, +name, +created_at, +created_by, +description, +enabled, +mask_string, +modified_at, +modified_by, +regex_pattern +FROM sumologic.data_masking_rules.data_masking_rules +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +; +``` + + + + +## `INSERT` examples + + + + +Create a new data masking rule. The rule will be applied to search results at query time, replacing matches of the regex pattern with the specified mask string.<br />**Note:** Changes to data masking rules may take up to 30 seconds to take effect. + +```sql +INSERT INTO sumologic.data_masking_rules.data_masking_rules ( +description, +regex_pattern, +mask_string, +enabled, +name, +region +) +SELECT +'{{ description }}', +'{{ regex_pattern }}' /* required */, +'{{ mask_string }}', +{{ enabled }} /* required */, +'{{ name }}' /* required */, +'{{ region }}' +RETURNING +id, +name, +created_at, +created_by, +description, +enabled, +mask_string, +modified_at, +modified_by, +regex_pattern +; +``` + + + +{`# Description fields are for documentation purposes +- name: data_masking_rules + props: + - name: region + value: "{{ region }}" + description: Required parameter for the data_masking_rules resource. + - name: description + value: "{{ description }}" + description: | + Optional description of the data masking rule. Provide context about what PII this rule masks and why it's needed. + - name: regex_pattern + value: "{{ regex_pattern }}" + description: | + Regular expression pattern to match PII data that should be masked. The pattern must be valid according to Java regex syntax. All matches in search results will be replaced with the mask string. Required when creating a rule. When updating, if omitted the existing pattern is retained. + - name: mask_string + value: "{{ mask_string }}" + description: | + The string to replace matched PII with. Defaults to '##redactedPII##' if not specified. Use descriptive mask strings like 'EMAIL_REDACTED' or 'PHONE_REDACTED' for clarity. + default: ##redactedPII## + - name: enabled + value: {{ enabled }} + description: | + Whether the data masking rule is active. Only enabled rules are applied to search results. Set to false to temporarily disable a rule without deleting it. + default: true + - name: name + value: "{{ name }}" + description: | + Name of the data masking rule. Use a name that makes it easy to identify the rule. Must be unique within the organization. This field is immutable and cannot be changed after creation. +`} + + + + + +## `UPDATE` examples + + + + +Update an existing data masking rule. Only the fields provided in the request are updated; omitted fields retain their current values. The rule name is immutable and cannot be changed after creation.<br />**Note:** Changes to data masking rules may take up to 30 seconds to take effect. + +```sql +UPDATE sumologic.data_masking_rules.data_masking_rules +SET +description = '{{ description }}', +regex_pattern = '{{ regex_pattern }}', +mask_string = '{{ mask_string }}', +enabled = {{ enabled }} +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND enabled = {{ enabled }} --required +RETURNING +id, +name, +created_at, +created_by, +description, +enabled, +mask_string, +modified_at, +modified_by, +regex_pattern; +``` + + + + +## `DELETE` examples + + + + +Delete a data masking rule with the given identifier.<br />**Note:** Changes to data masking rules may take up to 30 seconds to take effect. + +```sql +DELETE FROM sumologic.data_masking_rules.data_masking_rules +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Evaluate a regex pattern against input text. This endpoint can be used to test regex patterns for data masking rules. You can provide your own mask string which will be used for masking, otherwise it will be masked with default value of ##redactedPII##. The response includes the masked text, match count, and positions of matches in the masked output text. + +```sql +EXEC sumologic.data_masking_rules.data_masking_rules.evaluate +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"regexPattern": "{{ regexPattern }}", +"maskString": "{{ maskString }}", +"text": "{{ text }}" +}' +; +``` + + diff --git a/website/docs/services/data_masking_rules/index.md b/website/docs/services/data_masking_rules/index.md new file mode 100644 index 0000000..a20c43a --- /dev/null +++ b/website/docs/services/data_masking_rules/index.md @@ -0,0 +1,33 @@ +--- +title: data_masking_rules +hide_title: false +hide_table_of_contents: false +keywords: + - data_masking_rules + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +data_masking_rules service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/dynamic_parsing_rules/dynamic_parsing_rules/index.md b/website/docs/services/dynamic_parsing_rules/dynamic_parsing_rules/index.md index 5da7773..addb5fe 100644 --- a/website/docs/services/dynamic_parsing_rules/dynamic_parsing_rules/index.md +++ b/website/docs/services/dynamic_parsing_rules/dynamic_parsing_rules/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a dynamic_parsing_rules re ## Overview - +
Namedynamic_parsing_rules
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a dynamic_parsing_rules re The following fields are returned by `SELECT` queries: - + Dynamic parsing rule object that was requested. @@ -62,14 +63,14 @@ Dynamic parsing rule object that was requested. Name of the dynamic parsing rule. Use a name that makes it easy to identify the rule. (example: DynamicParsingRule123) - + string (dateTime) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt) - + string - Identifier of the user who created the resource. + Identifier of the user who created the resource. (wire: createdBy) @@ -77,19 +78,19 @@ Dynamic parsing rule object that was requested. Is the dynamic parsing rule enabled. - + boolean - Whether the rule has been defined by the system, rather than by a user. + Whether the rule has been defined by the system, rather than by a user. (wire: isSystemRule) - + string (dateTime) - Last modification timestamp in UTC. + Last modification timestamp in UTC. (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. + Identifier of the user who last modified the resource. (wire: modifiedBy) @@ -99,7 +100,7 @@ Dynamic parsing rule object that was requested. - + A paginated list of dynamic parsing rules. @@ -113,14 +114,49 @@ A paginated list of dynamic parsing rules. - - array - List of dynamic parsing rules. + + string + Unique identifier for the dynamic parsing rule. (example: 0000000001C41EE4) + + + + string + Name of the dynamic parsing rule. Use a name that makes it easy to identify the rule. (example: DynamicParsingRule123) + + + + string (dateTime) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt) + + + + string + Identifier of the user who created the resource. (wire: createdBy) + + + + boolean + Is the dynamic parsing rule enabled. + + + + boolean + Whether the rule has been defined by the system, rather than by a user. (wire: isSystemRule) + + + + string (dateTime) + Last modification timestamp in UTC. (wire: modifiedAt) + + + + string + Identifier of the user who last modified the resource. (wire: modifiedBy) - + string - Next continuation token. (example: 0000000001C51FF7) + Scope of the dynamic parsing rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. (example: _sourceHost=127.0.0.1) @@ -143,39 +179,39 @@ The following methods are available for this resource: - + id, region Get a dynamic parsing rule with the given identifier. - + region limit, token Get a list of all dynamic parsing rules. The response is paginated with a default limit of 100 dynamic parsing rules per page. - + - region, data__enabled, data__name, data__scope + region, enabled, name, scope Create a new dynamic parsing rule. - - - id, region + + + id, region, enabled, name, scope - Delete a dynamic parsing rule with the given identifier. + Update an existing dynamic parsing rule. All properties specified in the request are replaced. Missing properties are set to their default values. - - - id, region, enabled, name, scope + + + id, region - Update an existing dynamic parsing rule. All properties specified in the request are replaced. Missing properties are set to their default values. + Delete a dynamic parsing rule with the given identifier. @@ -196,12 +232,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the dynamic parsing rule to update. + Identifier of the dynamic parsing rule to delete. string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -219,13 +255,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a dynamic parsing rule with the given identifier. @@ -233,29 +269,36 @@ Get a dynamic parsing rule with the given identifier. SELECT id, name, -createdAt, -createdBy, +created_at, +created_by, enabled, -isSystemRule, -modifiedAt, -modifiedBy, +is_system_rule, +modified_at, +modified_by, scope FROM sumologic.dynamic_parsing_rules.dynamic_parsing_rules WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + Get a list of all dynamic parsing rules. The response is paginated with a default limit of 100 dynamic parsing rules per page. ```sql SELECT -data, -next +id, +name, +created_at, +created_by, +enabled, +is_system_rule, +modified_at, +modified_by, +scope FROM sumologic.dynamic_parsing_rules.dynamic_parsing_rules -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' ; @@ -267,21 +310,21 @@ AND token = '{{ token }}' ## `INSERT` examples - + Create a new dynamic parsing rule. ```sql INSERT INTO sumologic.dynamic_parsing_rules.dynamic_parsing_rules ( -data__name, -data__scope, -data__enabled, +name, +scope, +enabled, region ) SELECT @@ -292,87 +335,98 @@ SELECT RETURNING id, name, -createdAt, -createdBy, +created_at, +created_by, enabled, -isSystemRule, -modifiedAt, -modifiedBy, +is_system_rule, +modified_at, +modified_by, scope ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: dynamic_parsing_rules props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the dynamic_parsing_rules resource. - name: name - value: string + value: "{{ name }}" description: | Name of the dynamic parsing rule. Use a name that makes it easy to identify the rule. - name: scope - value: string + value: "{{ scope }}" description: | Scope of the dynamic parsing rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. - name: enabled - value: boolean + value: {{ enabled }} description: | Is the dynamic parsing rule enabled. default: true -``` +`} + -## `DELETE` examples +## `UPDATE` examples - + -Delete a dynamic parsing rule with the given identifier. +Update an existing dynamic parsing rule. All properties specified in the request are replaced. Missing properties are set to their default values. ```sql -DELETE FROM sumologic.dynamic_parsing_rules.dynamic_parsing_rules -WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required -; +UPDATE sumologic.dynamic_parsing_rules.dynamic_parsing_rules +SET +name = '{{ name }}', +scope = '{{ scope }}', +enabled = {{ enabled }} +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND enabled = {{ enabled }} --required +AND name = '{{ name }}' --required +AND scope = '{{ scope }}' --required +RETURNING +id, +name, +created_at, +created_by, +enabled, +is_system_rule, +modified_at, +modified_by, +scope; ``` -## Lifecycle Methods +## `DELETE` examples - + -Update an existing dynamic parsing rule. All properties specified in the request are replaced. Missing properties are set to their default values. +Delete a dynamic parsing rule with the given identifier. ```sql -EXEC sumologic.dynamic_parsing_rules.dynamic_parsing_rules.updateDynamicParsingRule -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"name": "{{ name }}", -"scope": "{{ scope }}", -"enabled": {{ enabled }} -}' +DELETE FROM sumologic.dynamic_parsing_rules.dynamic_parsing_rules +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/event_extraction_rules/event_extraction_rules/index.md b/website/docs/services/event_extraction_rules/event_extraction_rules/index.md new file mode 100644 index 0000000..379e661 --- /dev/null +++ b/website/docs/services/event_extraction_rules/event_extraction_rules/index.md @@ -0,0 +1,495 @@ +--- +title: event_extraction_rules +hide_title: false +hide_table_of_contents: false +keywords: + - event_extraction_rules + - event_extraction_rules + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an event_extraction_rules resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Requested event extraction rule. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringId of the event extraction rule. (example: 0000000001213227)
stringName of event extraction rule. (example: foo)
objectConfiguration for the Event Extraction Rule. This object defines how event fields are mapped to their corresponding values. Each field specifies a `valueSource`, which provides the actual value, and an optional `mappingType`, indicating the value is hardcoded. The following fields are **required**: - `eventType`: Type of the event. Accepted values are `Deployment`, `Feature Flag Change`, `Configuration Change` or `Infrastructure Change`. - `eventPriority`: Indicates the priority of the event. Accepted values are `High`, `Medium`, or `Low`. - `eventSource`: Source system or component where the event originated (e.g., "Jenkins"). - `eventName`: Descriptive name of the event (e.g., "monitor-manager deployed."). The following fields are **optional**: - `eventDescription`: Additional context or details about the event. Custom fields can also be added as needed to capture domain-specific event data.
objectCorrelation Expression specifies how to determine related events for a log search query. The value of `eventFieldName` from Events is compared with the values of `queryFieldName` from the log search query output using the defined stringMatchingAlgorithm. Events that match according to this algorithm are considered correlated. (wire: correlationExpression)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt)
stringIdentifier of the user who created the resource. (wire: createdBy)
stringDescription of event extraction rule. (example: foo)
stringReason for disabling the event extraction rule, if applicable. (example: Event Extraction Rule output exceeded maximum allowed rate of 1000 events per hour in last 24 hours.) (wire: disableReason)
booleanFlag indicating whether the event extraction rule is enabled or disabled.
string (date-time)Last modification timestamp in UTC. (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (wire: modifiedBy)
stringQuery string for the Event Extraction Rule. Logs matching this query are periodically ingested into the `sumologic_userdata_events` index (**Events**). Guidelines for creating the query: - Optimize the query to limit the number of returned log messages (intended for special logs only). - The query runs in `Manual` mode, explicitly parse and extract only the necessary fields for event correlation and visualization. - Use the `fields` operator to restrict the output to required fields. (example: _sourceCategory=eventSource)
+
+ + +Event extraction rules. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringId of the event extraction rule. (example: 0000000001213227)
stringName of event extraction rule. (example: foo)
objectConfiguration for the Event Extraction Rule. This object defines how event fields are mapped to their corresponding values. Each field specifies a `valueSource`, which provides the actual value, and an optional `mappingType`, indicating the value is hardcoded. The following fields are **required**: - `eventType`: Type of the event. Accepted values are `Deployment`, `Feature Flag Change`, `Configuration Change` or `Infrastructure Change`. - `eventPriority`: Indicates the priority of the event. Accepted values are `High`, `Medium`, or `Low`. - `eventSource`: Source system or component where the event originated (e.g., "Jenkins"). - `eventName`: Descriptive name of the event (e.g., "monitor-manager deployed."). The following fields are **optional**: - `eventDescription`: Additional context or details about the event. Custom fields can also be added as needed to capture domain-specific event data.
objectCorrelation Expression specifies how to determine related events for a log search query. The value of `eventFieldName` from Events is compared with the values of `queryFieldName` from the log search query output using the defined stringMatchingAlgorithm. Events that match according to this algorithm are considered correlated. (wire: correlationExpression)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt)
stringIdentifier of the user who created the resource. (wire: createdBy)
stringDescription of event extraction rule. (example: foo)
stringReason for disabling the event extraction rule, if applicable. (example: Event Extraction Rule output exceeded maximum allowed rate of 1000 events per hour in last 24 hours.) (wire: disableReason)
booleanFlag indicating whether the event extraction rule is enabled or disabled.
string (date-time)Last modification timestamp in UTC. (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (wire: modifiedBy)
stringQuery string for the Event Extraction Rule. Logs matching this query are periodically ingested into the `sumologic_userdata_events` index (**Events**). Guidelines for creating the query: - Optimize the query to limit the number of returned log messages (intended for special logs only). - The query runs in `Manual` mode, explicitly parse and extract only the necessary fields for event correlation and visualization. - Use the `fields` operator to restrict the output to required fields. (example: _sourceCategory=eventSource)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet an event extraction rule.
regionGet all event extraction rules.
region, configuration, name, queryCreate event extraction rule.
id, region, configuration, name, queryUpdate an event extraction rule.
id, regionDelete an event extraction rule.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier of the event extraction rule. (example: 000000000000000A)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get an event extraction rule. + +```sql +SELECT +id, +name, +configuration, +correlation_expression, +created_at, +created_by, +description, +disable_reason, +enabled, +modified_at, +modified_by, +query +FROM sumologic.event_extraction_rules.event_extraction_rules +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Get all event extraction rules. + +```sql +SELECT +id, +name, +configuration, +correlation_expression, +created_at, +created_by, +description, +disable_reason, +enabled, +modified_at, +modified_by, +query +FROM sumologic.event_extraction_rules.event_extraction_rules +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples + + + + +Create event extraction rule. + +```sql +INSERT INTO sumologic.event_extraction_rules.event_extraction_rules ( +name, +description, +query, +correlation_expression, +configuration, +region +) +SELECT +'{{ name }}' /* required */, +'{{ description }}', +'{{ query }}' /* required */, +'{{ correlation_expression }}', +'{{ configuration }}' /* required */, +'{{ region }}' +RETURNING +id, +name, +configuration, +correlation_expression, +created_at, +created_by, +description, +disable_reason, +enabled, +modified_at, +modified_by, +query +; +``` + + + +{`# Description fields are for documentation purposes +- name: event_extraction_rules + props: + - name: region + value: "{{ region }}" + description: Required parameter for the event_extraction_rules resource. + - name: name + value: "{{ name }}" + description: | + Name of event extraction rule. + - name: description + value: "{{ description }}" + description: | + Description of event extraction rule. + - name: query + value: "{{ query }}" + description: | + Query string for the Event Extraction Rule. Logs matching this query are periodically ingested into the \`sumologic_userdata_events\` index (**Events**). + Guidelines for creating the query: + - Optimize the query to limit the number of returned log messages (intended for special logs only). + - The query runs in \`Manual\` mode, explicitly parse and extract only the necessary fields for event correlation and visualization. + - Use the \`fields\` operator to restrict the output to required fields. + - name: correlation_expression + description: | + Correlation Expression specifies how to determine related events for a log search query. + The value of \`eventFieldName\` from Events is compared with the values of \`queryFieldName\` from the log search query output using the defined stringMatchingAlgorithm. Events that match according to this algorithm are considered correlated. + value: + queryFieldName: "{{ queryFieldName }}" + eventFieldName: "{{ eventFieldName }}" + stringMatchingAlgorithm: "{{ stringMatchingAlgorithm }}" + - name: configuration + value: "{{ configuration }}" + description: | + Configuration for the Event Extraction Rule. + This object defines how event fields are mapped to their corresponding values. + Each field specifies a \`valueSource\`, which provides the actual value, and an optional \`mappingType\`, + indicating the value is hardcoded. + The following fields are **required**: + - \`eventType\`: Type of the event. Accepted values are \`Deployment\`, \`Feature Flag Change\`, \`Configuration Change\` or \`Infrastructure Change\`. + - \`eventPriority\`: Indicates the priority of the event. Accepted values are \`High\`, \`Medium\`, or \`Low\`. + - \`eventSource\`: Source system or component where the event originated (e.g., "Jenkins"). + - \`eventName\`: Descriptive name of the event (e.g., "monitor-manager deployed."). + The following fields are **optional**: + - \`eventDescription\`: Additional context or details about the event. + Custom fields can also be added as needed to capture domain-specific event data. +`} + + + + + +## `UPDATE` examples + + + + +Update an event extraction rule. + +```sql +UPDATE sumologic.event_extraction_rules.event_extraction_rules +SET +name = '{{ name }}', +description = '{{ description }}', +query = '{{ query }}', +correlation_expression = '{{ correlation_expression }}', +configuration = '{{ configuration }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND configuration = '{{ configuration }}' --required +AND name = '{{ name }}' --required +AND query = '{{ query }}' --required +RETURNING +id, +name, +configuration, +correlation_expression, +created_at, +created_by, +description, +disable_reason, +enabled, +modified_at, +modified_by, +query; +``` + + + + +## `DELETE` examples + + + + +Delete an event extraction rule. + +```sql +DELETE FROM sumologic.event_extraction_rules.event_extraction_rules +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/event_extraction_rules/index.md b/website/docs/services/event_extraction_rules/index.md new file mode 100644 index 0000000..7d00f1a --- /dev/null +++ b/website/docs/services/event_extraction_rules/index.md @@ -0,0 +1,33 @@ +--- +title: event_extraction_rules +hide_title: false +hide_table_of_contents: false +keywords: + - event_extraction_rules + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +event_extraction_rules service documentation. + +:::info[Service Summary] + +total resources: __2__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/event_extraction_rules/quota/index.md b/website/docs/services/event_extraction_rules/quota/index.md new file mode 100644 index 0000000..5c371c2 --- /dev/null +++ b/website/docs/services/event_extraction_rules/quota/index.md @@ -0,0 +1,136 @@ +--- +title: quota +hide_title: false +hide_table_of_contents: false +keywords: + - quota + - event_extraction_rules + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a quota resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Current state of Event Extraction Rules quota usage (limit and remaining). + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int32)Maximum number of EventExtractionRules allowed.
integer (int32)Remaining number of EventExtractionRules allowed.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionEvery customer can use a limited number of Event Extraction Rules. This endpoint allows learning about these limitations and remaining quota.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Every customer can use a limited number of Event Extraction Rules. This endpoint allows learning about these limitations and remaining quota. + +```sql +SELECT +quota, +remaining +FROM sumologic.event_extraction_rules.quota +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/extraction_rules/extraction_rules/index.md b/website/docs/services/extraction_rules/extraction_rules/index.md index b83cba6..78280a0 100644 --- a/website/docs/services/extraction_rules/extraction_rules/index.md +++ b/website/docs/services/extraction_rules/extraction_rules/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an extraction_rules resour ## Overview - +
Nameextraction_rules
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists an extraction_rules resour The following fields are returned by `SELECT` queries: - + Extraction rule object that was requested. @@ -62,14 +63,14 @@ Extraction rule object that was requested. Name of the field extraction rule. Use a name that makes it easy to identify the rule. (example: ExtractionRule123) - + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) - + string - Identifier of the user who created the resource. (example: 0000000006743FDD) + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) @@ -77,24 +78,24 @@ Extraction rule object that was requested. Is the field extraction rule enabled. - + array - List of extracted fields from "parseExpression". + List of extracted fields from "parseExpression". (wire: fieldNames) - + string (date-time) - Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. (example: 0000000006743FE8) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) - + string - Describes the fields to be parsed. (example: csv _raw extract 1 as f1) + Describes the fields to be parsed. (example: csv _raw extract 1 as f1) (wire: parseExpression) @@ -104,7 +105,7 @@ Extraction rule object that was requested. - + A paginated list of field extraction rules. @@ -118,14 +119,54 @@ A paginated list of field extraction rules. - + + string + Unique identifier for the field extraction rule. + + + + string + Name of the field extraction rule. Use a name that makes it easy to identify the rule. (example: ExtractionRule123) + + + + string (date-time) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) + + + + string + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) + + + + boolean + Is the field extraction rule enabled. + + + array - List of field extraction rules. + List of extracted fields from "parseExpression". (wire: fieldNames) + + + + string (date-time) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Next continuation token. + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) + + + + string + Describes the fields to be parsed. (example: csv _raw extract 1 as f1) (wire: parseExpression) + + + + string + Scope of the field extraction rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. (example: _sourceHost=127.0.0.1) @@ -148,39 +189,39 @@ The following methods are available for this resource: - + id, region Get a field extraction rule with the given identifier. - + region limit, token Get a list of all field extraction rules. The response is paginated with a default limit of 100 field extraction rules per page. - + - region, data__name, data__parseExpression, data__scope + region, name, parse_expression, scope Create a new field extraction rule. - - - id, region + + + id, region, name, parse_expression, scope, enabled - Delete a field extraction rule with the given identifier. + Update an existing field extraction rule. All properties specified in the request are replaced. Missing properties are set to their default values. - - - id, region, name, parseExpression, scope + + + id, region - Update an existing field extraction rule. All properties specified in the request are replaced. Missing properties are set to their default values. + Delete a field extraction rule with the given identifier. @@ -201,12 +242,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the field extraction rule to update. + Identifier of the field extraction rule to delete. string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -224,13 +265,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a field extraction rule with the given identifier. @@ -238,30 +279,38 @@ Get a field extraction rule with the given identifier. SELECT id, name, -createdAt, -createdBy, +created_at, +created_by, enabled, -fieldNames, -modifiedAt, -modifiedBy, -parseExpression, +field_names, +modified_at, +modified_by, +parse_expression, scope FROM sumologic.extraction_rules.extraction_rules WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + Get a list of all field extraction rules. The response is paginated with a default limit of 100 field extraction rules per page. ```sql SELECT -data, -next +id, +name, +created_at, +created_by, +enabled, +field_names, +modified_at, +modified_by, +parse_expression, +scope FROM sumologic.extraction_rules.extraction_rules -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' ; @@ -273,120 +322,133 @@ AND token = '{{ token }}' ## `INSERT` examples - + Create a new field extraction rule. ```sql INSERT INTO sumologic.extraction_rules.extraction_rules ( -data__name, -data__scope, -data__parseExpression, -data__enabled, +name, +scope, +parse_expression, +enabled, region ) SELECT '{{ name }}' /* required */, '{{ scope }}' /* required */, -'{{ parseExpression }}' /* required */, +'{{ parse_expression }}' /* required */, {{ enabled }}, '{{ region }}' RETURNING id, name, -createdAt, -createdBy, +created_at, +created_by, enabled, -fieldNames, -modifiedAt, -modifiedBy, -parseExpression, +field_names, +modified_at, +modified_by, +parse_expression, scope ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: extraction_rules props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the extraction_rules resource. - name: name - value: string + value: "{{ name }}" description: | Name of the field extraction rule. Use a name that makes it easy to identify the rule. - name: scope - value: string + value: "{{ scope }}" description: | Scope of the field extraction rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. - - name: parseExpression - value: string + - name: parse_expression + value: "{{ parse_expression }}" description: | Describes the fields to be parsed. - name: enabled - value: boolean + value: {{ enabled }} description: | Is the field extraction rule enabled. default: true -``` +`} + -## `DELETE` examples +## `UPDATE` examples - + -Delete a field extraction rule with the given identifier. +Update an existing field extraction rule. All properties specified in the request are replaced. Missing properties are set to their default values. ```sql -DELETE FROM sumologic.extraction_rules.extraction_rules -WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required -; +UPDATE sumologic.extraction_rules.extraction_rules +SET +name = '{{ name }}', +scope = '{{ scope }}', +parse_expression = '{{ parse_expression }}', +enabled = {{ enabled }} +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND name = '{{ name }}' --required +AND parse_expression = '{{ parse_expression }}' --required +AND scope = '{{ scope }}' --required +AND enabled = {{ enabled }} --required +RETURNING +id, +name, +created_at, +created_by, +enabled, +field_names, +modified_at, +modified_by, +parse_expression, +scope; ``` -## Lifecycle Methods +## `DELETE` examples - + -Update an existing field extraction rule. All properties specified in the request are replaced. Missing properties are set to their default values. +Delete a field extraction rule with the given identifier. ```sql -EXEC sumologic.extraction_rules.extraction_rules.updateExtractionRule -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"name": "{{ name }}", -"scope": "{{ scope }}", -"parseExpression": "{{ parseExpression }}", -"enabled": {{ enabled }} -}' +DELETE FROM sumologic.extraction_rules.extraction_rules +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/feature_settings/feature_settings/index.md b/website/docs/services/feature_settings/feature_settings/index.md new file mode 100644 index 0000000..13d84de --- /dev/null +++ b/website/docs/services/feature_settings/feature_settings/index.md @@ -0,0 +1,199 @@ +--- +title: feature_settings +hide_title: false +hide_table_of_contents: false +keywords: + - feature_settings + - feature_settings + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a feature_settings resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A list of opt-in/out features for the organization. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringId of the feature. (example: Mobot)
stringName of the feature (user-friendly). (example: Mobot)
stringDetails of the feature.
string (date-time)Last modification timestamp in UTC. (example: 2025-10-16T09:10:00.000Z) (wire: lastModifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: lastModifiedBy)
arrayList of settings.
stringType of the feature (pattern: <code>^(GA|PublicPreview|PrivatePreview)$</code>, example: GA)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionGet a list of opt-in/out features for the organization.
region, feature_settingsUpdate feature settings for the organization.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get a list of opt-in/out features for the organization. + +```sql +SELECT +id, +name, +description, +last_modified_at, +last_modified_by, +settings, +type +FROM sumologic.feature_settings.feature_settings +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `UPDATE` examples + + + + +Update feature settings for the organization. + +```sql +UPDATE sumologic.feature_settings.feature_settings +SET +feature_settings = '{{ feature_settings }}' +WHERE +region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND feature_settings = '{{ feature_settings }}' --required +RETURNING +feature_settings; +``` + + diff --git a/website/docs/services/feature_settings/index.md b/website/docs/services/feature_settings/index.md new file mode 100644 index 0000000..594c858 --- /dev/null +++ b/website/docs/services/feature_settings/index.md @@ -0,0 +1,33 @@ +--- +title: feature_settings +hide_title: false +hide_table_of_contents: false +keywords: + - feature_settings + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +feature_settings service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/fields/builtin/index.md b/website/docs/services/fields/builtin_fields/index.md similarity index 52% rename from website/docs/services/fields/builtin/index.md rename to website/docs/services/fields/builtin_fields/index.md index f5d71f0..e672e49 100644 --- a/website/docs/services/fields/builtin/index.md +++ b/website/docs/services/fields/builtin_fields/index.md @@ -1,9 +1,9 @@ --- -title: builtin +title: builtin_fields hide_title: false hide_table_of_contents: false keywords: - - builtin + - builtin_fields - fields - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a builtin resource. +Creates, updates, deletes, gets or lists a builtin_fields resource. ## Overview - + - +
Namebuiltin
Name
TypeResource
Id
Id
## Fields @@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a builtin resource. The following fields are returned by `SELECT` queries: - + The details of the built-in field. @@ -52,29 +53,29 @@ The details of the built-in field. - + string - Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. (pattern: ^(String|Long|Int|Double|Boolean)$, example: String, x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean`) + Identifier of the field. (example: 00000000031D02DA) (wire: fieldId) - + string - Identifier of the field. (example: 00000000031D02DA) + Field name. (example: hostIP) (wire: fieldName) - + string - Field name. (example: hostIP) + Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. (pattern: <code>^(String|Long|Int|Double|Boolean)$</code>, example: String, x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean`) (wire: dataType) string - Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. (pattern: ^(Enabled|Disabled)$, example: Enabled, x-pattern-message: Must be `Enabled` or `Disabled`) + Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. (pattern: <code>^(Enabled|Disabled)$</code>, example: Enabled, x-pattern-message: Must be `Enabled` or `Disabled`) - + List of all built-in fields. @@ -88,9 +89,24 @@ List of all built-in fields. - - array - List of built-in fields. + + string + Identifier of the field. (example: 00000000031D02DA) (wire: fieldId) + + + + string + Field name. (example: hostIP) (wire: fieldName) + + + + string + Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. (pattern: <code>^(String|Long|Int|Double|Boolean)$</code>, example: String, x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean`) (wire: dataType) + + + + string + Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. (pattern: <code>^(Enabled|Disabled)$</code>, example: Enabled, x-pattern-message: Must be `Enabled` or `Disabled`) @@ -113,14 +129,14 @@ The following methods are available for this resource: - + id, region Get the details of a built-in field. - + region @@ -150,7 +166,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -158,37 +174,40 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the details of a built-in field. ```sql SELECT -dataType, -fieldId, -fieldName, +field_id, +field_name, +data_type, state -FROM sumologic.fields.builtin +FROM sumologic.fields.builtin_fields WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + Built-in fields are created automatically by Sumo Logic for standard configuration purposes. They include `_sourceHost` and `_sourceCategory`. Built-in fields can't be deleted or disabled. ```sql SELECT -data -FROM sumologic.fields.builtin -WHERE region = '{{ region }}' -- required +field_id, +field_name, +data_type, +state +FROM sumologic.fields.builtin_fields +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/fields/disable/index.md b/website/docs/services/fields/disable/index.md deleted file mode 100644 index 3e43ccd..0000000 --- a/website/docs/services/fields/disable/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: disable -hide_title: false -hide_table_of_contents: false -keywords: - - disable - - fields - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a disable resource. - -## Overview - - - - -
Namedisable
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionAfter disabling a field Sumo Logic will start dropping its incoming values at ingest. As a result, they won't be searchable or usable. Historical values are not removed and remain searchable.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of a field to disable. (example: 00000000031D02DA)
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -After disabling a field Sumo Logic will start dropping its incoming values at ingest. As a result, they won't be searchable or usable. Historical values are not removed and remain searchable. - -```sql -EXEC sumologic.fields.disable.disableField -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/fields/dropped/index.md b/website/docs/services/fields/dropped_fields/index.md similarity index 64% rename from website/docs/services/fields/dropped/index.md rename to website/docs/services/fields/dropped_fields/index.md index 4cb2b33..268c9d7 100644 --- a/website/docs/services/fields/dropped/index.md +++ b/website/docs/services/fields/dropped_fields/index.md @@ -1,9 +1,9 @@ --- -title: dropped +title: dropped_fields hide_title: false hide_table_of_contents: false keywords: - - dropped + - dropped_fields - fields - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a dropped resource. +Creates, updates, deletes, gets or lists a dropped_fields resource. ## Overview - + - +
Namedropped
Name
TypeResource
Id
Id
## Fields @@ -32,14 +33,14 @@ Creates, updates, deletes, gets or lists a dropped resource. The following fields are returned by `SELECT` queries: - + -List of dropped fields.
+List of dropped fields.<br /> @@ -51,9 +52,9 @@ List of dropped fields.
- + - +
stringField name. (example: hostIP)Field name. (example: hostIP) (wire: fieldName)
@@ -76,7 +77,7 @@ The following methods are available for this resource: - + region @@ -101,7 +102,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -109,20 +110,20 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Dropped fields are fields sent to Sumo Logic, but are ignored since they are not defined in your Fields schema. In order to save these values a field must both exist and be enabled. ```sql SELECT -fieldName -FROM sumologic.fields.dropped -WHERE region = '{{ region }}' -- required +field_name +FROM sumologic.fields.dropped_fields +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/fields/enable/index.md b/website/docs/services/fields/enable/index.md deleted file mode 100644 index 511709c..0000000 --- a/website/docs/services/fields/enable/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: enable -hide_title: false -hide_table_of_contents: false -keywords: - - enable - - fields - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an enable resource. - -## Overview - - - - -
Nameenable
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionFields have to be enabled to be assigned to your data. This operation ensures that a specified field is enabled and Sumo Logic will treat it as safe to process. All manually created custom fields are enabled by default.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of a field to enable. (example: 00000000031D02DA)
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Fields have to be enabled to be assigned to your data. This operation ensures that a specified field is enabled and Sumo Logic will treat it as safe to process. All manually created custom fields are enabled by default. - -```sql -EXEC sumologic.fields.enable.enableField -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/fields/fields/index.md b/website/docs/services/fields/fields/index.md index 009e8cf..fa34880 100644 --- a/website/docs/services/fields/fields/index.md +++ b/website/docs/services/fields/fields/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a fields resource. ## Overview - +
Namefields
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a fields resource. The following fields are returned by `SELECT` queries: - + The details of the custom field. @@ -52,29 +53,29 @@ The details of the custom field. - + string - Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. (pattern: ^(String|Long|Int|Double|Boolean)$, example: String, x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean`) + Identifier of the field. (example: 00000000031D02DA) (wire: fieldId) - + string - Identifier of the field. (example: 00000000031D02DA) + Field name. (example: hostIP) (wire: fieldName) - + string - Field name. (example: hostIP) + Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. (pattern: <code>^(String|Long|Int|Double|Boolean)$</code>, example: String, x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean`) (wire: dataType) string - Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. (pattern: ^(Enabled|Disabled)$, example: Enabled, x-pattern-message: Must be `Enabled` or `Disabled`) + Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. (pattern: <code>^(Enabled|Disabled)$</code>, example: Enabled, x-pattern-message: Must be `Enabled` or `Disabled`) - + List of all custom fields. @@ -88,9 +89,24 @@ List of all custom fields. - - array - List of custom fields. + + string + Identifier of the field. (example: 00000000031D02DA) (wire: fieldId) + + + + string + Field name. (example: hostIP) (wire: fieldName) + + + + string + Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. (pattern: <code>^(String|Long|Int|Double|Boolean)$</code>, example: String, x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean`) (wire: dataType) + + + + string + Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. (pattern: <code>^(Enabled|Disabled)$</code>, example: Enabled, x-pattern-message: Must be `Enabled` or `Disabled`) @@ -113,33 +129,47 @@ The following methods are available for this resource: - + id, region Get the details of a custom field. - + region Request a list of all the custom fields configured in your account. - + - region, data__fieldName + region, field_name Adding a field will define it in the Fields schema allowing it to be assigned as metadata to your logs. - + id, region Deleting a field does not delete historical data assigned with that field. If you delete a field by mistake and one or more of those dependencies break, you can re-add the field to get things working properly again. You should always disable a field and ensure things are behaving as expected before deleting a field. + + + + id, region + + Fields have to be enabled to be assigned to your data. This operation ensures that a specified field is enabled and Sumo Logic will treat it as safe to process. All manually created custom fields are enabled by default. + + + + + id, region + + After disabling a field Sumo Logic will start dropping its incoming values at ingest. As a result, they won't be searchable or usable. Historical values are not removed and remain searchable. + @@ -159,12 +189,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of a field to delete. (example: 00000000031D02DA) + Identifier of a field to disable. (example: 00000000031D02DA) string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -172,37 +202,40 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the details of a custom field. ```sql SELECT -dataType, -fieldId, -fieldName, +field_id, +field_name, +data_type, state FROM sumologic.fields.fields WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + Request a list of all the custom fields configured in your account. ```sql SELECT -data +field_id, +field_name, +data_type, +state FROM sumologic.fields.fields -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` @@ -212,46 +245,46 @@ WHERE region = '{{ region }}' -- required ## `INSERT` examples - + Adding a field will define it in the Fields schema allowing it to be assigned as metadata to your logs. ```sql INSERT INTO sumologic.fields.fields ( -data__fieldName, +field_name, region ) SELECT -'{{ fieldName }}' /* required */, +'{{ field_name }}' /* required */, '{{ region }}' RETURNING -dataType, -fieldId, -fieldName, +field_id, +field_name, +data_type, state ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: fields props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the fields resource. - - name: fieldName - value: string + - name: field_name + value: "{{ field_name }}" description: | Field name. -``` +`} + @@ -259,19 +292,55 @@ state ## `DELETE` examples - + Deleting a field does not delete historical data assigned with that field. If you delete a field by mistake and one or more of those dependencies break, you can re-add the field to get things working properly again. You should always disable a field and ensure things are behaving as expected before deleting a field. ```sql DELETE FROM sumologic.fields.fields WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Fields have to be enabled to be assigned to your data. This operation ensures that a specified field is enabled and Sumo Logic will treat it as safe to process. All manually created custom fields are enabled by default. + +```sql +EXEC sumologic.fields.fields.enable +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +After disabling a field Sumo Logic will start dropping its incoming values at ingest. As a result, they won't be searchable or usable. Historical values are not removed and remain searchable. + +```sql +EXEC sumologic.fields.fields.disable +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/fields/index.md b/website/docs/services/fields/index.md index fbdeaf1..4946124 100644 --- a/website/docs/services/fields/index.md +++ b/website/docs/services/fields/index.md @@ -18,19 +18,17 @@ fields service documentation. :::info[Service Summary] -total resources: __6__ +total resources: __4__ ::: ## Resources
diff --git a/website/docs/services/fields/quota/index.md b/website/docs/services/fields/quota/index.md index 28b5a1e..abc9e3e 100644 --- a/website/docs/services/fields/quota/index.md +++ b/website/docs/services/fields/quota/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a quota resource. ## Overview - +
Namequota
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a quota resource. The following fields are returned by `SELECT` queries: - + Current fields capacity usage (fields count). @@ -81,7 +82,7 @@ The following methods are available for this resource: - + region @@ -106,7 +107,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -114,12 +115,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Every account has a limited number of fields available. This endpoint returns your account limitations and remaining quota. @@ -128,7 +129,7 @@ SELECT quota, remaining FROM sumologic.fields.quota -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/health_events/health_events/index.md b/website/docs/services/health_events/health_events/index.md index a2d390c..69d9216 100644 --- a/website/docs/services/health_events/health_events/index.md +++ b/website/docs/services/health_events/health_events/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a health_events resource. ## Overview - +
Namehealth_events
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a health_events resource. The following fields are returned by `SELECT` queries: - + A paginated list of all the health events. @@ -51,34 +52,34 @@ A paginated list of all the health events. - - object - + + string + The unique identifier of the event. (example: e801dc7d-f483-46e9-bcc9-410f08f96497) (wire: eventId) - + string - The unique identifier of the event. (example: e801dc7d-f483-46e9-bcc9-410f08f96497) + The name of the event. (example: InstalledCollectorOffline) (wire: eventName) - - string - The name of the event. (example: InstalledCollectorOffline) + + object + - + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: eventTime) - + object - + (wire: resourceIdentity) - + string - The criticality of the event. It is either `Error` or `Warning` + The criticality of the event. It is either `Error` or `Warning` (wire: severityLevel) @@ -106,12 +107,19 @@ The following methods are available for this resource: - + region limit, token Get a list of all the unresolved health events in your account. + + + + region, data + limit, token + Get a list of all the unresolved events in your account that belong to the supplied resource identifiers. + @@ -131,7 +139,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -149,29 +157,58 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a list of all the unresolved health events in your account. ```sql SELECT +event_id, +event_name, details, -eventId, -eventName, -eventTime, -resourceIdentity, -severityLevel, +event_time, +resource_identity, +severity_level, subsystem FROM sumologic.health_events.health_events -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' ; ``` + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Get a list of all the unresolved events in your account that belong to the supplied resource identifiers. + +```sql +EXEC sumologic.health_events.health_events.list_for_resources +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@limit='{{ limit }}', +@token='{{ token }}' +@@json= +'{ +"data": "{{ data }}" +}' +; +``` + + diff --git a/website/docs/services/health_events/index.md b/website/docs/services/health_events/index.md index b49e053..312234a 100644 --- a/website/docs/services/health_events/index.md +++ b/website/docs/services/health_events/index.md @@ -18,7 +18,7 @@ health_events service documentation. :::info[Service Summary] -total resources: __2__ +total resources: __1__ ::: @@ -28,6 +28,6 @@ total resources: __2__ health_events
\ No newline at end of file diff --git a/website/docs/services/health_events/resources/index.md b/website/docs/services/health_events/resources/index.md deleted file mode 100644 index edb10bb..0000000 --- a/website/docs/services/health_events/resources/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: resources -hide_title: false -hide_table_of_contents: false -keywords: - - resources - - health_events - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a resources resource. - -## Overview - - - - -
Nameresources
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
region, datalimit, tokenGet a list of all the unresolved events in your account that belong to the supplied resource identifiers.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
integer (int32)Limit the number of health events returned in the response. The number of health events returned may be less than the `limit`.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left.
- -## Lifecycle Methods - - - - -Get a list of all the unresolved events in your account that belong to the supplied resource identifiers. - -```sql -EXEC sumologic.health_events.resources.listAllHealthEventsForResources -@region='{{ region }}' --required, -@limit='{{ limit }}', -@token='{{ token }}' -@@json= -'{ -"data": "{{ data }}" -}' -; -``` - - diff --git a/website/docs/services/ingest_budgets/collectors/index.md b/website/docs/services/ingest_budgets/collectors/index.md deleted file mode 100644 index f2e90eb..0000000 --- a/website/docs/services/ingest_budgets/collectors/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: collectors -hide_title: false -hide_table_of_contents: false -keywords: - - collectors - - ingest_budgets - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a collectors resource. - -## Overview - - - - -
Namecollectors
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -A paginated list of Collectors. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringUnique identifier for the Collector.
stringThe name of the Collector.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionlimit, tokenGet a list of Collectors assigned to an ingest budget. The response is paginated with a default limit of 100 Collectors per page.
id, collectorId, regionRemove Collector from a budget.
id, collectorId, regionAssign a Collector to a budget.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the Collector to assign.
stringIdentifier of the ingest budget to assign to the Collector.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
integer (int32)Limit the number of Collectors returned in the response. The number of Collectors returned may be less than the `limit`.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results.
- -## `SELECT` examples - - - - -Get a list of Collectors assigned to an ingest budget. The response is paginated with a default limit of 100 Collectors per page. - -```sql -SELECT -id, -name -FROM sumologic.ingest_budgets.collectors -WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required -AND limit = '{{ limit }}' -AND token = '{{ token }}' -; -``` - - - - -## `DELETE` examples - - - - -Remove Collector from a budget. - -```sql -DELETE FROM sumologic.ingest_budgets.collectors -WHERE id = '{{ id }}' --required -AND collectorId = '{{ collectorId }}' --required -AND region = '{{ region }}' --required -; -``` - - - - -## Lifecycle Methods - - - - -Assign a Collector to a budget. - -```sql -EXEC sumologic.ingest_budgets.collectors.assignCollectorToBudget -@id='{{ id }}' --required, -@collectorId='{{ collectorId }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/ingest_budgets/index.md b/website/docs/services/ingest_budgets/index.md index 943db70..782dbc9 100644 --- a/website/docs/services/ingest_budgets/index.md +++ b/website/docs/services/ingest_budgets/index.md @@ -18,18 +18,16 @@ ingest_budgets service documentation. :::info[Service Summary] -total resources: __4__ +total resources: __1__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/ingest_budgets/ingest_budgets/index.md b/website/docs/services/ingest_budgets/ingest_budgets/index.md new file mode 100644 index 0000000..b267690 --- /dev/null +++ b/website/docs/services/ingest_budgets/ingest_budgets/index.md @@ -0,0 +1,601 @@ +--- +title: ingest_budgets +hide_title: false +hide_table_of_contents: false +keywords: + - ingest_budgets + - ingest_budgets + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an ingest_budgets resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Ingest budget object that was requested. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the ingest budget. (example: 0000000003343FDD)
stringDisplay name of the ingest budget. (example: Developer Budget)
stringAction to take when ingest budget's capacity is reached. All actions are audited. Supported values are: * `stopCollecting` * `keepCollecting` (pattern: <code>^(keepCollecting|stopCollecting)$</code>, example: stopCollecting, x-pattern-message: must be either `keepCollecting` or `stopCollecting`)
integer (int32)The threshold as a percentage of when an ingest budget's capacity usage is logged in the Audit Index. (wire: auditThreshold)
integer (int32)The version of the Ingest Budget (wire: budgetVersion)
integer (int64)Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. The capacity bytes unit varies based on the budgetType field. For `dailyVolume` budgetType the capacity specified is in bytes/day whereas for `minuteVolume` budgetType its bytes/min. (wire: capacityBytes)
string (date-time)The creation timestamp in UTC of the Ingest Budget. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringThe identifier of the user who created the Ingest Budget. (example: 0000000006743FDD) (wire: createdBy)
stringDescription of the ingest budget.
string (date-time)The modified timestamp in UTC of the Ingest Budget. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringThe identifier of the user who modified the Ingest Budget. (example: 0000000001243FDD) (wire: modifiedBy)
stringReset time of the ingest budget in HH:MM format. (example: 23:30, default: 00:00) (wire: resetTime)
stringA scope is a constraint that will be used to identify the messages on which budget needs to be applied. A scope is consists of key and value separated by =. The field must be enabled in the fields table. Value supports wildcard. e.g. _sourceCategory=*prod*payment*, cluster=kafka. If the scope is defined _sourceCategory=*nginx* in this budget will be applied on messages having fields _sourceCategory=prod/nginx, _sourceCategory=dev/nginx, or _sourceCategory=dev/nginx/error (example: _sourceCategory=*prod*nginx*)
stringTime zone of the reset time for the ingest budget. Follow the format in the [IANA Time Zone Database](https:​//en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). (example: America/Los_Angeles, default: Etc/UTC)
integer (int64)Current usage since the last reset, in bytes. (wire: usageBytes)
stringStatus of the current usage. Can be `Normal`, `Approaching`, `Exceeded`, or `Unknown` (unable to retrieve usage). (pattern: <code>^(Normal|Approaching|Exceeded|Unknown)$</code>, example: Approaching, x-pattern-message: must be either `Normal`, `Approaching`, `Exceeded`, or `Unknown`) (wire: usageStatus)
+
+ + +A paginated list of budgets. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the ingest budget. (example: 0000000003343FDD)
stringDisplay name of the ingest budget. (example: Developer Budget)
stringAction to take when ingest budget's capacity is reached. All actions are audited. Supported values are: * `stopCollecting` * `keepCollecting` (pattern: <code>^(keepCollecting|stopCollecting)$</code>, example: stopCollecting, x-pattern-message: must be either `keepCollecting` or `stopCollecting`)
integer (int32)The threshold as a percentage of when an ingest budget's capacity usage is logged in the Audit Index. (wire: auditThreshold)
integer (int32)The version of the Ingest Budget (wire: budgetVersion)
integer (int64)Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. The capacity bytes unit varies based on the budgetType field. For `dailyVolume` budgetType the capacity specified is in bytes/day whereas for `minuteVolume` budgetType its bytes/min. (wire: capacityBytes)
string (date-time)The creation timestamp in UTC of the Ingest Budget. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringThe identifier of the user who created the Ingest Budget. (example: 0000000006743FDD) (wire: createdBy)
stringDescription of the ingest budget.
string (date-time)The modified timestamp in UTC of the Ingest Budget. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringThe identifier of the user who modified the Ingest Budget. (example: 0000000001243FDD) (wire: modifiedBy)
stringReset time of the ingest budget in HH:MM format. (example: 23:30, default: 00:00) (wire: resetTime)
stringA scope is a constraint that will be used to identify the messages on which budget needs to be applied. A scope is consists of key and value separated by =. The field must be enabled in the fields table. Value supports wildcard. e.g. _sourceCategory=*prod*payment*, cluster=kafka. If the scope is defined _sourceCategory=*nginx* in this budget will be applied on messages having fields _sourceCategory=prod/nginx, _sourceCategory=dev/nginx, or _sourceCategory=dev/nginx/error (example: _sourceCategory=*prod*nginx*)
stringTime zone of the reset time for the ingest budget. Follow the format in the [IANA Time Zone Database](https:​//en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). (example: America/Los_Angeles, default: Etc/UTC)
integer (int64)Current usage since the last reset, in bytes. (wire: usageBytes)
stringStatus of the current usage. Can be `Normal`, `Approaching`, `Exceeded`, or `Unknown` (unable to retrieve usage). (pattern: <code>^(Normal|Approaching|Exceeded|Unknown)$</code>, example: Approaching, x-pattern-message: must be either `Normal`, `Approaching`, `Exceeded`, or `Unknown`) (wire: usageStatus)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet an ingest budget by the given identifier.
regionlimit, tokenGet a list of all ingest budgets. The response is paginated with a default limit of 100 budgets per page.
region, action, capacity_bytes, name, scopeCreate a new ingest budget.
id, region, action, capacity_bytes, name, scopeUpdate an existing ingest budget. All properties specified in the request are required.
id, regionDelete an ingest budget with the given identifier.
id, regionReset ingest budget's current usage to 0 before the scheduled reset time. This is only applicable to `dailyVolume` budgetType.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the ingest budget to reset usage.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
integer (int32)Limit the number of budgets returned in the response. The number of budgets returned may be less than the `limit`.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results.
+ +## `SELECT` examples + + + + +Get an ingest budget by the given identifier. + +```sql +SELECT +id, +name, +action, +audit_threshold, +budget_version, +capacity_bytes, +created_at, +created_by, +description, +modified_at, +modified_by, +reset_time, +scope, +timezone, +usage_bytes, +usage_status +FROM sumologic.ingest_budgets.ingest_budgets +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Get a list of all ingest budgets. The response is paginated with a default limit of 100 budgets per page. + +```sql +SELECT +id, +name, +action, +audit_threshold, +budget_version, +capacity_bytes, +created_at, +created_by, +description, +modified_at, +modified_by, +reset_time, +scope, +timezone, +usage_bytes, +usage_status +FROM sumologic.ingest_budgets.ingest_budgets +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +; +``` + + + + +## `INSERT` examples + + + + +Create a new ingest budget. + +```sql +INSERT INTO sumologic.ingest_budgets.ingest_budgets ( +name, +scope, +capacity_bytes, +timezone, +reset_time, +description, +action, +audit_threshold, +region +) +SELECT +'{{ name }}' /* required */, +'{{ scope }}' /* required */, +{{ capacity_bytes }} /* required */, +'{{ timezone }}', +'{{ reset_time }}', +'{{ description }}', +'{{ action }}' /* required */, +{{ audit_threshold }}, +'{{ region }}' +RETURNING +id, +name, +action, +audit_threshold, +budget_version, +capacity_bytes, +created_at, +created_by, +description, +modified_at, +modified_by, +reset_time, +scope, +timezone, +usage_bytes, +usage_status +; +``` + + + +{`# Description fields are for documentation purposes +- name: ingest_budgets + props: + - name: region + value: "{{ region }}" + description: Required parameter for the ingest_budgets resource. + - name: name + value: "{{ name }}" + description: | + Display name of the ingest budget. + - name: scope + value: "{{ scope }}" + description: | + A scope is a constraint that will be used to identify the messages on which budget needs to be applied. A scope is consists of key and value separated by =. The field must be enabled in the fields table. Value supports wildcard. e.g. _sourceCategory=*prod*payment*, cluster=kafka. If the scope is defined _sourceCategory=*nginx* in this budget will be applied on messages having fields _sourceCategory=prod/nginx, _sourceCategory=dev/nginx, or _sourceCategory=dev/nginx/error + - name: capacity_bytes + value: {{ capacity_bytes }} + description: | + Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. The capacity bytes unit varies based on the budgetType field. For \`dailyVolume\` budgetType the capacity specified is in bytes/day whereas for \`minuteVolume\` budgetType its bytes/min. + - name: timezone + value: "{{ timezone }}" + description: | + Time zone of the reset time for the ingest budget. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + default: Etc/UTC + - name: reset_time + value: "{{ reset_time }}" + description: | + Reset time of the ingest budget in HH:MM format. + default: 00:00 + - name: description + value: "{{ description }}" + description: | + Description of the ingest budget. + - name: action + value: "{{ action }}" + description: | + Action to take when ingest budget's capacity is reached. All actions are audited. Supported values are: + * \`stopCollecting\` + * \`keepCollecting\` + - name: audit_threshold + value: {{ audit_threshold }} + description: | + The threshold as a percentage of when an ingest budget's capacity usage is logged in the Audit Index. +`} + + + + + +## `UPDATE` examples + + + + +Update an existing ingest budget. All properties specified in the request are required. + +```sql +UPDATE sumologic.ingest_budgets.ingest_budgets +SET +name = '{{ name }}', +scope = '{{ scope }}', +capacity_bytes = {{ capacity_bytes }}, +timezone = '{{ timezone }}', +reset_time = '{{ reset_time }}', +description = '{{ description }}', +action = '{{ action }}', +audit_threshold = {{ audit_threshold }} +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND action = '{{ action }}' --required +AND capacity_bytes = '{{ capacity_bytes }}' --required +AND name = '{{ name }}' --required +AND scope = '{{ scope }}' --required +RETURNING +id, +name, +action, +audit_threshold, +budget_version, +capacity_bytes, +created_at, +created_by, +description, +modified_at, +modified_by, +reset_time, +scope, +timezone, +usage_bytes, +usage_status; +``` + + + + +## `DELETE` examples + + + + +Delete an ingest budget with the given identifier. + +```sql +DELETE FROM sumologic.ingest_budgets.ingest_budgets +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Reset ingest budget's current usage to 0 before the scheduled reset time. This is only applicable to `dailyVolume` budgetType. + +```sql +EXEC sumologic.ingest_budgets.ingest_budgets.reset_usage +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/ingest_budgets/ingest_budgets_v1/index.md b/website/docs/services/ingest_budgets/ingest_budgets_v1/index.md deleted file mode 100644 index ca880fe..0000000 --- a/website/docs/services/ingest_budgets/ingest_budgets_v1/index.md +++ /dev/null @@ -1,464 +0,0 @@ ---- -title: ingest_budgets_v1 -hide_title: false -hide_table_of_contents: false -keywords: - - ingest_budgets_v1 - - ingest_budgets - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an ingest_budgets_v1 resource. - -## Overview - - - - -
Nameingest_budgets_v1
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -Ingest budget object that was requested. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringUnique identifier for the ingest budget.
stringDisplay name of the ingest budget. (example: Developer Budget)
stringAction to take when ingest budget's capacity is reached. All actions are audited. Supported values are: * `stopCollecting` * `keepCollecting` (pattern: ^(keepCollecting|stopCollecting)$, example: stopCollecting, x-pattern-message: must be either `keepCollecting` or `stopCollecting`)
integer (int32)The threshold as a percentage of when an ingest budget's capacity usage is logged in the Audit Index.
integer (int64)Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit.
string (date-time)Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format.
object
stringDescription of the ingest budget.
stringCustom field value that is used to assign Collectors to the ingest budget. (example: dev_30_gb)
string (date-time)Last modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format.
object
integer (int64)Number of collectors assigned to the ingest budget.
stringReset time of the ingest budget in HH:MM format. (example: 23:30)
stringTime zone of the reset time for the ingest budget. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). (example: America/Los_Angeles)
integer (int64)Current usage since the last reset, in bytes.
stringStatus of the current usage. Can be `Normal`, `Approaching`, `Exceeded`, or `Unknown` (unable to retrieve usage). (example: Approaching)
-
- - -A paginated list of budgets. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
arrayList of ingest budgets.
stringNext continuation token.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet an ingest budget by the given identifier.
regionlimit, tokenGet a list of all ingest budgets. The response is paginated with a default limit of 100 budgets per page.
region, data__action, data__capacityBytes, data__fieldValue, data__name, data__resetTime, data__timezoneCreate a new ingest budget.
id, regionDelete an ingest budget with the given identifier.
id, region, action, capacityBytes, fieldValue, name, resetTime, timezoneUpdate an existing ingest budget. All properties specified in the request are required.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the ingest budget to update.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
integer (int32)Limit the number of budgets returned in the response. The number of budgets returned may be less than the `limit`.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results.
- -## `SELECT` examples - - - - -Get an ingest budget by the given identifier. - -```sql -SELECT -id, -name, -action, -auditThreshold, -capacityBytes, -createdAt, -createdByUser, -description, -fieldValue, -modifiedAt, -modifiedByUser, -numberOfCollectors, -resetTime, -timezone, -usageBytes, -usageStatus -FROM sumologic.ingest_budgets.ingest_budgets_v1 -WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required -; -``` - - - -Get a list of all ingest budgets. The response is paginated with a default limit of 100 budgets per page. - -```sql -SELECT -data, -next -FROM sumologic.ingest_budgets.ingest_budgets_v1 -WHERE region = '{{ region }}' -- required -AND limit = '{{ limit }}' -AND token = '{{ token }}' -; -``` - - - - -## `INSERT` examples - - - - -Create a new ingest budget. - -```sql -INSERT INTO sumologic.ingest_budgets.ingest_budgets_v1 ( -data__name, -data__fieldValue, -data__capacityBytes, -data__timezone, -data__resetTime, -data__description, -data__action, -data__auditThreshold, -region -) -SELECT -'{{ name }}' /* required */, -'{{ fieldValue }}' /* required */, -{{ capacityBytes }} /* required */, -'{{ timezone }}' /* required */, -'{{ resetTime }}' /* required */, -'{{ description }}', -'{{ action }}' /* required */, -{{ auditThreshold }}, -'{{ region }}' -RETURNING -id, -name, -action, -auditThreshold, -capacityBytes, -createdAt, -createdByUser, -description, -fieldValue, -modifiedAt, -modifiedByUser, -numberOfCollectors, -resetTime, -timezone, -usageBytes, -usageStatus -; -``` - - - -```yaml -# Description fields are for documentation purposes -- name: ingest_budgets_v1 - props: - - name: region - value: string - description: Required parameter for the ingest_budgets_v1 resource. - - name: name - value: string - description: | - Display name of the ingest budget. - - name: fieldValue - value: string - description: | - Custom field value that is used to assign Collectors to the ingest budget. - - name: capacityBytes - value: integer - description: | - Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. - - name: timezone - value: string - description: | - Time zone of the reset time for the ingest budget. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). - - name: resetTime - value: string - description: | - Reset time of the ingest budget in HH:MM format. - - name: description - value: string - description: | - Description of the ingest budget. - - name: action - value: string - description: | - Action to take when ingest budget's capacity is reached. All actions are audited. Supported values are: - * `stopCollecting` - * `keepCollecting` - - name: auditThreshold - value: integer - description: | - The threshold as a percentage of when an ingest budget's capacity usage is logged in the Audit Index. -``` - - - - -## `DELETE` examples - - - - -Delete an ingest budget with the given identifier. - -```sql -DELETE FROM sumologic.ingest_budgets.ingest_budgets_v1 -WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required -; -``` - - - - -## Lifecycle Methods - - - - -Update an existing ingest budget. All properties specified in the request are required. - -```sql -EXEC sumologic.ingest_budgets.ingest_budgets_v1.updateIngestBudget -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"name": "{{ name }}", -"fieldValue": "{{ fieldValue }}", -"capacityBytes": {{ capacityBytes }}, -"timezone": "{{ timezone }}", -"resetTime": "{{ resetTime }}", -"description": "{{ description }}", -"action": "{{ action }}", -"auditThreshold": {{ auditThreshold }} -}' -; -``` - - diff --git a/website/docs/services/ingest_budgets/ingest_budgets_v2/index.md b/website/docs/services/ingest_budgets/ingest_budgets_v2/index.md deleted file mode 100644 index 9b33f82..0000000 --- a/website/docs/services/ingest_budgets/ingest_budgets_v2/index.md +++ /dev/null @@ -1,464 +0,0 @@ ---- -title: ingest_budgets_v2 -hide_title: false -hide_table_of_contents: false -keywords: - - ingest_budgets_v2 - - ingest_budgets - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an ingest_budgets_v2 resource. - -## Overview - - - - -
Nameingest_budgets_v2
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -Ingest budget object that was requested. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringUnique identifier for the ingest budget. (example: 0000000003343FDD)
stringDisplay name of the ingest budget. (example: Developer Budget)
stringAction to take when ingest budget's capacity is reached. All actions are audited. Supported values are: * `stopCollecting` * `keepCollecting` (pattern: ^(keepCollecting|stopCollecting)$, example: stopCollecting, x-pattern-message: must be either `keepCollecting` or `stopCollecting`)
integer (int32)The threshold as a percentage of when an ingest budget's capacity usage is logged in the Audit Index.
integer (int32)The version of the Ingest Budget
integer (int64)Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit.
string (date-time)The creation timestamp in UTC of the Ingest Budget. (example: 2018-10-16T09:10:00Z)
stringThe identifier of the user who created the Ingest Budget. (example: 0000000006743FDD)
stringDescription of the ingest budget.
string (date-time)The modified timestamp in UTC of the Ingest Budget. (example: 2018-10-16T09:10:00Z)
stringThe identifier of the user who modified the Ingest Budget. (example: 0000000001243FDD)
stringReset time of the ingest budget in HH:MM format. (example: 23:30)
stringA scope is a constraint that will be used to identify the messages on which budget needs to be applied. A scope is consists of key and value separated by =. The field must be enabled in the fields table. Value supports wildcard. e.g. _sourceCategory=*prod*payment*, cluster=kafka. If the scope is defined _sourceCategory=*nginx* in this budget will be applied on messages having fields _sourceCategory=prod/nginx, _sourceCategory=dev/nginx, or _sourceCategory=dev/nginx/error (example: _sourceCategory=*prod*nginx*)
stringTime zone of the reset time for the ingest budget. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). (example: America/Los_Angeles)
integer (int64)Current usage since the last reset, in bytes.
stringStatus of the current usage. Can be `Normal`, `Approaching`, `Exceeded`, or `Unknown` (unable to retrieve usage). (pattern: ^(Normal|Approaching|Exceeded|Unknown)$, example: Approaching, x-pattern-message: must be either `Normal`, `Approaching`, `Exceeded`, or `Unknown`)
-
- - -A paginated list of budgets. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
arrayList of ingest budgets.
stringNext continuation token.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet an ingest budget by the given identifier.
regionlimit, tokenGet a list of all ingest budgets. The response is paginated with a default limit of 100 budgets per page.
region, data__action, data__capacityBytes, data__name, data__resetTime, data__scope, data__timezoneCreate a new ingest budget.
id, regionDelete an ingest budget with the given identifier.
id, region, action, capacityBytes, name, resetTime, scope, timezoneUpdate an existing ingest budget. All properties specified in the request are required.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the ingest budget to update.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
integer (int32)Limit the number of budgets returned in the response. The number of budgets returned may be less than the `limit`.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results.
- -## `SELECT` examples - - - - -Get an ingest budget by the given identifier. - -```sql -SELECT -id, -name, -action, -auditThreshold, -budgetVersion, -capacityBytes, -createdAt, -createdBy, -description, -modifiedAt, -modifiedBy, -resetTime, -scope, -timezone, -usageBytes, -usageStatus -FROM sumologic.ingest_budgets.ingest_budgets_v2 -WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required -; -``` - - - -Get a list of all ingest budgets. The response is paginated with a default limit of 100 budgets per page. - -```sql -SELECT -data, -next -FROM sumologic.ingest_budgets.ingest_budgets_v2 -WHERE region = '{{ region }}' -- required -AND limit = '{{ limit }}' -AND token = '{{ token }}' -; -``` - - - - -## `INSERT` examples - - - - -Create a new ingest budget. - -```sql -INSERT INTO sumologic.ingest_budgets.ingest_budgets_v2 ( -data__name, -data__scope, -data__capacityBytes, -data__timezone, -data__resetTime, -data__description, -data__action, -data__auditThreshold, -region -) -SELECT -'{{ name }}' /* required */, -'{{ scope }}' /* required */, -{{ capacityBytes }} /* required */, -'{{ timezone }}' /* required */, -'{{ resetTime }}' /* required */, -'{{ description }}', -'{{ action }}' /* required */, -{{ auditThreshold }}, -'{{ region }}' -RETURNING -id, -name, -action, -auditThreshold, -budgetVersion, -capacityBytes, -createdAt, -createdBy, -description, -modifiedAt, -modifiedBy, -resetTime, -scope, -timezone, -usageBytes, -usageStatus -; -``` - - - -```yaml -# Description fields are for documentation purposes -- name: ingest_budgets_v2 - props: - - name: region - value: string - description: Required parameter for the ingest_budgets_v2 resource. - - name: name - value: string - description: | - Display name of the ingest budget. - - name: scope - value: string - description: | - A scope is a constraint that will be used to identify the messages on which budget needs to be applied. A scope is consists of key and value separated by =. The field must be enabled in the fields table. Value supports wildcard. e.g. _sourceCategory=*prod*payment*, cluster=kafka. If the scope is defined _sourceCategory=*nginx* in this budget will be applied on messages having fields _sourceCategory=prod/nginx, _sourceCategory=dev/nginx, or _sourceCategory=dev/nginx/error - - name: capacityBytes - value: integer - description: | - Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. - - name: timezone - value: string - description: | - Time zone of the reset time for the ingest budget. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). - - name: resetTime - value: string - description: | - Reset time of the ingest budget in HH:MM format. - - name: description - value: string - description: | - Description of the ingest budget. - - name: action - value: string - description: | - Action to take when ingest budget's capacity is reached. All actions are audited. Supported values are: - * `stopCollecting` - * `keepCollecting` - - name: auditThreshold - value: integer - description: | - The threshold as a percentage of when an ingest budget's capacity usage is logged in the Audit Index. -``` - - - - -## `DELETE` examples - - - - -Delete an ingest budget with the given identifier. - -```sql -DELETE FROM sumologic.ingest_budgets.ingest_budgets_v2 -WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required -; -``` - - - - -## Lifecycle Methods - - - - -Update an existing ingest budget. All properties specified in the request are required. - -```sql -EXEC sumologic.ingest_budgets.ingest_budgets_v2.updateIngestBudgetV2 -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"name": "{{ name }}", -"scope": "{{ scope }}", -"capacityBytes": {{ capacityBytes }}, -"timezone": "{{ timezone }}", -"resetTime": "{{ resetTime }}", -"description": "{{ description }}", -"action": "{{ action }}", -"auditThreshold": {{ auditThreshold }} -}' -; -``` - - diff --git a/website/docs/services/ingest_budgets/usage_reset/index.md b/website/docs/services/ingest_budgets/usage_reset/index.md deleted file mode 100644 index d49f622..0000000 --- a/website/docs/services/ingest_budgets/usage_reset/index.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: usage_reset -hide_title: false -hide_table_of_contents: false -keywords: - - usage_reset - - ingest_budgets - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a usage_reset resource. - -## Overview - - - - -
Nameusage_reset
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionReset ingest budget's current usage to 0 before the scheduled reset time.
id, regionReset ingest budget's current usage to 0 before the scheduled reset time.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the ingest budget to reset usage.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Reset ingest budget's current usage to 0 before the scheduled reset time. - -```sql -EXEC sumologic.ingest_budgets.usage_reset.resetUsage -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - - -Reset ingest budget's current usage to 0 before the scheduled reset time. - -```sql -EXEC sumologic.ingest_budgets.usage_reset.resetUsageV2 -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/log_searches/estimated_usage/index.md b/website/docs/services/log_searches/estimated_usage/index.md index ac8258b..627f9ba 100644 --- a/website/docs/services/log_searches/estimated_usage/index.md +++ b/website/docs/services/log_searches/estimated_usage/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an estimated_usage resourc ## Overview - +
Nameestimated_usage
Name
TypeResource
Id
@@ -50,11 +51,32 @@ The following methods are available for this resource: - + - region, queryString, timeRange + region, queryString, timeRange, timezone - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier.
+ Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier.<br /> + + + + + region, queryString, timeRange, timezone + + Gets the estimated volume of data that would be scanned for a given log search per data tier.<br /> + + + + + region, queryString, timeRange, timezone + + Gets the estimated volume of data, per metering type, that would be scanned for running a given log search for a given timerange.<br /> + + + + + region, queryString, timeRange, timezone + + Gets the estimated volume of data, per view, that would be scanned for running a given log search for a given timerange.<br /> @@ -75,36 +97,101 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) ## Lifecycle Methods +EXEC variables use wire (API) names. + - + -Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier.
+Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier.<br /> ```sql -EXEC sumologic.log_searches.estimated_usage.getLogSearchEstimatedUsage -@region='{{ region }}' --required +EXEC sumologic.log_searches.estimated_usage.estimate +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set @@json= '{ "queryString": "{{ queryString }}", "timeRange": "{{ timeRange }}", "runByReceiptTime": {{ runByReceiptTime }}, "queryParameters": "{{ queryParameters }}", +"intervalTimeType": "{{ intervalTimeType }}", "parsingMode": "{{ parsingMode }}", "timezone": "{{ timezone }}" }' ; ```
+ + +Gets the estimated volume of data that would be scanned for a given log search per data tier.<br /> + +```sql +EXEC sumologic.log_searches.estimated_usage.estimate_by_tier +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"queryString": "{{ queryString }}", +"timeRange": "{{ timeRange }}", +"runByReceiptTime": {{ runByReceiptTime }}, +"queryParameters": "{{ queryParameters }}", +"intervalTimeType": "{{ intervalTimeType }}", +"timezone": "{{ timezone }}" +}' +; +``` + + + +Gets the estimated volume of data, per metering type, that would be scanned for running a given log search for a given timerange.<br /> + +```sql +EXEC sumologic.log_searches.estimated_usage.estimate_by_metering_type +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"queryString": "{{ queryString }}", +"timeRange": "{{ timeRange }}", +"queryParameters": "{{ queryParameters }}", +"intervalTimeType": "{{ intervalTimeType }}", +"runByReceiptTime": {{ runByReceiptTime }}, +"timezone": "{{ timezone }}", +"emulateSearchContext": "{{ emulateSearchContext }}" +}' +; +``` + + + +Gets the estimated volume of data, per view, that would be scanned for running a given log search for a given timerange.<br /> + +```sql +EXEC sumologic.log_searches.estimated_usage.estimate_by_view +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"queryString": "{{ queryString }}", +"timeRange": "{{ timeRange }}", +"queryParameters": "{{ queryParameters }}", +"intervalTimeType": "{{ intervalTimeType }}", +"runByReceiptTime": {{ runByReceiptTime }}, +"timezone": "{{ timezone }}", +"emulateSearchContext": "{{ emulateSearchContext }}" +}' +; +``` +
diff --git a/website/docs/services/log_searches/estimated_usage_by_tier/index.md b/website/docs/services/log_searches/estimated_usage_by_tier/index.md deleted file mode 100644 index bca93c8..0000000 --- a/website/docs/services/log_searches/estimated_usage_by_tier/index.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: estimated_usage_by_tier -hide_title: false -hide_table_of_contents: false -keywords: - - estimated_usage_by_tier - - log_searches - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an estimated_usage_by_tier resource. - -## Overview - - - - -
Nameestimated_usage_by_tier
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
region, queryString, timeRangeGets the estimated volume of data that would be scanned for a given log search per data tier.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Gets the estimated volume of data that would be scanned for a given log search per data tier.
- -```sql -EXEC sumologic.log_searches.estimated_usage_by_tier.getLogSearchEstimatedUsageByTier -@region='{{ region }}' --required -@@json= -'{ -"queryString": "{{ queryString }}", -"timeRange": "{{ timeRange }}", -"runByReceiptTime": {{ runByReceiptTime }}, -"queryParameters": "{{ queryParameters }}", -"timezone": "{{ timezone }}" -}' -; -``` -
-
diff --git a/website/docs/services/log_searches/index.md b/website/docs/services/log_searches/index.md index 6c14864..f430a40 100644 --- a/website/docs/services/log_searches/index.md +++ b/website/docs/services/log_searches/index.md @@ -28,6 +28,6 @@ total resources: __2__ estimated_usage \ No newline at end of file diff --git a/website/docs/services/log_searches/log_searches/index.md b/website/docs/services/log_searches/log_searches/index.md new file mode 100644 index 0000000..36b5c92 --- /dev/null +++ b/website/docs/services/log_searches/log_searches/index.md @@ -0,0 +1,623 @@ +--- +title: log_searches +hide_title: false +hide_table_of_contents: false +keywords: + - log_searches + - log_searches + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a log_searches resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Saved log search that was requested. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the saved log search. (example: 000000000000001A)
stringName of the item in the content library. (pattern: <code>^[a-zA-Z0-9 +%-@.,_()\\]+$</code>, example: Short title)
stringIdentifier of the parent element in the content library, such as folder. (example: 0000000000007D2B) (wire: parentId)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
stringItem description in the content library. (example: Long and detailed description)
stringThis parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. (pattern: <code>^(messageTime|receiptTime|searchableTime)$</code>, example: messageTime, default: messageTime, x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime') (wire: intervalTimeType)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
stringDefine the parsing mode to scan the JSON format log messages. Possible values are: 1. `AutoParse` 2. `Manual` In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https:​//help.sumologic.com/?cid=0011). (pattern: <code>^(AutoParse|Manual)$</code>, example: AutoParse, default: Manual) (wire: parsingMode)
stringAggregate Results Settings and View configurations, Legends settings, and different visualisation settings overrides. Leave this field empty to use the defaults. This property contains JSON object encoded as a string. (example: { "key": "value" })
arrayValues for search template used in the search query. Learn more about the search templates here : https:​//help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/ (wire: queryParameters)
stringQuery to perform. (example: error {{sourceCategory}}| count by _sourceCategory) (wire: queryString)
booleanThis has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. (wire: runByReceiptTime)
objectSchedule definition for a log search. Exactly one of 'notification' (single notification) or 'notifications' (multiple notification actions) must be provided. Sending both or neither will result in a 400 error.
object (wire: timeRange)
+
+ + +Paginated list of log searches under the Personal folder created by the user. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the saved log search. (example: 000000000000001A)
stringName of the item in the content library. (pattern: <code>^[a-zA-Z0-9 +%-@.,_()\\]+$</code>, example: Short title)
stringIdentifier of the parent element in the content library, such as folder. (example: 0000000000007D2B) (wire: parentId)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
stringItem description in the content library. (example: Long and detailed description)
stringThis parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. (pattern: <code>^(messageTime|receiptTime|searchableTime)$</code>, example: messageTime, default: messageTime, x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime') (wire: intervalTimeType)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
stringDefine the parsing mode to scan the JSON format log messages. Possible values are: 1. `AutoParse` 2. `Manual` In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https:​//help.sumologic.com/?cid=0011). (pattern: <code>^(AutoParse|Manual)$</code>, example: AutoParse, default: Manual) (wire: parsingMode)
stringAggregate Results Settings and View configurations, Legends settings, and different visualisation settings overrides. Leave this field empty to use the defaults. This property contains JSON object encoded as a string. (example: { "key": "value" })
arrayValues for search template used in the search query. Learn more about the search templates here : https:​//help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/ (wire: queryParameters)
stringQuery to perform. (example: error {{sourceCategory}}| count by _sourceCategory) (wire: queryString)
booleanThis has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. (wire: runByReceiptTime)
objectSchedule definition for a log search. Exactly one of 'notification' (single notification) or 'notifications' (multiple notification actions) must be provided. Sending both or neither will result in a 400 error.
object (wire: timeRange)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet a saved log search from the content library by identifier.
regionlimit, tokenList all saved log searches viewable by the user.
region, query_string, time_range, name, parent_idSave the log search in the content library.
id, region, query_string, time_range, nameUpdate the saved log search with the specified identifier. Partial update is not supported, you must provide values for all fields.
id, regionDelete the saved log search from the content library.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the saved log search.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
integer (int32)Limit the number of log searches returned in the response. The number of log searches returned may be less than the `limit`. (example: 50)
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. (example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc)
+ +## `SELECT` examples + + + + +Get a saved log search from the content library by identifier. + +```sql +SELECT +id, +name, +parent_id, +created_at, +created_by, +description, +interval_time_type, +modified_at, +modified_by, +parsing_mode, +properties, +query_parameters, +query_string, +run_by_receipt_time, +schedule, +time_range +FROM sumologic.log_searches.log_searches +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +List all saved log searches viewable by the user. + +```sql +SELECT +id, +name, +parent_id, +created_at, +created_by, +description, +interval_time_type, +modified_at, +modified_by, +parsing_mode, +properties, +query_parameters, +query_string, +run_by_receipt_time, +schedule, +time_range +FROM sumologic.log_searches.log_searches +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +; +``` + + + + +## `INSERT` examples + + + + +Save the log search in the content library. + +```sql +INSERT INTO sumologic.log_searches.log_searches ( +query_string, +time_range, +run_by_receipt_time, +query_parameters, +interval_time_type, +parsing_mode, +name, +description, +schedule, +properties, +parent_id, +region +) +SELECT +'{{ query_string }}' /* required */, +'{{ time_range }}' /* required */, +{{ run_by_receipt_time }}, +'{{ query_parameters }}', +'{{ interval_time_type }}', +'{{ parsing_mode }}', +'{{ name }}' /* required */, +'{{ description }}', +'{{ schedule }}', +'{{ properties }}', +'{{ parent_id }}' /* required */, +'{{ region }}' +RETURNING +id, +name, +parent_id, +created_at, +created_by, +description, +interval_time_type, +modified_at, +modified_by, +parsing_mode, +properties, +query_parameters, +query_string, +run_by_receipt_time, +schedule, +time_range +; +``` + + + +{`# Description fields are for documentation purposes +- name: log_searches + props: + - name: region + value: "{{ region }}" + description: Required parameter for the log_searches resource. + - name: query_string + value: "{{ query_string }}" + description: | + Query to perform. + - name: time_range + value: + type: "{{ type }}" + - name: run_by_receipt_time + value: {{ run_by_receipt_time }} + description: | + This has the value \`true\` if the search is to be run by receipt time and \`false\` if it is to be run by message time. + default: false + - name: query_parameters + description: | + Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/ + value: + - autoComplete: + type: "{{ type }}" + autoCompleteKey: "{{ autoCompleteKey }}" + autoCompleteValues: + - label: "{{ label }}" + value: "{{ value }}" + lookupMetaData: + fileName: "{{ fileName }}" + valueColumn: "{{ valueColumn }}" + labelColumn: "{{ labelColumn }}" + name: "{{ name }}" + description: "{{ description }}" + dataType: "{{ dataType }}" + value: "{{ value }}" + - name: interval_time_type + value: "{{ interval_time_type }}" + description: | + This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + default: messageTime + - name: parsing_mode + value: "{{ parsing_mode }}" + description: | + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. \`AutoParse\` + 2. \`Manual\` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + default: Manual + - name: name + value: "{{ name }}" + description: | + Name of the item in the content library. + - name: description + value: "{{ description }}" + description: | + Item description in the content library. + - name: schedule + description: | + Schedule definition for a log search. Exactly one of 'notification' (single notification) or 'notifications' (multiple notification actions) must be provided. Sending both or neither will result in a 400 error. + value: + cronExpression: "{{ cronExpression }}" + displayableTimeRange: "{{ displayableTimeRange }}" + parseableTimeRange: + type: "{{ type }}" + timeZone: "{{ timeZone }}" + threshold: + thresholdType: "{{ thresholdType }}" + operator: "{{ operator }}" + count: {{ count }} + notification: + taskType: "{{ taskType }}" + scheduleType: "{{ scheduleType }}" + muteErrorEmails: {{ muteErrorEmails }} + parameters: + - name: "{{ name }}" + value: "{{ value }}" + notifications: + - taskType: "{{ taskType }}" + - name: properties + value: "{{ properties }}" + description: | + Aggregate Results Settings and View configurations, Legends settings, and different visualisation settings overrides. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + - name: parent_id + value: "{{ parent_id }}" + description: | + Identifier of a folder where to save the log search. +`} + + + + + +## `UPDATE` examples + + + + +Update the saved log search with the specified identifier. Partial update is not supported, you must provide values for all fields. + +```sql +UPDATE sumologic.log_searches.log_searches +SET +query_string = '{{ query_string }}', +time_range = '{{ time_range }}', +run_by_receipt_time = {{ run_by_receipt_time }}, +query_parameters = '{{ query_parameters }}', +interval_time_type = '{{ interval_time_type }}', +parsing_mode = '{{ parsing_mode }}', +name = '{{ name }}', +description = '{{ description }}', +schedule = '{{ schedule }}', +properties = '{{ properties }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND query_string = '{{ query_string }}' --required +AND time_range = '{{ time_range }}' --required +AND name = '{{ name }}' --required +RETURNING +id, +name, +parent_id, +created_at, +created_by, +description, +interval_time_type, +modified_at, +modified_by, +parsing_mode, +properties, +query_parameters, +query_string, +run_by_receipt_time, +schedule, +time_range; +``` + + + + +## `DELETE` examples + + + + +Delete the saved log search from the content library. + +```sql +DELETE FROM sumologic.log_searches.log_searches +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/logs_data_forwarding/destinations/index.md b/website/docs/services/logs_data_forwarding/destinations/index.md index b77f5de..04cea9a 100644 --- a/website/docs/services/logs_data_forwarding/destinations/index.md +++ b/website/docs/services/logs_data_forwarding/destinations/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a destinations resource. ## Overview - +
Namedestinations
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a destinations resource. The following fields are returned by `SELECT` queries: - + Data forwarding destination object requested. @@ -57,40 +58,40 @@ Data forwarding destination object requested. The unique identifier of the data forwarding destination. (example: 1) - + string - The AWS Access ID to access the S3 bucket. (example: accessKeyId) + The AWS Access ID to access the S3 bucket. (example: accessKeyId) (wire: accessKeyId) - + string - AWS IAM authentication method used for access. Possible values are: 1. `AccessKey` 2. `RoleBased` (example: RoleBased) + The name of the Amazon S3 bucket. (pattern: <code>(?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-.]{1,61}[a-z0-9]$</code>, example: df-bucket, x-pattern-message: Must be a valid AWS S3 Bucket name.) (wire: bucketName) - + string - The name of the Amazon S3 bucket. (pattern: (?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$, example: df-bucket, x-pattern-message: Must be a valid AWS S3 Bucket name.) + Name of the S3 data forwarding destination. (example: df-destination) (wire: destinationName) - + + string + AWS IAM authentication method used for access. Possible values are: 1. `AccessKey` 2. `RoleBased` (example: RoleBased) (wire: authenticationMode) + + + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) - + string - Identifier of the user who created the resource. (example: 0000000006743FDD) + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) string Description of the S3 data forwarding destination. - - - string - Name of the S3 data forwarding destination. (example: df-destination) - boolean @@ -102,19 +103,19 @@ Data forwarding destination object requested. Enable S3 server-side encryption. - + boolean - True if invalidated by the system. + True if invalidated by the system. (wire: invalidatedBySystem) - + string (date-time) - Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. (example: 0000000006743FE8) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) @@ -122,19 +123,19 @@ Data forwarding destination object requested. The region where the S3 bucket is located. (example: us-east-1) - + string - The AWS Role ARN to access the S3 bucket. (example: roleArn) + The AWS Role ARN to access the S3 bucket. (example: roleArn) (wire: roleArn) - + string - The AWS Secret Key to access the S3 bucket. (example: secretAccessKey) + The AWS Secret Key to access the S3 bucket. (example: secretAccessKey) (wire: secretAccessKey) - + List of all S3 data forwarding destinations. @@ -148,14 +149,84 @@ List of all S3 data forwarding destinations. - - array - List of data forwarding destinations. + + string + The unique identifier of the data forwarding destination. (example: 1) + + + + string + The AWS Access ID to access the S3 bucket. (example: accessKeyId) (wire: accessKeyId) + + + + string + The name of the Amazon S3 bucket. (pattern: <code>(?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-.]{1,61}[a-z0-9]$</code>, example: df-bucket, x-pattern-message: Must be a valid AWS S3 Bucket name.) (wire: bucketName) + + + + string + Name of the S3 data forwarding destination. (example: df-destination) (wire: destinationName) + + + + string + AWS IAM authentication method used for access. Possible values are: 1. `AccessKey` 2. `RoleBased` (example: RoleBased) (wire: authenticationMode) + + + + string (date-time) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) + + + + string + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) + + + + string + Description of the S3 data forwarding destination. + + + + boolean + True if the destination is Active. + + + + boolean + Enable S3 server-side encryption. + + + + boolean + True if invalidated by the system. (wire: invalidatedBySystem) + + + + string (date-time) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Next continuation token. (example: VEZuRU4veXF2UWFCUURYSDNQUzJxWlpRRUsvTlBieXA) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) + + + + string + The region where the S3 bucket is located. (example: us-east-1) + + + + string + The AWS Role ARN to access the S3 bucket. (example: roleArn) (wire: roleArn) + + + + string + The AWS Secret Key to access the S3 bucket. (example: secretAccessKey) (wire: secretAccessKey) @@ -178,39 +249,39 @@ The following methods are available for this resource: - + id, region Get an S3 data forwarding destination by the given identifier. - + region limit, token Get a list of all Amazon S3 data forwarding destinations. - + - region, data__authenticationMode + region, authentication_mode, bucket_name, destination_name Create a new Amazon S3 data forwarding destination. - - - id, region + + + id, region, authentication_mode - Delete an existing Amazon S3 data forwarding destination with the given identifier. + Update an S3 data forwarding destination by the given identifier. - - - id, region, authenticationMode + + + id, region - Update an S3 data forwarding destination by the given identifier. + Delete an existing Amazon S3 data forwarding destination with the given identifier. @@ -231,12 +302,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the data forwarding destination to update. (example: 1) + Identifier of the data forwarding destination to delete. (example: 1) string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -254,50 +325,64 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get an S3 data forwarding destination by the given identifier. ```sql SELECT id, -accessKeyId, -authenticationMode, -bucketName, -createdAt, -createdBy, +access_key_id, +bucket_name, +destination_name, +authentication_mode, +created_at, +created_by, description, -destinationName, enabled, encrypted, -invalidatedBySystem, -modifiedAt, -modifiedBy, +invalidated_by_system, +modified_at, +modified_by, region, -roleArn, -secretAccessKey +role_arn, +secret_access_key FROM sumologic.logs_data_forwarding.destinations WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + Get a list of all Amazon S3 data forwarding destinations. ```sql SELECT -data, -nextToken +id, +access_key_id, +bucket_name, +destination_name, +authentication_mode, +created_at, +created_by, +description, +enabled, +encrypted, +invalidated_by_system, +modified_at, +modified_by, +region, +role_arn, +secret_access_key FROM sumologic.logs_data_forwarding.destinations -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' ; @@ -309,166 +394,182 @@ AND token = '{{ token }}' ## `INSERT` examples - + Create a new Amazon S3 data forwarding destination. ```sql INSERT INTO sumologic.logs_data_forwarding.destinations ( -data__destinationName, -data__description, -data__authenticationMode, -data__accessKeyId, -data__secretAccessKey, -data__roleArn, -data__region, -data__encrypted, -data__enabled, -data__bucketName, +destination_name, +description, +authentication_mode, +access_key_id, +secret_access_key, +role_arn, +region, +encrypted, +enabled, +bucket_name, region ) SELECT -'{{ destinationName }}', +'{{ destination_name }}' /* required */, '{{ description }}', -'{{ authenticationMode }}' /* required */, -'{{ accessKeyId }}', -'{{ secretAccessKey }}', -'{{ roleArn }}', +'{{ authentication_mode }}' /* required */, +'{{ access_key_id }}', +'{{ secret_access_key }}', +'{{ role_arn }}', '{{ region }}', {{ encrypted }}, {{ enabled }}, -'{{ bucketName }}', +'{{ bucket_name }}' /* required */, '{{ region }}' RETURNING id, -accessKeyId, -authenticationMode, -bucketName, -createdAt, -createdBy, +access_key_id, +bucket_name, +destination_name, +authentication_mode, +created_at, +created_by, description, -destinationName, enabled, encrypted, -invalidatedBySystem, -modifiedAt, -modifiedBy, +invalidated_by_system, +modified_at, +modified_by, region, -roleArn, -secretAccessKey +role_arn, +secret_access_key ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: destinations props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the destinations resource. - - name: destinationName - value: string + - name: destination_name + value: "{{ destination_name }}" description: | Name of the S3 data forwarding destination. - name: description - value: string + value: "{{ description }}" description: | Description of the S3 data forwarding destination. - - name: authenticationMode - value: string + - name: authentication_mode + value: "{{ authentication_mode }}" description: | - AWS IAM authentication method used for access. Possible values are: 1. `AccessKey` 2. `RoleBased` - - name: accessKeyId - value: string + AWS IAM authentication method used for access. Possible values are: 1. \`AccessKey\` 2. \`RoleBased\` + - name: access_key_id + value: "{{ access_key_id }}" description: | The AWS Access ID to access the S3 bucket. - - name: secretAccessKey - value: string + - name: secret_access_key + value: "{{ secret_access_key }}" description: | The AWS Secret Key to access the S3 bucket. - - name: roleArn - value: string + - name: role_arn + value: "{{ role_arn }}" description: | The AWS Role ARN to access the S3 bucket. - name: region - value: string + value: "{{ region }}" description: | The region where the S3 bucket is located. - name: encrypted - value: boolean + value: {{ encrypted }} description: | Enable S3 server-side encryption. - name: enabled - value: boolean + value: {{ enabled }} description: | True if the destination is Active. - - name: bucketName - value: string + - name: bucket_name + value: "{{ bucket_name }}" description: | The name of the Amazon S3 bucket. -``` +`} + -## `DELETE` examples +## `UPDATE` examples - + -Delete an existing Amazon S3 data forwarding destination with the given identifier. +Update an S3 data forwarding destination by the given identifier. ```sql -DELETE FROM sumologic.logs_data_forwarding.destinations -WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required -; +UPDATE sumologic.logs_data_forwarding.destinations +SET +destination_name = '{{ destination_name }}', +description = '{{ description }}', +authentication_mode = '{{ authentication_mode }}', +access_key_id = '{{ access_key_id }}', +secret_access_key = '{{ secret_access_key }}', +role_arn = '{{ role_arn }}', +region = '{{ region }}', +encrypted = {{ encrypted }}, +enabled = {{ enabled }} +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND authentication_mode = '{{ authentication_mode }}' --required +RETURNING +id, +access_key_id, +bucket_name, +destination_name, +authentication_mode, +created_at, +created_by, +description, +enabled, +encrypted, +invalidated_by_system, +modified_at, +modified_by, +region, +role_arn, +secret_access_key; ``` -## Lifecycle Methods +## `DELETE` examples - + -Update an S3 data forwarding destination by the given identifier. +Delete an existing Amazon S3 data forwarding destination with the given identifier. ```sql -EXEC sumologic.logs_data_forwarding.destinations.UpdateDataForwardingBucket -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"destinationName": "{{ destinationName }}", -"description": "{{ description }}", -"authenticationMode": "{{ authenticationMode }}", -"accessKeyId": "{{ accessKeyId }}", -"secretAccessKey": "{{ secretAccessKey }}", -"roleArn": "{{ roleArn }}", -"region": "{{ region }}", -"encrypted": {{ encrypted }}, -"enabled": {{ enabled }} -}' +DELETE FROM sumologic.logs_data_forwarding.destinations +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/logs_data_forwarding/rules/index.md b/website/docs/services/logs_data_forwarding/rules/index.md index 901e962..2f8cfe4 100644 --- a/website/docs/services/logs_data_forwarding/rules/index.md +++ b/website/docs/services/logs_data_forwarding/rules/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a rules resource. ## Overview - +
Namerules
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a rules resource. The following fields are returned by `SELECT` queries: - + Data forwarding rule that was requested. @@ -57,24 +58,29 @@ Data forwarding rule that was requested. The unique identifier of the data forwarding rule. (example: 1) - - object - + + string + The data forwarding destination id. (example: 1) (wire: destinationId) - - string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + + string + The `id` of the Partition or Scheduled View the rule applies to. (example: 1) (wire: indexId) - + string - Identifier of the user who created the resource. (example: 0000000006743FDD) + (opaque JSON object) - + + string (date-time) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) + + + string - The data forwarding destination id. (example: 1) + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) @@ -82,39 +88,34 @@ Data forwarding rule that was requested. True when the data forwarding rule is enabled. - + string - Specify the path prefix to a directory in the S3 bucket and how to format the file name. (example: {index}_{day}_{hour}_{minute}_{second}) + Specify the path prefix to a directory in the S3 bucket and how to format the file name. (example: {index}_{day}_{hour}_{minute}_{second}) (wire: fileFormat) string - Format of the payload. (pattern: ^(csv|raw|json)$, example: csv, default: csv, x-pattern-message: should be one of the following: 'csv', 'raw', or 'json') + Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. (pattern: <code>^(csv|json|text)$</code>, example: csv, x-pattern-message: should be one of the following: 'csv', 'json' or 'text') - - string - The `id` of the Partition or Scheduled View the rule applies to. (example: 1) - - - + string (date-time) - Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. (example: 0000000006743FE8) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) - + string - Schema for the payload. (pattern: ^(default|builtInFields|allFields)$, example: default, default: default, x-pattern-message: should be one of the following: 'default', 'builtInFields', or 'allFields') + Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. (pattern: <code>^(builtInFields|allFields|raw)$</code>, example: builtInFields, x-pattern-message: should be one of the following: 'builtInFields', 'allFields' or 'raw') (wire: payloadSchema) - + List of all S3 data forwarding rules. @@ -128,14 +129,64 @@ List of all S3 data forwarding rules. - - array - List of S3 data forwarding rules. + + string + The unique identifier of the data forwarding rule. (example: 1) + + + + string + The data forwarding destination id. (example: 1) (wire: destinationId) + + + + string + The `id` of the Partition or Scheduled View the rule applies to. (example: 1) (wire: indexId) + + + + string + (opaque JSON object) + + + + string (date-time) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) + + + + string + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) + + + + boolean + True when the data forwarding rule is enabled. + + + + string + Specify the path prefix to a directory in the S3 bucket and how to format the file name. (example: {index}_{day}_{hour}_{minute}_{second}) (wire: fileFormat) + + + + string + Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. (pattern: <code>^(csv|json|text)$</code>, example: csv, x-pattern-message: should be one of the following: 'csv', 'json' or 'text') - + + string (date-time) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) + + + string - Next continuation token. (example: VEZuRU4veXF2UWFCUURYSDNQUzJxWlpRRUsvTlBieXA) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) + + + + string + Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. (pattern: <code>^(builtInFields|allFields|raw)$</code>, example: builtInFields, x-pattern-message: should be one of the following: 'builtInFields', 'allFields' or 'raw') (wire: payloadSchema) @@ -158,39 +209,39 @@ The following methods are available for this resource: - + - indexId, region + index_id, region Get the details of an S3 data forwarding rule by its Partition or Scheduled View identifier. - + region limit, token Get a list of all S3 data forwarding rules. - + - region, data__destinationId, data__indexId + region, destination_id, index_id Create a data forwarding rule to send data from a Partition or Scheduled View to an S3 bucket. - - - indexId, region + + + index_id, region - Delete an S3 data forwarding rule by its Partition or Scheduled View identifier. + Update an S3 data forwarding rule by its Partition or Scheduled View identifier. - - - indexId, region + + + index_id, region - Update an S3 data forwarding rule by its Partition or Scheduled View identifier. + Delete an S3 data forwarding rule by its Partition or Scheduled View identifier. @@ -208,15 +259,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - - + + string - The `id` of the Partition or Scheduled View with the data forwarding rule to update. (example: 1) + The `id` of the Partition or Scheduled View with the data forwarding rule to delete. (example: 1) (wire: indexId) string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -234,46 +285,56 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the details of an S3 data forwarding rule by its Partition or Scheduled View identifier. ```sql SELECT id, +destination_id, +index_id, bucket, -createdAt, -createdBy, -destinationId, +created_at, +created_by, enabled, -fileFormat, +file_format, format, -indexId, -modifiedAt, -modifiedBy, -payloadSchema +modified_at, +modified_by, +payload_schema FROM sumologic.logs_data_forwarding.rules -WHERE indexId = '{{ indexId }}' -- required -AND region = '{{ region }}' -- required +WHERE index_id = '{{ index_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + Get a list of all S3 data forwarding rules. ```sql SELECT -data, -nextToken +id, +destination_id, +index_id, +bucket, +created_at, +created_by, +enabled, +file_format, +format, +modified_at, +modified_by, +payload_schema FROM sumologic.logs_data_forwarding.rules -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' ; @@ -285,135 +346,143 @@ AND token = '{{ token }}' ## `INSERT` examples - + Create a data forwarding rule to send data from a Partition or Scheduled View to an S3 bucket. ```sql INSERT INTO sumologic.logs_data_forwarding.rules ( -data__indexId, -data__destinationId, -data__enabled, -data__fileFormat, -data__payloadSchema, -data__format, +index_id, +destination_id, +enabled, +file_format, +payload_schema, +format, region ) SELECT -'{{ indexId }}' /* required */, -'{{ destinationId }}' /* required */, +'{{ index_id }}' /* required */, +'{{ destination_id }}' /* required */, {{ enabled }}, -'{{ fileFormat }}', -'{{ payloadSchema }}', +'{{ file_format }}', +'{{ payload_schema }}', '{{ format }}', '{{ region }}' RETURNING id, -createdAt, -createdBy, -destinationId, +destination_id, +index_id, +created_at, +created_by, enabled, -fileFormat, +file_format, format, -indexId, -modifiedAt, -modifiedBy, -payloadSchema +modified_at, +modified_by, +payload_schema ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: rules props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the rules resource. - - name: indexId - value: string + - name: index_id + value: "{{ index_id }}" description: | - The `id` of the Partition or Scheduled View the rule applies to. - - name: destinationId - value: string + The \`id\` of the Partition or Scheduled View the rule applies to. + - name: destination_id + value: "{{ destination_id }}" description: | The data forwarding destination id. - name: enabled - value: boolean + value: {{ enabled }} description: | True when the data forwarding rule is enabled. - - name: fileFormat - value: string + - name: file_format + value: "{{ file_format }}" description: | Specify the path prefix to a directory in the S3 bucket and how to format the file name. - - name: payloadSchema - value: string + - name: payload_schema + value: "{{ payload_schema }}" description: | - Schema for the payload. - default: default + Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. - name: format - value: string + value: "{{ format }}" description: | - Format of the payload. - default: csv -``` + Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. +`} + -## `DELETE` examples +## `UPDATE` examples - + -Delete an S3 data forwarding rule by its Partition or Scheduled View identifier. +Update an S3 data forwarding rule by its Partition or Scheduled View identifier. ```sql -DELETE FROM sumologic.logs_data_forwarding.rules -WHERE indexId = '{{ indexId }}' --required -AND region = '{{ region }}' --required -; +UPDATE sumologic.logs_data_forwarding.rules +SET +destination_id = '{{ destination_id }}', +enabled = {{ enabled }}, +file_format = '{{ file_format }}', +payload_schema = '{{ payload_schema }}', +format = '{{ format }}' +WHERE +index_id = '{{ index_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +RETURNING +id, +destination_id, +index_id, +created_at, +created_by, +enabled, +file_format, +format, +modified_at, +modified_by, +payload_schema; ``` -## Lifecycle Methods +## `DELETE` examples - + -Update an S3 data forwarding rule by its Partition or Scheduled View identifier. +Delete an S3 data forwarding rule by its Partition or Scheduled View identifier. ```sql -EXEC sumologic.logs_data_forwarding.rules.updateDataForwardingRule -@indexId='{{ indexId }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"destinationId": "{{ destinationId }}", -"enabled": {{ enabled }}, -"fileFormat": "{{ fileFormat }}", -"payloadSchema": "{{ payloadSchema }}", -"format": "{{ format }}" -}' +DELETE FROM sumologic.logs_data_forwarding.rules +WHERE index_id = '{{ index_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/lookup_tables/delete_table_row/index.md b/website/docs/services/lookup_tables/delete_table_row/index.md deleted file mode 100644 index bf58dbc..0000000 --- a/website/docs/services/lookup_tables/delete_table_row/index.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: delete_table_row -hide_title: false -hide_table_of_contents: false -keywords: - - delete_table_row - - lookup_tables - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a delete_table_row resource. - -## Overview - - - - -
Namedelete_table_row
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, region, primaryKeyDelete a row from lookup table by providing the row's primary keys' values. The complete set of primary key fields of the lookup table should be provided.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the lookup table.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Delete a row from lookup table by providing the row's primary keys' values. The complete set of primary key fields of the lookup table should be provided. - -```sql -EXEC sumologic.lookup_tables.delete_table_row.deleteTableRow -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"primaryKey": "{{ primaryKey }}" -}' -; -``` - - diff --git a/website/docs/services/lookup_tables/index.md b/website/docs/services/lookup_tables/index.md index 586c979..aec49e9 100644 --- a/website/docs/services/lookup_tables/index.md +++ b/website/docs/services/lookup_tables/index.md @@ -18,20 +18,16 @@ lookup_tables service documentation. :::info[Service Summary] -total resources: __6__ +total resources: __2__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/lookup_tables/jobs/index.md b/website/docs/services/lookup_tables/jobs/index.md new file mode 100644 index 0000000..5e6ab88 --- /dev/null +++ b/website/docs/services/lookup_tables/jobs/index.md @@ -0,0 +1,202 @@ +--- +title: jobs +hide_title: false +hide_table_of_contents: false +keywords: + - jobs + - lookup_tables + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a jobs resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The status of async job with given identifier. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringAn identifier returned in response to an asynchronous request. (example: 0000000001C41EF2) (wire: jobId)
stringContent id of lookup table on which this operation was performed. (example: 0000000001C41EE4) (wire: lookupContentId)
stringUser id of user who initiated this operation. (example: 0000000006743FDD) (wire: userId)
stringName of lookup table on which this operation was performed. (example: sampleLookup) (wire: lookupName)
string (date-time)Creation time of this job in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
arrayMore information about the failures, if the status is `Failed`.
stringContent path of lookup table on which this operation was performed. (example: /Library/Users/xyz@demo.com/sampleLookup) (wire: lookupContentPath)
string (date-time)Timestamp in UTC when status was last updated. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringType of asynchronous request made: - `BulkMerge` - `BulkReplace` - `Truncate` (example: BulkMerge) (wire: requestType)
stringWhether or not the request is pending (`Pending`), in progress (`InProgress`), has completed successfully (`Success`), has completed partially with warnings (`PartialSuccess`) or has completed with an error (`Failed`).
arrayAdditional status messages generated if any if the status is `Success`. (wire: statusMessages)
arrayMore information about the warnings, if the status is `PartialSuccess`.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, regionRetrieve the status of a previously made request. If the request was successful, the status of the response object will be `Success`.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringAn identifier returned in response to an asynchronous request. (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Retrieve the status of a previously made request. If the request was successful, the status of the response object will be `Success`. + +```sql +SELECT +job_id, +lookup_content_id, +user_id, +lookup_name, +created_at, +errors, +lookup_content_path, +modified_at, +request_type, +status, +status_messages, +warnings +FROM sumologic.lookup_tables.jobs +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/lookup_tables/jobs_status/index.md b/website/docs/services/lookup_tables/jobs_status/index.md deleted file mode 100644 index 6932021..0000000 --- a/website/docs/services/lookup_tables/jobs_status/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: jobs_status -hide_title: false -hide_table_of_contents: false -keywords: - - jobs_status - - lookup_tables - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a jobs_status resource. - -## Overview - - - - -
Namejobs_status
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
jobId, regionRetrieve the status of a previously made request. If the request was successful, the status of the response object will be `Success`.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringAn identifier returned in response to an asynchronous request.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Retrieve the status of a previously made request. If the request was successful, the status of the response object will be `Success`. - -```sql -EXEC sumologic.lookup_tables.jobs_status.requestJobStatus -@jobId='{{ jobId }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/lookup_tables/lookup_tables/index.md b/website/docs/services/lookup_tables/lookup_tables/index.md index 9420f68..5138633 100644 --- a/website/docs/services/lookup_tables/lookup_tables/index.md +++ b/website/docs/services/lookup_tables/lookup_tables/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a lookup_tables resource. ## Overview - +
Namelookup_tables
Name
TypeResource
Id
@@ -31,8 +32,99 @@ Creates, updates, deletes, gets or lists a lookup_tables resource. The following fields are returned by `SELECT` queries: -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +Definition of the lookup table. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the lookup table as a content item. (example: 0000000001C41EE4)
stringThe name of the lookup table. (example: SampleLookupTable)
stringThe parent-folder-path identifier of the lookup table in the Library. (example: 0000000001C41EE4) (wire: parentFolderId)
stringAddress/path of the parent folder of this lookup table in content library. For example, a lookup table existing in the personal/lookupTable folder for user johndoe would be: /Library/Users/johndoe@acme.com/lookupTable (example: /Library/Users/johndoe@acme.com/lookupTable) (wire: contentPath)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
stringThe description of the lookup table. (example: This is a sample lookup table description.)
arrayThe list of fields in the lookup table.
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
arrayThe names of the fields that make up the primary key for the lookup table. These will be a subset of the fields that the table will contain. (wire: primaryKeys)
integer (int64)The current size of the lookup table in bytes
stringThe action that needs to be taken when the size limit is reached for the table. The possible values can be `StopIncomingMessages` or `DeleteOldData`. DeleteOldData will start deleting old data once size limit is reached whereas StopIncomingMessages will discard all the updates made to the lookup table once size limit is reached. (pattern: <code>^(StopIncomingMessages|DeleteOldData)$</code>, example: DeleteOldData, default: StopIncomingMessages, x-pattern-message: must be either `StopIncomingMessages` or `DeleteOldData`) (wire: sizeLimitAction)
integer (int32)A time to live for each entry in the lookup table (in minutes). 365 days is the maximum time to live for each entry that you can specify. Setting it to 0 means that the records will not expire automatically.
+
+
## Methods @@ -50,32 +142,53 @@ The following methods are available for this resource: - + + + id, region + + Get a lookup table for the given identifier. + + + - region, data__description, data__fields, data__primaryKeys + region, name, parent_folder_id, description, fields, primary_keys + + Create a new lookup table by providing a schema and specifying its configuration. Providing parentFolderId<br /> is mandatory. Use the getItemByPath endpoint to get content id of a path.<br />Please check Content management API and Folder management API for all available options. + + + + + id, region, description, ttl - Create a new lookup table by providing a schema and specifying its configuration. Providing parentFolderId
is mandatory. Use the [getItemByPath] endpoint to get content id of a path.
Please check [Content management API] and [Folder management API] for all available options. + Edit the lookup table data. All the fields are mandatory in the request. - + id, region - Delete a lookup table completely.
**Warning:** `This operation cannot be undone`. + Delete a lookup table completely. <br /> **Warning:** `This operation cannot be undone`. - + id, region - Get a lookup table for the given identifier. + Delete all data from a lookup table. - + - id, region, description, ttl + id, region, row - Edit the lookup table data. All the fields are mandatory in the request. + Insert or update a row of a lookup table with the given identifier. A new row is inserted if the primary key does not exist already, otherwise the existing row with the specified primary key is updated. All the fields of the lookup table are required and will be updated to the given values. In case a field is not specified then it will be assumed to be set to null. If the table size exceeds the maximum limit of 100MB then based on the size limit action of the table the update will be processed or discarded. + + + + + id, region, primaryKey + + Delete a row from lookup table by providing the row's primary keys' values. The complete set of primary key fields of the lookup table should be provided. @@ -101,101 +214,184 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) +## `SELECT` examples + + + + +Get a lookup table for the given identifier. + +```sql +SELECT +id, +name, +parent_folder_id, +content_path, +created_at, +created_by, +description, +fields, +modified_at, +modified_by, +primary_keys, +size, +size_limit_action, +ttl +FROM sumologic.lookup_tables.lookup_tables +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + ## `INSERT` examples - + -Create a new lookup table by providing a schema and specifying its configuration. Providing parentFolderId
is mandatory. Use the [getItemByPath] endpoint to get content id of a path.
Please check [Content management API] and [Folder management API] for all available options. +Create a new lookup table by providing a schema and specifying its configuration. Providing parentFolderId<br /> is mandatory. Use the getItemByPath endpoint to get content id of a path.<br />Please check Content management API and Folder management API for all available options. ```sql INSERT INTO sumologic.lookup_tables.lookup_tables ( -data__description, -data__fields, -data__primaryKeys, -data__ttl, -data__sizeLimitAction, -data__name, -data__parentFolderId, +description, +fields, +primary_keys, +ttl, +size_limit_action, +name, +parent_folder_id, region ) SELECT '{{ description }}' /* required */, '{{ fields }}' /* required */, -'{{ primaryKeys }}' /* required */, +'{{ primary_keys }}' /* required */, {{ ttl }}, -'{{ sizeLimitAction }}', -'{{ name }}', -'{{ parentFolderId }}', +'{{ size_limit_action }}', +'{{ name }}' /* required */, +'{{ parent_folder_id }}' /* required */, '{{ region }}' RETURNING id, name, -contentPath, -createdAt, -createdBy, +parent_folder_id, +content_path, +created_at, +created_by, description, fields, -modifiedAt, -modifiedBy, -parentFolderId, -primaryKeys, +modified_at, +modified_by, +primary_keys, size, -sizeLimitAction, +size_limit_action, ttl ; ```
-```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: lookup_tables props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the lookup_tables resource. - name: description - value: string + value: "{{ description }}" description: | The description of the lookup table. - name: fields - value: array description: | The list of fields in the lookup table. - - name: primaryKeys - value: array + value: + - fieldName: "{{ fieldName }}" + fieldType: "{{ fieldType }}" + - name: primary_keys + value: + - "{{ primary_keys }}" description: | The names of the fields that make up the primary key for the lookup table. These will be a subset of the fields that the table will contain. - name: ttl - value: integer + value: {{ ttl }} description: | A time to live for each entry in the lookup table (in minutes). 365 days is the maximum time to live for each entry that you can specify. Setting it to 0 means that the records will not expire automatically. default: 0 - - name: sizeLimitAction - value: string + - name: size_limit_action + value: "{{ size_limit_action }}" description: | - The action that needs to be taken when the size limit is reached for the table. The possible values can be `StopIncomingMessages` or `DeleteOldData`. DeleteOldData will start deleting old data once size limit is reached whereas StopIncomingMessages will discard all the updates made to the lookup table once size limit is reached. + The action that needs to be taken when the size limit is reached for the table. The possible values can be \`StopIncomingMessages\` or \`DeleteOldData\`. DeleteOldData will start deleting old data once size limit is reached whereas StopIncomingMessages will discard all the updates made to the lookup table once size limit is reached. default: StopIncomingMessages - name: name - value: string + value: "{{ name }}" description: | The name of the lookup table. - - name: parentFolderId - value: string + - name: parent_folder_id + value: "{{ parent_folder_id }}" description: | The parent-folder-path identifier of the lookup table in the Library. +`} + + +
+ + +## `UPDATE` examples + + + + +Edit the lookup table data. All the fields are mandatory in the request. + +```sql +UPDATE sumologic.lookup_tables.lookup_tables +SET +ttl = {{ ttl }}, +description = '{{ description }}', +size_limit_action = '{{ size_limit_action }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND description = '{{ description }}' --required +AND ttl = '{{ ttl }}' --required +RETURNING +id, +name, +parent_folder_id, +content_path, +created_at, +created_by, +description, +fields, +modified_at, +modified_by, +primary_keys, +size, +size_limit_action, +ttl; ``` @@ -204,19 +400,19 @@ ttl ## `DELETE` examples - + -Delete a lookup table completely.
**Warning:** `This operation cannot be undone`. +Delete a lookup table completely. <br /> **Warning:** `This operation cannot be undone`. ```sql DELETE FROM sumologic.lookup_tables.lookup_tables WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ```
@@ -225,37 +421,53 @@ AND region = '{{ region }}' --required ## Lifecycle Methods +EXEC variables use wire (API) names. + - + -Get a lookup table for the given identifier. +Delete all data from a lookup table. ```sql -EXEC sumologic.lookup_tables.lookup_tables.lookupTableById +EXEC sumologic.lookup_tables.lookup_tables.truncate @id='{{ id }}' --required, -@region='{{ region }}' --required +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + -Edit the lookup table data. All the fields are mandatory in the request. +Insert or update a row of a lookup table with the given identifier. A new row is inserted if the primary key does not exist already, otherwise the existing row with the specified primary key is updated. All the fields of the lookup table are required and will be updated to the given values. In case a field is not specified then it will be assumed to be set to null. If the table size exceeds the maximum limit of 100MB then based on the size limit action of the table the update will be processed or discarded. + +```sql +EXEC sumologic.lookup_tables.lookup_tables.upsert_row +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"row": "{{ row }}" +}' +; +``` + + + +Delete a row from lookup table by providing the row's primary keys' values. The complete set of primary key fields of the lookup table should be provided. ```sql -EXEC sumologic.lookup_tables.lookup_tables.updateTable +EXEC sumologic.lookup_tables.lookup_tables.delete_row @id='{{ id }}' --required, -@region='{{ region }}' --required +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set @@json= '{ -"ttl": {{ ttl }}, -"description": "{{ description }}", -"sizeLimitAction": "{{ sizeLimitAction }}" +"primaryKey": "{{ primaryKey }}" }' ; ``` diff --git a/website/docs/services/lookup_tables/row/index.md b/website/docs/services/lookup_tables/row/index.md deleted file mode 100644 index 4547d4a..0000000 --- a/website/docs/services/lookup_tables/row/index.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: row -hide_title: false -hide_table_of_contents: false -keywords: - - row - - lookup_tables - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a row resource. - -## Overview - - - - -
Namerow
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, region, rowInsert or update a row of a lookup table with the given identifier. A new row is inserted if the primary key does not exist already, otherwise the existing row with the specified primary key is updated. All the fields of the lookup table are required and will be updated to the given values. In case a field is not specified then it will be assumed to be set to null. If the table size exceeds the maximum limit of 100MB then based on the size limit action of the table the update will be processed or discarded.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the lookup table.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Insert or update a row of a lookup table with the given identifier. A new row is inserted if the primary key does not exist already, otherwise the existing row with the specified primary key is updated. All the fields of the lookup table are required and will be updated to the given values. In case a field is not specified then it will be assumed to be set to null. If the table size exceeds the maximum limit of 100MB then based on the size limit action of the table the update will be processed or discarded. - -```sql -EXEC sumologic.lookup_tables.row.updateTableRow -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"row": "{{ row }}" -}' -; -``` - - diff --git a/website/docs/services/lookup_tables/truncate/index.md b/website/docs/services/lookup_tables/truncate/index.md deleted file mode 100644 index 38f765e..0000000 --- a/website/docs/services/lookup_tables/truncate/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: truncate -hide_title: false -hide_table_of_contents: false -keywords: - - truncate - - lookup_tables - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a truncate resource. - -## Overview - - - - -
Nametruncate
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionDelete all data from a lookup table.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the table to clear.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Delete all data from a lookup table. - -```sql -EXEC sumologic.lookup_tables.truncate.truncateTable -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/lookup_tables/upload/index.md b/website/docs/services/lookup_tables/upload/index.md deleted file mode 100644 index ab2d78b..0000000 --- a/website/docs/services/lookup_tables/upload/index.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: upload -hide_title: false -hide_table_of_contents: false -keywords: - - upload - - lookup_tables - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a upload resource. - -## Overview - - - - -
Nameupload
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, region, filemerge, fileEncodingCreate a request to populate a lookup table with a CSV file.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the lookup table to populate.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringFile encoding of file being uploaded.
booleanThis indicates whether the file contents will be merged with existing data in the lookup table or not. If this is true then data with the same primary keys will be updated while the rest of the rows will be appended. By default, merge is false. The response includes a request identifier that you need to use in the [Request Status API] to track the status of the upload request.
- -## Lifecycle Methods - - - - -Create a request to populate a lookup table with a CSV file. - -```sql -EXEC sumologic.lookup_tables.upload.uploadFile -@id='{{ id }}' --required, -@region='{{ region }}' --required, -@merge={{ merge }}, -@fileEncoding='{{ fileEncoding }}' -@@json= -'{ -"file": "{{ file }}" -}' -; -``` - - diff --git a/website/docs/services/plan/index.md b/website/docs/services/macros/index.md similarity index 79% rename from website/docs/services/plan/index.md rename to website/docs/services/macros/index.md index e156332..56dfaa5 100644 --- a/website/docs/services/plan/index.md +++ b/website/docs/services/macros/index.md @@ -1,9 +1,9 @@ --- -title: plan +title: macros hide_title: false hide_table_of_contents: false keywords: - - plan + - macros - sumologic - stackql - infrastructure-as-code @@ -14,7 +14,7 @@ custom_edit_url: null image: /img/stackql-sumologic-provider-featured-image.png --- -plan service documentation. +macros service documentation. :::info[Service Summary] @@ -25,7 +25,7 @@ total resources: __1__ ## Resources
diff --git a/website/docs/services/macros/macros/index.md b/website/docs/services/macros/macros/index.md new file mode 100644 index 0000000..034b8d6 --- /dev/null +++ b/website/docs/services/macros/macros/index.md @@ -0,0 +1,475 @@ +--- +title: macros +hide_title: false +hide_table_of_contents: false +keywords: + - macros + - macros + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a macros resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Macro object that was requested. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the macro. This id is used to get detailed information about the macro, such as name, definition, arguments and argument validations. (example: C03E086C137F38B4)
stringName of the macro. (example: MacroGeoLookup)
stringIdentifier if the suggestion comes from an macro creation suggestion. This id is used to track macro creation suggestions, and to delete the suggestion once the macro is created. (example: ABC12) (wire: macroCreationSuggestionId)
arrayValidation expressions for the arguments. (wire: argumentValidations)
arrayArguments used in the macro.
string (date-time)Creation timestamp of the macro in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2024-10-01T09:10:00.000Z) (wire: createdAt)
stringThe identifier of the user who created the macro. (example: 0000000006743FDD) (wire: createdBy)
stringThe definition of the macro. Use a valid Sumo Log Search expression. (example: lookup latitude, longitude from geo:​//location on ip = {{ip_field}} | count by latitude, longitude | sort _count"<br />)
stringDescription of the macro. (example: Macro for geo lookup.)
booleanIf the macro is enabled or not (default True)
+
+ + +Paginated list of viewable macros for the customer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the macro. This id is used to get detailed information about the macro, such as name, definition, arguments and argument validations. (example: C03E086C137F38B4)
stringName of the macro. (example: MacroGeoLookup)
stringIdentifier if the suggestion comes from an macro creation suggestion. This id is used to track macro creation suggestions, and to delete the suggestion once the macro is created. (example: ABC12) (wire: macroCreationSuggestionId)
arrayValidation expressions for the arguments. (wire: argumentValidations)
arrayArguments used in the macro.
string (date-time)Creation timestamp of the macro in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2024-10-01T09:10:00.000Z) (wire: createdAt)
stringThe identifier of the user who created the macro. (example: 0000000006743FDD) (wire: createdBy)
stringThe definition of the macro. Use a valid Sumo Log Search expression. (example: lookup latitude, longitude from geo:​//location on ip = {{ip_field}} | count by latitude, longitude | sort _count"<br />)
stringDescription of the macro. (example: Macro for geo lookup.)
booleanIf the macro is enabled or not (default True)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet a macro by the given identifier.
regionlimit, tokenList all viewable macros for the customer.
region, definition, nameCreates a new macro.
id, region, definitionEdits an existing macro by id. Macro name is immutable.
id, regionDelete a macro by id.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringId of macro to delete.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
integer (int32)Limit the number of macro returned in the response. The number of macros returned may be less than the `limit`. Default 50. (example: 50)
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. (example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc)
+ +## `SELECT` examples + + + + +Get a macro by the given identifier. + +```sql +SELECT +id, +name, +macro_creation_suggestion_id, +argument_validations, +arguments, +created_at, +created_by, +definition, +description, +enabled +FROM sumologic.macros.macros +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +List all viewable macros for the customer. + +```sql +SELECT +id, +name, +macro_creation_suggestion_id, +argument_validations, +arguments, +created_at, +created_by, +definition, +description, +enabled +FROM sumologic.macros.macros +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +; +``` + + + + +## `INSERT` examples + + + + +Creates a new macro. + +```sql +INSERT INTO sumologic.macros.macros ( +description, +definition, +enabled, +arguments, +argument_validations, +name, +macro_creation_suggestion_id, +region +) +SELECT +'{{ description }}', +'{{ definition }}' /* required */, +{{ enabled }}, +'{{ arguments }}', +'{{ argument_validations }}', +'{{ name }}' /* required */, +'{{ macro_creation_suggestion_id }}', +'{{ region }}' +RETURNING +id, +name, +macro_creation_suggestion_id, +argument_validations, +arguments, +created_at, +created_by, +definition, +description, +enabled +; +``` + + + +{`# Description fields are for documentation purposes +- name: macros + props: + - name: region + value: "{{ region }}" + description: Required parameter for the macros resource. + - name: description + value: "{{ description }}" + description: | + Description of the macro. + - name: definition + value: "{{ definition }}" + description: | + The definition of the macro. Use a valid Sumo Log Search expression. + - name: enabled + value: {{ enabled }} + description: | + If the macro is enabled or not (default True) + default: true + - name: arguments + description: | + Arguments used in the macro. + value: + - name: "{{ name }}" + type: "{{ type }}" + - name: argument_validations + description: | + Validation expressions for the arguments. + value: + - evalExpression: "{{ evalExpression }}" + errorMessage: "{{ errorMessage }}" + - name: name + value: "{{ name }}" + description: | + Name of the macro. + - name: macro_creation_suggestion_id + value: "{{ macro_creation_suggestion_id }}" + description: | + Identifier if the suggestion comes from an macro creation suggestion. This id is used to track macro creation suggestions, and to delete the suggestion once the macro is created. +`} + + + + + +## `UPDATE` examples + + + + +Edits an existing macro by id. Macro name is immutable. + +```sql +UPDATE sumologic.macros.macros +SET +description = '{{ description }}', +definition = '{{ definition }}', +enabled = {{ enabled }}, +arguments = '{{ arguments }}', +argument_validations = '{{ argument_validations }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND definition = '{{ definition }}' --required +RETURNING +id, +name, +macro_creation_suggestion_id, +argument_validations, +arguments, +created_at, +created_by, +definition, +description, +enabled; +``` + + + + +## `DELETE` examples + + + + +Delete a macro by id. + +```sql +DELETE FROM sumologic.macros.macros +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/metrics_queries/metrics_queries/index.md b/website/docs/services/metrics_queries/metrics_queries/index.md index d1c9717..f213124 100644 --- a/website/docs/services/metrics_queries/metrics_queries/index.md +++ b/website/docs/services/metrics_queries/metrics_queries/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a metrics_queries resource ## Overview - +
Namemetrics_queries
Name
TypeResource
Id
@@ -50,11 +51,11 @@ The following methods are available for this resource: - + region, queries, timeRange - Execute up to six metrics queries. If you specify multiple queries, each is returned as a separate set of time series. A metric query returns a maximum of 300 data points per metric. A metric query will process a maximum of 15K unique time series to calculate the query results. Query results are limited to 1000 unique time series.
For more information see [Metrics Queries](https://help.sumologic.com/?cid=10144). + Execute multiple metrics queries. Limits of this API are described in [Metrics Query Error Messages](https:​//help.sumologic.com/docs/metrics/metrics-queries/metric-query-error-messages/). For general information about Metrics Queries see [Metrics Queries](https:​//help.sumologic.com/docs/metrics/metrics-queries/). @@ -75,26 +76,28 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) ## Lifecycle Methods +EXEC variables use wire (API) names. + - + -Execute up to six metrics queries. If you specify multiple queries, each is returned as a separate set of time series. A metric query returns a maximum of 300 data points per metric. A metric query will process a maximum of 15K unique time series to calculate the query results. Query results are limited to 1000 unique time series.
For more information see [Metrics Queries](https://help.sumologic.com/?cid=10144). +Execute multiple metrics queries. Limits of this API are described in [Metrics Query Error Messages](https://help.sumologic.com/docs/metrics/metrics-queries/metric-query-error-messages/). For general information about Metrics Queries see [Metrics Queries](https://help.sumologic.com/docs/metrics/metrics-queries/). ```sql -EXEC sumologic.metrics_queries.metrics_queries.runMetricsQueries -@region='{{ region }}' --required +EXEC sumologic.metrics_queries.metrics_queries.run +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set @@json= '{ "queries": "{{ queries }}", diff --git a/website/docs/services/metrics_searches/index.md b/website/docs/services/metrics_searches/index.md index 0322488..1e20254 100644 --- a/website/docs/services/metrics_searches/index.md +++ b/website/docs/services/metrics_searches/index.md @@ -18,7 +18,7 @@ metrics_searches service documentation. :::info[Service Summary] -total resources: __1__ +total resources: __2__ ::: @@ -28,6 +28,6 @@ total resources: __1__ metrics_searches
\ No newline at end of file diff --git a/website/docs/services/metrics_searches/metrics_searches/index.md b/website/docs/services/metrics_searches/metrics_searches/index.md index b0be848..575720a 100644 --- a/website/docs/services/metrics_searches/metrics_searches/index.md +++ b/website/docs/services/metrics_searches/metrics_searches/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a metrics_searches resourc ## Overview - +
Namemetrics_searches
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a metrics_searches resourc The following fields are returned by `SELECT` queries: - + A metrics search object with metadata. @@ -56,14 +57,19 @@ A metrics search object with metadata. Identifier of the metrics search. (example: 000000000000001A) - + + string + Identifier of the parent element in the content library, such as folder. (example: 0000000000007D2B) (wire: parentId) + + + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) - + string - Identifier of the user who created the resource. (example: 0000000006743FDD) + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) @@ -71,34 +77,29 @@ A metrics search object with metadata. Item description in the content library. (example: Long and detailed description) - + integer (int32) - Desired quantization in seconds. + Desired quantization in seconds. (wire: desiredQuantizationInSecs) - + string - Log query used to add an overlay to the chart. (example: my_metric | timeslice 1m | count by _timeslice) + Log query used to add an overlay to the chart. (example: my_metric | timeslice 1m | count by _timeslice) (wire: logQuery) - + array - Metrics queries, up to the maximum of six. + Metrics queries, up to the maximum of six. (wire: metricsQueries) - + string (date-time) - Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. (example: 0000000006743FE8) - - - - string - Identifier of the parent element in the content library, such as folder. (example: 0000000000007D2B) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) @@ -106,14 +107,14 @@ A metrics search object with metadata. Chart properties, like line width, color palette, and the fill missing data method. Leave this field empty to use the defaults. This property contains JSON object encoded as a string. (example: { \"key\": \"value\" }) - + object - + (wire: timeRange) string - Item title in the content library. (pattern: ^[a-zA-Z0-9 +%-@.,_()]+$, example: Short title) + Item title in the content library. (pattern: <code>^[a-zA-Z0-9 +%-@.,_()]+$</code>, example: Short title) @@ -136,32 +137,32 @@ The following methods are available for this resource: - + id, region Returns a metrics search with the specified identifier. - + - region, data__description, data__metricsQueries, data__timeRange, data__title + region, description, metrics_queries, time_range, title, parent_id Saves a metrics search in the content library. Metrics search consists of one or more queries, a time range, a quantization period and a set of chart properties like line width. - - - id, region + + + id, region, description, metrics_queries, time_range, title - Deletes a metrics search from the content library. + Updates a metrics search with the specified identifier. Partial updates are not supported, you must provide values for all fields. - - - id, region, description, metricsQueries, timeRange, title + + + id, region - Updates a metrics search with the specified identifier. Partial updates are not supported, you must provide values for all fields. + Deletes a metrics search from the content library. @@ -187,7 +188,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -195,33 +196,33 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Returns a metrics search with the specified identifier. ```sql SELECT id, -createdAt, -createdBy, +parent_id, +created_at, +created_by, description, -desiredQuantizationInSecs, -logQuery, -metricsQueries, -modifiedAt, -modifiedBy, -parentId, +desired_quantization_in_secs, +log_query, +metrics_queries, +modified_at, +modified_by, properties, -timeRange, +time_range, title FROM sumologic.metrics_searches.metrics_searches WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` @@ -231,149 +232,168 @@ AND region = '{{ region }}' -- required ## `INSERT` examples - + Saves a metrics search in the content library. Metrics search consists of one or more queries, a time range, a quantization period and a set of chart properties like line width. ```sql INSERT INTO sumologic.metrics_searches.metrics_searches ( -data__title, -data__description, -data__timeRange, -data__logQuery, -data__metricsQueries, -data__desiredQuantizationInSecs, -data__properties, -data__parentId, +title, +description, +time_range, +log_query, +metrics_queries, +desired_quantization_in_secs, +properties, +parent_id, region ) SELECT '{{ title }}' /* required */, '{{ description }}' /* required */, -'{{ timeRange }}' /* required */, -'{{ logQuery }}', -'{{ metricsQueries }}' /* required */, -{{ desiredQuantizationInSecs }}, +'{{ time_range }}' /* required */, +'{{ log_query }}', +'{{ metrics_queries }}' /* required */, +{{ desired_quantization_in_secs }}, '{{ properties }}', -'{{ parentId }}', +'{{ parent_id }}' /* required */, '{{ region }}' RETURNING id, -createdAt, -createdBy, +parent_id, +created_at, +created_by, description, -desiredQuantizationInSecs, -logQuery, -metricsQueries, -modifiedAt, -modifiedBy, -parentId, +desired_quantization_in_secs, +log_query, +metrics_queries, +modified_at, +modified_by, properties, -timeRange, +time_range, title ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: metrics_searches props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the metrics_searches resource. - name: title - value: string + value: "{{ title }}" description: | Item title in the content library. - name: description - value: string + value: "{{ description }}" description: | Item description in the content library. - - name: timeRange - value: object - - name: logQuery - value: string + - name: time_range + value: + type: "{{ type }}" + - name: log_query + value: "{{ log_query }}" description: | Log query used to add an overlay to the chart. - - name: metricsQueries - value: array + - name: metrics_queries description: | Metrics queries, up to the maximum of six. - - name: desiredQuantizationInSecs - value: integer + value: + - rowId: "{{ rowId }}" + query: "{{ query }}" + - name: desired_quantization_in_secs + value: {{ desired_quantization_in_secs }} description: | Desired quantization in seconds. default: 0 - name: properties - value: string + value: "{{ properties }}" description: | Chart properties, like line width, color palette, and the fill missing data method. Leave this field empty to use the defaults. This property contains JSON object encoded as a string. - - name: parentId - value: string + - name: parent_id + value: "{{ parent_id }}" description: | Identifier of a folder to which the metrics search should be added. -``` +`} + -## `DELETE` examples +## `UPDATE` examples - + -Deletes a metrics search from the content library. +Updates a metrics search with the specified identifier. Partial updates are not supported, you must provide values for all fields. ```sql -DELETE FROM sumologic.metrics_searches.metrics_searches -WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required -; +UPDATE sumologic.metrics_searches.metrics_searches +SET +title = '{{ title }}', +description = '{{ description }}', +time_range = '{{ time_range }}', +log_query = '{{ log_query }}', +metrics_queries = '{{ metrics_queries }}', +desired_quantization_in_secs = {{ desired_quantization_in_secs }}, +properties = '{{ properties }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND description = '{{ description }}' --required +AND metrics_queries = '{{ metrics_queries }}' --required +AND time_range = '{{ time_range }}' --required +AND title = '{{ title }}' --required +RETURNING +id, +parent_id, +created_at, +created_by, +description, +desired_quantization_in_secs, +log_query, +metrics_queries, +modified_at, +modified_by, +properties, +time_range, +title; ``` -## Lifecycle Methods +## `DELETE` examples - + -Updates a metrics search with the specified identifier. Partial updates are not supported, you must provide values for all fields. +Deletes a metrics search from the content library. ```sql -EXEC sumologic.metrics_searches.metrics_searches.updateMetricsSearch -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"title": "{{ title }}", -"description": "{{ description }}", -"timeRange": "{{ timeRange }}", -"logQuery": "{{ logQuery }}", -"metricsQueries": "{{ metricsQueries }}", -"desiredQuantizationInSecs": {{ desiredQuantizationInSecs }}, -"properties": "{{ properties }}" -}' +DELETE FROM sumologic.metrics_searches.metrics_searches +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/metrics_searches/metrics_searches_v2/index.md b/website/docs/services/metrics_searches/metrics_searches_v2/index.md new file mode 100644 index 0000000..6d46874 --- /dev/null +++ b/website/docs/services/metrics_searches/metrics_searches_v2/index.md @@ -0,0 +1,464 @@ +--- +title: metrics_searches_v2 +hide_title: false +hide_table_of_contents: false +keywords: + - metrics_searches_v2 + - metrics_searches + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a metrics_searches_v2 resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Metrics search page that was requested. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the metrics search page. (example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2)
stringThe identifier of the folder to save the metrics search in. By default it is saved in your personal folder. (example: 000000000C1C17C6) (wire: folderId)
stringDescription of the metrics search page.
arrayQueries of the metrics search page.
object (wire: timeRange)
stringTitle of the metrics search page. (pattern: <code>^\s*\S.*$</code>, x-pattern-message: must contain at least 1 non-whitespace character)
stringVisual settings of the metrics search page. (wire: visualSettings)
+
+ + +Paginated list of metrics search pages under the Personal folder created by the user or viewable by user. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the metrics search page. (example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2)
stringThe identifier of the folder to save the metrics search in. By default it is saved in your personal folder. (example: 000000000C1C17C6) (wire: folderId)
stringDescription of the metrics search page.
arrayQueries of the metrics search page.
object (wire: timeRange)
stringTitle of the metrics search page. (pattern: <code>^\s*\S.*$</code>, x-pattern-message: must contain at least 1 non-whitespace character)
stringVisual settings of the metrics search page. (wire: visualSettings)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet a metrics search page by the given identifier.
regionlimit, token, modeList all metrics search pages under the Personal folder created by the user or under folders viewable by user.
region, queries, time_range, titleCreates a new metrics search page.
id, region, queries, time_range, titleUpdate a metrics search page by the given identifier.
id, regionDelete metrics search page by the given identifier.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier of the metrics search page to delete.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
integer (int32)Limit the number of metric searches returned in the response. The number of metric searches returned may be less than the `limit`. (example: 50)
stringwhether to list all viewable metric searches under the folders
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. (example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc)
+ +## `SELECT` examples + + + + +Get a metrics search page by the given identifier. + +```sql +SELECT +id, +folder_id, +description, +queries, +time_range, +title, +visual_settings +FROM sumologic.metrics_searches.metrics_searches_v2 +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +List all metrics search pages under the Personal folder created by the user or under folders viewable by user. + +```sql +SELECT +id, +folder_id, +description, +queries, +time_range, +title, +visual_settings +FROM sumologic.metrics_searches.metrics_searches_v2 +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +AND mode = '{{ mode }}' +; +``` + + + + +## `INSERT` examples + + + + +Creates a new metrics search page. + +```sql +INSERT INTO sumologic.metrics_searches.metrics_searches_v2 ( +title, +time_range, +description, +queries, +visual_settings, +folder_id, +region +) +SELECT +'{{ title }}' /* required */, +'{{ time_range }}' /* required */, +'{{ description }}', +'{{ queries }}' /* required */, +'{{ visual_settings }}', +'{{ folder_id }}', +'{{ region }}' +RETURNING +id, +folder_id, +description, +queries, +time_range, +title, +visual_settings +; +``` + + + +{`# Description fields are for documentation purposes +- name: metrics_searches_v2 + props: + - name: region + value: "{{ region }}" + description: Required parameter for the metrics_searches_v2 resource. + - name: title + value: "{{ title }}" + description: | + Title of the metrics search page. + - name: time_range + value: + type: "{{ type }}" + - name: description + value: "{{ description }}" + description: | + Description of the metrics search page. + - name: queries + description: | + Queries of the metrics search page. + value: + - queryString: "{{ queryString }}" + queryType: "{{ queryType }}" + queryKey: "{{ queryKey }}" + metricsQueryMode: "{{ metricsQueryMode }}" + metricsQueryData: + metric: "{{ metric }}" + aggregationType: "{{ aggregationType }}" + groupBy: "{{ groupBy }}" + filters: + - key: "{{ key }}" + value: "{{ value }}" + negation: {{ negation }} + operators: + - operatorName: "{{ operatorName }}" + parameters: "{{ parameters }}" + tracesQueryData: + filters: + - type: "{{ type }}" + spansQueryData: + filters: + - type: "{{ type }}" + fieldName: "{{ fieldName }}" + visualizations: + - type: "{{ type }}" + name: "{{ name }}" + groupBy: + - type: "{{ type }}" + limit: + - direction: "{{ direction }}" + limitValue: {{ limitValue }} + parseMode: "{{ parseMode }}" + timeSource: "{{ timeSource }}" + transient: {{ transient }} + outputCardinalityLimit: {{ outputCardinalityLimit }} + - name: visual_settings + value: "{{ visual_settings }}" + description: | + Visual settings of the metrics search page. + - name: folder_id + value: "{{ folder_id }}" + description: | + The identifier of the folder to save the metrics search in. By default it is saved in your personal folder. +`} + + + + + +## `UPDATE` examples + + + + +Update a metrics search page by the given identifier. + +```sql +UPDATE sumologic.metrics_searches.metrics_searches_v2 +SET +title = '{{ title }}', +time_range = '{{ time_range }}', +description = '{{ description }}', +queries = '{{ queries }}', +visual_settings = '{{ visual_settings }}', +folder_id = '{{ folder_id }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND queries = '{{ queries }}' --required +AND time_range = '{{ time_range }}' --required +AND title = '{{ title }}' --required +RETURNING +id, +folder_id, +description, +queries, +time_range, +title, +visual_settings; +``` + + + + +## `DELETE` examples + + + + +Delete metrics search page by the given identifier. + +```sql +DELETE FROM sumologic.metrics_searches.metrics_searches_v2 +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/monitors/copy/index.md b/website/docs/services/monitors/copy/index.md deleted file mode 100644 index 48b631d..0000000 --- a/website/docs/services/monitors/copy/index.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: copy -hide_title: false -hide_table_of_contents: false -keywords: - - copy - - monitors - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a copy resource. - -## Overview - - - - -
Namecopy
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, region, parentIdCopy a monitor or folder in the monitors library.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the monitor or folder to copy.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Copy a monitor or folder in the monitors library. - -```sql -EXEC sumologic.monitors.copy.monitorsCopy -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"parentId": "{{ parentId }}", -"name": "{{ name }}", -"description": "{{ description }}" -}' -; -``` - - diff --git a/website/docs/services/monitors/disable/index.md b/website/docs/services/monitors/disable/index.md deleted file mode 100644 index 8307d48..0000000 --- a/website/docs/services/monitors/disable/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: disable -hide_title: false -hide_table_of_contents: false -keywords: - - disable - - monitors - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a disable resource. - -## Overview - - - - -
Namedisable
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
ids, regionBulk disable monitors by the given identifiers.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
arrayA comma-separated list of identifiers. (example: 0000000000000001,0000000000000002,0000000000000003)
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Bulk disable monitors by the given identifiers. - -```sql -EXEC sumologic.monitors.disable.disableMonitorByIds -@ids='{{ ids }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/monitors/export/index.md b/website/docs/services/monitors/export/index.md deleted file mode 100644 index 6ad9403..0000000 --- a/website/docs/services/monitors/export/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: export -hide_title: false -hide_table_of_contents: false -keywords: - - export - - monitors - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an export resource. - -## Overview - - - - -
Nameexport
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionExport a monitor or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the monitor or folder to export.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Export a monitor or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root. - -```sql -EXEC sumologic.monitors.export.monitorsExportItem -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/monitors/import/index.md b/website/docs/services/monitors/import/index.md deleted file mode 100644 index 3bd81a0..0000000 --- a/website/docs/services/monitors/import/index.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: import -hide_title: false -hide_table_of_contents: false -keywords: - - import - - monitors - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an import resource. - -## Overview - - - - -
Nameimport
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
parentId, region, name, typeImport a monitor or folder.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the parent folder in which to import the monitor or folder.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Import a monitor or folder. - -```sql -EXEC sumologic.monitors.import.monitorsImportItem -@parentId='{{ parentId }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"name": "{{ name }}", -"description": "{{ description }}", -"type": "{{ type }}" -}' -; -``` - - diff --git a/website/docs/services/monitors/index.md b/website/docs/services/monitors/index.md index ac752a7..df360d2 100644 --- a/website/docs/services/monitors/index.md +++ b/website/docs/services/monitors/index.md @@ -18,26 +18,21 @@ monitors service documentation. :::info[Service Summary] -total resources: __14__ +total resources: __9__ ::: ## Resources
-permission_summaries_by_subjects
-permissions
-permissions_revoke
-permissions_set
+playbooks
root
search
usage_info diff --git a/website/docs/services/monitors/monitors/index.md b/website/docs/services/monitors/monitors/index.md index 39603f1..af0719e 100644 --- a/website/docs/services/monitors/monitors/index.md +++ b/website/docs/services/monitors/monitors/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a monitors resource. ## Overview - +
Namemonitors
Name
TypeResource
Id
@@ -31,8 +32,186 @@ Creates, updates, deletes, gets or lists a monitors resource. The following fields are returned by `SELECT` queries: -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + + +Requested monitor or folder. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the monitor or folder.
stringIdentifier of the monitor or folder.
stringIdentifier of the parent folder. (wire: parentId)
stringType of the content. Valid values: 1) Monitor 2) Folder (wire: contentType)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt)
stringIdentifier of the user who created the resource. (wire: createdBy)
stringDescription of the monitor or folder.
booleanImmutable objects are "READ-ONLY". (wire: isMutable)
booleanSystem objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. (wire: isSystem)
string (date-time)Last modification timestamp in UTC. (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (wire: modifiedBy)
arrayAggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint.
stringType of the object model.
integer (int64)Version of the monitor or folder.
+
+ +Requested monitor or folder. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the monitor or folder.
stringIdentifier of the monitor or folder.
stringIdentifier of the parent folder. (wire: parentId)
stringType of the content. Valid values: 1) Monitor 2) Folder (wire: contentType)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt)
stringIdentifier of the user who created the resource. (wire: createdBy)
stringDescription of the monitor or folder.
booleanImmutable objects are "READ-ONLY". (wire: isMutable)
booleanSystem objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. (wire: isSystem)
string (date-time)Last modification timestamp in UTC. (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (wire: modifiedBy)
arrayAggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint.
stringType of the object model.
integer (int64)Version of the monitor or folder.
+
+
## Methods @@ -50,46 +229,88 @@ The following methods are available for this resource: - + + + id, region + + Get a monitor or folder from the monitors library. + + + + + path, region + + Read a monitor or folder by its path in the monitors library structure. + + + + + parent_id, region, name, type + + Create a monitor or folder in the monitors library. + + + + + id, region, name, type, version + + Update a monitor or folder in the monitors library. When making updates to existing monitors via API, all configurations are over-written. Make sure to include all configurations of the monitor (existing with new updates), not just the new configurations you want to apply. + + + + + id, region + + Delete a monitor or folder from the monitors library. + + + ids, region - Bulk read a monitor or folder by the given identifiers from the monitors library. + Bulk disable monitors by the given identifiers. - + - parentId, region, name, type - - Create a monitor or folder in the monitors library. + ids, region + skipChildren + Bulk read a monitor or folder by the given identifiers from the monitors library. - + ids, region Bulk delete a monitor or folder by the given identifiers in the monitors library. - + - id, region + id, parentId, region - Get a monitor or folder from the monitors library. + Move a monitor or folder to a different location in the monitors library. - + - id, region, name, type, version + id, region, parentId - Update a monitor or folder in the monitors library. + Copy a monitor or folder in the monitors library. - + id, region - Delete a monitor or folder from the monitors library. + Export a monitor or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root. + + + + + parentId, region, name, type + + Import a monitor or folder. @@ -110,7 +331,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the monitor or folder to delete. + Identifier of the monitor or folder to export. @@ -120,105 +341,343 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the parent folder in which to create the monitor or folder. + Identifier of the parent folder in which to import the monitor or folder. + + + + string + Identifier of the parent folder in which to create the monitor or folder. (wire: parentId) + + + + string + The path of the monitor or folder. string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) + + + + boolean + a boolean parameter to control skipping fetching children of requested folder(s) +## `SELECT` examples + + + + +Get a monitor or folder from the monitors library. + +```sql +SELECT +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_mutable, +is_system, +modified_at, +modified_by, +permissions, +type, +version +FROM sumologic.monitors.monitors +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Read a monitor or folder by its path in the monitors library structure. + +```sql +SELECT +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_mutable, +is_system, +modified_at, +modified_by, +permissions, +type, +version +FROM sumologic.monitors.monitors +WHERE path = '{{ path }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples + + + + +Create a monitor or folder in the monitors library. + +```sql +INSERT INTO sumologic.monitors.monitors ( +name, +description, +type, +parent_id, +region +) +SELECT +'{{ name }}' /* required */, +'{{ description }}', +'{{ type }}' /* required */, +'{{ parent_id }}', +'{{ region }}' +RETURNING +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_mutable, +is_system, +modified_at, +modified_by, +permissions, +type, +version +; +``` + + + +{`# Description fields are for documentation purposes +- name: monitors + props: + - name: parent_id + value: "{{ parent_id }}" + description: Required parameter for the monitors resource. + - name: region + value: "{{ region }}" + description: Required parameter for the monitors resource. + - name: name + value: "{{ name }}" + description: | + Name of the monitor or folder. + - name: description + value: "{{ description }}" + description: | + Description of the monitor or folder. + default: + - name: type + value: "{{ type }}" + description: | + Type of the object model. Valid values: + 1) MonitorsLibraryMonitor + 2) MonitorsLibraryFolder +`} + + + + + +## `UPDATE` examples + + + + +Update a monitor or folder in the monitors library. When making updates to existing monitors via API, all configurations are over-written. Make sure to include all configurations of the monitor (existing with new updates), not just the new configurations you want to apply. + +```sql +UPDATE sumologic.monitors.monitors +SET +name = '{{ name }}', +description = '{{ description }}', +version = {{ version }}, +type = '{{ type }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND name = '{{ name }}' --required +AND type = '{{ type }}' --required +AND version = '{{ version }}' --required +RETURNING +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_mutable, +is_system, +modified_at, +modified_by, +permissions, +type, +version; +``` + + + + +## `DELETE` examples + + + + +Delete a monitor or folder from the monitors library. + +```sql +DELETE FROM sumologic.monitors.monitors +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + ## Lifecycle Methods +EXEC variables use wire (API) names. + - + -Bulk read a monitor or folder by the given identifiers from the monitors library. +Bulk disable monitors by the given identifiers. ```sql -EXEC sumologic.monitors.monitors.monitorsReadByIds +EXEC sumologic.monitors.monitors.disable_by_ids @ids='{{ ids }}' --required, -@region='{{ region }}' --required +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + -Create a monitor or folder in the monitors library. +Bulk read a monitor or folder by the given identifiers from the monitors library. ```sql -EXEC sumologic.monitors.monitors.monitorsCreate -@parentId='{{ parentId }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"name": "{{ name }}", -"description": "{{ description }}", -"type": "{{ type }}" -}' +EXEC sumologic.monitors.monitors.read_by_ids +@ids='{{ ids }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@skipChildren={{ skipChildren }} ; ``` - + Bulk delete a monitor or folder by the given identifiers in the monitors library. ```sql -EXEC sumologic.monitors.monitors.monitorsDeleteByIds +EXEC sumologic.monitors.monitors.delete_by_ids @ids='{{ ids }}' --required, -@region='{{ region }}' --required +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + -Get a monitor or folder from the monitors library. +Move a monitor or folder to a different location in the monitors library. ```sql -EXEC sumologic.monitors.monitors.monitorsReadById +EXEC sumologic.monitors.monitors.move @id='{{ id }}' --required, -@region='{{ region }}' --required +@parentId='{{ parentId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + -Update a monitor or folder in the monitors library. +Copy a monitor or folder in the monitors library. ```sql -EXEC sumologic.monitors.monitors.monitorsUpdateById +EXEC sumologic.monitors.monitors.copy @id='{{ id }}' --required, -@region='{{ region }}' --required +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set @@json= '{ +"parentId": "{{ parentId }}", "name": "{{ name }}", -"description": "{{ description }}", -"version": {{ version }}, -"type": "{{ type }}" +"description": "{{ description }}" }' ; ``` - + -Delete a monitor or folder from the monitors library. +Export a monitor or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root. ```sql -EXEC sumologic.monitors.monitors.monitorsDeleteById +EXEC sumologic.monitors.monitors.export @id='{{ id }}' --required, -@region='{{ region }}' --required +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Import a monitor or folder. + +```sql +EXEC sumologic.monitors.monitors.import +@parentId='{{ parentId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"name": "{{ name }}", +"description": "{{ description }}", +"type": "{{ type }}" +}' ; ``` diff --git a/website/docs/services/monitors/move/index.md b/website/docs/services/monitors/move/index.md deleted file mode 100644 index f068c0c..0000000 --- a/website/docs/services/monitors/move/index.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: move -hide_title: false -hide_table_of_contents: false -keywords: - - move - - monitors - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a move resource. - -## Overview - - - - -
Namemove
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, parentId, regionMove a monitor or folder to a different location in the monitors library.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the monitor or folder to move.
stringIdentifier of the parent folder to move the monitor or folder to.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Move a monitor or folder to a different location in the monitors library. - -```sql -EXEC sumologic.monitors.move.monitorsMove -@id='{{ id }}' --required, -@parentId='{{ parentId }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/monitors/path/index.md b/website/docs/services/monitors/paths/index.md similarity index 58% rename from website/docs/services/monitors/path/index.md rename to website/docs/services/monitors/paths/index.md index de25c2c..6443539 100644 --- a/website/docs/services/monitors/path/index.md +++ b/website/docs/services/monitors/paths/index.md @@ -1,9 +1,9 @@ --- -title: path +title: paths hide_title: false hide_table_of_contents: false keywords: - - path + - paths - monitors - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a path resource. +Creates, updates, deletes, gets or lists a paths resource. ## Overview - + - +
Namepath
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a path resource. The following fields are returned by `SELECT` queries: - + Full path of the monitor or folder. @@ -56,9 +57,9 @@ Full path of the monitor or folder. String representation of the path. - + array - Elements of the path. + Elements of the path. (wire: pathItems) @@ -81,19 +82,12 @@ The following methods are available for this resource: - + id, region Get the full path of the monitor or folder in the monitors library. - - - - path, region - - Read a monitor or folder by its path in the monitors library structure. - @@ -115,15 +109,10 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string Identifier of the monitor or folder. - - - string - The path of the monitor or folder. - string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -131,44 +120,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the full path of the monitor or folder in the monitors library. ```sql SELECT path, -pathItems -FROM sumologic.monitors.path +path_items +FROM sumologic.monitors.paths WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required -; -``` - - - - -## Lifecycle Methods - - - - -Read a monitor or folder by its path in the monitors library structure. - -```sql -EXEC sumologic.monitors.path.monitorsGetByPath -@path='{{ path }}' --required, -@region='{{ region }}' --required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/monitors/permission_summaries/index.md b/website/docs/services/monitors/permission_summaries/index.md new file mode 100644 index 0000000..8aa1d34 --- /dev/null +++ b/website/docs/services/monitors/permission_summaries/index.md @@ -0,0 +1,148 @@ +--- +title: permission_summaries +hide_title: false +hide_table_of_contents: false +keywords: + - permission_summaries + - monitors + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a permission_summaries resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The list of permission summary meta(s) grouped by subjects for the monitor or folder. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `user`, subjectId should be the identifier of a user (same goes for `role` or `org` subjectType). (example: 0000000006743FDA) (wire: subjectId)
array (wire: permissionSummaries)
stringType of subject for the permission. Valid values are: `user` or `role` or `org`. (pattern: <code>^(user|role|org)$</code>, example: role, x-pattern-message: must be one of the following: `user`, `role`, `org`) (wire: subjectType)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionList permission summary meta(s) grouped by subjects on monitor or folder in the monitors library.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the monitor or folder to list permissions.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +List permission summary meta(s) grouped by subjects on monitor or folder in the monitors library. + +```sql +SELECT +subject_id, +permission_summaries, +subject_type +FROM sumologic.monitors.permission_summaries +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/monitors/permission_summaries_by_subjects/index.md b/website/docs/services/monitors/permission_summaries_by_subjects/index.md deleted file mode 100644 index d5c25a6..0000000 --- a/website/docs/services/monitors/permission_summaries_by_subjects/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: permission_summaries_by_subjects -hide_title: false -hide_table_of_contents: false -keywords: - - permission_summaries_by_subjects - - monitors - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a permission_summaries_by_subjects resource. - -## Overview - - - - -
Namepermission_summaries_by_subjects
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionList permission summary meta(s) grouped by subjects on monitor or folder in the monitors library.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the monitor or folder to list permissions.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -List permission summary meta(s) grouped by subjects on monitor or folder in the monitors library. - -```sql -EXEC sumologic.monitors.permission_summaries_by_subjects.monitorsReadPermissionSummariesByIdGroupBySubjects -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/monitors/permissions/index.md b/website/docs/services/monitors/permissions/index.md index ba9a182..c15fec0 100644 --- a/website/docs/services/monitors/permissions/index.md +++ b/website/docs/services/monitors/permissions/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a permissions resource. ## Overview - +
Namepermissions
Name
TypeResource
Id
@@ -31,8 +32,69 @@ Creates, updates, deletes, gets or lists a permissions resource. The following fields are returned by `SELECT` queries: -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +The list of explicit permission statements for the monitor or folder. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `role`, subjectId should be the identifier of a role. Similarly, if the subjectType is `org`, the subjectId should be the identifier of the same org, which owns the resource target. (example: 0000000006743FDA) (wire: subjectId)
stringThe identifier that belongs to the resource this permission assignment applies to. (example: 0000000006743FE2) (wire: targetId)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
arrayList of permissions.
stringType of subject for the permission. Valid values are: `role` or `org`. (pattern: <code>^(role|org)$</code>, example: role, x-pattern-message: must be one of the following: `role` or `org`) (wire: subjectType)
+
+
## Methods @@ -50,12 +112,26 @@ The following methods are available for this resource: - - + + id, region List explicit permissions on monitor or folder in the monitors library. + + + + region, permissionStatementDefinitions + + Set permissions on monitor or folder in the monitors library. + + + + + region, permissionIdentifiers + + Revoke all permissions on monitor or folder in the monitors library. + @@ -80,27 +156,78 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) -## Lifecycle Methods +## `SELECT` examples - + List explicit permissions on monitor or folder in the monitors library. ```sql -EXEC sumologic.monitors.permissions.monitorsReadPermissionsById -@id='{{ id }}' --required, -@region='{{ region }}' --required +SELECT +subject_id, +target_id, +created_at, +created_by, +modified_at, +modified_by, +permissions, +subject_type +FROM sumologic.monitors.permissions +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Set permissions on monitor or folder in the monitors library. + +```sql +EXEC sumologic.monitors.permissions.set +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"permissionStatementDefinitions": "{{ permissionStatementDefinitions }}" +}' +; +``` + + + +Revoke all permissions on monitor or folder in the monitors library. + +```sql +EXEC sumologic.monitors.permissions.revoke +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"permissionIdentifiers": "{{ permissionIdentifiers }}" +}' ; ``` diff --git a/website/docs/services/monitors/permissions_revoke/index.md b/website/docs/services/monitors/permissions_revoke/index.md deleted file mode 100644 index b6e387d..0000000 --- a/website/docs/services/monitors/permissions_revoke/index.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: permissions_revoke -hide_title: false -hide_table_of_contents: false -keywords: - - permissions_revoke - - monitors - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a permissions_revoke resource. - -## Overview - - - - -
Namepermissions_revoke
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
region, permissionIdentifiersRevoke all permissions on monitor or folder in the monitors library.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Revoke all permissions on monitor or folder in the monitors library. - -```sql -EXEC sumologic.monitors.permissions_revoke.monitorsRevokePermissions -@region='{{ region }}' --required -@@json= -'{ -"permissionIdentifiers": "{{ permissionIdentifiers }}" -}' -; -``` - - diff --git a/website/docs/services/monitors/permissions_set/index.md b/website/docs/services/monitors/permissions_set/index.md deleted file mode 100644 index de33259..0000000 --- a/website/docs/services/monitors/permissions_set/index.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: permissions_set -hide_title: false -hide_table_of_contents: false -keywords: - - permissions_set - - monitors - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a permissions_set resource. - -## Overview - - - - -
Namepermissions_set
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
region, permissionStatementDefinitionsSet permissions on monitor or folder in the monitors library.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Set permissions on monitor or folder in the monitors library. - -```sql -EXEC sumologic.monitors.permissions_set.monitorsSetPermissions -@region='{{ region }}' --required -@@json= -'{ -"permissionStatementDefinitions": "{{ permissionStatementDefinitions }}" -}' -; -``` - - diff --git a/website/docs/services/monitors/playbook_details/index.md b/website/docs/services/monitors/playbook_details/index.md new file mode 100644 index 0000000..f6c1e5d --- /dev/null +++ b/website/docs/services/monitors/playbook_details/index.md @@ -0,0 +1,160 @@ +--- +title: playbook_details +hide_title: false +hide_table_of_contents: false +keywords: + - playbook_details + - monitors + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a playbook_details resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The single monitor playbook. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the playbook. (example: Test)
stringThe id of the playbook. (example: 1) (wire: playbookId)
stringThe version id of the playbook. (example: 1) (wire: versionId)
stringThe description of the monitor playbook. (example: <p>30 Seconds API Will Take To Respond</p>)
stringThe type of the playbook. (example: Analytics)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
ids, regionGet the details of the playbooks with the specified identifiers.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
arrayA comma-separated list of playbook identifiers. (example: 649074b5b3d402d6e80b0d1d,649074b7b3d402d6e80b0da1,649074b6b3d402d6e80b0d75)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get the details of the playbooks with the specified identifiers. + +```sql +SELECT +name, +playbook_id, +version_id, +description, +type +FROM sumologic.monitors.playbook_details +WHERE ids = '{{ ids }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/monitors/playbooks/index.md b/website/docs/services/monitors/playbooks/index.md new file mode 100644 index 0000000..3861b24 --- /dev/null +++ b/website/docs/services/monitors/playbooks/index.md @@ -0,0 +1,160 @@ +--- +title: playbooks +hide_title: false +hide_table_of_contents: false +keywords: + - playbooks + - monitors + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a playbooks resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The single monitor playbook. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the playbook. (example: Test)
stringThe id of the playbook. (example: 1) (wire: playbookId)
stringThe version id of the playbook. (example: 1) (wire: versionId)
stringThe description of the monitor playbook. (example: <p>30 Seconds API Will Take To Respond</p>)
stringThe type of the playbook. (example: Analytics)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionplaybook_typeList all playbooks available to run.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringA string value for playbook type. (example: CSE) (wire: playbookType)
+ +## `SELECT` examples + + + + +List all playbooks available to run. + +```sql +SELECT +name, +playbook_id, +version_id, +description, +type +FROM sumologic.monitors.playbooks +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND playbook_type = '{{ playbook_type }}' +; +``` + + diff --git a/website/docs/services/monitors/root/index.md b/website/docs/services/monitors/root/index.md index c612bc8..fd5a963 100644 --- a/website/docs/services/monitors/root/index.md +++ b/website/docs/services/monitors/root/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a root resource. ## Overview - +
Nameroot
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a root resource. The following fields are returned by `SELECT` queries: - + Root folder of the monitors library. @@ -60,25 +61,30 @@ Root folder of the monitors library. string Identifier of the monitor or folder. + + + string + Identifier of the parent folder. (wire: parentId) + array Children of the folder. NOTE: Permissions field will not be filled (empty list) for children. - + string - Type of the content. Valid values: 1) Monitor 2) Folder + Type of the content. Valid values: 1) Monitor 2) Folder (wire: contentType) - + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt) - + string - Identifier of the user who created the resource. + Identifier of the user who created the resource. (wire: createdBy) @@ -86,29 +92,24 @@ Root folder of the monitors library. Description of the monitor or folder. - + boolean - Immutable objects are "READ-ONLY". + Immutable objects are "READ-ONLY". (wire: isMutable) - + boolean - System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. (wire: isSystem) - + string (date-time) - Last modification timestamp in UTC. - - - - string - Identifier of the user who last modified the resource. + Last modification timestamp in UTC. (wire: modifiedAt) - + string - Identifier of the parent folder. + Identifier of the user who last modified the resource. (wire: modifiedBy) @@ -146,7 +147,7 @@ The following methods are available for this resource: - + region @@ -171,7 +172,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -179,12 +180,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the root folder in the monitors library. @@ -192,21 +193,21 @@ Get the root folder in the monitors library. SELECT id, name, +parent_id, children, -contentType, -createdAt, -createdBy, +content_type, +created_at, +created_by, description, -isMutable, -isSystem, -modifiedAt, -modifiedBy, -parentId, +is_mutable, +is_system, +modified_at, +modified_by, permissions, type, version FROM sumologic.monitors.root -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/monitors/search/index.md b/website/docs/services/monitors/search/index.md index 88ed432..3619dfb 100644 --- a/website/docs/services/monitors/search/index.md +++ b/website/docs/services/monitors/search/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a search resource. ## Overview - +
Namesearch
Name
TypeResource
Id
@@ -31,8 +32,37 @@ Creates, updates, deletes, gets or lists a search resource. The following fields are returned by `SELECT` queries: -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
object
stringPath of the monitor or folder. (example: /Monitors/SampleFolder/TestMonitor)
+
+
## Methods @@ -50,10 +80,10 @@ The following methods are available for this resource: - - + + query, region - limit, offset + limit, offset, skip_children Search for a monitor or folder in the monitors library structure. @@ -80,7 +110,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -92,27 +122,36 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# integer (int32) The position or row from where to start the search operation. (example: 5) + + + boolean + a boolean parameter to control skipping fetching children of requested folder(s) (wire: skipChildren) + -## Lifecycle Methods +## `SELECT` examples - + Search for a monitor or folder in the monitors library structure. ```sql -EXEC sumologic.monitors.search.monitorsSearch -@query='{{ query }}' --required, -@region='{{ region }}' --required, -@limit='{{ limit }}', -@offset='{{ offset }}' +SELECT +item, +path +FROM sumologic.monitors.search +WHERE query = '{{ query }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND offset = '{{ offset }}' +AND skip_children = '{{ skip_children }}' ; ``` diff --git a/website/docs/services/monitors/usage_info/index.md b/website/docs/services/monitors/usage_info/index.md index 6b26761..c74165f 100644 --- a/website/docs/services/monitors/usage_info/index.md +++ b/website/docs/services/monitors/usage_info/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a usage_info resource. ## Overview - +
Nameusage_info
Name
TypeResource
Id
@@ -32,14 +33,14 @@ Creates, updates, deletes, gets or lists a usage_info resource. The following fields are returned by `SELECT` queries: - + -MonitorUsageInfo has been retrieved successfully. +The usage info of monitors. @@ -56,9 +57,9 @@ MonitorUsageInfo has been retrieved successfully. - + - + @@ -91,7 +92,7 @@ The following methods are available for this resource: - + @@ -116,7 +117,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - +
The limit of active Logs/Metrics monitors.
stringThe type of monitor usage info (Logs or Metrics). (example: Logs)The type of monitor usage info (Logs or Metrics). (Logs, Metrics) (example: Logs) (wire: monitorType)
region
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
@@ -124,23 +125,23 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the current number and the allowed number of log and metrics monitors. ```sql SELECT limit, -monitorType, +monitor_type, total, usage FROM sumologic.monitors.usage_info -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/muting_schedules/index.md b/website/docs/services/muting_schedules/index.md new file mode 100644 index 0000000..4c51e19 --- /dev/null +++ b/website/docs/services/muting_schedules/index.md @@ -0,0 +1,35 @@ +--- +title: muting_schedules +hide_title: false +hide_table_of_contents: false +keywords: + - muting_schedules + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +muting_schedules service documentation. + +:::info[Service Summary] + +total resources: __4__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/muting_schedules/muting_schedules/index.md b/website/docs/services/muting_schedules/muting_schedules/index.md new file mode 100644 index 0000000..1a34de5 --- /dev/null +++ b/website/docs/services/muting_schedules/muting_schedules/index.md @@ -0,0 +1,519 @@ +--- +title: muting_schedules +hide_title: false +hide_table_of_contents: false +keywords: + - muting_schedules + - muting_schedules + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a muting_schedules resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Requested mutingschedule or folder. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the mutingschedule or folder.
stringIdentifier of the mutingschedule or folder.
stringIdentifier of the parent folder. (wire: parentId)
stringType of the content. Valid values: 1) Mutingschedule 2) Folder (wire: contentType)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt)
stringIdentifier of the user who created the resource. (wire: createdBy)
stringDescription of the mutingschedule or folder.
booleanImmutable objects are "READ-ONLY". (wire: isMutable)
booleanSystem objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. (wire: isSystem)
string (date-time)Last modification timestamp in UTC. (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (wire: modifiedBy)
arrayAggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint.
stringType of the object model.
integer (int64)Version of the mutingschedule or folder.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet a mutingschedule or folder from the mutingSchedules library.
parent_id, region, name, typeCreate a mutingschedule or folder in the mutingSchedules library.
id, region, name, type, versionUpdate a mutingschedule or folder in the mutingSchedules library.
id, regionDelete a mutingschedule or folder from the mutingSchedules library.
ids, regionskipChildrenBulk read a mutingschedule or folder by the given identifiers from the mutingSchedules library.
ids, regionBulk delete a mutingschedule or folder by the given identifiers in the mutingSchedules library.
id, region, parentIdCopy a mutingschedule or folder in the mutingSchedules library.
id, regionExport a mutingschedule or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root.
parentId, region, name, typeImport a mutingschedule or folder.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the mutingschedule or folder to export.
arrayA comma-separated list of identifiers. (example: 0000000000000001,0000000000000002,0000000000000003)
stringIdentifier of the parent folder in which to import the mutingschedule or folder.
stringIdentifier of the parent folder in which to create the mutingschedule or folder. (wire: parentId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
booleana boolean parameter to control skipping fetching children of requested folder(s)
+ +## `SELECT` examples + + + + +Get a mutingschedule or folder from the mutingSchedules library. + +```sql +SELECT +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_mutable, +is_system, +modified_at, +modified_by, +permissions, +type, +version +FROM sumologic.muting_schedules.muting_schedules +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples + + + + +Create a mutingschedule or folder in the mutingSchedules library. + +```sql +INSERT INTO sumologic.muting_schedules.muting_schedules ( +name, +description, +type, +parent_id, +region +) +SELECT +'{{ name }}' /* required */, +'{{ description }}', +'{{ type }}' /* required */, +'{{ parent_id }}', +'{{ region }}' +RETURNING +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_mutable, +is_system, +modified_at, +modified_by, +permissions, +type, +version +; +``` + + + +{`# Description fields are for documentation purposes +- name: muting_schedules + props: + - name: parent_id + value: "{{ parent_id }}" + description: Required parameter for the muting_schedules resource. + - name: region + value: "{{ region }}" + description: Required parameter for the muting_schedules resource. + - name: name + value: "{{ name }}" + description: | + Name of the mutingschedule or folder. + - name: description + value: "{{ description }}" + description: | + Description of the mutingschedule or folder. + default: + - name: type + value: "{{ type }}" + description: | + Type of the object model. Valid values: + 1) MutingSchedulesLibraryMutingschedule + 2) MutingSchedulesLibraryFolder +`} + + + + + +## `UPDATE` examples + + + + +Update a mutingschedule or folder in the mutingSchedules library. + +```sql +UPDATE sumologic.muting_schedules.muting_schedules +SET +name = '{{ name }}', +description = '{{ description }}', +version = {{ version }}, +type = '{{ type }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND name = '{{ name }}' --required +AND type = '{{ type }}' --required +AND version = '{{ version }}' --required +RETURNING +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_mutable, +is_system, +modified_at, +modified_by, +permissions, +type, +version; +``` + + + + +## `DELETE` examples + + + + +Delete a mutingschedule or folder from the mutingSchedules library. + +```sql +DELETE FROM sumologic.muting_schedules.muting_schedules +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Bulk read a mutingschedule or folder by the given identifiers from the mutingSchedules library. + +```sql +EXEC sumologic.muting_schedules.muting_schedules.read_by_ids +@ids='{{ ids }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@skipChildren={{ skipChildren }} +; +``` + + + +Bulk delete a mutingschedule or folder by the given identifiers in the mutingSchedules library. + +```sql +EXEC sumologic.muting_schedules.muting_schedules.delete_by_ids +@ids='{{ ids }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Copy a mutingschedule or folder in the mutingSchedules library. + +```sql +EXEC sumologic.muting_schedules.muting_schedules.copy +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"parentId": "{{ parentId }}", +"name": "{{ name }}", +"description": "{{ description }}" +}' +; +``` + + + +Export a mutingschedule or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root. + +```sql +EXEC sumologic.muting_schedules.muting_schedules.export +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Import a mutingschedule or folder. + +```sql +EXEC sumologic.muting_schedules.muting_schedules.import +@parentId='{{ parentId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"name": "{{ name }}", +"description": "{{ description }}", +"type": "{{ type }}" +}' +; +``` + + diff --git a/website/docs/services/muting_schedules/paths/index.md b/website/docs/services/muting_schedules/paths/index.md new file mode 100644 index 0000000..a6c5fa9 --- /dev/null +++ b/website/docs/services/muting_schedules/paths/index.md @@ -0,0 +1,142 @@ +--- +title: paths +hide_title: false +hide_table_of_contents: false +keywords: + - paths + - muting_schedules + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a paths resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Full path of the mutingschedule or folder. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringString representation of the path.
arrayElements of the path. (wire: pathItems)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet the full path of the mutingschedule or folder in the mutingSchedules library.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the mutingschedule or folder.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get the full path of the mutingschedule or folder in the mutingSchedules library. + +```sql +SELECT +path, +path_items +FROM sumologic.muting_schedules.paths +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/muting_schedules/root/index.md b/website/docs/services/muting_schedules/root/index.md new file mode 100644 index 0000000..42427cc --- /dev/null +++ b/website/docs/services/muting_schedules/root/index.md @@ -0,0 +1,214 @@ +--- +title: root +hide_title: false +hide_table_of_contents: false +keywords: + - root + - muting_schedules + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a root resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Root folder of the mutingSchedules library. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the mutingschedule or folder.
stringIdentifier of the mutingschedule or folder.
stringIdentifier of the parent folder. (wire: parentId)
arrayChildren of the folder. NOTE: Permissions field will not be filled (empty list) for children.
stringType of the content. Valid values: 1) Mutingschedule 2) Folder (wire: contentType)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt)
stringIdentifier of the user who created the resource. (wire: createdBy)
stringDescription of the mutingschedule or folder.
booleanImmutable objects are "READ-ONLY". (wire: isMutable)
booleanSystem objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. (wire: isSystem)
string (date-time)Last modification timestamp in UTC. (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (wire: modifiedBy)
arrayAggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint.
stringType of the object model.
integer (int64)Version of the mutingschedule or folder.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionGet the root folder in the mutingSchedules library.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get the root folder in the mutingSchedules library. + +```sql +SELECT +id, +name, +parent_id, +children, +content_type, +created_at, +created_by, +description, +is_mutable, +is_system, +modified_at, +modified_by, +permissions, +type, +version +FROM sumologic.muting_schedules.root +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/muting_schedules/search/index.md b/website/docs/services/muting_schedules/search/index.md new file mode 100644 index 0000000..892a39f --- /dev/null +++ b/website/docs/services/muting_schedules/search/index.md @@ -0,0 +1,158 @@ +--- +title: search +hide_title: false +hide_table_of_contents: false +keywords: + - search + - muting_schedules + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a search resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
object
stringPath of the mutingschedule or folder. (example: /MutingSchedules/SampleFolder/TestMutingschedule)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
query, regionlimit, offset, skip_childrenSearch for a mutingschedule or folder in the mutingSchedules library structure.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe search query to find mutingschedule or folder. Below is the list of different filters with examples: - **createdBy** : Filter by the user's identifier who created the content. Example: `createdBy:000000000000968B`. - **createdBefore** : Filter by the content objects created before the given timestamp(in milliseconds). Example: `createdBefore:1457997222`. - **createdAfter** : Filter by the content objects created after the given timestamp(in milliseconds). Example: `createdAfter:1457997111`. - **modifiedBefore** : Filter by the content objects modified before the given timestamp(in milliseconds). Example: `modifiedBefore:1457997222`. - **modifiedAfter** : Filter by the content objects modified after the given timestamp(in milliseconds). Example: `modifiedAfter:1457997111`. - **type** : Filter by the type of the content object. Example: `type:folder`. You can also use multiple filters in one query. For example to search for all content objects created by user with identifier 000000000000968B with creation timestamp after 1457997222 containing the text Test, the query would look like: `createdBy:000000000000968B createdAfter:1457997222 Test` (example: createdBy:000000000000968B Test)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
integer (int32)Maximum number of items you want in the response. (example: 10)
integer (int32)The position or row from where to start the search operation. (example: 5)
booleana boolean parameter to control skipping fetching children of requested folder(s) (wire: skipChildren)
+ +## `SELECT` examples + + + + +Search for a mutingschedule or folder in the mutingSchedules library structure. + +```sql +SELECT +item, +path +FROM sumologic.muting_schedules.search +WHERE query = '{{ query }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND offset = '{{ offset }}' +AND skip_children = '{{ skip_children }}' +; +``` + + diff --git a/website/docs/services/oauth/clients/index.md b/website/docs/services/oauth/clients/index.md new file mode 100644 index 0000000..e0d50b5 --- /dev/null +++ b/website/docs/services/oauth/clients/index.md @@ -0,0 +1,731 @@ +--- +title: clients +hide_title: false +hide_table_of_contents: false +keywords: + - clients + - oauth + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a clients resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +OAuth client object that was requested. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier of the OAuth client. (example: 0000000006743FDE)
stringName of the OAuth client. (example: My OAuth Client)
stringIdentifier of the OAuth client. Unique within each organization. Will be a URL for dynamically generated clients. (example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ) (wire: clientId)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the OAuth client. (example: 0000000006743FDD) (wire: createdBy)
stringDescription of the OAuth client. (example: OAuth client for data ingestion)
booleanWhether the OAuth client is disabled. Disabled OAuth clients cannot be used to authenticate users.
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who modified the OAuth client. (example: 0000000006743FDD) (wire: modifiedBy)
arrayScopes assigned to the client. **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. - `alerts___alertsReadById` — viewAlerts - `alerts___alertsSearch` — viewAlerts - `dashboards___getDashboard` — viewLibrary - `dashboards___listDashboards` — viewLibrary - `dashboards___createDashboard` — manageLibrary - `dashboards___updateDashboard` — manageLibrary - `discovery___listPartitions` — viewPartitions - `discovery___listExtractionRules` — viewFieldExtractionRules - `discovery___listCustomFields` — viewFields - `log-search___runLogSearch` — runLogSearch - `insights___getAllInsights` — viewCse - `insights___getInsight` — viewCse - `insights___getInsights` — viewCse - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus - `rules___getRule` — viewCse, cseViewRules - `rules___getRules` — viewCse, cseViewRules - `rules___createTemplatedMatchRule` — viewCse, cseManageRules - `rules___createThresholdRule` — viewCse, cseManageRules ### Alerting - viewAlerts *(MCP Server)* - adminMonitorsV2 - viewMonitorsV2 - manageMonitorsV2 - viewMutingSchedules - manageMutingSchedules ### Audit Event Management - searchAuditIndex - dataVolumeIndex - auditEventIndex ### Cloud SIEM - viewCse *(MCP Server)* - cseViewRules *(MCP Server)* - cseManageRules *(MCP Server)* - cseManageInsightAssignee *(MCP Server)* - cseManageInsightStatus *(MCP Server)* - cseCommentOnInsights - cseCreateInsights - cseDeleteInsights - cseInvokeInsights - cseManageInsightPolicy - cseManageInsightSignals - cseManageInsightTags - cseViewThreatIntelligence - cseManageThreatIntelligence - cseViewMatchLists - cseManageMatchLists - cseViewFileAnalysis - cseManageFileAnalysis - cseViewCustomInsights - cseManageCustomInsights - cseViewNetworkBlocks - cseManageNetworkBlocks - cseViewSuppressedEntities - cseManageSuppressedEntities - cseViewMappings - cseManageMappings - cseManageArtifacts - cseViewCustomInsightStatuses - cseManageCustomInsightStatuses - cseViewContextActions - cseManageContextActions - cseViewActions - cseManageActions - cseViewEnrichments - cseManageEnrichments - cseViewCustomEntityType - cseManageCustomEntityType - cseViewEntity - cseManageEntity - cseViewEntityConfiguration - cseManageEntityConfiguration - cseViewEntityCriticality - cseManageEntityCriticality - cseViewTagSchemas - cseManageTagSchemas - cseManageFavoriteFields - cseViewEntityGroups - cseManageEntityGroups - cseViewAutomations - cseManageAutomations - cseExecuteAutomations ### Cloud SOAR - viewCloudSoar - cloudSoarAPIAdmin - cloudSoarAPIEmailEdit - cloudSoarAPIEmailRead - cloudSoarAPIUse - cloudSoarAppCentralAccess - cloudSoarAppCentralExport - cloudSoarAuditAndInformationAuditTrail - cloudSoarAuditAndInformationConfigureAuditTrail - cloudSoarAuditAndInformationLicenseInformation - cloudSoarAutomationRulesAccess - cloudSoarAutomationRulesConfigure - cloudSoarBridgeMonitoringAccess - cloudSoarCustomizationFields - cloudSoarCustomizationIncidentLabels - cloudSoarCustomizationLogo - cloudSoarDashboardAccess - cloudSoarDashboardAll - cloudSoarEntitiesAccess - cloudSoarEntitiesBulkPhysicalDelete - cloudSoarEntitiesManage - cloudSoarGeneralConfigure - cloudSoarIncidentAccess - cloudSoarIncidentAccessAll - cloudSoarIncidentAttachmentsAccess - cloudSoarIncidentAttachmentsEdit - cloudSoarIncidentBulkOperations - cloudSoarIncidentChangeOwnership - cloudSoarIncidentEdit - cloudSoarIncidentFoldersEdit - cloudSoarIncidentManageInvestigators - cloudSoarIncidentNotesAccess - cloudSoarIncidentNotesEdit - cloudSoarIncidentPlaybooksAccess - cloudSoarIncidentPlaybooksEdit - cloudSoarIncidentPlaybooksManage - cloudSoarIncidentTaskAccess - cloudSoarIncidentTaskAccessAll - cloudSoarIncidentTaskEdit - cloudSoarIncidentTaskReassign - cloudSoarIncidentTaskView - cloudSoarIncidentTemplatesAccess - cloudSoarIncidentTemplatesConfigure - cloudSoarIncidentTriageAccess - cloudSoarIncidentTriageAccessAll - cloudSoarIncidentTriageChangeOwnership - cloudSoarIncidentTriageEdit - cloudSoarIncidentTriageView - cloudSoarIncidentView - cloudSoarIncidentWarRoomUse - cloudSoarIntegrationsAccess - cloudSoarIntegrationsConfigure - cloudSoarNotificationConfigure - cloudSoarNotificationTriage - cloudSoarObservabilityAccess - cloudSoarObservabilityManagement - cloudSoarPlaybooksAccess - cloudSoarPlaybooksConfigure - cloudSoarReportAccess - cloudSoarReportAll - cloudSoarUserManagementGroups - cloudSoarWidgetsAll ### Dashboards - worldDashboards - whitelistDashboards - shareDashboardAllowlist - manageDashboardExecutionControls ### Data Management - manageApps - viewCollectors - manageCollectors - viewConnections - manageConnections - contentAdmin - viewFieldExtractionRules *(MCP Server)* - manageFieldExtractionRules - viewFields *(MCP Server)* - manageFields - manageBudgets - viewLibrary *(MCP Server)* - manageLibrary *(MCP Server)* - viewPartitions *(MCP Server)* - managePartitions - manageS3DataForwarding - viewScheduledViews - manageScheduledViews - manageTokens - viewPipelines - managePipelines - viewAccountOverview - dataVolume - downloadSearchResults - viewDeletionRules - manageDeletionRules - reviewDeletionRequest - viewEventExtractionRules - manageEventExtractionRules - viewParsers ### Data Masking - viewUnmaskedData - manageDataMasking ### Entity Management - manageEntityTypeConfig ### Logs - runLogSearch *(MCP Server)* ### Macros - manageMacros ### Metrics - runMetricsQuery - metricsTransformation - metricsExtraction - metricsRules ### Open Analytics - manageOpenAnalyticsEndpoint ### Organizations - viewOrganizations - createTrialOrganizations - createOrganizations - upgradeTrialOrganizations - changeCreditsAllocation - deactivateOrganizations - manageOrganizations ### Reliability Management - viewSlos - manageSlos ### Security - manageAccessKeys - viewPersonalAccessKeys - managePersonalAccessKeys - manageOAuthClients - changeDataAccessLevel - passwordPolicy - ipWhitelisting - ipAllowlisting - supportAccount - audit - saml - worldDashboardMaster - orgSettings ### Threat Intelligence - viewThreatIntelDataStore - manageThreatIntelDataStore ### Usage Management - viewUsageManagement - manageUsageManagement ### User Management - viewUsersAndRoles - manageUsersAndRoles
stringType of the object model.
+
+ + +A list of all OAuth clients within the organization. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier of the OAuth client. (example: 0000000006743FDE)
stringName of the OAuth client. (example: My OAuth Client)
stringIdentifier of the OAuth client. Unique within each organization. Will be a URL for dynamically generated clients. (example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ) (wire: clientId)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the OAuth client. (example: 0000000006743FDD) (wire: createdBy)
stringDescription of the OAuth client. (example: OAuth client for data ingestion)
booleanWhether the OAuth client is disabled. Disabled OAuth clients cannot be used to authenticate users.
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who modified the OAuth client. (example: 0000000006743FDD) (wire: modifiedBy)
arrayScopes assigned to the client. **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. - `alerts___alertsReadById` — viewAlerts - `alerts___alertsSearch` — viewAlerts - `dashboards___getDashboard` — viewLibrary - `dashboards___listDashboards` — viewLibrary - `dashboards___createDashboard` — manageLibrary - `dashboards___updateDashboard` — manageLibrary - `discovery___listPartitions` — viewPartitions - `discovery___listExtractionRules` — viewFieldExtractionRules - `discovery___listCustomFields` — viewFields - `log-search___runLogSearch` — runLogSearch - `insights___getAllInsights` — viewCse - `insights___getInsight` — viewCse - `insights___getInsights` — viewCse - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus - `rules___getRule` — viewCse, cseViewRules - `rules___getRules` — viewCse, cseViewRules - `rules___createTemplatedMatchRule` — viewCse, cseManageRules - `rules___createThresholdRule` — viewCse, cseManageRules ### Alerting - viewAlerts *(MCP Server)* - adminMonitorsV2 - viewMonitorsV2 - manageMonitorsV2 - viewMutingSchedules - manageMutingSchedules ### Audit Event Management - searchAuditIndex - dataVolumeIndex - auditEventIndex ### Cloud SIEM - viewCse *(MCP Server)* - cseViewRules *(MCP Server)* - cseManageRules *(MCP Server)* - cseManageInsightAssignee *(MCP Server)* - cseManageInsightStatus *(MCP Server)* - cseCommentOnInsights - cseCreateInsights - cseDeleteInsights - cseInvokeInsights - cseManageInsightPolicy - cseManageInsightSignals - cseManageInsightTags - cseViewThreatIntelligence - cseManageThreatIntelligence - cseViewMatchLists - cseManageMatchLists - cseViewFileAnalysis - cseManageFileAnalysis - cseViewCustomInsights - cseManageCustomInsights - cseViewNetworkBlocks - cseManageNetworkBlocks - cseViewSuppressedEntities - cseManageSuppressedEntities - cseViewMappings - cseManageMappings - cseManageArtifacts - cseViewCustomInsightStatuses - cseManageCustomInsightStatuses - cseViewContextActions - cseManageContextActions - cseViewActions - cseManageActions - cseViewEnrichments - cseManageEnrichments - cseViewCustomEntityType - cseManageCustomEntityType - cseViewEntity - cseManageEntity - cseViewEntityConfiguration - cseManageEntityConfiguration - cseViewEntityCriticality - cseManageEntityCriticality - cseViewTagSchemas - cseManageTagSchemas - cseManageFavoriteFields - cseViewEntityGroups - cseManageEntityGroups - cseViewAutomations - cseManageAutomations - cseExecuteAutomations ### Cloud SOAR - viewCloudSoar - cloudSoarAPIAdmin - cloudSoarAPIEmailEdit - cloudSoarAPIEmailRead - cloudSoarAPIUse - cloudSoarAppCentralAccess - cloudSoarAppCentralExport - cloudSoarAuditAndInformationAuditTrail - cloudSoarAuditAndInformationConfigureAuditTrail - cloudSoarAuditAndInformationLicenseInformation - cloudSoarAutomationRulesAccess - cloudSoarAutomationRulesConfigure - cloudSoarBridgeMonitoringAccess - cloudSoarCustomizationFields - cloudSoarCustomizationIncidentLabels - cloudSoarCustomizationLogo - cloudSoarDashboardAccess - cloudSoarDashboardAll - cloudSoarEntitiesAccess - cloudSoarEntitiesBulkPhysicalDelete - cloudSoarEntitiesManage - cloudSoarGeneralConfigure - cloudSoarIncidentAccess - cloudSoarIncidentAccessAll - cloudSoarIncidentAttachmentsAccess - cloudSoarIncidentAttachmentsEdit - cloudSoarIncidentBulkOperations - cloudSoarIncidentChangeOwnership - cloudSoarIncidentEdit - cloudSoarIncidentFoldersEdit - cloudSoarIncidentManageInvestigators - cloudSoarIncidentNotesAccess - cloudSoarIncidentNotesEdit - cloudSoarIncidentPlaybooksAccess - cloudSoarIncidentPlaybooksEdit - cloudSoarIncidentPlaybooksManage - cloudSoarIncidentTaskAccess - cloudSoarIncidentTaskAccessAll - cloudSoarIncidentTaskEdit - cloudSoarIncidentTaskReassign - cloudSoarIncidentTaskView - cloudSoarIncidentTemplatesAccess - cloudSoarIncidentTemplatesConfigure - cloudSoarIncidentTriageAccess - cloudSoarIncidentTriageAccessAll - cloudSoarIncidentTriageChangeOwnership - cloudSoarIncidentTriageEdit - cloudSoarIncidentTriageView - cloudSoarIncidentView - cloudSoarIncidentWarRoomUse - cloudSoarIntegrationsAccess - cloudSoarIntegrationsConfigure - cloudSoarNotificationConfigure - cloudSoarNotificationTriage - cloudSoarObservabilityAccess - cloudSoarObservabilityManagement - cloudSoarPlaybooksAccess - cloudSoarPlaybooksConfigure - cloudSoarReportAccess - cloudSoarReportAll - cloudSoarUserManagementGroups - cloudSoarWidgetsAll ### Dashboards - worldDashboards - whitelistDashboards - shareDashboardAllowlist - manageDashboardExecutionControls ### Data Management - manageApps - viewCollectors - manageCollectors - viewConnections - manageConnections - contentAdmin - viewFieldExtractionRules *(MCP Server)* - manageFieldExtractionRules - viewFields *(MCP Server)* - manageFields - manageBudgets - viewLibrary *(MCP Server)* - manageLibrary *(MCP Server)* - viewPartitions *(MCP Server)* - managePartitions - manageS3DataForwarding - viewScheduledViews - manageScheduledViews - manageTokens - viewPipelines - managePipelines - viewAccountOverview - dataVolume - downloadSearchResults - viewDeletionRules - manageDeletionRules - reviewDeletionRequest - viewEventExtractionRules - manageEventExtractionRules - viewParsers ### Data Masking - viewUnmaskedData - manageDataMasking ### Entity Management - manageEntityTypeConfig ### Logs - runLogSearch *(MCP Server)* ### Macros - manageMacros ### Metrics - runMetricsQuery - metricsTransformation - metricsExtraction - metricsRules ### Open Analytics - manageOpenAnalyticsEndpoint ### Organizations - viewOrganizations - createTrialOrganizations - createOrganizations - upgradeTrialOrganizations - changeCreditsAllocation - deactivateOrganizations - manageOrganizations ### Reliability Management - viewSlos - manageSlos ### Security - manageAccessKeys - viewPersonalAccessKeys - managePersonalAccessKeys - manageOAuthClients - changeDataAccessLevel - passwordPolicy - ipWhitelisting - ipAllowlisting - supportAccount - audit - saml - worldDashboardMaster - orgSettings ### Threat Intelligence - viewThreatIntelDataStore - manageThreatIntelDataStore ### Usage Management - viewUsageManagement - manageUsageManagement ### User Management - viewUsersAndRoles - manageUsersAndRoles
stringType of the object model.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet an OAuth client with the given identifier from the organization.
regionlimit, token, run_as_id, client_idList all OAuth clients.
region, scopes, typeCreates a new OAuth clientId and clientSecret.
id, region, disabled, scopes, typeUpdates the properties of existing OAuth client by Id.
id, regionDeletes the OAuth client with the given Id.
id, regionGenerates a new secret for the oauth client that is passed in the call, keeping the same client ID.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe ID of the oauth client to rotate the secret for.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringFilter clients by exact client ID. When specified, returns only the client matching this ID. Supports URL-based client identifiers (URL-encode the value). (wire: clientId)
integer (int32)Limit the number of OAuth clients returned in the response. The number of OAuth clients returned may be less than the `limit`.
stringIdentifier of the service account that the OAuth Client runs as. (wire: runAsId)
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left.
+ +## `SELECT` examples + + + + +Get an OAuth client with the given identifier from the organization. + +```sql +SELECT +id, +name, +client_id, +created_at, +created_by, +description, +disabled, +modified_at, +modified_by, +scopes, +type +FROM sumologic.oauth.clients +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +List all OAuth clients. + +```sql +SELECT +id, +name, +client_id, +created_at, +created_by, +description, +disabled, +modified_at, +modified_by, +scopes, +type +FROM sumologic.oauth.clients +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +AND run_as_id = '{{ run_as_id }}' +AND client_id = '{{ client_id }}' +; +``` + + + + +## `INSERT` examples + + + + +Creates a new OAuth clientId and clientSecret. + +```sql +INSERT INTO sumologic.oauth.clients ( +type, +scopes, +region +) +SELECT +'{{ type }}' /* required */, +'{{ scopes }}' /* required */, +'{{ region }}' +RETURNING +id, +name, +client_id, +created_at, +created_by, +description, +disabled, +modified_at, +modified_by, +scopes, +type +; +``` + + + +{`# Description fields are for documentation purposes +- name: clients + props: + - name: region + value: "{{ region }}" + description: Required parameter for the clients resource. + - name: type + value: "{{ type }}" + description: | + Type of the object model. + - name: scopes + value: + - "{{ scopes }}" + description: | + Scopes assigned to the client. + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + - \`alerts___alertsReadById\` — viewAlerts + - \`alerts___alertsSearch\` — viewAlerts + - \`dashboards___getDashboard\` — viewLibrary + - \`dashboards___listDashboards\` — viewLibrary + - \`dashboards___createDashboard\` — manageLibrary + - \`dashboards___updateDashboard\` — manageLibrary + - \`discovery___listPartitions\` — viewPartitions + - \`discovery___listExtractionRules\` — viewFieldExtractionRules + - \`discovery___listCustomFields\` — viewFields + - \`log-search___runLogSearch\` — runLogSearch + - \`insights___getAllInsights\` — viewCse + - \`insights___getInsight\` — viewCse + - \`insights___getInsights\` — viewCse + - \`insights___updateInsightAssignee\` — viewCse, cseManageInsightAssignee + - \`insights___updateInsightStatus\` — viewCse, cseManageInsightStatus + - \`rules___getRule\` — viewCse, cseViewRules + - \`rules___getRules\` — viewCse, cseViewRules + - \`rules___createTemplatedMatchRule\` — viewCse, cseManageRules + - \`rules___createThresholdRule\` — viewCse, cseManageRules + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + ### Data Masking + - viewUnmaskedData + - manageDataMasking + ### Entity Management + - manageEntityTypeConfig + ### Logs + - runLogSearch *(MCP Server)* + ### Macros + - manageMacros + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + ### Open Analytics + - manageOpenAnalyticsEndpoint + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + ### Reliability Management + - viewSlos + - manageSlos + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + ### Usage Management + - viewUsageManagement + - manageUsageManagement + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + default: +`} + + + + + +## `UPDATE` examples + + + + +Updates the properties of existing OAuth client by Id. + +```sql +UPDATE sumologic.oauth.clients +SET +type = '{{ type }}', +disabled = {{ disabled }}, +scopes = '{{ scopes }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND disabled = {{ disabled }} --required +AND scopes = '{{ scopes }}' --required +AND type = '{{ type }}' --required +RETURNING +id, +name, +client_id, +created_at, +created_by, +description, +disabled, +modified_at, +modified_by, +scopes, +type; +``` + + + + +## `DELETE` examples + + + + +Deletes the OAuth client with the given Id. + +```sql +DELETE FROM sumologic.oauth.clients +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Generates a new secret for the oauth client that is passed in the call, keeping the same client ID. + +```sql +EXEC sumologic.oauth.clients.rotate_secret +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/oauth/consents/index.md b/website/docs/services/oauth/consents/index.md new file mode 100644 index 0000000..56afa4c --- /dev/null +++ b/website/docs/services/oauth/consents/index.md @@ -0,0 +1,224 @@ +--- +title: consents +hide_title: false +hide_table_of_contents: false +keywords: + - consents + - oauth + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a consents resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A list of OAuth consents. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the consent. (example: 0000000006743FDE)
stringThe ID of the registered client that was used in granting consent. (example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ) (wire: clientId)
stringThe name of the registered client that was used in granting consent. (example: My OAuth App) (wire: clientName)
string (date-time)Timestamp when the consent was authorized in UTC in RFC3339 format. (example: 2018-10-16T09:10:00.000Z) (wire: authorizedAt)
stringIdentifier of the user who authorized the consent. (example: 0000000006743FDD) (wire: authorizedUser)
string (date-time)Timestamp when the consent was last used to grant an access token in UTC in RFC3339 format. Null if never used. (example: 2018-10-16T09:10:00.000Z) (wire: lastUsedAt)
arrayThe scopes that were granted in the consent.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionlimit, token, authorized_user, client_idGet a list of OAuth consents within the organization. Administrators can list all consents, while others can only list consents that they have authorized.
consent_id, regionDeletes the OAuth consent with the given Id.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringFilter consents by the identifier of the user who authorized the consent. (wire: authorizedUser)
stringFilter consents by the clientId of a registered OAuth client. (wire: clientId)
integer (int32)Limit the number of consents returned in the response.
stringContinuation token to get the next page of results.
+ +## `SELECT` examples + + + + +Get a list of OAuth consents within the organization. Administrators can list all consents, while others can only list consents that they have authorized. + +```sql +SELECT +id, +client_id, +client_name, +authorized_at, +authorized_user, +last_used_at, +scopes +FROM sumologic.oauth.consents +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +AND authorized_user = '{{ authorized_user }}' +AND client_id = '{{ client_id }}' +; +``` + + + + +## `DELETE` examples + + + + +Deletes the OAuth consent with the given Id. + +```sql +DELETE FROM sumologic.oauth.consents +WHERE consent_id = '{{ consent_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/oauth/index.md b/website/docs/services/oauth/index.md new file mode 100644 index 0000000..d1e7855 --- /dev/null +++ b/website/docs/services/oauth/index.md @@ -0,0 +1,34 @@ +--- +title: oauth +hide_title: false +hide_table_of_contents: false +keywords: + - oauth + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +oauth service documentation. + +:::info[Service Summary] + +total resources: __3__ + +::: + +## Resources +
+ +
+scopes +
+
\ No newline at end of file diff --git a/website/docs/services/oauth/scopes/index.md b/website/docs/services/oauth/scopes/index.md new file mode 100644 index 0000000..c834e04 --- /dev/null +++ b/website/docs/services/oauth/scopes/index.md @@ -0,0 +1,154 @@ +--- +title: scopes +hide_title: false +hide_table_of_contents: false +keywords: + - scopes + - oauth + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a scopes resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A list of scopes that can be added to an oauth client. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the scope. (example: managePartitions)
arrayAny scopes that are required for this scope to be enabled. (wire: dependsOn)
objectThe group that the scope belongs to.
stringThe UI label for the scope. (example: Manage Partitions)
stringType of scope. (example: Manage)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionGet a list of all of the scopes that can be added to an oauth client.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get a list of all of the scopes that can be added to an oauth client. + +```sql +SELECT +id, +depends_on, +group, +label, +type +FROM sumologic.oauth.scopes +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/connections/incident_templates/index.md b/website/docs/services/organizations/child_usages/index.md similarity index 55% rename from website/docs/services/connections/incident_templates/index.md rename to website/docs/services/organizations/child_usages/index.md index 8d9b563..7caa3f0 100644 --- a/website/docs/services/connections/incident_templates/index.md +++ b/website/docs/services/organizations/child_usages/index.md @@ -1,10 +1,10 @@ --- -title: incident_templates +title: child_usages hide_title: false hide_table_of_contents: false keywords: - - incident_templates - - connections + - child_usages + - organizations - sumologic - infrastructure-as-code - configuration-as-data @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists an incident_templates resource. +Creates, updates, deletes, gets or lists a child_usages resource. ## Overview - + - +
Nameincident_templates
Name
TypeResource
Id
Id
## Fields @@ -50,11 +51,11 @@ The following methods are available for this resource: - + region - Get incident templates for CloudSOAR connections. + Get the credits usage details of the child orgs for a parent. @@ -75,31 +76,32 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) ## Lifecycle Methods +EXEC variables use wire (API) names. + - + -Get incident templates for CloudSOAR connections. +Get the credits usage details of the child orgs for a parent. ```sql -EXEC sumologic.connections.incident_templates.getIncidentTemplates -@region='{{ region }}' --required +EXEC sumologic.organizations.child_usages.get_usages +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set @@json= '{ -"url": "{{ url }}", -"authHeader": "{{ authHeader }}", -"connectionId": "{{ connectionId }}" +"startDate": "{{ startDate }}", +"endDate": "{{ endDate }}" }' ; ``` diff --git a/website/docs/services/organizations/index.md b/website/docs/services/organizations/index.md new file mode 100644 index 0000000..5ddbe9b --- /dev/null +++ b/website/docs/services/organizations/index.md @@ -0,0 +1,33 @@ +--- +title: organizations +hide_title: false +hide_table_of_contents: false +keywords: + - organizations + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +organizations service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/ot_collectors/index.md b/website/docs/services/ot_collectors/index.md new file mode 100644 index 0000000..ad73e8d --- /dev/null +++ b/website/docs/services/ot_collectors/index.md @@ -0,0 +1,33 @@ +--- +title: ot_collectors +hide_title: false +hide_table_of_contents: false +keywords: + - ot_collectors + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +ot_collectors service documentation. + +:::info[Service Summary] + +total resources: __2__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/ot_collectors/ot_collectors/index.md b/website/docs/services/ot_collectors/ot_collectors/index.md new file mode 100644 index 0000000..71b1140 --- /dev/null +++ b/website/docs/services/ot_collectors/ot_collectors/index.md @@ -0,0 +1,609 @@ +--- +title: ot_collectors +hide_title: false +hide_table_of_contents: false +keywords: + - ot_collectors + - ot_collectors + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an ot_collectors resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +An OT Collector by identifier. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier of the OT Collector. (example: 0000000005F5E105)
stringName of the OT Collector. (example: test OT Collector)
stringFleet Id of the OT Collector (example: 0000000005F5E105) (wire: fleetId)
booleanAlive Status of the OT Collector based on heartbeat.
stringCategory of the OT Collector. (example: apache)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006A5C7A2) (wire: createdBy)
stringDescription of the OT Collector.
objectConfig map that includes Base 64 Encoded Effective Configuration Yaml of the Remotely managed OT Collector. (wire: effectiveConfig)
booleanEphemeral Status of the OT Collector.
objectHealth incident information. (wire: healthIncidentsTracker)
booleanManagement Status of the OT Collector based on if it is remotely or locally managed. (wire: isRemotelyManaged)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006A5C7A2) (wire: modifiedBy)
integerCount of the source templates linked to a collector (wire: sourceTemplateLinkedCount)
objectSystem information of the OT Collector. (wire: systemInfo)
objectTags associated with the OT Collector.
stringtimezone of the collector (example: UTC) (wire: timeZone)
objectVersion information of the OT Collector.
+
+ + +A list of paginated OT Collectors. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier of the OT Collector. (example: 0000000005F5E105)
stringName of the OT Collector. (example: test OT Collector)
stringFleet Id of the OT Collector (example: 0000000005F5E105) (wire: fleetId)
booleanAlive Status of the OT Collector based on heartbeat.
stringCategory of the OT Collector. (example: apache)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006A5C7A2) (wire: createdBy)
stringDescription of the OT Collector.
objectConfig map that includes Base 64 Encoded Effective Configuration Yaml of the Remotely managed OT Collector. (wire: effectiveConfig)
booleanEphemeral Status of the OT Collector.
objectHealth incident information. (wire: healthIncidentsTracker)
booleanManagement Status of the OT Collector based on if it is remotely or locally managed. (wire: isRemotelyManaged)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006A5C7A2) (wire: modifiedBy)
integerCount of the source templates linked to a collector (wire: sourceTemplateLinkedCount)
objectSystem information of the OT Collector. (wire: systemInfo)
objectTags associated with the OT Collector.
stringtimezone of the collector (example: UTC) (wire: timeZone)
objectVersion information of the OT Collector.
+
+ + +A list of OT Collectors. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier of the OT Collector. (example: 0000000005F5E105)
stringName of the OT Collector. (example: test OT Collector)
stringFleet Id of the OT Collector (example: 0000000005F5E105) (wire: fleetId)
booleanAlive Status of the OT Collector based on heartbeat.
stringCategory of the OT Collector. (example: apache)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006A5C7A2) (wire: createdBy)
stringDescription of the OT Collector.
objectConfig map that includes Base 64 Encoded Effective Configuration Yaml of the Remotely managed OT Collector. (wire: effectiveConfig)
booleanEphemeral Status of the OT Collector.
objectHealth incident information. (wire: healthIncidentsTracker)
booleanManagement Status of the OT Collector based on if it is remotely or locally managed. (wire: isRemotelyManaged)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006A5C7A2) (wire: modifiedBy)
integerCount of the source templates linked to a collector (wire: sourceTemplateLinkedCount)
objectSystem information of the OT Collector. (wire: systemInfo)
objectTags associated with the OT Collector.
stringtimezone of the collector (example: UTC) (wire: timeZone)
objectVersion information of the OT Collector.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet OT Collector by ID.
regionGiven different filter, search and sort conditions, get list of otCollectors.
names, regionprovided list of names, get all OT Collectors with metadata.
id, regionDelete an OT Collector with the given identifier.
regionDelete all offline OT Collectors for a given customer.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the OT Collector to delete.
arrayA required parameter that accepts a list of names for which we need to collect all metadata.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get OT Collector by ID. + +```sql +SELECT +id, +name, +fleet_id, +alive, +category, +created_at, +created_by, +description, +effective_config, +ephemeral, +health_incidents_tracker, +is_remotely_managed, +modified_at, +modified_by, +source_template_linked_count, +system_info, +tags, +time_zone, +version +FROM sumologic.ot_collectors.ot_collectors +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Given different filter, search and sort conditions, get list of otCollectors. + +```sql +SELECT +id, +name, +fleet_id, +alive, +category, +created_at, +created_by, +description, +effective_config, +ephemeral, +health_incidents_tracker, +is_remotely_managed, +modified_at, +modified_by, +source_template_linked_count, +system_info, +tags, +time_zone, +version +FROM sumologic.ot_collectors.ot_collectors +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +provided list of names, get all OT Collectors with metadata. + +```sql +SELECT +id, +name, +fleet_id, +alive, +category, +created_at, +created_by, +description, +effective_config, +ephemeral, +health_incidents_tracker, +is_remotely_managed, +modified_at, +modified_by, +source_template_linked_count, +system_info, +tags, +time_zone, +version +FROM sumologic.ot_collectors.ot_collectors +WHERE names = '{{ names }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `DELETE` examples + + + + +Delete an OT Collector with the given identifier. + +```sql +DELETE FROM sumologic.ot_collectors.ot_collectors +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Delete all offline OT Collectors for a given customer. + +```sql +EXEC sumologic.ot_collectors.ot_collectors.delete_offline +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/tracing/spanquery_fields/index.md b/website/docs/services/ot_collectors/total_count/index.md similarity index 54% rename from website/docs/services/tracing/spanquery_fields/index.md rename to website/docs/services/ot_collectors/total_count/index.md index fd43018..ebc80ea 100644 --- a/website/docs/services/tracing/spanquery_fields/index.md +++ b/website/docs/services/ot_collectors/total_count/index.md @@ -1,10 +1,10 @@ --- -title: spanquery_fields +title: total_count hide_title: false hide_table_of_contents: false keywords: - - spanquery_fields - - tracing + - total_count + - ot_collectors - sumologic - infrastructure-as-code - configuration-as-data @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a spanquery_fields resource. +Creates, updates, deletes, gets or lists a total_count resource. ## Overview - + - +
Namespanquery_fields
Name
TypeResource
Id
Id
## Fields @@ -32,14 +33,14 @@ Creates, updates, deletes, gets or lists a spanquery_fields resourc The following fields are returned by `SELECT` queries: - + -List of available fields. +Total count of OT Collectors. @@ -51,9 +52,9 @@ List of available fields. - - - + + +
arrayList of span fields.integer (int32)Total number of OT Collector for a customer. (wire: totalCount)
@@ -76,11 +77,11 @@ The following methods are available for this resource: - + region - Get a list of available fields which can be used in span analytics queries. + Get total count of OT Collectors for a customer. @@ -101,7 +102,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -109,20 +110,20 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Get a list of available fields which can be used in span analytics queries. +Get total count of OT Collectors for a customer. ```sql SELECT -fields -FROM sumologic.tracing.spanquery_fields -WHERE region = '{{ region }}' -- required +total_count +FROM sumologic.ot_collectors.total_count +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/parsers/index.md b/website/docs/services/parsers/index.md new file mode 100644 index 0000000..6ee274b --- /dev/null +++ b/website/docs/services/parsers/index.md @@ -0,0 +1,36 @@ +--- +title: parsers +hide_title: false +hide_table_of_contents: false +keywords: + - parsers + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +parsers service documentation. + +:::info[Service Summary] + +total resources: __5__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/parsers/parsers/index.md b/website/docs/services/parsers/parsers/index.md new file mode 100644 index 0000000..0119972 --- /dev/null +++ b/website/docs/services/parsers/parsers/index.md @@ -0,0 +1,707 @@ +--- +title: parsers +hide_title: false +hide_table_of_contents: false +keywords: + - parsers + - parsers + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a parsers resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Requested folder or parser. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the folder or parser.
stringName of the folder or parser.
stringIdentifier of the parent folder. (wire: parentId)
stringType of the content. Valid values: 1) Folder 2) Parser (wire: contentType)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt)
stringIdentifier of the user who created the resource. (wire: createdBy)
stringDescription of the folder or parser.
booleanWhether the object is locked. (wire: isLocked)
booleanImmutable objects are "READ-ONLY". (wire: isMutable)
booleanSystem objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. (wire: isSystem)
string (date-time)Last modification timestamp in UTC. (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (wire: modifiedBy)
stringType of the object model.
integer (int64)Version of the folder or parser.
+
+ + +Requested folder or parser. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the folder or parser.
stringName of the folder or parser.
stringIdentifier of the parent folder. (wire: parentId)
stringType of the content. Valid values: 1) Folder 2) Parser (wire: contentType)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt)
stringIdentifier of the user who created the resource. (wire: createdBy)
stringDescription of the folder or parser.
booleanWhether the object is locked. (wire: isLocked)
booleanImmutable objects are "READ-ONLY". (wire: isMutable)
booleanSystem objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. (wire: isSystem)
string (date-time)Last modification timestamp in UTC. (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (wire: modifiedBy)
stringType of the object model.
integer (int64)Version of the folder or parser.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionRead a folder or parser.<br />
path, regionRead a folder or parser by its path.<br />
parent_id, region, description, name, typeCreate a folder or parser.<br />
id, region, description, name, versionUpdate a folder or parser.<br />
id, regionDelete a folder or parser.<br />
ids, regionBulk read folders and parsers by the given identifiers from the library.<br />
ids, regionBulk delete folders and parsers by the given identifiers from the library.<br />
id, regionLocking requires the `LockParsers` capability. When an object is locked, it can't be moved or deleted and only the local fields can be modified. Locking recursively locks all of the objects children.<br />
id, regionUnlocking requires the `LockParsers` capability. It is only possible to unlock the highest locked object in a tree of locked objects. Unlocking recursively unlocks all of the objects children.<br />
id, parentId, regionMove a folder or parser.<br />
id, region, parentIdCopy a folder or parser.<br />
id, regionpreserveLockExport a folder or parser.
parentId, region, description, name, typeImport a folder or parser<br />
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the folder or parser to export.
arrayA comma-separated list of identifiers.
stringIdentifier of the parent folder in which to import the folder or parser.
stringIdentifier of the parent folder in which to create the folder or parser. (wire: parentId)
stringThe path of the folder or parser.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
booleanSet this to true if you want to export an object and preserve the locked status.
+ +## `SELECT` examples + + + + +Read a folder or parser.<br /> + +```sql +SELECT +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_locked, +is_mutable, +is_system, +modified_at, +modified_by, +type, +version +FROM sumologic.parsers.parsers +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Read a folder or parser by its path.<br /> + +```sql +SELECT +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_locked, +is_mutable, +is_system, +modified_at, +modified_by, +type, +version +FROM sumologic.parsers.parsers +WHERE path = '{{ path }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples + + + + +Create a folder or parser.<br /> + +```sql +INSERT INTO sumologic.parsers.parsers ( +name, +description, +type, +is_locked, +parent_id, +region +) +SELECT +'{{ name }}' /* required */, +'{{ description }}' /* required */, +'{{ type }}' /* required */, +{{ is_locked }}, +'{{ parent_id }}', +'{{ region }}' +RETURNING +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_locked, +is_mutable, +is_system, +modified_at, +modified_by, +type, +version +; +``` + + + +{`# Description fields are for documentation purposes +- name: parsers + props: + - name: parent_id + value: "{{ parent_id }}" + description: Required parameter for the parsers resource. + - name: region + value: "{{ region }}" + description: Required parameter for the parsers resource. + - name: name + value: "{{ name }}" + description: | + Name of the folder or parser. + - name: description + value: "{{ description }}" + description: | + Description of the folder or parser. + - name: type + value: "{{ type }}" + description: | + Type of the object model. + - name: is_locked + value: {{ is_locked }} + description: | + Locking/Unlocking requires the \`LockParsers\` capability. Locked objects can only be \`Localized\`. Updating or moving requires unlocking the object. Locking/Unlocking recursively locks all of the objects children. All children of a locked object must be locked. + default: false +`} + + + + + +## `UPDATE` examples + + + + +Update a folder or parser.<br /> + +```sql +UPDATE sumologic.parsers.parsers +SET +name = '{{ name }}', +description = '{{ description }}', +version = {{ version }}, +type = '{{ type }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND description = '{{ description }}' --required +AND name = '{{ name }}' --required +AND version = '{{ version }}' --required +RETURNING +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_locked, +is_mutable, +is_system, +modified_at, +modified_by, +type, +version; +``` + + + + +## `DELETE` examples + + + + +Delete a folder or parser.<br /> + +```sql +DELETE FROM sumologic.parsers.parsers +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Bulk read folders and parsers by the given identifiers from the library.<br /> + +```sql +EXEC sumologic.parsers.parsers.read_by_ids +@ids='{{ ids }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Bulk delete folders and parsers by the given identifiers from the library.<br /> + +```sql +EXEC sumologic.parsers.parsers.delete_by_ids +@ids='{{ ids }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Locking requires the `LockParsers` capability. When an object is locked, it can't be moved or deleted and only the local fields can be modified. Locking recursively locks all of the objects children.<br /> + +```sql +EXEC sumologic.parsers.parsers.lock +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Unlocking requires the `LockParsers` capability. It is only possible to unlock the highest locked object in a tree of locked objects. Unlocking recursively unlocks all of the objects children.<br /> + +```sql +EXEC sumologic.parsers.parsers.unlock +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Move a folder or parser.<br /> + +```sql +EXEC sumologic.parsers.parsers.move +@id='{{ id }}' --required, +@parentId='{{ parentId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Copy a folder or parser.<br /> + +```sql +EXEC sumologic.parsers.parsers.copy +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"parentId": "{{ parentId }}", +"name": "{{ name }}", +"description": "{{ description }}" +}' +; +``` + + + +Export a folder or parser. + +```sql +EXEC sumologic.parsers.parsers.export +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@preserveLock={{ preserveLock }} +; +``` + + + +Import a folder or parser<br /> + +```sql +EXEC sumologic.parsers.parsers.import +@parentId='{{ parentId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"name": "{{ name }}", +"description": "{{ description }}", +"type": "{{ type }}" +}' +; +``` + + diff --git a/website/docs/services/tracing/spanquery_rows_facets/index.md b/website/docs/services/parsers/paths/index.md similarity index 51% rename from website/docs/services/tracing/spanquery_rows_facets/index.md rename to website/docs/services/parsers/paths/index.md index 1510cfb..8397cad 100644 --- a/website/docs/services/tracing/spanquery_rows_facets/index.md +++ b/website/docs/services/parsers/paths/index.md @@ -1,10 +1,10 @@ --- -title: spanquery_rows_facets +title: paths hide_title: false hide_table_of_contents: false keywords: - - spanquery_rows_facets - - tracing + - paths + - parsers - sumologic - infrastructure-as-code - configuration-as-data @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a spanquery_rows_facets resource. +Creates, updates, deletes, gets or lists a paths resource. ## Overview - + - +
Namespanquery_rows_facets
Name
TypeResource
Id
Id
## Fields @@ -32,14 +33,14 @@ Creates, updates, deletes, gets or lists a spanquery_rows_facets re The following fields are returned by `SELECT` queries: - + -The list of facets from the executed query. +Full path of the folder or parser. @@ -51,9 +52,14 @@ The list of facets from the executed query. - + + + + + + - +
stringString representation of the path.
arrayList of facets.Elements of the path. (wire: pathItems)
@@ -76,11 +82,11 @@ The following methods are available for this resource: - + - queryId, rowId, region + id, region - Get a list of facets of a span analytics query with the specified id. + Get full path of folder or parser.<br /> @@ -98,20 +104,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - - + + string - Identifier of the executed query. + Identifier of the folder or parser. string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) - - - - string - Identifier of the query row. + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -119,22 +120,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + -Get a list of facets of a span analytics query with the specified id. +Get full path of folder or parser.<br /> ```sql SELECT -facets -FROM sumologic.tracing.spanquery_rows_facets -WHERE queryId = '{{ queryId }}' -- required -AND rowId = '{{ rowId }}' -- required -AND region = '{{ region }}' -- required +path, +path_items +FROM sumologic.parsers.paths +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/parsers/root/index.md b/website/docs/services/parsers/root/index.md new file mode 100644 index 0000000..ff735bd --- /dev/null +++ b/website/docs/services/parsers/root/index.md @@ -0,0 +1,214 @@ +--- +title: root +hide_title: false +hide_table_of_contents: false +keywords: + - root + - parsers + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a root resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Root folder in the library. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the folder or parser.
stringName of the folder or parser.
stringIdentifier of the parent folder. (wire: parentId)
arrayChildren of the folder.
stringType of the content. Valid values: 1) Folder 2) Parser (wire: contentType)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt)
stringIdentifier of the user who created the resource. (wire: createdBy)
stringDescription of the folder or parser.
booleanWhether the object is locked. (wire: isLocked)
booleanImmutable objects are "READ-ONLY". (wire: isMutable)
booleanSystem objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. (wire: isSystem)
string (date-time)Last modification timestamp in UTC. (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (wire: modifiedBy)
stringType of the object model.
integer (int64)Version of the folder or parser.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionGet the root folder in the library.<br />
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get the root folder in the library.<br /> + +```sql +SELECT +id, +name, +parent_id, +children, +content_type, +created_at, +created_by, +description, +is_locked, +is_mutable, +is_system, +modified_at, +modified_by, +type, +version +FROM sumologic.parsers.root +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/parsers/search/index.md b/website/docs/services/parsers/search/index.md new file mode 100644 index 0000000..0875f8f --- /dev/null +++ b/website/docs/services/parsers/search/index.md @@ -0,0 +1,152 @@ +--- +title: search +hide_title: false +hide_table_of_contents: false +keywords: + - search + - parsers + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a search resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
object
stringPath of the folder or parser. (example: /Parsers/SampleFolder/TestParser)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
query, regionlimit, offsetSearch for a folder or parser in the cloud SIEM parsers library structure.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe search query to find folder or parsers. Below is the list of different filters with examples: - **createdBy** : Filter by the user's identifier who created the content. Example: `createdBy:000000000000968B`. - **createdBefore** : Filter by the content objects created before the given timestamp(in milliseconds). Example: `createdBefore:1457997222`. - **createdAfter** : Filter by the content objects created after the given timestamp(in milliseconds). Example: `createdAfter:1457997111`. - **modifiedBefore** : Filter by the content objects modified before the given timestamp(in milliseconds). Example: `modifiedBefore:1457997222`. - **modifiedAfter** : Filter by the content objects modified after the given timestamp(in milliseconds). Example: `modifiedAfter:1457997111`. - **type** : Filter by the type of the content object. Example: `type:folder`. You can also use multiple filters in one query. For example to search for all content objects created by user with identifier 000000000000968B with creation timestamp after 1457997222 containing the text Test, the query would look like: `createdBy:000000000000968B createdAfter:1457997222 Test`
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
integer (int32)Maximum number of items you want in the response.
integer (int32)The position or row from where to start the search operation.
+ +## `SELECT` examples + + + + +Search for a folder or parser in the cloud SIEM parsers library structure. + +```sql +SELECT +item, +path +FROM sumologic.parsers.search +WHERE query = '{{ query }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND offset = '{{ offset }}' +; +``` + + diff --git a/website/docs/services/parsers/system_parsers/index.md b/website/docs/services/parsers/system_parsers/index.md new file mode 100644 index 0000000..f0c37b1 --- /dev/null +++ b/website/docs/services/parsers/system_parsers/index.md @@ -0,0 +1,129 @@ +--- +title: system_parsers +hide_title: false +hide_table_of_contents: false +keywords: + - system_parsers + - parsers + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a system_parsers resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionLocking requires the `LockParsers` capability. When an object is locked, it can't be moved or deleted and only the local fields can be modified. Locking recursively locks all of the objects children.<br />
id, regionUnlocking requires the `LockParsers` capability. It is only possible to unlock the highest locked object in a tree of locked objects. Unlocking recursively unlocks all of the objects children.<br />
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe id of the folder or parser that needs to be unlocked.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Locking requires the `LockParsers` capability. When an object is locked, it can't be moved or deleted and only the local fields can be modified. Locking recursively locks all of the objects children.<br /> + +```sql +EXEC sumologic.parsers.system_parsers.lock +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Unlocking requires the `LockParsers` capability. It is only possible to unlock the highest locked object in a tree of locked objects. Unlocking recursively unlocks all of the objects children.<br /> + +```sql +EXEC sumologic.parsers.system_parsers.unlock +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/partitions/cancel_retention_update/index.md b/website/docs/services/partitions/cancel_retention_update/index.md deleted file mode 100644 index 2a7894c..0000000 --- a/website/docs/services/partitions/cancel_retention_update/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: cancel_retention_update -hide_title: false -hide_table_of_contents: false -keywords: - - cancel_retention_update - - partitions - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a cancel_retention_update resource. - -## Overview - - - - -
Namecancel_retention_update
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionCancel update to retention of a partition for which retention was updated previously using `reduceRetentionPeriodImmediately` parameter as false
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the partition to cancel the retention update for. (example: 1)
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Cancel update to retention of a partition for which retention was updated previously using `reduceRetentionPeriodImmediately` parameter as false - -```sql -EXEC sumologic.partitions.cancel_retention_update.cancelRetentionUpdate -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/partitions/decommission/index.md b/website/docs/services/partitions/decommission/index.md deleted file mode 100644 index 58e1713..0000000 --- a/website/docs/services/partitions/decommission/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: decommission -hide_title: false -hide_table_of_contents: false -keywords: - - decommission - - partitions - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a decommission resource. - -## Overview - - - - -
Namedecommission
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionDecommission a partition with the given identifier from the organization.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the partition to decommission.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Decommission a partition with the given identifier from the organization. - -```sql -EXEC sumologic.partitions.decommission.decommissionPartition -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/partitions/index.md b/website/docs/services/partitions/index.md index c23b633..66cbead 100644 --- a/website/docs/services/partitions/index.md +++ b/website/docs/services/partitions/index.md @@ -18,17 +18,16 @@ partitions service documentation. :::info[Service Summary] -total resources: __3__ +total resources: __2__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/partitions/partitions/index.md b/website/docs/services/partitions/partitions/index.md index d7c660e..2e35df2 100644 --- a/website/docs/services/partitions/partitions/index.md +++ b/website/docs/services/partitions/partitions/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a partitions resource. ## Overview - +
Namepartitions
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a partitions resource. The following fields are returned by `SELECT` queries: - + Partition object that was requested. @@ -62,79 +63,84 @@ Partition object that was requested. The name of the partition. (example: apache) - + string - The Data Tier where the data in the partition will reside. Possible values are: 1. `continuous` 2. `frequent` 3. `infrequent` Note: The "infrequent" and "frequent" tiers are only available to Cloud Flex Credits Enterprise Suite accounts. (pattern: ^(frequent|infrequent|continuous)$, example: continuous, default: continuous, x-pattern-message: must be one of `continuous`, `frequent` or `infrequent`) + Id of the data forwarding configuration to be used by the partition. (wire: dataForwardingId) - + + string + The Data Tier where the data in the partition will reside. Possible values are: 1. `continuous` 2. `frequent` 3. `infrequent` Note: The "infrequent" and "frequent" tiers are only available to Cloud Flex Credits Enterprise Suite accounts. (example: continuous, x-limited-description: The Data Tier where the data in the partition will reside. You can leave it empty or send `flex`. It is the only value applicable on your account., x-limited-example: flex) (wire: analyticsTier) + + + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) - + string - Identifier of the user who created the resource. (example: 0000000006743FDD) + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) - + string - Id of the data forwarding configuration to be used by the partition. + This has the value `DefaultIndex`, `AuditIndex`or `Partition` depending upon the type of partition. (pattern: <code>^(DefaultIndex|AuditIndex|Partition)$</code>, example: Partition) (wire: indexType) - - string - This has the value `DefaultIndex`, `AuditIndex`or `Partition` depending upon the type of partition. (pattern: ^(DefaultIndex|AuditIndex|Partition)$, example: Partition) + + boolean + This has the value `true` if the partition is active and `false` if it has been decommissioned. (wire: isActive) - + boolean - This has the value `true` if the partition is active and `false` if it has been decommissioned. + Whether the partition is compliant or not. Mark a partition as compliant if it contains data used for compliance or audit purpose. Retention for a compliant partition can only be increased and cannot be reduced after the partition is marked compliant. A partition once marked compliant, cannot be marked non-compliant later. (wire: isCompliant) - + boolean - Whether the partition is compliant or not. Mark a partition as compliant if it contains data used for compliance or audit purpose. Retention for a compliant partition can only be increased and cannot be reduced after the partition is marked compliant. A partition once marked compliant, cannot be marked non-compliant later. + Indicates whether the partition is included in the default search scope. When executing a query such as "error | count," certain partitions are automatically part of the search scope. However, for specific partitions, the user must explicitly mention the partition using the _index term, as in "_index=webApp error | count". This property governs the default inclusion of the partition in the search scope. Configuring this property is exclusively permitted for flex partitions. (wire: isIncludedInDefaultSearch) - + string (date-time) - Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. (example: 0000000006743FE8) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) - + integer (int32) - If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. + If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. (wire: newRetentionPeriod) - + string (date-time) - When the newRetentionPeriod will become effective in UTC format. + When the newRetentionPeriod will become effective in UTC format. (wire: retentionEffectiveAt) - + integer - The number of days to retain data in the partition, or -1 to use the default value for your account. Only relevant if your account has variable retention enabled. + The number of days to retain data in the partition, or -1 to use the default value for your account. Only relevant if your account has variable retention enabled. (wire: retentionPeriod) - + string - The query that defines the data to be included in the partition. (example: _sourcecategory=*/Apache) + The query that defines the data to be included in the partition. (example: _sourcecategory=*/Apache) (wire: routingExpression) - + integer (int64) - Size of data in partition in bytes. + Size of data in partition in bytes. (wire: totalBytes) - + A paginated list of partitions in the organization. @@ -148,14 +154,89 @@ A paginated list of partitions in the organization. - - array - List of partitions. + + string + Unique identifier for the partition. (example: 1) - + string - Next continuation token. (example: 1) + The name of the partition. (example: apache) + + + + string + Id of the data forwarding configuration to be used by the partition. (wire: dataForwardingId) + + + + string + The Data Tier where the data in the partition will reside. Possible values are: 1. `continuous` 2. `frequent` 3. `infrequent` Note: The "infrequent" and "frequent" tiers are only available to Cloud Flex Credits Enterprise Suite accounts. (example: continuous, x-limited-description: The Data Tier where the data in the partition will reside. You can leave it empty or send `flex`. It is the only value applicable on your account., x-limited-example: flex) (wire: analyticsTier) + + + + string (date-time) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) + + + + string + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) + + + + string + This has the value `DefaultIndex`, `AuditIndex`or `Partition` depending upon the type of partition. (pattern: <code>^(DefaultIndex|AuditIndex|Partition)$</code>, example: Partition) (wire: indexType) + + + + boolean + This has the value `true` if the partition is active and `false` if it has been decommissioned. (wire: isActive) + + + + boolean + Whether the partition is compliant or not. Mark a partition as compliant if it contains data used for compliance or audit purpose. Retention for a compliant partition can only be increased and cannot be reduced after the partition is marked compliant. A partition once marked compliant, cannot be marked non-compliant later. (wire: isCompliant) + + + + boolean + Indicates whether the partition is included in the default search scope. When executing a query such as "error | count," certain partitions are automatically part of the search scope. However, for specific partitions, the user must explicitly mention the partition using the _index term, as in "_index=webApp error | count". This property governs the default inclusion of the partition in the search scope. Configuring this property is exclusively permitted for flex partitions. (wire: isIncludedInDefaultSearch) + + + + string (date-time) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) + + + + string + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) + + + + integer (int32) + If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. (wire: newRetentionPeriod) + + + + string (date-time) + When the newRetentionPeriod will become effective in UTC format. (wire: retentionEffectiveAt) + + + + integer + The number of days to retain data in the partition, or -1 to use the default value for your account. Only relevant if your account has variable retention enabled. (wire: retentionPeriod) + + + + string + The query that defines the data to be included in the partition. (example: _sourcecategory=*/Apache) (wire: routingExpression) + + + + integer (int64) + Size of data in partition in bytes. (wire: totalBytes) @@ -178,33 +259,47 @@ The following methods are available for this resource: - + id, region Get a partition with the given identifier from the organization. - + region - limit, token, viewTypes + limit, token, view_types Get a list of all partitions in the organization. The response is paginated with a default limit of 100 partitions per page. - + - region, data__name, data__routingExpression + region, name, routing_expression Create a new partition. - - + + id, region Update an existing partition in the organization. + + + + id, region + + Decommission a partition with the given identifier from the organization. + + + + + id, region + + Cancel update to retention of a partition for which retention was updated previously using `reduceRetentionPeriodImmediately` parameter as false + @@ -224,12 +319,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the partition to update. + Identifier of the partition to cancel the retention update for. (example: 1) string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -241,10 +336,10 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. - - + + array - The type of partitions to retrieve. Valid values are: 1. `DefaultView`: To get General Index partition. 2. `Partition`: To get user defined views/partitions. 3. `AuditIndex`: To get the internal audit indexes. Eg. sumologic_audit_events. More than one type of partitions can be retrieved in same request. (example: [AuditIndex, Partition]) + The type of partitions to retrieve. Valid values are: 1. `DefaultView`: To get General Index partition. 2. `Partition`: To get user defined views/partitions. 3. `AuditIndex`: To get the internal audit indexes. Eg. sumologic_audit_events. More than one type of partitions can be retrieved in same request. (example: [AuditIndex, Partition]) (wire: viewTypes) @@ -252,13 +347,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a partition with the given identifier from the organization. @@ -266,39 +361,55 @@ Get a partition with the given identifier from the organization. SELECT id, name, -analyticsTier, -createdAt, -createdBy, -dataForwardingId, -indexType, -isActive, -isCompliant, -modifiedAt, -modifiedBy, -newRetentionPeriod, -retentionEffectiveAt, -retentionPeriod, -routingExpression, -totalBytes +data_forwarding_id, +analytics_tier, +created_at, +created_by, +index_type, +is_active, +is_compliant, +is_included_in_default_search, +modified_at, +modified_by, +new_retention_period, +retention_effective_at, +retention_period, +routing_expression, +total_bytes FROM sumologic.partitions.partitions WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + Get a list of all partitions in the organization. The response is paginated with a default limit of 100 partitions per page. ```sql SELECT -data, -next +id, +name, +data_forwarding_id, +analytics_tier, +created_at, +created_by, +index_type, +is_active, +is_compliant, +is_included_in_default_search, +modified_at, +modified_by, +new_retention_period, +retention_effective_at, +retention_period, +routing_expression, +total_bytes FROM sumologic.partitions.partitions -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' -AND viewTypes = '{{ viewTypes }}' +AND view_types = '{{ view_types }}' ; ``` @@ -308,88 +419,140 @@ AND viewTypes = '{{ viewTypes }}' ## `INSERT` examples - + Create a new partition. ```sql INSERT INTO sumologic.partitions.partitions ( -data__name, -data__routingExpression, -data__analyticsTier, -data__retentionPeriod, -data__isCompliant, +name, +routing_expression, +analytics_tier, +retention_period, +is_compliant, +is_included_in_default_search, region ) SELECT '{{ name }}' /* required */, -'{{ routingExpression }}' /* required */, -'{{ analyticsTier }}', -{{ retentionPeriod }}, -{{ isCompliant }}, +'{{ routing_expression }}' /* required */, +'{{ analytics_tier }}', +{{ retention_period }}, +{{ is_compliant }}, +{{ is_included_in_default_search }}, '{{ region }}' RETURNING id, name, -analyticsTier, -createdAt, -createdBy, -dataForwardingId, -indexType, -isActive, -isCompliant, -modifiedAt, -modifiedBy, -newRetentionPeriod, -retentionEffectiveAt, -retentionPeriod, -routingExpression, -totalBytes +data_forwarding_id, +analytics_tier, +created_at, +created_by, +index_type, +is_active, +is_compliant, +is_included_in_default_search, +modified_at, +modified_by, +new_retention_period, +retention_effective_at, +retention_period, +routing_expression, +total_bytes ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: partitions props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the partitions resource. - name: name - value: string + value: "{{ name }}" description: | The name of the partition. - - name: routingExpression - value: string + - name: routing_expression + value: "{{ routing_expression }}" description: | The query that defines the data to be included in the partition. - - name: analyticsTier - value: string + - name: analytics_tier + value: "{{ analytics_tier }}" description: | The Data Tier where the data in the partition will reside. Possible values are: - 1. `continuous` - 2. `frequent` - 3. `infrequent` + 1. \`continuous\` + 2. \`frequent\` + 3. \`infrequent\` Note: The "infrequent" and "frequent" tiers are only available to Cloud Flex Credits Enterprise Suite accounts. - default: continuous - - name: retentionPeriod - value: integer + - name: retention_period + value: {{ retention_period }} description: | The number of days to retain data in the partition, or -1 to use the default value for your account. Only relevant if your account has variable retention enabled. default: -1 - - name: isCompliant - value: boolean + - name: is_compliant + value: {{ is_compliant }} description: | Whether the partition is compliant or not. Mark a partition as compliant if it contains data used for compliance or audit purpose. Retention for a compliant partition can only be increased and cannot be reduced after the partition is marked compliant. A partition once marked compliant, cannot be marked non-compliant later. default: false + - name: is_included_in_default_search + value: {{ is_included_in_default_search }} + description: | + Indicates whether the partition is included in the default search scope. When executing a query such as "error | count," certain partitions are automatically part of the search scope. However, for specific partitions, the user must explicitly mention the partition using the _index term, as in "_index=webApp error | count". This property governs the default inclusion of the partition in the search scope. Configuring this property is exclusively permitted for flex partitions. +`} + + + + + +## `UPDATE` examples + + + + +Update an existing partition in the organization. + +```sql +UPDATE sumologic.partitions.partitions +SET +retention_period = {{ retention_period }}, +reduce_retention_period_immediately = {{ reduce_retention_period_immediately }}, +is_compliant = {{ is_compliant }}, +is_included_in_default_search = {{ is_included_in_default_search }}, +routing_expression = '{{ routing_expression }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +RETURNING +id, +name, +data_forwarding_id, +analytics_tier, +created_at, +created_by, +index_type, +is_active, +is_compliant, +is_included_in_default_search, +modified_at, +modified_by, +new_retention_period, +retention_effective_at, +retention_period, +routing_expression, +total_bytes; ``` @@ -397,27 +560,34 @@ totalBytes ## Lifecycle Methods +EXEC variables use wire (API) names. + - + -Update an existing partition in the organization. +Decommission a partition with the given identifier from the organization. + +```sql +EXEC sumologic.partitions.partitions.decommission +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Cancel update to retention of a partition for which retention was updated previously using `reduceRetentionPeriodImmediately` parameter as false ```sql -EXEC sumologic.partitions.partitions.updatePartition +EXEC sumologic.partitions.partitions.cancel_retention_update @id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"retentionPeriod": {{ retentionPeriod }}, -"reduceRetentionPeriodImmediately": {{ reduceRetentionPeriodImmediately }}, -"isCompliant": {{ isCompliant }}, -"routingExpression": "{{ routingExpression }}" -}' +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/partitions/quota/index.md b/website/docs/services/partitions/quota/index.md new file mode 100644 index 0000000..868ce60 --- /dev/null +++ b/website/docs/services/partitions/quota/index.md @@ -0,0 +1,136 @@ +--- +title: quota +hide_title: false +hide_table_of_contents: false +keywords: + - quota + - partitions + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a quota resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Current state of partitions quota usage (limit and remaining). + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int32)Maximum number of Partitions allowed.
integer (int32)Remaining number of Partitions allowed.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionEvery customer can use a limited number of partitions. This endpoint allows learning about these limitations and remaining quota.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Every customer can use a limited number of partitions. This endpoint allows learning about these limitations and remaining quota. + +```sql +SELECT +quota, +remaining +FROM sumologic.partitions.quota +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/password_policy/password_policy/index.md b/website/docs/services/password_policy/password_policy/index.md index 8edd2ca..52ff727 100644 --- a/website/docs/services/password_policy/password_policy/index.md +++ b/website/docs/services/password_policy/password_policy/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a password_policy resource ## Overview - +
Namepassword_policy
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a password_policy resource The following fields are returned by `SELECT` queries: - + The current password policy. @@ -51,69 +52,74 @@ The current password policy. - + integer (int32) - The duration of time in minutes that a locked-out account remained locked before getting unlocked automatically. + The duration of time in minutes that a locked-out account remained locked before getting unlocked automatically. (wire: accountLockoutDurationInMins) - + integer (int32) - Number of failed login attempts allowed before account is locked-out. + Number of failed login attempts allowed before account is locked-out. (wire: accountLockoutThreshold) - + + boolean + If weak passwords should be disallowed. By default, this field is set to `false`. (wire: disallowWeakPasswords) + + + integer (int32) - The duration of time in minutes that must elapse from the first failed login attempt after which failed login count is reset to 0. + The duration of time in minutes that must elapse from the first failed login attempt after which failed login count is reset to 0. (wire: failedLoginResetDurationInMins) - + integer (int32) - The maximum length of the password. (Setting this to any value other than 128 is no longer supported; this field may be deprecated in the future.) + The maximum length of the password. (Setting this to any value other than 128 is no longer supported; this field may be deprecated in the future.) (wire: maxLength) - + integer (int32) - Maximum number of days that a password can be used before user is required to change it. Put -1 if the user should not have to change their password. + Maximum number of days that a password can be used before user is required to change it. Put -1 if the user should not have to change their password. (wire: maxPasswordAgeInDays) - + integer (int32) - The minimum length of the password. + The minimum length of the password. (wire: minLength) - + integer (int32) - The minimum number of unique new passwords that a user must use before an old password can be reused. + The minimum number of unique new passwords that a user must use before an old password can be reused. (wire: minUniquePasswords) - + boolean - If the password must contain digits. + If the password must contain digits. (wire: mustContainDigits) - + boolean - If the password must contain lower case characters. + If the password must contain lower case characters. (wire: mustContainLowercase) - + boolean - If the password must contain special characters. + If the password must contain special characters. (wire: mustContainSpecialChars) - + boolean - If the password must contain upper case characters. + If the password must contain upper case characters. (wire: mustContainUppercase) - + boolean - If MFA should be remembered on the browser. + If MFA should be remembered on the browser. (wire: rememberMfa) - + boolean - If MFA should be required to log in. By default, this field is set to `false`. + If MFA should be required to log in. By default, this field is set to `false`. (wire: requireMfa) @@ -136,15 +142,15 @@ The following methods are available for this resource: - + region Get the current password policy. - - + + region Update the current password policy. @@ -168,7 +174,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -176,70 +182,85 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the current password policy. ```sql SELECT -accountLockoutDurationInMins, -accountLockoutThreshold, -failedLoginResetDurationInMins, -maxLength, -maxPasswordAgeInDays, -minLength, -minUniquePasswords, -mustContainDigits, -mustContainLowercase, -mustContainSpecialChars, -mustContainUppercase, -rememberMfa, -requireMfa +account_lockout_duration_in_mins, +account_lockout_threshold, +disallow_weak_passwords, +failed_login_reset_duration_in_mins, +max_length, +max_password_age_in_days, +min_length, +min_unique_passwords, +must_contain_digits, +must_contain_lowercase, +must_contain_special_chars, +must_contain_uppercase, +remember_mfa, +require_mfa FROM sumologic.password_policy.password_policy -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` -## Lifecycle Methods +## `UPDATE` examples - + Update the current password policy. ```sql -EXEC sumologic.password_policy.password_policy.setPasswordPolicy -@region='{{ region }}' --required -@@json= -'{ -"minLength": {{ minLength }}, -"maxLength": {{ maxLength }}, -"mustContainLowercase": {{ mustContainLowercase }}, -"mustContainUppercase": {{ mustContainUppercase }}, -"mustContainDigits": {{ mustContainDigits }}, -"mustContainSpecialChars": {{ mustContainSpecialChars }}, -"maxPasswordAgeInDays": {{ maxPasswordAgeInDays }}, -"minUniquePasswords": {{ minUniquePasswords }}, -"accountLockoutThreshold": {{ accountLockoutThreshold }}, -"failedLoginResetDurationInMins": {{ failedLoginResetDurationInMins }}, -"accountLockoutDurationInMins": {{ accountLockoutDurationInMins }}, -"requireMfa": {{ requireMfa }}, -"rememberMfa": {{ rememberMfa }} -}' -; +UPDATE sumologic.password_policy.password_policy +SET +min_length = {{ min_length }}, +max_length = {{ max_length }}, +must_contain_lowercase = {{ must_contain_lowercase }}, +must_contain_uppercase = {{ must_contain_uppercase }}, +must_contain_digits = {{ must_contain_digits }}, +must_contain_special_chars = {{ must_contain_special_chars }}, +max_password_age_in_days = {{ max_password_age_in_days }}, +min_unique_passwords = {{ min_unique_passwords }}, +account_lockout_threshold = {{ account_lockout_threshold }}, +failed_login_reset_duration_in_mins = {{ failed_login_reset_duration_in_mins }}, +account_lockout_duration_in_mins = {{ account_lockout_duration_in_mins }}, +require_mfa = {{ require_mfa }}, +remember_mfa = {{ remember_mfa }}, +disallow_weak_passwords = {{ disallow_weak_passwords }} +WHERE +region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +RETURNING +account_lockout_duration_in_mins, +account_lockout_threshold, +disallow_weak_passwords, +failed_login_reset_duration_in_mins, +max_length, +max_password_age_in_days, +min_length, +min_unique_passwords, +must_contain_digits, +must_contain_lowercase, +must_contain_special_chars, +must_contain_uppercase, +remember_mfa, +require_mfa; ``` diff --git a/website/docs/services/policies/access_keys_lifetime/index.md b/website/docs/services/policies/access_keys_lifetime/index.md new file mode 100644 index 0000000..af9f5e6 --- /dev/null +++ b/website/docs/services/policies/access_keys_lifetime/index.md @@ -0,0 +1,163 @@ +--- +title: access_keys_lifetime +hide_title: false +hide_table_of_contents: false +keywords: + - access_keys_lifetime + - policies + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an access_keys_lifetime resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The Access Key Lifetime Policy. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe number of days it will take for an access key to expire without being rotated/copied. Setting it to 0 (never) means that access keys will never expire. Valid values are: `0`, `30`, `45`, `60`, `90`, `180`, or `365` (pattern: <code>^(0|30|45|60|90|180|365)$</code>, example: 60, x-pattern-message: must be one of the following: `0`, `30`, `45`, `60`, `90`, `180`, or `365`) (wire: accessKeysLifetimeInDays)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionGet access key lifetime policy. This policy defines the maximum time an access key has once it has been created or rotated before it must be rotated. Otherwise, it will no longer be able to be used. The value 0 represents that the access keys will never expire and the time specified can be configured by the organization.
region, access_keys_lifetime_in_daysSets the access keys lifetime policy. By setting this policy, the time an access key has to live before it is expired or must be rotated is defined based on the period (default = never) configured for the organization. Setting the value to 0 would represent that the access keys never expire.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get access key lifetime policy. This policy defines the maximum time an access key has once it has been created or rotated before it must be rotated. Otherwise, it will no longer be able to be used. The value 0 represents that the access keys will never expire and the time specified can be configured by the organization. + +```sql +SELECT +access_keys_lifetime_in_days +FROM sumologic.policies.access_keys_lifetime +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `UPDATE` examples + + + + +Sets the access keys lifetime policy. By setting this policy, the time an access key has to live before it is expired or must be rotated is defined based on the period (default = never) configured for the organization. Setting the value to 0 would represent that the access keys never expire. + +```sql +UPDATE sumologic.policies.access_keys_lifetime +SET +access_keys_lifetime_in_days = '{{ access_keys_lifetime_in_days }}' +WHERE +region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND access_keys_lifetime_in_days = '{{ access_keys_lifetime_in_days }}' --required +RETURNING +access_keys_lifetime_in_days; +``` + + diff --git a/website/docs/services/policies/audit/index.md b/website/docs/services/policies/audit/index.md index f013617..1fa8f45 100644 --- a/website/docs/services/policies/audit/index.md +++ b/website/docs/services/policies/audit/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an audit resource. ## Overview - +
Nameaudit
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an audit resource. The following fields are returned by `SELECT` queries: - + The Audit policy. @@ -76,18 +77,18 @@ The following methods are available for this resource: - + region - Get the Audit policy. This policy specifies whether audit records for your account are enabled. You can access details about reported account events in the Sumo Logic Audit Index. [Learn More](https://help.sumologic.com/Manage/Security/Audit-Index) + Get the Audit policy. This policy specifies whether audit records for your account are enabled. You can access details about reported account events in the Sumo Logic Audit Index. [Learn More](https:​//help.sumologic.com/Manage/Security/Audit-Index) - - + + region, enabled - Set the Audit policy. This policy specifies whether audit records for your account are enabled. You can access details about reported account events in the Sumo Logic Audit Index. [Learn More](https://help.sumologic.com/Manage/Security/Audit-Index) + Set the Audit policy. This policy specifies whether audit records for your account are enabled. You can access details about reported account events in the Sumo Logic Audit Index. [Learn More](https:​//help.sumologic.com/Manage/Security/Audit-Index) @@ -108,7 +109,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -116,12 +117,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the Audit policy. This policy specifies whether audit records for your account are enabled. You can access details about reported account events in the Sumo Logic Audit Index. [Learn More](https://help.sumologic.com/Manage/Security/Audit-Index) @@ -129,33 +130,34 @@ Get the Audit policy. This policy specifies whether audit records for your accou SELECT enabled FROM sumologic.policies.audit -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` -## Lifecycle Methods +## `UPDATE` examples - + Set the Audit policy. This policy specifies whether audit records for your account are enabled. You can access details about reported account events in the Sumo Logic Audit Index. [Learn More](https://help.sumologic.com/Manage/Security/Audit-Index) ```sql -EXEC sumologic.policies.audit.setAuditPolicy -@region='{{ region }}' --required -@@json= -'{ -"enabled": {{ enabled }} -}' -; +UPDATE sumologic.policies.audit +SET +enabled = {{ enabled }} +WHERE +region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND enabled = {{ enabled }} --required +RETURNING +enabled; ``` diff --git a/website/docs/services/policies/data_access_level/index.md b/website/docs/services/policies/data_access_level/index.md index ca0cb4c..df44a1a 100644 --- a/website/docs/services/policies/data_access_level/index.md +++ b/website/docs/services/policies/data_access_level/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a data_access_level resour ## Overview - +
Namedata_access_level
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a data_access_level resour The following fields are returned by `SELECT` queries: - + The Data Access Level policy. @@ -76,18 +77,18 @@ The following methods are available for this resource: - + region - Get the Data Access Level policy. When enabled, this policy sets the default data access level for all newly created dashboards to the viewer’s role access filter. Otherwise, newly created dashboards will default to the sharer’s role access filter and might display data that viewers’ roles don’t allow them to view. [Learn More](https://help.sumologic.com/Manage/Security/Data_Access_Level_for_Shared_Dashboards) + Get the Data Access Level policy. When enabled, this policy sets the default data access level for all newly created dashboards to the viewer’s role access filter. Otherwise, newly created dashboards will default to the sharer’s role access filter and might display data that viewers’ roles don’t allow them to view. [Learn More](https:​//help.sumologic.com/Manage/Security/Data_Access_Level_for_Shared_Dashboards) - - + + region, enabled - Set the Data Access Level policy. When enabled, this policy sets the default data access level for all newly created dashboards to the viewer’s role access filter. Otherwise, newly created dashboards will default to the sharer’s role access filter and might display data that viewers’ roles don’t allow them to view. [Learn More](https://help.sumologic.com/Manage/Security/Data_Access_Level_for_Shared_Dashboards) + Set the Data Access Level policy. When enabled, this policy sets the default data access level for all newly created dashboards to the viewer’s role access filter. Otherwise, newly created dashboards will default to the sharer’s role access filter and might display data that viewers’ roles don’t allow them to view. [Learn More](https:​//help.sumologic.com/Manage/Security/Data_Access_Level_for_Shared_Dashboards) @@ -108,7 +109,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -116,12 +117,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the Data Access Level policy. When enabled, this policy sets the default data access level for all newly created dashboards to the viewer’s role access filter. Otherwise, newly created dashboards will default to the sharer’s role access filter and might display data that viewers’ roles don’t allow them to view. [Learn More](https://help.sumologic.com/Manage/Security/Data_Access_Level_for_Shared_Dashboards) @@ -129,33 +130,34 @@ Get the Data Access Level policy. When enabled, this policy sets the default dat SELECT enabled FROM sumologic.policies.data_access_level -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` -## Lifecycle Methods +## `UPDATE` examples - + Set the Data Access Level policy. When enabled, this policy sets the default data access level for all newly created dashboards to the viewer’s role access filter. Otherwise, newly created dashboards will default to the sharer’s role access filter and might display data that viewers’ roles don’t allow them to view. [Learn More](https://help.sumologic.com/Manage/Security/Data_Access_Level_for_Shared_Dashboards) ```sql -EXEC sumologic.policies.data_access_level.setDataAccessLevelPolicy -@region='{{ region }}' --required -@@json= -'{ -"enabled": {{ enabled }} -}' -; +UPDATE sumologic.policies.data_access_level +SET +enabled = {{ enabled }} +WHERE +region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND enabled = {{ enabled }} --required +RETURNING +enabled; ``` diff --git a/website/docs/services/policies/data_deletion/index.md b/website/docs/services/policies/data_deletion/index.md new file mode 100644 index 0000000..27ee0c6 --- /dev/null +++ b/website/docs/services/policies/data_deletion/index.md @@ -0,0 +1,163 @@ +--- +title: data_deletion +hide_title: false +hide_table_of_contents: false +keywords: + - data_deletion + - policies + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a data_deletion resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The Data Deletion policy. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
booleanWhether the Data Deletion policy is enabled.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionGet the Data Deletion policy. This policy specifies whether users are allowed to delete data from Sumo Logic. Disabling this policy prevents users from deleting log data. [Learn More](https:​//help.sumologic.com/Manage/Security/Data_Deletion)
region, enabledSet the Data Deletion policy. This policy specifies whether users are allowed to delete data from Sumo Logic. Disabling this policy prevents users from deleting log data. [Learn More](https:​//help.sumologic.com/Manage/Security/Data_Deletion)
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get the Data Deletion policy. This policy specifies whether users are allowed to delete data from Sumo Logic. Disabling this policy prevents users from deleting log data. [Learn More](https://help.sumologic.com/Manage/Security/Data_Deletion) + +```sql +SELECT +enabled +FROM sumologic.policies.data_deletion +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `UPDATE` examples + + + + +Set the Data Deletion policy. This policy specifies whether users are allowed to delete data from Sumo Logic. Disabling this policy prevents users from deleting log data. [Learn More](https://help.sumologic.com/Manage/Security/Data_Deletion) + +```sql +UPDATE sumologic.policies.data_deletion +SET +enabled = {{ enabled }} +WHERE +region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND enabled = {{ enabled }} --required +RETURNING +enabled; +``` + + diff --git a/website/docs/services/policies/index.md b/website/docs/services/policies/index.md index 9968a02..618788f 100644 --- a/website/docs/services/policies/index.md +++ b/website/docs/services/policies/index.md @@ -18,20 +18,24 @@ policies service documentation. :::info[Service Summary] -total resources: __6__ +total resources: __10__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/policies/max_user_session_timeout/index.md b/website/docs/services/policies/max_user_session_timeout/index.md index db26c0a..f19414b 100644 --- a/website/docs/services/policies/max_user_session_timeout/index.md +++ b/website/docs/services/policies/max_user_session_timeout/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a max_user_session_timeout ## Overview - +
Namemax_user_session_timeout
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a max_user_session_timeout The following fields are returned by `SELECT` queries: - + The Max User Session Timeout policy. @@ -51,9 +52,9 @@ The Max User Session Timeout policy. - + string - Maximum web session timeout users are able to configure within their user preferences. Valid values are: `5m`, `15m`, `30m`, `1h`, `2h`, `6h`, `12h`, `1d`, `2d`, `3d`, `5d`, or `7d` (pattern: ^(5m|15m|30m|1h|2h|6h|12h|1d|2d|3d|5d|7d)$, example: 1d, x-pattern-message: must be one of the following: `5m`, `15m`, `30m`, `1h`, `2h`, `6h`, `12h`, `1d`, `2d`, `3d`, `5d`, or `7d`) + Maximum web session timeout users are able to configure within their user preferences. Valid values are: `5m`, `15m`, `30m`, `1h`, `2h`, `6h`, `12h`, `1d`, `2d`, `3d`, `5d`, or `7d` (pattern: <code>^(5m|15m|30m|1h|2h|6h|12h|1d|2d|3d|5d|7d)$</code>, example: 1d, x-pattern-message: must be one of the following: `5m`, `15m`, `30m`, `1h`, `2h`, `6h`, `12h`, `1d`, `2d`, `3d`, `5d`, or `7d`) (wire: maxUserSessionTimeout) @@ -76,18 +77,18 @@ The following methods are available for this resource: - + region - Get the Max User Session Timeout policy. When enabled, this policy sets the maximum web session timeout users are able to configure within their user preferences. Users preferences will be updated to match this value only if their current preference is set to a higher value. [Learn More](https://help.sumologic.com/Manage/Security/Set_a_Maximum_Web_Session_Timeout) + Get the Max User Session Timeout policy. When enabled, this policy sets the maximum web session timeout users are able to configure within their user preferences. Users preferences will be updated to match this value only if their current preference is set to a higher value. [Learn More](https:​//help.sumologic.com/Manage/Security/Set_a_Maximum_Web_Session_Timeout) - - - region, maxUserSessionTimeout + + + region, max_user_session_timeout - Set the Max User Session Timeout policy. When enabled, this policy sets the maximum web session timeout users are able to configure within their user preferences. Users preferences will be updated to match this value only if their current preference is set to a higher value. [Learn More](https://help.sumologic.com/Manage/Security/Set_a_Maximum_Web_Session_Timeout) + Set the Max User Session Timeout policy. When enabled, this policy sets the maximum web session timeout users are able to configure within their user preferences. Users preferences will be updated to match this value only if their current preference is set to a higher value. [Learn More](https:​//help.sumologic.com/Manage/Security/Set_a_Maximum_Web_Session_Timeout) @@ -108,7 +109,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -116,46 +117,47 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the Max User Session Timeout policy. When enabled, this policy sets the maximum web session timeout users are able to configure within their user preferences. Users preferences will be updated to match this value only if their current preference is set to a higher value. [Learn More](https://help.sumologic.com/Manage/Security/Set_a_Maximum_Web_Session_Timeout) ```sql SELECT -maxUserSessionTimeout +max_user_session_timeout FROM sumologic.policies.max_user_session_timeout -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` -## Lifecycle Methods +## `UPDATE` examples - + Set the Max User Session Timeout policy. When enabled, this policy sets the maximum web session timeout users are able to configure within their user preferences. Users preferences will be updated to match this value only if their current preference is set to a higher value. [Learn More](https://help.sumologic.com/Manage/Security/Set_a_Maximum_Web_Session_Timeout) ```sql -EXEC sumologic.policies.max_user_session_timeout.setMaxUserSessionTimeoutPolicy -@region='{{ region }}' --required -@@json= -'{ -"maxUserSessionTimeout": "{{ maxUserSessionTimeout }}" -}' -; +UPDATE sumologic.policies.max_user_session_timeout +SET +max_user_session_timeout = '{{ max_user_session_timeout }}' +WHERE +region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND max_user_session_timeout = '{{ max_user_session_timeout }}' --required +RETURNING +max_user_session_timeout; ``` diff --git a/website/docs/services/policies/oauth_cimd/index.md b/website/docs/services/policies/oauth_cimd/index.md new file mode 100644 index 0000000..75b25d0 --- /dev/null +++ b/website/docs/services/policies/oauth_cimd/index.md @@ -0,0 +1,163 @@ +--- +title: oauth_cimd +hide_title: false +hide_table_of_contents: false +keywords: + - oauth_cimd + - policies + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an oauth_cimd resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The OAuth policy for Client ID Metadata Documents (CIMD) authentication. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringOAuth CIMD policy. Valid values are: `disabled`, `enabled`, 'enabled-pre-registered-only' (pattern: <code>^(disabled|enabled|enabled-pre-registered-only)$</code>, example: disabled, x-pattern-message: must be one of the following: `disabled`, `enabled`, 'enabled-pre-registered-only') (wire: oAuthCimdPolicy)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionIf disabled then authentication with Client ID Metadata Documents (CIMD) is disabled and no new CIMD clients can be created. If set to "enabled" then authentication with CIMD clients is enabled and new CIMD clients can be created automatically as part of authentication. If set to "enabled-pre-registered-only" then authentication with CIMD clients is enabled but new CIMD clients can only be created manually on the OAuth Clients page in the UI.
region, o_auth_cimd_policyIf disabled then authentication with Client ID Metadata Documents (CIMD) is disabled and no new CIMD clients can be created. If set to "enabled" then authentication with CIMD clients is enabled and new CIMD clients can be created automatically as part of authentication. If set to "enabled-pre-registered-only" then authentication with CIMD clients is enabled but new CIMD clients can only be created manually on the OAuth Clients page in the UI.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +If disabled then authentication with Client ID Metadata Documents (CIMD) is disabled and no new CIMD clients can be created. If set to "enabled" then authentication with CIMD clients is enabled and new CIMD clients can be created automatically as part of authentication. If set to "enabled-pre-registered-only" then authentication with CIMD clients is enabled but new CIMD clients can only be created manually on the OAuth Clients page in the UI. + +```sql +SELECT +o_auth_cimd_policy +FROM sumologic.policies.oauth_cimd +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `UPDATE` examples + + + + +If disabled then authentication with Client ID Metadata Documents (CIMD) is disabled and no new CIMD clients can be created. If set to "enabled" then authentication with CIMD clients is enabled and new CIMD clients can be created automatically as part of authentication. If set to "enabled-pre-registered-only" then authentication with CIMD clients is enabled but new CIMD clients can only be created manually on the OAuth Clients page in the UI. + +```sql +UPDATE sumologic.policies.oauth_cimd +SET +o_auth_cimd_policy = '{{ o_auth_cimd_policy }}' +WHERE +region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND o_auth_cimd_policy = '{{ o_auth_cimd_policy }}' --required +RETURNING +o_auth_cimd_policy; +``` + + diff --git a/website/docs/services/policies/search_audit/index.md b/website/docs/services/policies/search_audit/index.md index 993e0a8..ec116cd 100644 --- a/website/docs/services/policies/search_audit/index.md +++ b/website/docs/services/policies/search_audit/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a search_audit resource. ## Overview - +
Namesearch_audit
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a search_audit resource. The following fields are returned by `SELECT` queries: - + The Search Audit policy. @@ -76,18 +77,18 @@ The following methods are available for this resource: - + region - Get the Search Audit policy. This policy specifies whether search records for your account are enabled. You can access details about your account's search capacity, queries run by users from the Sumo Search Audit Index. [Learn More](https://help.sumologic.com/Manage/Security/Search_Audit_Index) + Get the Search Audit policy. This policy specifies whether search records for your account are enabled. You can access details about your account's search capacity, queries run by users from the Sumo Search Audit Index. [Learn More](https:​//help.sumologic.com/Manage/Security/Search_Audit_Index) - - + + region, enabled - Set the Search Audit policy. This policy specifies whether search records for your account are enabled. You can access details about your account's search capacity, queries run by users from the Sumo Search Audit Index. [Learn More](https://help.sumologic.com/Manage/Security/Search_Audit_Index) + Set the Search Audit policy. This policy specifies whether search records for your account are enabled. You can access details about your account's search capacity, queries run by users from the Sumo Search Audit Index. [Learn More](https:​//help.sumologic.com/Manage/Security/Search_Audit_Index) @@ -108,7 +109,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -116,12 +117,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the Search Audit policy. This policy specifies whether search records for your account are enabled. You can access details about your account's search capacity, queries run by users from the Sumo Search Audit Index. [Learn More](https://help.sumologic.com/Manage/Security/Search_Audit_Index) @@ -129,33 +130,34 @@ Get the Search Audit policy. This policy specifies whether search records for yo SELECT enabled FROM sumologic.policies.search_audit -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` -## Lifecycle Methods +## `UPDATE` examples - + Set the Search Audit policy. This policy specifies whether search records for your account are enabled. You can access details about your account's search capacity, queries run by users from the Sumo Search Audit Index. [Learn More](https://help.sumologic.com/Manage/Security/Search_Audit_Index) ```sql -EXEC sumologic.policies.search_audit.setSearchAuditPolicy -@region='{{ region }}' --required -@@json= -'{ -"enabled": {{ enabled }} -}' -; +UPDATE sumologic.policies.search_audit +SET +enabled = {{ enabled }} +WHERE +region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND enabled = {{ enabled }} --required +RETURNING +enabled; ``` diff --git a/website/docs/services/policies/share_dashboards_outside_organization/index.md b/website/docs/services/policies/share_dashboards_outside_organization/index.md index a5de6b5..bd2d351 100644 --- a/website/docs/services/policies/share_dashboards_outside_organization/index.md +++ b/website/docs/services/policies/share_dashboards_outside_organization/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a share_dashboards_outside_organi ## Overview - +
Nameshare_dashboards_outside_organization
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a share_dashboards_outside_organi The following fields are returned by `SELECT` queries: - + The Share Dashboards Outside Organization policy. @@ -76,18 +77,18 @@ The following methods are available for this resource: - + region - Get the Share Dashboards Outside Organization policy. This policy allows users to share the dashboard with view only privileges outside of the organization (capability must be enabled from the Roles page). Disabling this policy will disable all dashboards that have been shared outside of the organization. [Learn More](https://help.sumologic.com/Visualizations-and-Alerts/Dashboards/Share_Dashboards/Share_a_Dashboard_Outside_Your_Org) + Get the Share Dashboards Outside Organization policy. This policy allows users to share the dashboard with view only privileges outside of the organization (capability must be enabled from the Roles page). Disabling this policy will disable all dashboards that have been shared outside of the organization. [Learn More](https:​//help.sumologic.com/Visualizations-and-Alerts/Dashboards/Share_Dashboards/Share_a_Dashboard_Outside_Your_Org) - - + + region, enabled - Set the Share Dashboards Outside Organization policy. This policy allows users to share the dashboard with view only privileges outside of the organization (capability must be enabled from the Roles page). Disabling this policy will disable all dashboards that have been shared outside of the organization. [Learn More](https://help.sumologic.com/Visualizations-and-Alerts/Dashboards/Share_Dashboards/Share_a_Dashboard_Outside_Your_Org) + Set the Share Dashboards Outside Organization policy. This policy allows users to share the dashboard with view only privileges outside of the organization (capability must be enabled from the Roles page). Disabling this policy will disable all dashboards that have been shared outside of the organization. [Learn More](https:​//help.sumologic.com/Visualizations-and-Alerts/Dashboards/Share_Dashboards/Share_a_Dashboard_Outside_Your_Org) @@ -108,7 +109,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -116,12 +117,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the Share Dashboards Outside Organization policy. This policy allows users to share the dashboard with view only privileges outside of the organization (capability must be enabled from the Roles page). Disabling this policy will disable all dashboards that have been shared outside of the organization. [Learn More](https://help.sumologic.com/Visualizations-and-Alerts/Dashboards/Share_Dashboards/Share_a_Dashboard_Outside_Your_Org) @@ -129,33 +130,34 @@ Get the Share Dashboards Outside Organization policy. This policy allows users t SELECT enabled FROM sumologic.policies.share_dashboards_outside_organization -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` -## Lifecycle Methods +## `UPDATE` examples - + Set the Share Dashboards Outside Organization policy. This policy allows users to share the dashboard with view only privileges outside of the organization (capability must be enabled from the Roles page). Disabling this policy will disable all dashboards that have been shared outside of the organization. [Learn More](https://help.sumologic.com/Visualizations-and-Alerts/Dashboards/Share_Dashboards/Share_a_Dashboard_Outside_Your_Org) ```sql -EXEC sumologic.policies.share_dashboards_outside_organization.setShareDashboardsOutsideOrganizationPolicy -@region='{{ region }}' --required -@@json= -'{ -"enabled": {{ enabled }} -}' -; +UPDATE sumologic.policies.share_dashboards_outside_organization +SET +enabled = {{ enabled }} +WHERE +region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND enabled = {{ enabled }} --required +RETURNING +enabled; ``` diff --git a/website/docs/services/policies/timestamp_format/index.md b/website/docs/services/policies/timestamp_format/index.md new file mode 100644 index 0000000..83cbb6a --- /dev/null +++ b/website/docs/services/policies/timestamp_format/index.md @@ -0,0 +1,163 @@ +--- +title: timestamp_format +hide_title: false +hide_table_of_contents: false +keywords: + - timestamp_format + - policies + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a timestamp_format resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The Alert Timestamp Format policy. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe timestamp format used in alert notification payloads. Valid values: `ISO`, `LEGACY`. ISO format: yyyy-MM-dd HH:mm:ss z. LEGACY format: MM/dd/yyyy hh:mm:ss a z. (example: LEGACY) (wire: timestampFormat)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionGet the Alert Timestamp Format policy. This policy controls the date/time format used in alert and recovery notification payloads across all connections and monitor types. When set to ISO, timestamps use the format yyyy-MM-dd HH:mm:ss z. When set to LEGACY, timestamps use the format MM/dd/yyyy hh:mm:ss a z.
region, timestamp_formatSet the Alert Timestamp Format policy. This policy controls the date/time format used in alert and recovery notification payloads across all connections and monitor types. When set to ISO, timestamps use the format yyyy-MM-dd HH:mm:ss z. When set to LEGACY, timestamps use the format MM/dd/yyyy hh:mm:ss a z.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get the Alert Timestamp Format policy. This policy controls the date/time format used in alert and recovery notification payloads across all connections and monitor types. When set to ISO, timestamps use the format yyyy-MM-dd HH:mm:ss z. When set to LEGACY, timestamps use the format MM/dd/yyyy hh:mm:ss a z. + +```sql +SELECT +timestamp_format +FROM sumologic.policies.timestamp_format +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `UPDATE` examples + + + + +Set the Alert Timestamp Format policy. This policy controls the date/time format used in alert and recovery notification payloads across all connections and monitor types. When set to ISO, timestamps use the format yyyy-MM-dd HH:mm:ss z. When set to LEGACY, timestamps use the format MM/dd/yyyy hh:mm:ss a z. + +```sql +UPDATE sumologic.policies.timestamp_format +SET +timestamp_format = '{{ timestamp_format }}' +WHERE +region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND timestamp_format = '{{ timestamp_format }}' --required +RETURNING +timestamp_format; +``` + + diff --git a/website/docs/services/policies/user_concurrent_sessions_limit/index.md b/website/docs/services/policies/user_concurrent_sessions_limit/index.md index 54f4443..6591bcc 100644 --- a/website/docs/services/policies/user_concurrent_sessions_limit/index.md +++ b/website/docs/services/policies/user_concurrent_sessions_limit/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a user_concurrent_sessions_limit< ## Overview - +
Nameuser_concurrent_sessions_limit
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a user_concurrent_sessions_limit< The following fields are returned by `SELECT` queries: - + The User Concurrent Sessions Limit policy. @@ -56,9 +57,9 @@ The User Concurrent Sessions Limit policy. Whether the User Concurrent Sessions Limit policy is enabled. - + integer (int32) - Maximum number of concurrent sessions a user may have. + Maximum number of concurrent sessions a user may have. (wire: maxConcurrentSessions) @@ -81,18 +82,18 @@ The following methods are available for this resource: - + region - Get the User Concurrent Sessions Limit policy. When enabled, the number of concurrent sessions a user may have is limited to the value entered. If a user exceeds the allowed number of sessions, the user's oldest session will be logged out to accommodate the new one. Disabling this policy means a user may have an unlimited number of concurrent sessions. [Learn More](https://help.sumologic.com/Manage/Security/Set_a_Limit_for_User_Concurrent_Sessions) + Get the User Concurrent Sessions Limit policy. When enabled, the number of concurrent sessions a user may have is limited to the value entered. If a user exceeds the allowed number of sessions, the user's oldest session will be logged out to accommodate the new one. Disabling this policy means a user may have an unlimited number of concurrent sessions. [Learn More](https:​//help.sumologic.com/Manage/Security/Set_a_Limit_for_User_Concurrent_Sessions) - - + + region, enabled - Set the User Concurrent Sessions Limit policy. When enabled, the number of concurrent sessions a user may have is limited to the value entered. If a user exceeds the allowed number of sessions, the user's oldest session will be logged out to accommodate the new one. Disabling this policy means a user may have an unlimited number of concurrent sessions. [Learn More](https://help.sumologic.com/Manage/Security/Set_a_Limit_for_User_Concurrent_Sessions) + Set the User Concurrent Sessions Limit policy. When enabled, the number of concurrent sessions a user may have is limited to the value entered. If a user exceeds the allowed number of sessions, the user's oldest session will be logged out to accommodate the new one. Disabling this policy means a user may have an unlimited number of concurrent sessions. [Learn More](https:​//help.sumologic.com/Manage/Security/Set_a_Limit_for_User_Concurrent_Sessions) @@ -113,7 +114,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -121,48 +122,50 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the User Concurrent Sessions Limit policy. When enabled, the number of concurrent sessions a user may have is limited to the value entered. If a user exceeds the allowed number of sessions, the user's oldest session will be logged out to accommodate the new one. Disabling this policy means a user may have an unlimited number of concurrent sessions. [Learn More](https://help.sumologic.com/Manage/Security/Set_a_Limit_for_User_Concurrent_Sessions) ```sql SELECT enabled, -maxConcurrentSessions +max_concurrent_sessions FROM sumologic.policies.user_concurrent_sessions_limit -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` -## Lifecycle Methods +## `UPDATE` examples - + Set the User Concurrent Sessions Limit policy. When enabled, the number of concurrent sessions a user may have is limited to the value entered. If a user exceeds the allowed number of sessions, the user's oldest session will be logged out to accommodate the new one. Disabling this policy means a user may have an unlimited number of concurrent sessions. [Learn More](https://help.sumologic.com/Manage/Security/Set_a_Limit_for_User_Concurrent_Sessions) ```sql -EXEC sumologic.policies.user_concurrent_sessions_limit.setUserConcurrentSessionsLimitPolicy -@region='{{ region }}' --required -@@json= -'{ -"enabled": {{ enabled }}, -"maxConcurrentSessions": {{ maxConcurrentSessions }} -}' -; +UPDATE sumologic.policies.user_concurrent_sessions_limit +SET +enabled = {{ enabled }}, +max_concurrent_sessions = {{ max_concurrent_sessions }} +WHERE +region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND enabled = {{ enabled }} --required +RETURNING +enabled, +max_concurrent_sessions; ``` diff --git a/website/docs/services/roles/index.md b/website/docs/services/roles/index.md index 06cc6d4..7d19892 100644 --- a/website/docs/services/roles/index.md +++ b/website/docs/services/roles/index.md @@ -28,6 +28,6 @@ total resources: __2__ roles
\ No newline at end of file diff --git a/website/docs/services/roles/roles/index.md b/website/docs/services/roles/roles/index.md index 8786b91..86279cc 100644 --- a/website/docs/services/roles/roles/index.md +++ b/website/docs/services/roles/roles/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a roles resource. ## Overview - +
Nameroles
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a roles resource. The following fields are returned by `SELECT` queries: - + Role object that was requested. @@ -62,24 +63,24 @@ Role object that was requested. Name of the role. (example: DataAdmin) - + boolean - Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. (wire: autofillDependencies) array - List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are ### Data Management - viewCollectors - manageCollectors - manageBudgets - manageDataVolumeFeed - viewFieldExtraction - manageFieldExtractionRules - manageS3DataForwarding - manageContent - dataVolumeIndex - manageConnections - viewScheduledViews - manageScheduledViews - viewPartitions - managePartitions - viewFields - manageFields - viewAccountOverview - manageTokens - downloadSearchResults ### Entity management - manageEntityTypeConfig ### Metrics - metricsTransformation - metricsExtraction - metricsRules ### Security - managePasswordPolicy - ipAllowlisting - createAccessKeys - manageAccessKeys - manageSupportAccountAccess - manageAuditDataFeed - manageSaml - shareDashboardOutsideOrg - manageOrgSettings - changeDataAccessLevel ### Dashboards - shareDashboardWorld - shareDashboardAllowlist ### UserManagement - manageUsersAndRoles ### Observability - searchAuditIndex - auditEventIndex ### Cloud SIEM Enterprise - viewCse ### Alerting - viewMonitorsV2 - manageMonitorsV2 - viewAlerts + List of [capabilities](https:​//help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are ### Data Management - viewCollectors - manageCollectors - manageBudgets - manageDataVolumeFeed - viewFieldExtraction - manageFieldExtractionRules - manageS3DataForwarding - manageContent - manageApps - dataVolumeIndex - manageConnections - viewScheduledViews - manageScheduledViews - viewPartitions - managePartitions - viewFields - manageFields - viewAccountOverview - manageTokens - downloadSearchResults - manageIndexes - manageDataStreams - viewParsers - viewDataStreams - viewPipelines - managePipelines ### Entity management - manageEntityTypeConfig ### Metrics - metricsTransformation - metricsExtraction - metricsRules ### Security - managePasswordPolicy - ipAllowlisting - ipWhitelisting - createAccessKeys - manageAccessKeys - manageSupportAccountAccess - manageAuditDataFeed - manageSaml - shareDashboardOutsideOrg - manageOrgSettings - changeDataAccessLevel ### Dashboards - shareDashboardWorld - shareDashboardAllowlist - shareDashboardWhitelist ### UserManagement - manageUsersAndRoles ### Observability - searchAuditIndex - auditEventIndex ### Cloud SIEM Enterprise - viewCse - cseViewAutomations - cseManageContextActions - cseViewNetworkBlocks - cseManageInsightTags - cseViewRules - cseViewThreatIntelligence - cseCommentOnInsights - cseViewEntityGroups - cseManageEntityConfiguration - cseManageNetworkBlocks - cseManageMatchLists - cseViewCustomInsights - cseManageActions - cseManageAutomations - cseManageMappings - cseManageThreatIntelligence - cseViewActions - cseCreateInsights - cseManageTagSchemas - cseInvokeInsights - cseManageCustomEntityType - cseViewTagSchemas - cseDeleteInsights - cseManageCustomInsights - cseViewFileAnalysis - cseManageFileAnalysis - cseManageEntityCriticality - cseViewEntityCriticality - cseViewEntity - cseManageCustomInsightStatuses - cseViewContextActions - cseViewMappings - cseViewCustomEntityType - cseManageEntityGroups - cseViewCustomInsightStatuses - cseViewEnrichments - cseManageInsightSignals - cseManageRules - cseManageArtifacts - cseViewMatchLists - cseManageInsightPolicy - cseManageEnrichments - cseViewEntityConfiguration - cseManageEntity - cseExecuteAutomations - cseManageSuppressedEntities - cseManageInsightStatus - cseManageInsightAssignee - cseManageFavoriteFields - cseViewSuppressedEntities ### Alerting - viewMonitorsV2 - manageMonitorsV2 - viewAlerts - viewMutingSchedules - manageMutingSchedules - adminMonitorsV2 ### SLO - viewSlos - manageSlos ### CloudSoar - cloudSoarPlaybooksAccess - cloudSoarNotificationConfigure - cloudSoarReportAll - cloudSoarIncidentTriageAccess - cloudSoarIncidentTaskView - cloudSoarIncidentChangeOwnership - cloudSoarIncidentNotesEdit - cloudSoarAPIEmailEdit - cloudSoarIncidentTemplatesAccess - cloudSoarIncidentPlaybooksManage - cloudSoarGeneralConfigure - cloudSoarEntitiesAccess - cloudSoarEntitiesBulkPhysicalDelete - cloudSoarIncidentAttachmentsAccess - cloudSoarAppCentralAccess - cloudSoarBridgeMonitoringAccess - viewCloudSoar - cloudSoarIncidentView - cloudSoarObservabilityAccess - cloudSoarAPIEmailRead - cloudSoarAppCentralExport - cloudSoarWidgetsAll - cloudSoarIncidentTaskReassign - cloudSoarIntegrationsAccess - cloudSoarCustomizationIncidentLabels - cloudSoarAutomationRulesConfigure - cloudSoarIncidentTaskAccessAll - cloudSoarAuditAndInformationConfigureAuditTrail - cloudSoarIncidentTriageEdit - cloudSoarIncidentEdit - cloudSoarNotificationTriage - cloudSoarIncidentTriageBulkPhysicalDelete - cloudSoarIncidentNotesAccess - cloudSoarAPIUse - cloudSoarIncidentPlaybooksEdit - cloudSoarDashboardAll - cloudSoarEntitiesManage - cloudSoarIncidentTemplatesConfigure - cloudSoarIncidentTriageAccessAll - cloudSoarPlaybooksConfigure - cloudSoarIncidentAccessAll - cloudSoarCustomizationLogo - cloudSoarIncidentTaskAccess - cloudSoarIncidentTriageView - cloudSoarIntegrationsConfigure - cloudSoarIncidentManageInvestigators - cloudSoarIncidentAccess - cloudSoarAuditAndInformationLicenseInformation - cloudSoarIncidentBulkOperations - cloudSoarCustomizationFields - cloudSoarIncidentTaskEdit - cloudSoarDashboardAccess - cloudSoarIncidentAttachmentsEdit - cloudSoarIncidentFoldersEdit - cloudSoarUserManagementGroups - cloudSoarIncidentPlaybooksAccess - cloudSoarIncidentWarRoomUse - cloudSoarReportAccess - cloudSoarAuditAndInformationAuditTrail - cloudSoarAutomationRulesAccess - cloudSoarIncidentTriageChangeOwnership - cloudSoarObservabilityManagement - + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) - + string - Identifier of the user who created the resource. (example: 0000000006743FDD) + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) @@ -87,24 +88,24 @@ Role object that was requested. Description of the role. (example: Manage data of the org.) - + string - A search filter to restrict access to specific logs. The filter is silently added to the beginning of each query a user runs. For example, using '!_sourceCategory=billing' as a filter predicate will prevent users assigned to the role from viewing logs from the source category named 'billing'. (example: !_sourceCategory=billing) + A search filter to restrict access to specific logs. The filter is silently added to the beginning of each query a user runs. For example, using '!_sourceCategory=billing' as a filter predicate will prevent users assigned to the role from viewing logs from the source category named 'billing'. (example: !_sourceCategory=billing) (wire: filterPredicate) - + string (date-time) - Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. (example: 0000000006743FE8) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) - + boolean - Role is system or user defined. + Role is system or user defined. (wire: systemDefined) @@ -114,7 +115,7 @@ Role object that was requested. - + A paginated list of roles in the organization. @@ -138,24 +139,24 @@ A paginated list of roles in the organization. Name of the role. (example: DataAdmin) - + boolean - Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. (wire: autofillDependencies) array - List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are ### Data Management - viewCollectors - manageCollectors - manageBudgets - manageDataVolumeFeed - viewFieldExtraction - manageFieldExtractionRules - manageS3DataForwarding - manageContent - dataVolumeIndex - manageConnections - viewScheduledViews - manageScheduledViews - viewPartitions - managePartitions - viewFields - manageFields - viewAccountOverview - manageTokens - downloadSearchResults ### Entity management - manageEntityTypeConfig ### Metrics - metricsTransformation - metricsExtraction - metricsRules ### Security - managePasswordPolicy - ipAllowlisting - createAccessKeys - manageAccessKeys - manageSupportAccountAccess - manageAuditDataFeed - manageSaml - shareDashboardOutsideOrg - manageOrgSettings - changeDataAccessLevel ### Dashboards - shareDashboardWorld - shareDashboardAllowlist ### UserManagement - manageUsersAndRoles ### Observability - searchAuditIndex - auditEventIndex ### Cloud SIEM Enterprise - viewCse ### Alerting - viewMonitorsV2 - manageMonitorsV2 - viewAlerts + List of [capabilities](https:​//help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are ### Data Management - viewCollectors - manageCollectors - manageBudgets - manageDataVolumeFeed - viewFieldExtraction - manageFieldExtractionRules - manageS3DataForwarding - manageContent - manageApps - dataVolumeIndex - manageConnections - viewScheduledViews - manageScheduledViews - viewPartitions - managePartitions - viewFields - manageFields - viewAccountOverview - manageTokens - downloadSearchResults - manageIndexes - manageDataStreams - viewParsers - viewDataStreams - viewPipelines - managePipelines ### Entity management - manageEntityTypeConfig ### Metrics - metricsTransformation - metricsExtraction - metricsRules ### Security - managePasswordPolicy - ipAllowlisting - ipWhitelisting - createAccessKeys - manageAccessKeys - manageSupportAccountAccess - manageAuditDataFeed - manageSaml - shareDashboardOutsideOrg - manageOrgSettings - changeDataAccessLevel ### Dashboards - shareDashboardWorld - shareDashboardAllowlist - shareDashboardWhitelist ### UserManagement - manageUsersAndRoles ### Observability - searchAuditIndex - auditEventIndex ### Cloud SIEM Enterprise - viewCse - cseViewAutomations - cseManageContextActions - cseViewNetworkBlocks - cseManageInsightTags - cseViewRules - cseViewThreatIntelligence - cseCommentOnInsights - cseViewEntityGroups - cseManageEntityConfiguration - cseManageNetworkBlocks - cseManageMatchLists - cseViewCustomInsights - cseManageActions - cseManageAutomations - cseManageMappings - cseManageThreatIntelligence - cseViewActions - cseCreateInsights - cseManageTagSchemas - cseInvokeInsights - cseManageCustomEntityType - cseViewTagSchemas - cseDeleteInsights - cseManageCustomInsights - cseViewFileAnalysis - cseManageFileAnalysis - cseManageEntityCriticality - cseViewEntityCriticality - cseViewEntity - cseManageCustomInsightStatuses - cseViewContextActions - cseViewMappings - cseViewCustomEntityType - cseManageEntityGroups - cseViewCustomInsightStatuses - cseViewEnrichments - cseManageInsightSignals - cseManageRules - cseManageArtifacts - cseViewMatchLists - cseManageInsightPolicy - cseManageEnrichments - cseViewEntityConfiguration - cseManageEntity - cseExecuteAutomations - cseManageSuppressedEntities - cseManageInsightStatus - cseManageInsightAssignee - cseManageFavoriteFields - cseViewSuppressedEntities ### Alerting - viewMonitorsV2 - manageMonitorsV2 - viewAlerts - viewMutingSchedules - manageMutingSchedules - adminMonitorsV2 ### SLO - viewSlos - manageSlos ### CloudSoar - cloudSoarPlaybooksAccess - cloudSoarNotificationConfigure - cloudSoarReportAll - cloudSoarIncidentTriageAccess - cloudSoarIncidentTaskView - cloudSoarIncidentChangeOwnership - cloudSoarIncidentNotesEdit - cloudSoarAPIEmailEdit - cloudSoarIncidentTemplatesAccess - cloudSoarIncidentPlaybooksManage - cloudSoarGeneralConfigure - cloudSoarEntitiesAccess - cloudSoarEntitiesBulkPhysicalDelete - cloudSoarIncidentAttachmentsAccess - cloudSoarAppCentralAccess - cloudSoarBridgeMonitoringAccess - viewCloudSoar - cloudSoarIncidentView - cloudSoarObservabilityAccess - cloudSoarAPIEmailRead - cloudSoarAppCentralExport - cloudSoarWidgetsAll - cloudSoarIncidentTaskReassign - cloudSoarIntegrationsAccess - cloudSoarCustomizationIncidentLabels - cloudSoarAutomationRulesConfigure - cloudSoarIncidentTaskAccessAll - cloudSoarAuditAndInformationConfigureAuditTrail - cloudSoarIncidentTriageEdit - cloudSoarIncidentEdit - cloudSoarNotificationTriage - cloudSoarIncidentTriageBulkPhysicalDelete - cloudSoarIncidentNotesAccess - cloudSoarAPIUse - cloudSoarIncidentPlaybooksEdit - cloudSoarDashboardAll - cloudSoarEntitiesManage - cloudSoarIncidentTemplatesConfigure - cloudSoarIncidentTriageAccessAll - cloudSoarPlaybooksConfigure - cloudSoarIncidentAccessAll - cloudSoarCustomizationLogo - cloudSoarIncidentTaskAccess - cloudSoarIncidentTriageView - cloudSoarIntegrationsConfigure - cloudSoarIncidentManageInvestigators - cloudSoarIncidentAccess - cloudSoarAuditAndInformationLicenseInformation - cloudSoarIncidentBulkOperations - cloudSoarCustomizationFields - cloudSoarIncidentTaskEdit - cloudSoarDashboardAccess - cloudSoarIncidentAttachmentsEdit - cloudSoarIncidentFoldersEdit - cloudSoarUserManagementGroups - cloudSoarIncidentPlaybooksAccess - cloudSoarIncidentWarRoomUse - cloudSoarReportAccess - cloudSoarAuditAndInformationAuditTrail - cloudSoarAutomationRulesAccess - cloudSoarIncidentTriageChangeOwnership - cloudSoarObservabilityManagement - + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) - + string - Identifier of the user who created the resource. (example: 0000000006743FDD) + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) @@ -163,24 +164,24 @@ A paginated list of roles in the organization. Description of the role. (example: Manage data of the org.) - + string - A search filter to restrict access to specific logs. The filter is silently added to the beginning of each query a user runs. For example, using '!_sourceCategory=billing' as a filter predicate will prevent users assigned to the role from viewing logs from the source category named 'billing'. (example: !_sourceCategory=billing) + A search filter to restrict access to specific logs. The filter is silently added to the beginning of each query a user runs. For example, using '!_sourceCategory=billing' as a filter predicate will prevent users assigned to the role from viewing logs from the source category named 'billing'. (example: !_sourceCategory=billing) (wire: filterPredicate) - + string (date-time) - Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. (example: 0000000006743FE8) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) - + boolean - Role is system or user defined. + Role is system or user defined. (wire: systemDefined) @@ -208,39 +209,53 @@ The following methods are available for this resource: - + id, region Get a role with the given identifier in the organization. - + region - limit, token, sortBy, name + limit, token, sort_by, name Get a list of all the roles in the organization. The response is paginated with a default limit of 100 roles per page. - + - region, data__name + region, name Create a new role in the organization. - + + + id, region, capabilities, description, filter_predicate, name, users + + Update an existing role in the organization. + + + id, region Delete a role with the given identifier from the organization. - + - id, region, capabilities, description, filterPredicate, name, users + roleId, userId, region - Update an existing role in the organization. + Assign a role to a user in the organization. + + + + + roleId, userId, region + + Remove a role from a user in the organization. @@ -261,12 +276,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the role to update. + Identifier of the role to delete. string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) + + + + string + Identifier of the role to delete. + + + + string + Identifier of the user to remove the role from. @@ -278,10 +303,10 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string Only return roles matching the given name. - - + + string - Sort the list of roles by the `name` field. + Sort the list of roles by the `name` field. (wire: sortBy) @@ -294,13 +319,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a role with the given identifier in the organization. @@ -308,23 +333,23 @@ Get a role with the given identifier in the organization. SELECT id, name, -autofillDependencies, +autofill_dependencies, capabilities, -createdAt, -createdBy, +created_at, +created_by, description, -filterPredicate, -modifiedAt, -modifiedBy, -systemDefined, +filter_predicate, +modified_at, +modified_by, +system_defined, users FROM sumologic.roles.roles WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + Get a list of all the roles in the organization. The response is paginated with a default limit of 100 roles per page. @@ -332,21 +357,21 @@ Get a list of all the roles in the organization. The response is paginated with SELECT id, name, -autofillDependencies, +autofill_dependencies, capabilities, -createdAt, -createdBy, +created_at, +created_by, description, -filterPredicate, -modifiedAt, -modifiedBy, -systemDefined, +filter_predicate, +modified_at, +modified_by, +system_defined, users FROM sumologic.roles.roles -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' -AND sortBy = '{{ sortBy }}' +AND sort_by = '{{ sort_by }}' AND name = '{{ name }}' ; ``` @@ -357,79 +382,80 @@ AND name = '{{ name }}' ## `INSERT` examples - + Create a new role in the organization. ```sql INSERT INTO sumologic.roles.roles ( -data__name, -data__description, -data__filterPredicate, -data__users, -data__capabilities, -data__autofillDependencies, +name, +description, +filter_predicate, +users, +capabilities, +autofill_dependencies, region ) SELECT '{{ name }}' /* required */, '{{ description }}', -'{{ filterPredicate }}', +'{{ filter_predicate }}', '{{ users }}', '{{ capabilities }}', -{{ autofillDependencies }}, +{{ autofill_dependencies }}, '{{ region }}' RETURNING id, name, -autofillDependencies, +autofill_dependencies, capabilities, -createdAt, -createdBy, +created_at, +created_by, description, -filterPredicate, -modifiedAt, -modifiedBy, -systemDefined, +filter_predicate, +modified_at, +modified_by, +system_defined, users ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: roles props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the roles resource. - name: name - value: string + value: "{{ name }}" description: | Name of the role. - name: description - value: string + value: "{{ description }}" description: | Description of the role. - - name: filterPredicate - value: string + - name: filter_predicate + value: "{{ filter_predicate }}" description: | A search filter to restrict access to specific logs. The filter is silently added to the beginning of each query a user runs. For example, using '!_sourceCategory=billing' as a filter predicate will prevent users assigned to the role from viewing logs from the source category named 'billing'. - name: users - value: array + value: + - "{{ users }}" description: | List of user identifiers to assign the role to. - name: capabilities - value: array + value: + - "{{ capabilities }}" description: | - List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are ### Data Management - viewCollectors - manageCollectors @@ -439,6 +465,7 @@ users - manageFieldExtractionRules - manageS3DataForwarding - manageContent + - manageApps - dataVolumeIndex - manageConnections - viewScheduledViews @@ -450,6 +477,12 @@ users - viewAccountOverview - manageTokens - downloadSearchResults + - manageIndexes + - manageDataStreams + - viewParsers + - viewDataStreams + - viewPipelines + - managePipelines ### Entity management - manageEntityTypeConfig ### Metrics @@ -459,6 +492,7 @@ users ### Security - managePasswordPolicy - ipAllowlisting + - ipWhitelisting - createAccessKeys - manageAccessKeys - manageSupportAccountAccess @@ -470,6 +504,7 @@ users ### Dashboards - shareDashboardWorld - shareDashboardAllowlist + - shareDashboardWhitelist ### UserManagement - manageUsersAndRoles ### Observability @@ -477,15 +512,182 @@ users - auditEventIndex ### Cloud SIEM Enterprise - viewCse + - cseViewAutomations + - cseManageContextActions + - cseViewNetworkBlocks + - cseManageInsightTags + - cseViewRules + - cseViewThreatIntelligence + - cseCommentOnInsights + - cseViewEntityGroups + - cseManageEntityConfiguration + - cseManageNetworkBlocks + - cseManageMatchLists + - cseViewCustomInsights + - cseManageActions + - cseManageAutomations + - cseManageMappings + - cseManageThreatIntelligence + - cseViewActions + - cseCreateInsights + - cseManageTagSchemas + - cseInvokeInsights + - cseManageCustomEntityType + - cseViewTagSchemas + - cseDeleteInsights + - cseManageCustomInsights + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseManageEntityCriticality + - cseViewEntityCriticality + - cseViewEntity + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseViewMappings + - cseViewCustomEntityType + - cseManageEntityGroups + - cseViewCustomInsightStatuses + - cseViewEnrichments + - cseManageInsightSignals + - cseManageRules + - cseManageArtifacts + - cseViewMatchLists + - cseManageInsightPolicy + - cseManageEnrichments + - cseViewEntityConfiguration + - cseManageEntity + - cseExecuteAutomations + - cseManageSuppressedEntities + - cseManageInsightStatus + - cseManageInsightAssignee + - cseManageFavoriteFields + - cseViewSuppressedEntities ### Alerting - viewMonitorsV2 - manageMonitorsV2 - viewAlerts - - name: autofillDependencies - value: boolean + - viewMutingSchedules + - manageMutingSchedules + - adminMonitorsV2 + ### SLO + - viewSlos + - manageSlos + ### CloudSoar + - cloudSoarPlaybooksAccess + - cloudSoarNotificationConfigure + - cloudSoarReportAll + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTaskView + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentNotesEdit + - cloudSoarAPIEmailEdit + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentPlaybooksManage + - cloudSoarGeneralConfigure + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarIncidentAttachmentsAccess + - cloudSoarAppCentralAccess + - cloudSoarBridgeMonitoringAccess + - viewCloudSoar + - cloudSoarIncidentView + - cloudSoarObservabilityAccess + - cloudSoarAPIEmailRead + - cloudSoarAppCentralExport + - cloudSoarWidgetsAll + - cloudSoarIncidentTaskReassign + - cloudSoarIntegrationsAccess + - cloudSoarCustomizationIncidentLabels + - cloudSoarAutomationRulesConfigure + - cloudSoarIncidentTaskAccessAll + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentEdit + - cloudSoarNotificationTriage + - cloudSoarIncidentTriageBulkPhysicalDelete + - cloudSoarIncidentNotesAccess + - cloudSoarAPIUse + - cloudSoarIncidentPlaybooksEdit + - cloudSoarDashboardAll + - cloudSoarEntitiesManage + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccessAll + - cloudSoarPlaybooksConfigure + - cloudSoarIncidentAccessAll + - cloudSoarCustomizationLogo + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTriageView + - cloudSoarIntegrationsConfigure + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentAccess + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarIncidentBulkOperations + - cloudSoarCustomizationFields + - cloudSoarIncidentTaskEdit + - cloudSoarDashboardAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarUserManagementGroups + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentWarRoomUse + - cloudSoarReportAccess + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAutomationRulesAccess + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarObservabilityManagement + - name: autofill_dependencies + value: {{ autofill_dependencies }} description: | Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. default: true +`} + + + + + +## `UPDATE` examples + + + + +Update an existing role in the organization. + +```sql +UPDATE sumologic.roles.roles +SET +name = '{{ name }}', +description = '{{ description }}', +filter_predicate = '{{ filter_predicate }}', +users = '{{ users }}', +capabilities = '{{ capabilities }}', +autofill_dependencies = {{ autofill_dependencies }} +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND capabilities = '{{ capabilities }}' --required +AND description = '{{ description }}' --required +AND filter_predicate = '{{ filter_predicate }}' --required +AND name = '{{ name }}' --required +AND users = '{{ users }}' --required +RETURNING +id, +name, +autofill_dependencies, +capabilities, +created_at, +created_by, +description, +filter_predicate, +modified_at, +modified_by, +system_defined, +users; ``` @@ -494,19 +696,19 @@ users ## `DELETE` examples - + Delete a role with the given identifier from the organization. ```sql DELETE FROM sumologic.roles.roles WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` @@ -515,29 +717,36 @@ AND region = '{{ region }}' --required ## Lifecycle Methods +EXEC variables use wire (API) names. + - + -Update an existing role in the organization. +Assign a role to a user in the organization. + +```sql +EXEC sumologic.roles.roles.assign_user +@roleId='{{ roleId }}' --required, +@userId='{{ userId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Remove a role from a user in the organization. ```sql -EXEC sumologic.roles.roles.updateRole -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"name": "{{ name }}", -"description": "{{ description }}", -"filterPredicate": "{{ filterPredicate }}", -"users": "{{ users }}", -"capabilities": "{{ capabilities }}", -"autofillDependencies": {{ autofillDependencies }} -}' +EXEC sumologic.roles.roles.remove_user +@roleId='{{ roleId }}' --required, +@userId='{{ userId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/roles/roles_v2/index.md b/website/docs/services/roles/roles_v2/index.md new file mode 100644 index 0000000..e6ecc6d --- /dev/null +++ b/website/docs/services/roles/roles_v2/index.md @@ -0,0 +1,846 @@ +--- +title: roles_v2 +hide_title: false +hide_table_of_contents: false +keywords: + - roles_v2 + - roles + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a roles_v2 resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Role object that was requested. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the role. (example: 0000000000E20FE3)
stringName of the role. (example: DataAdmin)
stringA search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https:​//help.sumologic.com/docs/manage/security/audit-index/). (example: info) (wire: auditDataFilter)
booleanSet this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. (wire: autofillDependencies)
arrayList of [capabilities](https:​//help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are ### Data Management - viewCollectors - manageCollectors - manageBudgets - manageDataVolumeFeed - viewFieldExtraction - manageFieldExtractionRules - manageS3DataForwarding - manageContent - manageApps - dataVolumeIndex - manageConnections - viewScheduledViews - manageScheduledViews - viewPartitions - managePartitions - viewFields - manageFields - viewAccountOverview - manageTokens - downloadSearchResults - viewPipelines - managePipelines ### Entity management - manageEntityTypeConfig ### Metrics - metricsTransformation - metricsExtraction - metricsRules ### Security - managePasswordPolicy - ipAllowlisting - createAccessKeys - manageAccessKeys - manageSupportAccountAccess - manageAuditDataFeed - manageSaml - shareDashboardOutsideOrg - manageOrgSettings - changeDataAccessLevel ### Dashboards - shareDashboardWorld - shareDashboardAllowlist ### UserManagement - manageUsersAndRoles ### Observability - searchAuditIndex - auditEventIndex ### Cloud SIEM Enterprise - viewCse ### Alerting - viewMonitorsV2 - manageMonitorsV2 - viewAlerts
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
stringDescription of the role. (example: Manage data of the org.)
stringA search filter which would be applied on partitions which belong to Log Analytics product area. (example: !_sourceCategory=collector) (wire: logAnalyticsFilter)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
stringA search filter which would be applied on partitions which belong to Security Data product area. (example: error) (wire: securityDataFilter)
arrayList of views which with specific view level filters in accordance to the selectionType chosen. (wire: selectedViews)
stringDescribes the Permission Construct for the list of views in "selectedViews" parameter. ### Valid Values are : - `All` selectionType would allow access to all views in the org. - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. (example: All) (wire: selectionType)
booleanRole is system or user defined. (wire: systemDefined)
arrayList of user identifiers to assign the role to.
+
+ + +A paginated list of roles in the organization. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the role. (example: 0000000000E20FE3)
stringName of the role. (example: DataAdmin)
stringA search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https:​//help.sumologic.com/docs/manage/security/audit-index/). (example: info) (wire: auditDataFilter)
booleanSet this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. (wire: autofillDependencies)
arrayList of [capabilities](https:​//help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are ### Data Management - viewCollectors - manageCollectors - manageBudgets - manageDataVolumeFeed - viewFieldExtraction - manageFieldExtractionRules - manageS3DataForwarding - manageContent - manageApps - dataVolumeIndex - manageConnections - viewScheduledViews - manageScheduledViews - viewPartitions - managePartitions - viewFields - manageFields - viewAccountOverview - manageTokens - downloadSearchResults - viewPipelines - managePipelines ### Entity management - manageEntityTypeConfig ### Metrics - metricsTransformation - metricsExtraction - metricsRules ### Security - managePasswordPolicy - ipAllowlisting - createAccessKeys - manageAccessKeys - manageSupportAccountAccess - manageAuditDataFeed - manageSaml - shareDashboardOutsideOrg - manageOrgSettings - changeDataAccessLevel ### Dashboards - shareDashboardWorld - shareDashboardAllowlist ### UserManagement - manageUsersAndRoles ### Observability - searchAuditIndex - auditEventIndex ### Cloud SIEM Enterprise - viewCse ### Alerting - viewMonitorsV2 - manageMonitorsV2 - viewAlerts
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
stringDescription of the role. (example: Manage data of the org.)
stringA search filter which would be applied on partitions which belong to Log Analytics product area. (example: !_sourceCategory=collector) (wire: logAnalyticsFilter)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
stringA search filter which would be applied on partitions which belong to Security Data product area. (example: error) (wire: securityDataFilter)
arrayList of views which with specific view level filters in accordance to the selectionType chosen. (wire: selectedViews)
stringDescribes the Permission Construct for the list of views in "selectedViews" parameter. ### Valid Values are : - `All` selectionType would allow access to all views in the org. - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. (example: All) (wire: selectionType)
booleanRole is system or user defined. (wire: systemDefined)
arrayList of user identifiers to assign the role to.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet a role with the given identifier in the organization.
regionlimit, token, sort_by, nameGet a list of all the roles in the organization. The response is paginated with a default limit of 100 roles per page.
region, nameCreate a new role in the organization.
id, region, audit_data_filter, capabilities, description, log_analytics_filter, name, security_data_filter, selected_views, selection_type, usersUpdate an existing role in the organization.
id, regionDelete a role with the given identifier from the organization.
roleId, userId, regionAssign a role to a user in the organization.
roleId, userId, regionRemove a role from a user in the organization.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the role to delete.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringIdentifier of the role to delete.
stringIdentifier of the user to remove the role from.
integer (int32)Limit the number of roles returned in the response. The number of roles returned may be less than the `limit`.
stringOnly return roles matching the given name.
stringSort the list of roles by the `name` field. (wire: sortBy)
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left.
+ +## `SELECT` examples + + + + +Get a role with the given identifier in the organization. + +```sql +SELECT +id, +name, +audit_data_filter, +autofill_dependencies, +capabilities, +created_at, +created_by, +description, +log_analytics_filter, +modified_at, +modified_by, +security_data_filter, +selected_views, +selection_type, +system_defined, +users +FROM sumologic.roles.roles_v2 +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Get a list of all the roles in the organization. The response is paginated with a default limit of 100 roles per page. + +```sql +SELECT +id, +name, +audit_data_filter, +autofill_dependencies, +capabilities, +created_at, +created_by, +description, +log_analytics_filter, +modified_at, +modified_by, +security_data_filter, +selected_views, +selection_type, +system_defined, +users +FROM sumologic.roles.roles_v2 +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +AND sort_by = '{{ sort_by }}' +AND name = '{{ name }}' +; +``` + + + + +## `INSERT` examples + + + + +Create a new role in the organization. + +```sql +INSERT INTO sumologic.roles.roles_v2 ( +name, +description, +log_analytics_filter, +audit_data_filter, +security_data_filter, +selection_type, +selected_views, +users, +capabilities, +autofill_dependencies, +region +) +SELECT +'{{ name }}' /* required */, +'{{ description }}', +'{{ log_analytics_filter }}', +'{{ audit_data_filter }}', +'{{ security_data_filter }}', +'{{ selection_type }}', +'{{ selected_views }}', +'{{ users }}', +'{{ capabilities }}', +{{ autofill_dependencies }}, +'{{ region }}' +RETURNING +id, +name, +audit_data_filter, +autofill_dependencies, +capabilities, +created_at, +created_by, +description, +log_analytics_filter, +modified_at, +modified_by, +security_data_filter, +selected_views, +selection_type, +system_defined, +users +; +``` + + + +{`# Description fields are for documentation purposes +- name: roles_v2 + props: + - name: region + value: "{{ region }}" + description: Required parameter for the roles_v2 resource. + - name: name + value: "{{ name }}" + description: | + Name of the role. + - name: description + value: "{{ description }}" + description: | + Description of the role. + - name: log_analytics_filter + value: "{{ log_analytics_filter }}" + description: | + A search filter which would be applied on partitions which belong to Log Analytics product area. + - name: audit_data_filter + value: "{{ audit_data_filter }}" + description: | + A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/). + - name: security_data_filter + value: "{{ security_data_filter }}" + description: | + A search filter which would be applied on partitions which belong to Security Data product area. + - name: selection_type + value: "{{ selection_type }}" + description: | + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - \`All\` selectionType would allow access to all views in the org. + - \`Allow\` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - \`Deny\` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + - name: selected_views + description: | + List of views which with specific view level filters in accordance to the selectionType chosen. + value: + - viewName: "{{ viewName }}" + - name: users + value: + - "{{ users }}" + description: | + List of user identifiers to assign the role to. + - name: capabilities + value: + - "{{ capabilities }}" + description: | + List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - manageIndexes + - manageDataStreams + - viewParsers + - viewDataStreams + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + ### Security + - managePasswordPolicy + - ipAllowlisting + - ipWhitelisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + - shareDashboardWhitelist + ### UserManagement + - manageUsersAndRoles + ### Observability + - searchAuditIndex + - auditEventIndex + ### Cloud SIEM Enterprise + - viewCse + - cseViewAutomations + - cseManageContextActions + - cseViewNetworkBlocks + - cseManageInsightTags + - cseViewRules + - cseViewThreatIntelligence + - cseCommentOnInsights + - cseViewEntityGroups + - cseManageEntityConfiguration + - cseManageNetworkBlocks + - cseManageMatchLists + - cseViewCustomInsights + - cseManageActions + - cseManageAutomations + - cseManageMappings + - cseManageThreatIntelligence + - cseViewActions + - cseCreateInsights + - cseManageTagSchemas + - cseInvokeInsights + - cseManageCustomEntityType + - cseViewTagSchemas + - cseDeleteInsights + - cseManageCustomInsights + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseManageEntityCriticality + - cseViewEntityCriticality + - cseViewEntity + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseViewMappings + - cseViewCustomEntityType + - cseManageEntityGroups + - cseViewCustomInsightStatuses + - cseViewEnrichments + - cseManageInsightSignals + - cseManageRules + - cseManageArtifacts + - cseViewMatchLists + - cseManageInsightPolicy + - cseManageEnrichments + - cseViewEntityConfiguration + - cseManageEntity + - cseExecuteAutomations + - cseManageSuppressedEntities + - cseManageInsightStatus + - cseManageInsightAssignee + - cseManageFavoriteFields + - cseViewSuppressedEntities + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + - viewMutingSchedules + - manageMutingSchedules + - adminMonitorsV2 + ### SLO + - viewSlos + - manageSlos + ### CloudSoar + - cloudSoarPlaybooksAccess + - cloudSoarNotificationConfigure + - cloudSoarReportAll + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTaskView + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentNotesEdit + - cloudSoarAPIEmailEdit + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentPlaybooksManage + - cloudSoarGeneralConfigure + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarIncidentAttachmentsAccess + - cloudSoarAppCentralAccess + - cloudSoarBridgeMonitoringAccess + - viewCloudSoar + - cloudSoarIncidentView + - cloudSoarObservabilityAccess + - cloudSoarAPIEmailRead + - cloudSoarAppCentralExport + - cloudSoarWidgetsAll + - cloudSoarIncidentTaskReassign + - cloudSoarIntegrationsAccess + - cloudSoarCustomizationIncidentLabels + - cloudSoarAutomationRulesConfigure + - cloudSoarIncidentTaskAccessAll + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentEdit + - cloudSoarNotificationTriage + - cloudSoarIncidentTriageBulkPhysicalDelete + - cloudSoarIncidentNotesAccess + - cloudSoarAPIUse + - cloudSoarIncidentPlaybooksEdit + - cloudSoarDashboardAll + - cloudSoarEntitiesManage + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccessAll + - cloudSoarPlaybooksConfigure + - cloudSoarIncidentAccessAll + - cloudSoarCustomizationLogo + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTriageView + - cloudSoarIntegrationsConfigure + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentAccess + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarIncidentBulkOperations + - cloudSoarCustomizationFields + - cloudSoarIncidentTaskEdit + - cloudSoarDashboardAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarUserManagementGroups + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentWarRoomUse + - cloudSoarReportAccess + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAutomationRulesAccess + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarObservabilityManagement + - name: autofill_dependencies + value: {{ autofill_dependencies }} + description: | + Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true +`} + + + + + +## `UPDATE` examples + + + + +Update an existing role in the organization. + +```sql +UPDATE sumologic.roles.roles_v2 +SET +name = '{{ name }}', +description = '{{ description }}', +log_analytics_filter = '{{ log_analytics_filter }}', +audit_data_filter = '{{ audit_data_filter }}', +security_data_filter = '{{ security_data_filter }}', +selection_type = '{{ selection_type }}', +selected_views = '{{ selected_views }}', +users = '{{ users }}', +capabilities = '{{ capabilities }}', +autofill_dependencies = {{ autofill_dependencies }} +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND audit_data_filter = '{{ audit_data_filter }}' --required +AND capabilities = '{{ capabilities }}' --required +AND description = '{{ description }}' --required +AND log_analytics_filter = '{{ log_analytics_filter }}' --required +AND name = '{{ name }}' --required +AND security_data_filter = '{{ security_data_filter }}' --required +AND selected_views = '{{ selected_views }}' --required +AND selection_type = '{{ selection_type }}' --required +AND users = '{{ users }}' --required +RETURNING +id, +name, +audit_data_filter, +autofill_dependencies, +capabilities, +created_at, +created_by, +description, +log_analytics_filter, +modified_at, +modified_by, +security_data_filter, +selected_views, +selection_type, +system_defined, +users; +``` + + + + +## `DELETE` examples + + + + +Delete a role with the given identifier from the organization. + +```sql +DELETE FROM sumologic.roles.roles_v2 +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Assign a role to a user in the organization. + +```sql +EXEC sumologic.roles.roles_v2.assign_user +@roleId='{{ roleId }}' --required, +@userId='{{ userId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Remove a role from a user in the organization. + +```sql +EXEC sumologic.roles.roles_v2.remove_user +@roleId='{{ roleId }}' --required, +@userId='{{ userId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/roles/users/index.md b/website/docs/services/roles/users/index.md deleted file mode 100644 index aa478f0..0000000 --- a/website/docs/services/roles/users/index.md +++ /dev/null @@ -1,143 +0,0 @@ ---- -title: users -hide_title: false -hide_table_of_contents: false -keywords: - - users - - roles - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a users resource. - -## Overview - - - - -
Nameusers
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
roleId, userId, regionRemove a role from a user in the organization.
roleId, userId, regionAssign a role to a user in the organization.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringIdentifier of the role to assign.
stringIdentifier of the user to assign the role to.
- -## `DELETE` examples - - - - -Remove a role from a user in the organization. - -```sql -DELETE FROM sumologic.roles.users -WHERE roleId = '{{ roleId }}' --required -AND userId = '{{ userId }}' --required -AND region = '{{ region }}' --required -; -``` - - - - -## Lifecycle Methods - - - - -Assign a role to a user in the organization. - -```sql -EXEC sumologic.roles.users.assignRoleToUser -@roleId='{{ roleId }}' --required, -@userId='{{ userId }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/saml/allowlisted_users/index.md b/website/docs/services/saml/allowlisted_users/index.md index ef8cfe2..15a0d8d 100644 --- a/website/docs/services/saml/allowlisted_users/index.md +++ b/website/docs/services/saml/allowlisted_users/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an allowlisted_users resou ## Overview - +
Nameallowlisted_users
Name
TypeResource
Id
@@ -32,14 +33,12 @@ Creates, updates, deletes, gets or lists an allowlisted_users resou The following fields are returned by `SELECT` queries: - - -A list of allowlisted users from the organization. + @@ -51,39 +50,39 @@ A list of allowlisted users from the organization. - - - + + + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + +
booleanIf the user can manage SAML Configurations.stringUnique identifier of the user. (wire: userId)
stringEmail of the user. (example: john@sumologic.com)First name of the user. (wire: firstName)
stringFirst name of the user.Last name of the user. (wire: lastName)
booleanChecks if the user is active.If the user can manage SAML Configurations. (wire: canManageSaml)
string (date-time)Timestamp of the last login of the user.stringEmail of the user. (example: john@sumologic.com)
stringLast name of the user.booleanChecks if the user is active. (wire: isActive)
stringUnique identifier of the user.string (date-time)Timestamp of the last login of the user. (wire: lastLogin)
@@ -106,25 +105,25 @@ The following methods are available for this resource: - + region Get a list of allowlisted users. - - - userId, region + + + user_id, region - Allowlist a user from SAML lockdown allowing them to sign in using a password in addition to SAML. + Remove an allowlisted user requiring them to sign in using SAML. - - + + userId, region - Remove an allowlisted user requiring them to sign in using SAML. + Allowlist a user from SAML lockdown allowing them to sign in using a password in addition to SAML. @@ -145,12 +144,17 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) string - Identifier of user that will no longer be allowlisted from SAML Lockdown. + Identifier of the user. + + + + string + Identifier of user that will no longer be allowlisted from SAML Lockdown. (wire: userId) @@ -158,97 +162,72 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a list of allowlisted users. ```sql SELECT -canManageSaml, +user_id, +first_name, +last_name, +can_manage_saml, email, -firstName, -isActive, -lastLogin, -lastName, -userId +is_active, +last_login FROM sumologic.saml.allowlisted_users -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` -## `INSERT` examples +## `DELETE` examples - + -Allowlist a user from SAML lockdown allowing them to sign in using a password in addition to SAML. +Remove an allowlisted user requiring them to sign in using SAML. ```sql -INSERT INTO sumologic.saml.allowlisted_users ( -userId, -region -) -SELECT -'{{ userId }}', -'{{ region }}' -RETURNING -canManageSaml, -email, -firstName, -isActive, -lastLogin, -lastName, -userId +DELETE FROM sumologic.saml.allowlisted_users +WHERE user_id = '{{ user_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - - -```yaml -# Description fields are for documentation purposes -- name: allowlisted_users - props: - - name: userId - value: string - description: Required parameter for the allowlisted_users resource. - - name: region - value: string - description: Required parameter for the allowlisted_users resource. -``` - -## `DELETE` examples +## Lifecycle Methods + +EXEC variables use wire (API) names. - + -Remove an allowlisted user requiring them to sign in using SAML. +Allowlist a user from SAML lockdown allowing them to sign in using a password in addition to SAML. ```sql -DELETE FROM sumologic.saml.allowlisted_users -WHERE userId = '{{ userId }}' --required -AND region = '{{ region }}' --required +EXEC sumologic.saml.allowlisted_users.add +@userId='{{ userId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/saml/identity_provider_metadata/index.md b/website/docs/services/saml/identity_provider_metadata/index.md new file mode 100644 index 0000000..3000a43 --- /dev/null +++ b/website/docs/services/saml/identity_provider_metadata/index.md @@ -0,0 +1,131 @@ +--- +title: identity_provider_metadata +hide_title: false +hide_table_of_contents: false +keywords: + - identity_provider_metadata + - saml + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an identity_provider_metadata resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A SAML configuration metadata XML within the organization. + + + + + + + + + + + +
NameDatatypeDescription
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet metadata XML for a specific SAML configuration within the organization.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the SAML configuration for which metadata should be returned.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get metadata XML for a specific SAML configuration within the organization. + +```sql +SELECT +* +FROM sumologic.saml.identity_provider_metadata +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/saml/identity_providers/index.md b/website/docs/services/saml/identity_providers/index.md index b172847..b7bacc5 100644 --- a/website/docs/services/saml/identity_providers/index.md +++ b/website/docs/services/saml/identity_providers/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an identity_providers reso ## Overview - +
Nameidentity_providers
Name
TypeResource
Id
@@ -32,14 +33,12 @@ Creates, updates, deletes, gets or lists an identity_providers reso The following fields are returned by `SELECT` queries: - - -A list of SAML configurations in the organization. + @@ -56,124 +55,129 @@ A list of SAML configurations in the organization. - + - + - + - + - + - + - + - + - + + + + + + - + - + - + - + - + - + - - - - - - + - + - + - + - + - + - + - + - + - + - + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
Unique identifier of the SAML Identity Provider. (example: 00000000361130F7)
stringThe URL on Sumo Logic where the IdP will redirect to with its authentication response. (example: https://service.sumologic.com/sumo/saml/consume/9483922, default: )A unique identifier that is the intended audience of the SAML assertion. (example: https:​//service.sumologic.com/sumo/saml/9483922, default: ) (wire: entityId)
stringThe URL that the identity provider has assigned for Sumo Logic to submit SAML authentication requests to the identity provider. (example: https://www.okta.com/app/sumologic/abxcseyuiwelflkdjh/sso/saml, default: )Name of the SSO policy or another name used to describe the policy internally. (example: SumoLogic) (wire: configurationName)
stringAuthentication Request Signing Certificate for the user.The URL on Sumo Logic where the IdP will redirect to with its authentication response. (example: https:​//service.sumologic.com/sumo/saml/consume/9483922, default: ) (wire: assertionConsumerUrl)
stringName of the SSO policy or another name used to describe the policy internally. (example: SumoLogic)The URL that the identity provider has assigned for Sumo Logic to submit SAML authentication requests to the identity provider. (example: https:​//www.okta.com/app/sumologic/abxcseyuiwelflkdjh/sso/saml, default: ) (wire: authnRequestUrl)
stringAuthentication Request Signing Certificate for the user.
string (date-time)Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD)Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
booleanTrue if additional details are included when a user fails to sign in.True if additional details are included when a user fails to sign in. (wire: debugMode)
booleanTrue if Sumo Logic will include the RequestedAuthnContext element of the SAML AuthnRequests it sends to the identity provider.
stringThe email address of the new user account. (example: attribute/subject, default: )True if Sumo Logic will include the RequestedAuthnContext element of the SAML AuthnRequests it sends to the identity provider. (wire: disableRequestedAuthnContext)
stringA unique identifier that is the intended audience of the SAML assertion. (example: https://service.sumologic.com/sumo/saml/9483922, default: )The email address of the new user account. (example: attribute/subject, default: ) (wire: emailAttribute)
booleanTrue if the SAML binding is of HTTP Redirect type.True if the SAML binding is of HTTP Redirect type. (wire: isRedirectBinding)
stringThe unique URL assigned to the organization by the SAML Identity Provider. (example: http://www.okta.com/abxcseyuiwelflkdjh)The unique URL assigned to the organization by the SAML Identity Provider. (example: http:​//www.okta.com/abxcseyuiwelflkdjh)
booleanTrue if users are redirected to a URL after signing out of Sumo Logic.True if users are redirected to a URL after signing out of Sumo Logic. (wire: logoutEnabled)
stringThe URL that users will be redirected to after signing out of Sumo Logic. (example: https://www.sumologic.com, default: )The URL that users will be redirected to after signing out of Sumo Logic. (example: https:​//www.sumologic.com, default: ) (wire: logoutUrl)
stringThe URL to fetch SAML metadata XML. (example: https:​//api.sumologic.com/api/v1/saml/identityProviders/00000000361130F7/metadata, default: ) (wire: metadataUrl)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8)Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
object (wire: onDemandProvisioningEnabled)
stringThe role that Sumo Logic will assign to users when they sign in. (example: Sumo_Role, default: )The role that Sumo Logic will assign to users when they sign in. (example: Sumo_Role, default: ) (wire: rolesAttribute)
booleanTrue if Sumo Logic will send signed Authn requests to the identity provider.True if Sumo Logic will send signed Authn requests to the identity provider. (wire: signAuthnRequest)
booleanTrue if Sumo Logic redirects users to your identity provider with a SAML AuthnRequest when signing in.True if Sumo Logic redirects users to your identity provider with a SAML AuthnRequest when signing in. (wire: spInitiatedLoginEnabled)
stringThis property has been deprecated and is no longer used. (example: http://www.okta.com/abxcseyuiwelflkdjh, default: )This property has been deprecated and is no longer used. (example: http:​//www.okta.com/abxcseyuiwelflkdjh, default: ) (wire: spInitiatedLoginPath)
stringThe certificate is used to verify the signature in SAML assertions.The certificate is used to verify the signature in SAML assertions. (wire: x509cert1)
stringThe backup certificate used to verify the signature in SAML assertions when x509cert1 expires. (default: )The backup certificate used to verify the signature in SAML assertions when x509cert1 expires. (default: ) (wire: x509cert2)
stringThe backup certificate used to verify the signature in SAML assertions when x509cert1 expires and x509cert2 is empty. (default: )The backup certificate used to verify the signature in SAML assertions when x509cert1 expires and x509cert2 is empty. (default: ) (wire: x509cert3)
@@ -196,32 +200,32 @@ The following methods are available for this resource: - + region Get a list of all SAML configurations in the organization. - + - region, data__configurationName, data__issuer, data__x509cert1 + region, configuration_name, issuer, x_509cert_1 Create a new SAML configuration in the organization. - - - id, region + + + id, region, configuration_name, issuer, x_509cert_1 - Delete a SAML configuration with the given identifier from the organization. + Update an existing SAML configuration in the organization. - - - id, region, configurationName, issuer, x509cert1 + + + id, region - Update an existing SAML configuration in the organization. + Delete a SAML configuration with the given identifier from the organization. @@ -242,12 +246,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the SAML configuration to update. + Identifier of the SAML configuration to delete. string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -255,44 +259,45 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a list of all SAML configurations in the organization. ```sql SELECT id, -assertionConsumerUrl, -authnRequestUrl, +entity_id, +configuration_name, +assertion_consumer_url, +authn_request_url, certificate, -configurationName, -createdAt, -createdBy, -debugMode, -disableRequestedAuthnContext, -emailAttribute, -entityId, -isRedirectBinding, +created_at, +created_by, +debug_mode, +disable_requested_authn_context, +email_attribute, +is_redirect_binding, issuer, -logoutEnabled, -logoutUrl, -modifiedAt, -modifiedBy, -onDemandProvisioningEnabled, -rolesAttribute, -signAuthnRequest, -spInitiatedLoginEnabled, -spInitiatedLoginPath, -x509cert1, -x509cert2, -x509cert3 +logout_enabled, +logout_url, +metadata_url, +modified_at, +modified_by, +on_demand_provisioning_enabled, +roles_attribute, +sign_authn_request, +sp_initiated_login_enabled, +sp_initiated_login_path, +x_509cert_1, +x_509cert_2, +x_509cert_3 FROM sumologic.saml.identity_providers -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` @@ -302,236 +307,269 @@ WHERE region = '{{ region }}' -- required ## `INSERT` examples - + Create a new SAML configuration in the organization. ```sql INSERT INTO sumologic.saml.identity_providers ( -data__spInitiatedLoginPath, -data__configurationName, -data__issuer, -data__spInitiatedLoginEnabled, -data__authnRequestUrl, -data__x509cert1, -data__x509cert2, -data__x509cert3, -data__onDemandProvisioningEnabled, -data__rolesAttribute, -data__logoutEnabled, -data__logoutUrl, -data__emailAttribute, -data__debugMode, -data__signAuthnRequest, -data__disableRequestedAuthnContext, -data__isRedirectBinding, +sp_initiated_login_path, +configuration_name, +issuer, +sp_initiated_login_enabled, +authn_request_url, +x_509cert_1, +x_509cert_2, +x_509cert_3, +on_demand_provisioning_enabled, +roles_attribute, +logout_enabled, +logout_url, +email_attribute, +debug_mode, +sign_authn_request, +disable_requested_authn_context, +is_redirect_binding, region ) SELECT -'{{ spInitiatedLoginPath }}', -'{{ configurationName }}' /* required */, +'{{ sp_initiated_login_path }}', +'{{ configuration_name }}' /* required */, '{{ issuer }}' /* required */, -{{ spInitiatedLoginEnabled }}, -'{{ authnRequestUrl }}', -'{{ x509cert1 }}' /* required */, -'{{ x509cert2 }}', -'{{ x509cert3 }}', -'{{ onDemandProvisioningEnabled }}', -'{{ rolesAttribute }}', -{{ logoutEnabled }}, -'{{ logoutUrl }}', -'{{ emailAttribute }}', -{{ debugMode }}, -{{ signAuthnRequest }}, -{{ disableRequestedAuthnContext }}, -{{ isRedirectBinding }}, +{{ sp_initiated_login_enabled }}, +'{{ authn_request_url }}', +'{{ x_509cert_1 }}' /* required */, +'{{ x_509cert_2 }}', +'{{ x_509cert_3 }}', +'{{ on_demand_provisioning_enabled }}', +'{{ roles_attribute }}', +{{ logout_enabled }}, +'{{ logout_url }}', +'{{ email_attribute }}', +{{ debug_mode }}, +{{ sign_authn_request }}, +{{ disable_requested_authn_context }}, +{{ is_redirect_binding }}, '{{ region }}' RETURNING id, -assertionConsumerUrl, -authnRequestUrl, +entity_id, +configuration_name, +assertion_consumer_url, +authn_request_url, certificate, -configurationName, -createdAt, -createdBy, -debugMode, -disableRequestedAuthnContext, -emailAttribute, -entityId, -isRedirectBinding, +created_at, +created_by, +debug_mode, +disable_requested_authn_context, +email_attribute, +is_redirect_binding, issuer, -logoutEnabled, -logoutUrl, -modifiedAt, -modifiedBy, -onDemandProvisioningEnabled, -rolesAttribute, -signAuthnRequest, -spInitiatedLoginEnabled, -spInitiatedLoginPath, -x509cert1, -x509cert2, -x509cert3 +logout_enabled, +logout_url, +metadata_url, +modified_at, +modified_by, +on_demand_provisioning_enabled, +roles_attribute, +sign_authn_request, +sp_initiated_login_enabled, +sp_initiated_login_path, +x_509cert_1, +x_509cert_2, +x_509cert_3 ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: identity_providers props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the identity_providers resource. - - name: spInitiatedLoginPath - value: string + - name: sp_initiated_login_path + value: "{{ sp_initiated_login_path }}" description: | This property has been deprecated and is no longer used. default: - - name: configurationName - value: string + - name: configuration_name + value: "{{ configuration_name }}" description: | Name of the SSO policy or another name used to describe the policy internally. - name: issuer - value: string + value: "{{ issuer }}" description: | The unique URL assigned to the organization by the SAML Identity Provider. - - name: spInitiatedLoginEnabled - value: boolean + - name: sp_initiated_login_enabled + value: {{ sp_initiated_login_enabled }} description: | True if Sumo Logic redirects users to your identity provider with a SAML AuthnRequest when signing in. default: false - - name: authnRequestUrl - value: string + - name: authn_request_url + value: "{{ authn_request_url }}" description: | The URL that the identity provider has assigned for Sumo Logic to submit SAML authentication requests to the identity provider. default: - - name: x509cert1 - value: string + - name: x_509cert_1 + value: "{{ x_509cert_1 }}" description: | The certificate is used to verify the signature in SAML assertions. - - name: x509cert2 - value: string + - name: x_509cert_2 + value: "{{ x_509cert_2 }}" description: | The backup certificate used to verify the signature in SAML assertions when x509cert1 expires. default: - - name: x509cert3 - value: string + - name: x_509cert_3 + value: "{{ x_509cert_3 }}" description: | The backup certificate used to verify the signature in SAML assertions when x509cert1 expires and x509cert2 is empty. default: - - name: onDemandProvisioningEnabled - value: object - - name: rolesAttribute - value: string + - name: on_demand_provisioning_enabled + value: + firstNameAttribute: "{{ firstNameAttribute }}" + lastNameAttribute: "{{ lastNameAttribute }}" + onDemandProvisioningRoles: + - "{{ onDemandProvisioningRoles }}" + - name: roles_attribute + value: "{{ roles_attribute }}" description: | The role that Sumo Logic will assign to users when they sign in. default: - - name: logoutEnabled - value: boolean + - name: logout_enabled + value: {{ logout_enabled }} description: | True if users are redirected to a URL after signing out of Sumo Logic. default: false - - name: logoutUrl - value: string + - name: logout_url + value: "{{ logout_url }}" description: | The URL that users will be redirected to after signing out of Sumo Logic. default: - - name: emailAttribute - value: string + - name: email_attribute + value: "{{ email_attribute }}" description: | The email address of the new user account. default: - - name: debugMode - value: boolean + - name: debug_mode + value: {{ debug_mode }} description: | True if additional details are included when a user fails to sign in. default: false - - name: signAuthnRequest - value: boolean + - name: sign_authn_request + value: {{ sign_authn_request }} description: | True if Sumo Logic will send signed Authn requests to the identity provider. default: false - - name: disableRequestedAuthnContext - value: boolean + - name: disable_requested_authn_context + value: {{ disable_requested_authn_context }} description: | True if Sumo Logic will include the RequestedAuthnContext element of the SAML AuthnRequests it sends to the identity provider. default: false - - name: isRedirectBinding - value: boolean + - name: is_redirect_binding + value: {{ is_redirect_binding }} description: | True if the SAML binding is of HTTP Redirect type. default: false -``` +`} + -## `DELETE` examples +## `UPDATE` examples - + -Delete a SAML configuration with the given identifier from the organization. +Update an existing SAML configuration in the organization. ```sql -DELETE FROM sumologic.saml.identity_providers -WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required -; +UPDATE sumologic.saml.identity_providers +SET +sp_initiated_login_path = '{{ sp_initiated_login_path }}', +configuration_name = '{{ configuration_name }}', +issuer = '{{ issuer }}', +sp_initiated_login_enabled = {{ sp_initiated_login_enabled }}, +authn_request_url = '{{ authn_request_url }}', +x_509cert_1 = '{{ x_509cert_1 }}', +x_509cert_2 = '{{ x_509cert_2 }}', +x_509cert_3 = '{{ x_509cert_3 }}', +on_demand_provisioning_enabled = '{{ on_demand_provisioning_enabled }}', +roles_attribute = '{{ roles_attribute }}', +logout_enabled = {{ logout_enabled }}, +logout_url = '{{ logout_url }}', +email_attribute = '{{ email_attribute }}', +debug_mode = {{ debug_mode }}, +sign_authn_request = {{ sign_authn_request }}, +disable_requested_authn_context = {{ disable_requested_authn_context }}, +is_redirect_binding = {{ is_redirect_binding }} +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND configuration_name = '{{ configuration_name }}' --required +AND issuer = '{{ issuer }}' --required +AND x_509cert_1 = '{{ x_509cert_1 }}' --required +RETURNING +id, +entity_id, +configuration_name, +assertion_consumer_url, +authn_request_url, +certificate, +created_at, +created_by, +debug_mode, +disable_requested_authn_context, +email_attribute, +is_redirect_binding, +issuer, +logout_enabled, +logout_url, +metadata_url, +modified_at, +modified_by, +on_demand_provisioning_enabled, +roles_attribute, +sign_authn_request, +sp_initiated_login_enabled, +sp_initiated_login_path, +x_509cert_1, +x_509cert_2, +x_509cert_3; ``` -## Lifecycle Methods +## `DELETE` examples - + -Update an existing SAML configuration in the organization. +Delete a SAML configuration with the given identifier from the organization. ```sql -EXEC sumologic.saml.identity_providers.updateIdentityProvider -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"spInitiatedLoginPath": "{{ spInitiatedLoginPath }}", -"configurationName": "{{ configurationName }}", -"issuer": "{{ issuer }}", -"spInitiatedLoginEnabled": {{ spInitiatedLoginEnabled }}, -"authnRequestUrl": "{{ authnRequestUrl }}", -"x509cert1": "{{ x509cert1 }}", -"x509cert2": "{{ x509cert2 }}", -"x509cert3": "{{ x509cert3 }}", -"onDemandProvisioningEnabled": "{{ onDemandProvisioningEnabled }}", -"rolesAttribute": "{{ rolesAttribute }}", -"logoutEnabled": {{ logoutEnabled }}, -"logoutUrl": "{{ logoutUrl }}", -"emailAttribute": "{{ emailAttribute }}", -"debugMode": {{ debugMode }}, -"signAuthnRequest": {{ signAuthnRequest }}, -"disableRequestedAuthnContext": {{ disableRequestedAuthnContext }}, -"isRedirectBinding": {{ isRedirectBinding }} -}' +DELETE FROM sumologic.saml.identity_providers +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/saml/index.md b/website/docs/services/saml/index.md index 8c9db3e..1d4ffc5 100644 --- a/website/docs/services/saml/index.md +++ b/website/docs/services/saml/index.md @@ -26,10 +26,10 @@ total resources: __4__ \ No newline at end of file diff --git a/website/docs/services/saml/lockdown_enable/index.md b/website/docs/services/saml/lockdown/index.md similarity index 56% rename from website/docs/services/saml/lockdown_enable/index.md rename to website/docs/services/saml/lockdown/index.md index e1387c0..bb53b32 100644 --- a/website/docs/services/saml/lockdown_enable/index.md +++ b/website/docs/services/saml/lockdown/index.md @@ -1,9 +1,9 @@ --- -title: lockdown_enable +title: lockdown hide_title: false hide_table_of_contents: false keywords: - - lockdown_enable + - lockdown - saml - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a lockdown_enable resource. +Creates, updates, deletes, gets or lists a lockdown resource. ## Overview - + - +
Namelockdown_enable
Name
TypeResource
Id
Id
## Fields @@ -50,12 +51,19 @@ The following methods are available for this resource: - + region Enabling SAML lockdown requires users to sign in using SAML preventing them from logging in with an email and password. + + + + region + + Disable SAML lockdown for the organization. + @@ -75,26 +83,39 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) ## Lifecycle Methods +EXEC variables use wire (API) names. + - + Enabling SAML lockdown requires users to sign in using SAML preventing them from logging in with an email and password. ```sql -EXEC sumologic.saml.lockdown_enable.enableSamlLockdown -@region='{{ region }}' --required +EXEC sumologic.saml.lockdown.enable +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Disable SAML lockdown for the organization. + +```sql +EXEC sumologic.saml.lockdown.disable +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/saml/lockdown_disable/index.md b/website/docs/services/saml/lockdown_disable/index.md deleted file mode 100644 index 0b66319..0000000 --- a/website/docs/services/saml/lockdown_disable/index.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: lockdown_disable -hide_title: false -hide_table_of_contents: false -keywords: - - lockdown_disable - - saml - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a lockdown_disable resource. - -## Overview - - - - -
Namelockdown_disable
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
regionDisable SAML lockdown for the organization.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Disable SAML lockdown for the organization. - -```sql -EXEC sumologic.saml.lockdown_disable.disableSamlLockdown -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/scheduled_views/disable/index.md b/website/docs/services/scheduled_views/disable/index.md deleted file mode 100644 index 849b5da..0000000 --- a/website/docs/services/scheduled_views/disable/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: disable -hide_title: false -hide_table_of_contents: false -keywords: - - disable - - scheduled_views - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a disable resource. - -## Overview - - - - -
Namedisable
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionDisable a scheduled view with the given identifier.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the scheduled view to disable.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Disable a scheduled view with the given identifier. - -```sql -EXEC sumologic.scheduled_views.disable.disableScheduledView -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/scheduled_views/index.md b/website/docs/services/scheduled_views/index.md index fa67eb9..fd9ee90 100644 --- a/website/docs/services/scheduled_views/index.md +++ b/website/docs/services/scheduled_views/index.md @@ -18,18 +18,16 @@ scheduled_views service documentation. :::info[Service Summary] -total resources: __4__ +total resources: __2__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/scheduled_views/pause/index.md b/website/docs/services/scheduled_views/pause/index.md deleted file mode 100644 index f2099ad..0000000 --- a/website/docs/services/scheduled_views/pause/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: pause -hide_title: false -hide_table_of_contents: false -keywords: - - pause - - scheduled_views - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a pause resource. - -## Overview - - - - -
Namepause
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionPause a scheduled view with the given identifier.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the scheduled view to pause.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Pause a scheduled view with the given identifier. - -```sql -EXEC sumologic.scheduled_views.pause.pauseScheduledView -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/scheduled_views/quota/index.md b/website/docs/services/scheduled_views/quota/index.md new file mode 100644 index 0000000..2a6401b --- /dev/null +++ b/website/docs/services/scheduled_views/quota/index.md @@ -0,0 +1,136 @@ +--- +title: quota +hide_title: false +hide_table_of_contents: false +keywords: + - quota + - scheduled_views + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a quota resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Current state of scheduled views quota usage (limit and remaining). + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int32)Maximum number of Scheduled Views allowed.
integer (int32)Remaining number of Scheduled Views allowed.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionEvery customer can use a limited number of scheduled views. This endpoint allows learning about these limitations and remaining quota.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Every customer can use a limited number of scheduled views. This endpoint allows learning about these limitations and remaining quota. + +```sql +SELECT +quota, +remaining +FROM sumologic.scheduled_views.quota +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/scheduled_views/scheduled_views/index.md b/website/docs/services/scheduled_views/scheduled_views/index.md index a5aaf2f..3fd29f8 100644 --- a/website/docs/services/scheduled_views/scheduled_views/index.md +++ b/website/docs/services/scheduled_views/scheduled_views/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a scheduled_views resource ## Overview - +
Namescheduled_views
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a scheduled_views resource The following fields are returned by `SELECT` queries: - + Scheduled view object that was requested. @@ -57,24 +58,39 @@ Scheduled view object that was requested. Identifier for the scheduled view. - + + string + An optional ID of a data forwarding configuration to be used by the scheduled view. (wire: dataForwardingId) + + + + string + The `id` of the Index where the output from Scheduled view is stored. (example: 1) (wire: indexId) + + + + string + Name of the index for the scheduled view. (example: TestScheduledView) (wire: indexName) + + + string (date-time) - Creation timestamp in UTC. + Creation timestamp in UTC. (wire: createdAt) - + string - Identifier of the user who created the scheduled view. (example: 0000000006743FE8) + Identifier of the user who created the scheduled view. (example: 0000000006743FE8) (wire: createdBy) - + boolean - If the scheduled view is created by OptimizeIt. + If the scheduled view is created by OptimizeIt. (wire: createdByOptimizeIt) - + string - An optional ID of a data forwarding configuration to be used by the scheduled view. + Description of the scheduled view. (default: ) @@ -82,39 +98,34 @@ Scheduled view object that was requested. Errors related to the scheduled view. - + array - List of the different units of filled ranges since the autoview has been created. + List of the different units of filled ranges since the autoview has been created. (wire: filledRanges) - - string - The `id` of the Index where the output from Scheduled view is stored. (example: 1) - - - - string - Name of the index for the scheduled view. (example: TestScheduledView) + + string (date-time) + Last accessed timestamp in UTC (wire: lastAccessedAt) - + string (date-time) - Last modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + Last modification timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. (example: 0000000006743FE8) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) - + integer (int32) - If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. + If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. (wire: newRetentionPeriod) - + string - Define the parsing mode to scan the JSON format log messages. Possible values are: 1. `AutoParse` 2. `Manual` In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). (pattern: ^(AutoParse|Manual)$, example: AutoParse, default: Manual, x-pattern-message: should be either AutoParse or Manual) + Define the parsing mode to scan the JSON format log messages. Possible values are: 1. `AutoParse` 2. `Manual` In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https:​//help.sumologic.com/?cid=0011). (pattern: <code>^(AutoParse|Manual)$</code>, example: AutoParse, default: Manual, x-pattern-message: should be either AutoParse or Manual) (wire: parsingMode) @@ -122,39 +133,44 @@ Scheduled view object that was requested. The query that defines the data to be included in the scheduled view. (example: _sourceCategory=*/Apache) - + string (date-time) - When the newRetentionPeriod will become effective in UTC format. + When the newRetentionPeriod will become effective in UTC format. (wire: retentionEffectiveAt) - + integer (int32) - The number of days to retain data in the scheduled view, or -1 to use the default value for your account. Only relevant if your account has multi-retention enabled. + The number of days to retain data in the scheduled view, or -1 to use the default value for your account. Only relevant if your account has multi-retention enabled. (wire: retentionPeriod) - + string (date-time) - Start timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + Start timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: startTime) string - Status of the scheduled view. + Status of the scheduled view. Possible values are: 1. `NOT_STARTED` 2. `FILLING` 3. `STOPPED` 4. `COMPLETE` 5. `FAILED` 6. `PAUSED` - + + string + Time zone for ingesting data in scheduled view. Follow the format in the [IANA Time Zone Database](https:​//en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). (example: America/Los_Angeles, default: UTC) (wire: timeZone) + + + integer (int64) - Total storage consumed by the scheduled view. + Total storage consumed by the scheduled view. (wire: totalBytes) - + integer (int64) - Total number of messages for the scheduled view. + Total number of messages for the scheduled view. (wire: totalMessageCount) - + A paginated list of scheduled views in the organization. @@ -168,14 +184,119 @@ A paginated list of scheduled views in the organization. - + + string + Identifier for the scheduled view. + + + + string + An optional ID of a data forwarding configuration to be used by the scheduled view. (wire: dataForwardingId) + + + + string + The `id` of the Index where the output from Scheduled view is stored. (example: 1) (wire: indexId) + + + + string + Name of the index for the scheduled view. (example: TestScheduledView) (wire: indexName) + + + + string (date-time) + Creation timestamp in UTC. (wire: createdAt) + + + + string + Identifier of the user who created the scheduled view. (example: 0000000006743FE8) (wire: createdBy) + + + + boolean + If the scheduled view is created by OptimizeIt. (wire: createdByOptimizeIt) + + + + string + Description of the scheduled view. (default: ) + + + + string + Errors related to the scheduled view. + + + array - List of scheduled views. + List of the different units of filled ranges since the autoview has been created. (wire: filledRanges) + + + + string (date-time) + Last accessed timestamp in UTC (wire: lastAccessedAt) + + + + string (date-time) + Last modification timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: modifiedAt) + + + + string + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) + + + + integer (int32) + If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. (wire: newRetentionPeriod) - + + string + Define the parsing mode to scan the JSON format log messages. Possible values are: 1. `AutoParse` 2. `Manual` In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https:​//help.sumologic.com/?cid=0011). (pattern: <code>^(AutoParse|Manual)$</code>, example: AutoParse, default: Manual, x-pattern-message: should be either AutoParse or Manual) (wire: parsingMode) + + + string - Next continuation token. + The query that defines the data to be included in the scheduled view. (example: _sourceCategory=*/Apache) + + + + string (date-time) + When the newRetentionPeriod will become effective in UTC format. (wire: retentionEffectiveAt) + + + + integer (int32) + The number of days to retain data in the scheduled view, or -1 to use the default value for your account. Only relevant if your account has multi-retention enabled. (wire: retentionPeriod) + + + + string (date-time) + Start timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: startTime) + + + + string + Status of the scheduled view. Possible values are: 1. `NOT_STARTED` 2. `FILLING` 3. `STOPPED` 4. `COMPLETE` 5. `FAILED` 6. `PAUSED` + + + + string + Time zone for ingesting data in scheduled view. Follow the format in the [IANA Time Zone Database](https:​//en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). (example: America/Los_Angeles, default: UTC) (wire: timeZone) + + + + integer (int64) + Total storage consumed by the scheduled view. (wire: totalBytes) + + + + integer (int64) + Total number of messages for the scheduled view. (wire: totalMessageCount) @@ -198,33 +319,54 @@ The following methods are available for this resource: - + id, region Get a scheduled view with the given identifier. - + region limit, token Get a list of all scheduled views in the organization. The response is paginated with a default limit of 100 scheduled views per page. - + - region, data__indexName, data__query, data__startTime + region, index_name, query, start_time Creates a new scheduled view in the organization. - - + + id, region Update an existing scheduled view. + + + + id, region + + Disable a scheduled view with the given identifier. + + + + + id, region + + Pause a scheduled view with the given identifier. + + + + + id, region + + Start a scheduled view with the given identifier. + @@ -244,12 +386,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the scheduled view to update. + Identifier of the scheduled view to start. string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -267,54 +409,78 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a scheduled view with the given identifier. ```sql SELECT id, -createdAt, -createdBy, -createdByOptimizeIt, -dataForwardingId, +data_forwarding_id, +index_id, +index_name, +created_at, +created_by, +created_by_optimize_it, +description, error, -filledRanges, -indexId, -indexName, -modifiedAt, -modifiedBy, -newRetentionPeriod, -parsingMode, +filled_ranges, +last_accessed_at, +modified_at, +modified_by, +new_retention_period, +parsing_mode, query, -retentionEffectiveAt, -retentionPeriod, -startTime, +retention_effective_at, +retention_period, +start_time, status, -totalBytes, -totalMessageCount +time_zone, +total_bytes, +total_message_count FROM sumologic.scheduled_views.scheduled_views WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + Get a list of all scheduled views in the organization. The response is paginated with a default limit of 100 scheduled views per page. ```sql SELECT -data, -next +id, +data_forwarding_id, +index_id, +index_name, +created_at, +created_by, +created_by_optimize_it, +description, +error, +filled_ranges, +last_accessed_at, +modified_at, +modified_by, +new_retention_period, +parsing_mode, +query, +retention_effective_at, +retention_period, +start_time, +status, +time_zone, +total_bytes, +total_message_count FROM sumologic.scheduled_views.scheduled_views -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' ; @@ -326,96 +492,165 @@ AND token = '{{ token }}' ## `INSERT` examples - + Creates a new scheduled view in the organization. ```sql INSERT INTO sumologic.scheduled_views.scheduled_views ( -data__query, -data__indexName, -data__startTime, -data__retentionPeriod, -data__dataForwardingId, -data__parsingMode, +query, +index_name, +start_time, +retention_period, +data_forwarding_id, +parsing_mode, +time_zone, +description, region ) SELECT '{{ query }}' /* required */, -'{{ indexName }}' /* required */, -'{{ startTime }}' /* required */, -{{ retentionPeriod }}, -'{{ dataForwardingId }}', -'{{ parsingMode }}', +'{{ index_name }}' /* required */, +'{{ start_time }}' /* required */, +{{ retention_period }}, +'{{ data_forwarding_id }}', +'{{ parsing_mode }}', +'{{ time_zone }}', +'{{ description }}', '{{ region }}' RETURNING id, -createdAt, -createdBy, -createdByOptimizeIt, -dataForwardingId, +data_forwarding_id, +index_id, +index_name, +created_at, +created_by, +created_by_optimize_it, +description, error, -filledRanges, -indexId, -indexName, -modifiedAt, -modifiedBy, -newRetentionPeriod, -parsingMode, +filled_ranges, +last_accessed_at, +modified_at, +modified_by, +new_retention_period, +parsing_mode, query, -retentionEffectiveAt, -retentionPeriod, -startTime, +retention_effective_at, +retention_period, +start_time, status, -totalBytes, -totalMessageCount +time_zone, +total_bytes, +total_message_count ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: scheduled_views props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the scheduled_views resource. - name: query - value: string + value: "{{ query }}" description: | The query that defines the data to be included in the scheduled view. - - name: indexName - value: string + - name: index_name + value: "{{ index_name }}" description: | Name of the index for the scheduled view. - - name: startTime - value: string + - name: start_time + value: "{{ start_time }}" description: | Start timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. - - name: retentionPeriod - value: integer + - name: retention_period + value: {{ retention_period }} description: | The number of days to retain data in the scheduled view, or -1 to use the default value for your account. Only relevant if your account has multi-retention enabled. default: -1 - - name: dataForwardingId - value: string + - name: data_forwarding_id + value: "{{ data_forwarding_id }}" description: | An optional ID of a data forwarding configuration to be used by the scheduled view. - - name: parsingMode - value: string + - name: parsing_mode + value: "{{ parsing_mode }}" description: | Define the parsing mode to scan the JSON format log messages. Possible values are: - 1. `AutoParse` - 2. `Manual` + 1. \`AutoParse\` + 2. \`Manual\` In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). default: Manual + - name: time_zone + value: "{{ time_zone }}" + description: | + Time zone for ingesting data in scheduled view. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + default: UTC + - name: description + value: "{{ description }}" + description: | + Description of the scheduled view. + default: +`} + + + + + +## `UPDATE` examples + + + + +Update an existing scheduled view. + +```sql +UPDATE sumologic.scheduled_views.scheduled_views +SET +data_forwarding_id = '{{ data_forwarding_id }}', +retention_period = {{ retention_period }}, +reduce_retention_period_immediately = {{ reduce_retention_period_immediately }}, +time_zone = '{{ time_zone }}', +description = '{{ description }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +RETURNING +id, +data_forwarding_id, +index_id, +index_name, +created_at, +created_by, +created_by_optimize_it, +description, +error, +filled_ranges, +last_accessed_at, +modified_at, +modified_by, +new_retention_period, +parsing_mode, +query, +retention_effective_at, +retention_period, +start_time, +status, +time_zone, +total_bytes, +total_message_count; ``` @@ -423,26 +658,46 @@ totalMessageCount ## Lifecycle Methods +EXEC variables use wire (API) names. + - + -Update an existing scheduled view. +Disable a scheduled view with the given identifier. + +```sql +EXEC sumologic.scheduled_views.scheduled_views.disable +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Pause a scheduled view with the given identifier. + +```sql +EXEC sumologic.scheduled_views.scheduled_views.pause +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Start a scheduled view with the given identifier. ```sql -EXEC sumologic.scheduled_views.scheduled_views.updateScheduledView +EXEC sumologic.scheduled_views.scheduled_views.start @id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"dataForwardingId": "{{ dataForwardingId }}", -"retentionPeriod": {{ retentionPeriod }}, -"reduceRetentionPeriodImmediately": {{ reduceRetentionPeriodImmediately }} -}' +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/scheduled_views/start/index.md b/website/docs/services/scheduled_views/start/index.md deleted file mode 100644 index 3d948e8..0000000 --- a/website/docs/services/scheduled_views/start/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: start -hide_title: false -hide_table_of_contents: false -keywords: - - start - - scheduled_views - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a start resource. - -## Overview - - - - -
Namestart
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionStart a scheduled view with the given identifier.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the scheduled view to start.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Start a scheduled view with the given identifier. - -```sql -EXEC sumologic.scheduled_views.start.startScheduledView -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/schemas/index.md b/website/docs/services/schemas/index.md new file mode 100644 index 0000000..7ee5634 --- /dev/null +++ b/website/docs/services/schemas/index.md @@ -0,0 +1,33 @@ +--- +title: schemas +hide_title: false +hide_table_of_contents: false +keywords: + - schemas + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +schemas service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/schemas/schema_identities/index.md b/website/docs/services/schemas/schema_identities/index.md new file mode 100644 index 0000000..4046ad8 --- /dev/null +++ b/website/docs/services/schemas/schema_identities/index.md @@ -0,0 +1,136 @@ +--- +title: schema_identities +hide_title: false +hide_table_of_contents: false +keywords: + - schema_identities + - schemas + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a schema_identities resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A summary of all available schema bases grouped by type and their versions sorted by latest. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe type of the schema. (example: Okta)
arrayList of schema base identities sorted by latest version for a specific schema type.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionGet a summary of all available schema bases grouped by type and their versions sorted by latest.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get a summary of all available schema bases grouped by type and their versions sorted by latest. + +```sql +SELECT +type, +versions +FROM sumologic.schemas.schema_identities +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/scim/index.md b/website/docs/services/scim/index.md new file mode 100644 index 0000000..5970fe6 --- /dev/null +++ b/website/docs/services/scim/index.md @@ -0,0 +1,33 @@ +--- +title: scim +hide_title: false +hide_table_of_contents: false +keywords: + - scim + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +scim service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+
+users +
+
+ +
+
\ No newline at end of file diff --git a/website/docs/services/scim/users/index.md b/website/docs/services/scim/users/index.md new file mode 100644 index 0000000..a7586db --- /dev/null +++ b/website/docs/services/scim/users/index.md @@ -0,0 +1,499 @@ +--- +title: users +hide_title: false +hide_table_of_contents: false +keywords: + - users + - scim + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a users resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +User details retrieved successfully + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique SCIM identifier for the user (example: 000000000FE20FE2)
object
stringUnique identifier for the user (email) (example: jdoe@example.com) (wire: userName)
booleanTrue if the user is active
arraySumo logic accepts only one email address
objectResource meta data of a user
arrayroles should exactly match with role names within sumologic. `roles` can be either `Array of strings` or `Array of objects` as shown in the payload. `primary` always set to 'true' as sumologic doesn't have a concept of primary/secondary roles
arrayDefines the SCIM schemas for the user
+
+ + +A paginated list of users in the organization + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique SCIM identifier for the user (example: 000000000FE20FE2)
object
stringUnique identifier for the user (email) (example: jdoe@example.com) (wire: userName)
booleanTrue if the user is active
arraySumo logic accepts only one email address
objectResource meta data of a user
arrayroles should exactly match with role names within sumologic. `roles` can be either `Array of strings` or `Array of objects` as shown in the payload. `primary` always set to 'true' as sumologic doesn't have a concept of primary/secondary roles
arrayDefines the SCIM schemas for the user
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionFetches the details of a SCIM user by their unique identifier
regionstart_index, count, filter, sort_order, sort_byRetrieves a list of users in the SCIM system, with optional pagination
region, emails, name, roles, schemas, user_nameCreates a new user in the SCIM system
id, region, operations, schemasUpdates specific attributes of an existing user in the SCIM system
id, region, active, emails, name, roles, schemasUpdates an existing user's attributes in the SCIM system
id, regionDeletes a SCIM user by their unique identifier
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier of the SCIM user to delete
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
integerThe maximum number of results to return. Defaults to 100
stringFind user with the given email address
stringSort the list of users by the `givenName`, `familyName`, or `emails` field (wire: sortBy)
stringThe sort order. Use "ascending" or "descending" (wire: sortOrder)
integer (int32)The index of the first result to return. Defaults to 1 if not specified, a value less than 1 SHALL be interpreted as 1 (wire: startIndex)
+ +## `SELECT` examples + + + + +Fetches the details of a SCIM user by their unique identifier + +```sql +SELECT +id, +name, +user_name, +active, +emails, +meta, +roles, +schemas +FROM sumologic.scim.users +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Retrieves a list of users in the SCIM system, with optional pagination + +```sql +SELECT +id, +name, +user_name, +active, +emails, +meta, +roles, +schemas +FROM sumologic.scim.users +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND start_index = '{{ start_index }}' +AND count = '{{ count }}' +AND filter = '{{ filter }}' +AND sort_order = '{{ sort_order }}' +AND sort_by = '{{ sort_by }}' +; +``` + + + + +## `INSERT` examples + + + + +Creates a new user in the SCIM system + +```sql +INSERT INTO sumologic.scim.users ( +schemas, +user_name, +name, +emails, +roles, +region +) +SELECT +'{{ schemas }}' /* required */, +'{{ user_name }}' /* required */, +'{{ name }}' /* required */, +'{{ emails }}' /* required */, +'{{ roles }}' /* required */, +'{{ region }}' +RETURNING +id, +name, +user_name, +active, +emails, +meta, +roles, +schemas +; +``` + + + +{`# Description fields are for documentation purposes +- name: users + props: + - name: region + value: "{{ region }}" + description: Required parameter for the users resource. + - name: schemas + value: + - "{{ schemas }}" + description: | + Defines the SCIM schemas for the user + - name: user_name + value: "{{ user_name }}" + description: | + Unique identifier for the user (email) + - name: name + value: + givenName: "{{ givenName }}" + familyName: "{{ familyName }}" + - name: emails + description: | + Sumo logic accepts only one email address + value: + - value: "{{ value }}" + type: "{{ type }}" + primary: {{ primary }} + - name: roles + value: "{{ roles }}" + description: | + roles should exactly match with role names within sumologic. \`roles\` can be either \`Array of strings\` or \`Array of objects\` as shown in the payload. \`primary\` always set to 'true' as sumologic doesn't have a concept of primary/secondary roles +`} + + + + + +## `UPDATE` examples + + + + +Updates specific attributes of an existing user in the SCIM system + +```sql +UPDATE sumologic.scim.users +SET +schemas = '{{ schemas }}', +operations = '{{ operations }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND operations = '{{ operations }}' --required +AND schemas = '{{ schemas }}' --required +RETURNING +id, +name, +user_name, +active, +emails, +meta, +roles, +schemas; +``` + + + + +## `REPLACE` examples + + + + +Updates an existing user's attributes in the SCIM system + +```sql +REPLACE sumologic.scim.users +SET +schemas = '{{ schemas }}', +name = '{{ name }}', +active = {{ active }}, +emails = '{{ emails }}', +roles = '{{ roles }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND active = {{ active }} --required +AND emails = '{{ emails }}' --required +AND name = '{{ name }}' --required +AND roles = '{{ roles }}' --required +AND schemas = '{{ schemas }}' --required +RETURNING +id, +name, +user_name, +active, +emails, +meta, +roles, +schemas; +``` + + + + +## `DELETE` examples + + + + +Deletes a SCIM user by their unique identifier + +```sql +DELETE FROM sumologic.scim.users +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/search_jobs/index.md b/website/docs/services/search_jobs/index.md new file mode 100644 index 0000000..5297a59 --- /dev/null +++ b/website/docs/services/search_jobs/index.md @@ -0,0 +1,34 @@ +--- +title: search_jobs +hide_title: false +hide_table_of_contents: false +keywords: + - search_jobs + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +search_jobs service documentation. + +:::info[Service Summary] + +total resources: __3__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/search_jobs/messages/index.md b/website/docs/services/search_jobs/messages/index.md new file mode 100644 index 0000000..52d112d --- /dev/null +++ b/website/docs/services/search_jobs/messages/index.md @@ -0,0 +1,148 @@ +--- +title: messages +hide_title: false +hide_table_of_contents: false +keywords: + - messages + - search_jobs + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a messages resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A paginated list of messages. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
objectMap message values.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, offset, limit, regionUse the search job identifier to obtain the paginated messages from an offset.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier of the search job. (wire: jobId)
integerLimit the number of messages returned in the response. The number of messages returned may be less than the `limit`.
integerReturn messages starting at this offset.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Use the search job identifier to obtain the paginated messages from an offset. + +```sql +SELECT +map +FROM sumologic.search_jobs.messages +WHERE job_id = '{{ job_id }}' -- required +AND offset = '{{ offset }}' -- required +AND limit = '{{ limit }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/search_jobs/records/index.md b/website/docs/services/search_jobs/records/index.md new file mode 100644 index 0000000..07ec5ba --- /dev/null +++ b/website/docs/services/search_jobs/records/index.md @@ -0,0 +1,148 @@ +--- +title: records +hide_title: false +hide_table_of_contents: false +keywords: + - records + - search_jobs + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a records resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +A paginated list of records. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
objectMap Records values.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, offset, limit, regionUse the search job identifier to obtain the aggregated records from an offset.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier of the search job. (wire: jobId)
integerLimit the number of records returned in the response.
integerReturn aggregated records starting at this offset.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Use the search job identifier to obtain the aggregated records from an offset. + +```sql +SELECT +map +FROM sumologic.search_jobs.records +WHERE job_id = '{{ job_id }}' -- required +AND offset = '{{ offset }}' -- required +AND limit = '{{ limit }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/search_jobs/search_jobs/index.md b/website/docs/services/search_jobs/search_jobs/index.md new file mode 100644 index 0000000..119ab8d --- /dev/null +++ b/website/docs/services/search_jobs/search_jobs/index.md @@ -0,0 +1,383 @@ +--- +title: search_jobs +hide_title: false +hide_table_of_contents: false +keywords: + - search_jobs + - search_jobs + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a search_jobs resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The search job's status. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe job identifier for this search job. (wire: jobId)
arrayHistogram buckets for the query. (wire: histogramBuckets)
integer (int64)Number of messages found or produced so far. (wire: messageCount)
arrayPending errors that have accumulated since the last time the status was requested. (wire: pendingErrors)
arrayPending message locators and offsets accumulated since the last status request. (wire: pendingMessageLocatorsAndOffsets)
arrayPending warnings that have accumulated since the last time the status was requested. (wire: pendingWarnings)
objectPerformance characteristics of this search job.
integer (int64)Number of records found or produced so far. (wire: recordCount)
objectThe time range that has been searched so far. (wire: searchedTimeRange)
booleanWhether log level distribution data is available for this search job. (wire: showLogLevels)
stringSearch job state. In case you are checking status for a multi child org query, you might see another status as 'Done Gathering Partial Results' which means that the query failed for some of the child orgs. You can check their reasons in audit logs with the query Id. (example: DONE GATHERING RESULTS)
integer (int64)Time elapsed in milliseconds since the search job started. (wire: timeElapsed)
objectUsage details about the search job api. It includes data scanned in bytes during the search. (wire: usageDetails)
arrayUsage details broken down by metering type. Each element contains dataScannedInBytes, meteringType, tier, and isChargeable. (wire: usageDetailsByMeteringType)
arrayUsage details broken down by analytics tier. Each element contains dataScannedInBytes and tier. (wire: usageDetailsByTier)
arrayInformational user messages generated during the search. Each element contains type, key, and data. (wire: userMessages)
stringWarnings value contains the detailed information about the warning while obtaining the current status of a search job.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
job_id, regionUse the search job identifier to obtain the current status of a search job.
region, from, query, timezone, toCreate a new search job.
job_id, regionUse the search job identifier to delete the search job.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe identifier of the search job to be deleted. (wire: jobId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Use the search job identifier to obtain the current status of a search job. + +```sql +SELECT +job_id, +histogram_buckets, +message_count, +pending_errors, +pending_message_locators_and_offsets, +pending_warnings, +performance, +record_count, +searched_time_range, +show_log_levels, +state, +time_elapsed, +usage_details, +usage_details_by_metering_type, +usage_details_by_tier, +user_messages, +warning +FROM sumologic.search_jobs.search_jobs +WHERE job_id = '{{ job_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples + + + + +Create a new search job. + +```sql +INSERT INTO sumologic.search_jobs.search_jobs ( +query, +from, +to, +timezone, +auto_parsing_mode, +requires_raw_messages, +max_raw_records, +interval_time_type, +child_org_ids, +include_all_child_orgs, +region +) +SELECT +'{{ query }}' /* required */, +'{{ from }}' /* required */, +'{{ to }}' /* required */, +'{{ timezone }}' /* required */, +'{{ auto_parsing_mode }}', +'{{ requires_raw_messages }}', +'{{ max_raw_records }}', +'{{ interval_time_type }}', +'{{ child_org_ids }}', +{{ include_all_child_orgs }}, +'{{ region }}' +RETURNING +id, +is_aggregation, +is_sortable, +is_summary, +link, +operators, +runnable_query, +tiers_in_query, +user_referenced_fields_sortable, +warning +; +``` + + + +{`# Description fields are for documentation purposes +- name: search_jobs + props: + - name: region + value: "{{ region }}" + description: Required parameter for the search_jobs resource. + - name: query + value: "{{ query }}" + description: | + The actual search expression. Ensure your query follows [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259) and is valid JSON format, you may need to escape certain characters to follow the [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259). + - name: from + value: "{{ from }}" + description: | + The start date and time of the search. This follows the [ISO 8601](https://www.w3.org/TR/NOTE-datetime) date and time format. + - name: to + value: "{{ to }}" + description: | + The end date and time of the search. This follows the [ISO 8601](https://www.w3.org/TR/NOTE-datetime) date and time format. + - name: timezone + value: "{{ timezone }}" + description: | + The time zone if from/to is not in milliseconds. See this [Wikipedia article](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for a list of time zone codes. + default: UTC + - name: auto_parsing_mode + value: "{{ auto_parsing_mode }}" + description: | + Define the parsing mode to scan the JSON format log messages. Possible values are: + AutoParse - System automatically figures out the fields to parse based on the search query. + Manual - No fields are parsed out automatically. For more information, refer to the [Dynamic Parsing](https://help.sumologic.com/docs/manage/field-extractions/create-field-extraction-rule/). + default: Manual + - name: requires_raw_messages + value: "{{ requires_raw_messages }}" + description: | + On enabling this field, the log messages applicable to the search are returned. Maximum value is 100,000. This is only applicable for aggregate queries. + default: false + - name: max_raw_records + value: "{{ max_raw_records }}" + description: | + Maximum number of raw records to finish the search. + - name: interval_time_type + value: "{{ interval_time_type }}" + description: | + This parameter defines whether you want to run the search by messageTime, receiptTime or searchableTime. + default: messageTime + - name: child_org_ids + value: + - "{{ child_org_ids }}" + description: | + List of child organization ids to run the search on. + - name: include_all_child_orgs + value: {{ include_all_child_orgs }} + description: | + When true, automatically resolves all child orgs of the authenticated parent and fans the search out across all of them. If this is set, it takes precedence over childOrgIds field. Default value is false. + default: false +`} + + + + + +## `DELETE` examples + + + + +Use the search job identifier to delete the search job. + +```sql +DELETE FROM sumologic.search_jobs.search_jobs +WHERE job_id = '{{ job_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/service_accounts/access_keys/index.md b/website/docs/services/service_accounts/access_keys/index.md new file mode 100644 index 0000000..d369248 --- /dev/null +++ b/website/docs/services/service_accounts/access_keys/index.md @@ -0,0 +1,519 @@ +--- +title: access_keys +hide_title: false +hide_table_of_contents: false +keywords: + - access_keys + - service_accounts + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an access_keys resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Access key object that was requested of a service account. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the access key. (example: su0w3Q37CBzHUM)
stringIdentifier of the service account who owns the access key. (example: 0000000006743FDA) (wire: serviceAccountId)
arrayAn array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: 1. Requests with an ORIGIN header but the allowlist is empty. 2. Requests with an ORIGIN header that don't match any entry in the allowlist. (wire: corsHeaders)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the access key. (example: 0000000006743FDD) (wire: createdBy)
booleanIndicates whether the access key is disabled or not.
arrayEffective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. (wire: effectiveScopes)
stringThe name of the access key. (example: collector access key)
string (date-time)Last used timestamp in UTC. <br /> **Note:** Property not in use, it is part of an upcoming feature. (example: 2018-10-16T09:10:00.000Z) (wire: lastUsed)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who modified the access key. (example: 0000000006743FDD) (wire: modifiedBy)
arrayScopes assigned to the key. ### Alerting - adminMonitorsV2 - viewMonitorsV2 - manageMonitorsV2 ### Data Management - manageApps - viewCollectors - manageCollectors - viewConnections - manageConnections - contentAdmin - viewFieldExtractionRules - manageFieldExtractionRules - viewFields - manageFields - manageBudgets - viewLibrary - manageLibrary - viewPartitions - managePartitions - manageS3DataForwarding - viewScheduledViews - manageScheduledViews - manageTokens ### Logs - runLogSearch ### Metrics - runMetricsQuery ### Reliability Management - viewSlos - manageSlos ### Security - manageAccessKeys - viewPersonalAccessKeys - managePersonalAccessKeys ### UserManagement - viewUsersAndRoles - manageUsersAndRoles
+
+ + +A list of all access keys within the organization of a service account. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the access key. (example: su0w3Q37CBzHUM)
stringIdentifier of the service account who owns the access key. (example: 0000000006743FDA) (wire: serviceAccountId)
arrayAn array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: 1. Requests with an ORIGIN header but the allowlist is empty. 2. Requests with an ORIGIN header that don't match any entry in the allowlist. (wire: corsHeaders)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the access key. (example: 0000000006743FDD) (wire: createdBy)
booleanIndicates whether the access key is disabled or not.
arrayEffective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. (wire: effectiveScopes)
stringThe name of the access key. (example: collector access key)
string (date-time)Last used timestamp in UTC. <br /> **Note:** Property not in use, it is part of an upcoming feature. (example: 2018-10-16T09:10:00.000Z) (wire: lastUsed)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who modified the access key. (example: 0000000006743FDD) (wire: modifiedBy)
arrayScopes assigned to the key. ### Alerting - adminMonitorsV2 - viewMonitorsV2 - manageMonitorsV2 ### Data Management - manageApps - viewCollectors - manageCollectors - viewConnections - manageConnections - contentAdmin - viewFieldExtractionRules - manageFieldExtractionRules - viewFields - manageFields - manageBudgets - viewLibrary - manageLibrary - viewPartitions - managePartitions - manageS3DataForwarding - viewScheduledViews - manageScheduledViews - manageTokens ### Logs - runLogSearch ### Metrics - runMetricsQuery ### Reliability Management - viewSlos - manageSlos ### Security - manageAccessKeys - viewPersonalAccessKeys - managePersonalAccessKeys ### UserManagement - viewUsersAndRoles - manageUsersAndRoles
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
service_account_id, access_id, regionGet an access key with the given identifier from the organization of a service account.
service_account_id, regionList all access keys of a service account.
service_account_id, region, labelCreates a new access ID and key pair for a service account.
service_account_id, access_id, region, disabledUpdates the properties of existing accessKey by Id of a service account.
service_account_id, access_id, regionDeletes the access key with the given Id of a service account.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe Id of the access key to delete of a service account. (wire: accessId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringIdentifier of the service account. (wire: serviceAccountId)
+ +## `SELECT` examples + + + + +Get an access key with the given identifier from the organization of a service account. + +```sql +SELECT +id, +service_account_id, +cors_headers, +created_at, +created_by, +disabled, +effective_scopes, +label, +last_used, +modified_at, +modified_by, +scopes +FROM sumologic.service_accounts.access_keys +WHERE service_account_id = '{{ service_account_id }}' -- required +AND access_id = '{{ access_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +List all access keys of a service account. + +```sql +SELECT +id, +service_account_id, +cors_headers, +created_at, +created_by, +disabled, +effective_scopes, +label, +last_used, +modified_at, +modified_by, +scopes +FROM sumologic.service_accounts.access_keys +WHERE service_account_id = '{{ service_account_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples + + + + +Creates a new access ID and key pair for a service account. + +```sql +INSERT INTO sumologic.service_accounts.access_keys ( +label, +cors_headers, +scopes, +service_account_id, +region +) +SELECT +'{{ label }}' /* required */, +'{{ cors_headers }}', +'{{ scopes }}', +'{{ service_account_id }}', +'{{ region }}' +RETURNING +id, +service_account_id, +cors_headers, +created_at, +created_by, +disabled, +effective_scopes, +key, +label, +last_used, +modified_at, +modified_by, +scopes +; +``` + + + +{`# Description fields are for documentation purposes +- name: access_keys + props: + - name: service_account_id + value: "{{ service_account_id }}" + description: Required parameter for the access_keys resource. + - name: region + value: "{{ region }}" + description: Required parameter for the access_keys resource. + - name: label + value: "{{ label }}" + description: | + A name for the access key to be created. + - name: cors_headers + value: + - "{{ cors_headers }}" + description: | + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request + depends on whether it contains an ORIGIN header and the entries in the allowlist. + Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + - name: scopes + value: + - "{{ scopes }}" + description: | + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + ### Logs + - runLogSearch + ### Metrics + - runMetricsQuery + ### Reliability Management + - viewSlos + - manageSlos + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles +`} + + + + + +## `UPDATE` examples + + + + +Updates the properties of existing accessKey by Id of a service account. + +```sql +UPDATE sumologic.service_accounts.access_keys +SET +disabled = {{ disabled }}, +cors_headers = '{{ cors_headers }}', +scopes = '{{ scopes }}' +WHERE +service_account_id = '{{ service_account_id }}' --required +AND access_id = '{{ access_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND disabled = {{ disabled }} --required +RETURNING +id, +service_account_id, +cors_headers, +created_at, +created_by, +disabled, +effective_scopes, +label, +last_used, +modified_at, +modified_by, +scopes; +``` + + + + +## `DELETE` examples + + + + +Deletes the access key with the given Id of a service account. + +```sql +DELETE FROM sumologic.service_accounts.access_keys +WHERE service_account_id = '{{ service_account_id }}' --required +AND access_id = '{{ access_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/service_accounts/index.md b/website/docs/services/service_accounts/index.md new file mode 100644 index 0000000..aeaf268 --- /dev/null +++ b/website/docs/services/service_accounts/index.md @@ -0,0 +1,33 @@ +--- +title: service_accounts +hide_title: false +hide_table_of_contents: false +keywords: + - service_accounts + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +service_accounts service documentation. + +:::info[Service Summary] + +total resources: __2__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/service_accounts/service_accounts/index.md b/website/docs/services/service_accounts/service_accounts/index.md new file mode 100644 index 0000000..50d8dea --- /dev/null +++ b/website/docs/services/service_accounts/service_accounts/index.md @@ -0,0 +1,431 @@ +--- +title: service_accounts +hide_title: false +hide_table_of_contents: false +keywords: + - service_accounts + - service_accounts + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a service_accounts resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Service account object that was requested. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the service account. (example: 000000000FE20FE2)
stringName of the service account. (example: Service Account)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
string (email)Email address of the service account. (example: johndoe@acme.com)
booleanTrue if the service account is active. (wire: isActive)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
arrayList of roleIds associated with the service account. (wire: roleIds)
+
+ + +A list of service accounts in the organization. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringUnique identifier for the service account. (example: 000000000FE20FE2)
stringName of the service account. (example: Service Account)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringIdentifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy)
string (email)Email address of the service account. (example: johndoe@acme.com)
booleanTrue if the service account is active. (wire: isActive)
string (date-time)Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy)
arrayList of roleIds associated with the service account. (wire: roleIds)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet a service account with the given identifier from the organization.
regionGet a list of all service accounts in the organization.
region, email, name, role_idsCreate a new service account in the organization.
id, regionUpdate an existing service account in the organization.
id, regiontransfer_to, delete_contentDelete a service account with the given identifier from the organization and transfer its content to a user or a service account with the identifier specified in "transferTo".
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the service account to delete.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
booleanWhether to delete content from the deleted service account or not. <br /> **Warning:** If `deleteContent` is set to `true`, all of the content for the service account being deleted is permanently deleted and cannot be recovered. (wire: deleteContent)
stringIdentifier of a user/service account to receive the transfer of content from the deleted service account. <br /> **Note:** If `deleteContent` is not set to `true`, and no user identifier is specified in `transferTo`, content from the deleted service account is transferred to the executing user. (wire: transferTo)
+ +## `SELECT` examples + + + + +Get a service account with the given identifier from the organization. + +```sql +SELECT +id, +name, +created_at, +created_by, +email, +is_active, +modified_at, +modified_by, +role_ids +FROM sumologic.service_accounts.service_accounts +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Get a list of all service accounts in the organization. + +```sql +SELECT +id, +name, +created_at, +created_by, +email, +is_active, +modified_at, +modified_by, +role_ids +FROM sumologic.service_accounts.service_accounts +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples + + + + +Create a new service account in the organization. + +```sql +INSERT INTO sumologic.service_accounts.service_accounts ( +name, +email, +role_ids, +region +) +SELECT +'{{ name }}' /* required */, +'{{ email }}' /* required */, +'{{ role_ids }}' /* required */, +'{{ region }}' +RETURNING +id, +name, +created_at, +created_by, +email, +is_active, +modified_at, +modified_by, +role_ids +; +``` + + + +{`# Description fields are for documentation purposes +- name: service_accounts + props: + - name: region + value: "{{ region }}" + description: Required parameter for the service_accounts resource. + - name: name + value: "{{ name }}" + description: | + Name of the service account. + - name: email + value: "{{ email }}" + description: | + Email address of the service account. + - name: role_ids + value: + - "{{ role_ids }}" + description: | + List of roleIds associated with the service account. +`} + + + + + +## `UPDATE` examples + + + + +Update an existing service account in the organization. + +```sql +UPDATE sumologic.service_accounts.service_accounts +SET +name = '{{ name }}', +is_active = {{ is_active }}, +role_ids = '{{ role_ids }}', +email = '{{ email }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +RETURNING +id, +name, +created_at, +created_by, +email, +is_active, +modified_at, +modified_by, +role_ids; +``` + + + + +## `DELETE` examples + + + + +Delete a service account with the given identifier from the organization and transfer its content to a user or a service account with the identifier specified in "transferTo". + +```sql +DELETE FROM sumologic.service_accounts.service_accounts +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND transfer_to = '{{ transfer_to }}' +AND delete_content = '{{ delete_content }}' +; +``` + + diff --git a/website/docs/services/service_allowlist/addresses/index.md b/website/docs/services/service_allowlist/addresses/index.md index 9e98b8b..40469c6 100644 --- a/website/docs/services/service_allowlist/addresses/index.md +++ b/website/docs/services/service_allowlist/addresses/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists an addresses resource. ## Overview - +
Nameaddresses
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists an addresses resource. The following fields are returned by `SELECT` queries: - + List of all allowlisted CIDR notations and/or IP addresses for the organization. @@ -53,7 +54,7 @@ List of all allowlisted CIDR notations and/or IP addresses for the organization. string - The string representation of the CIDR notation or IP address. (pattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))?$, example: 192.35.24.1, x-pattern-message: Invalid CIDR/IP) + The string representation of the CIDR notation or IP address. (pattern: <code>^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))?$</code>, example: 192.35.24.1, x-pattern-message: Invalid CIDR/IP) @@ -81,12 +82,26 @@ The following methods are available for this resource: - + region Get a list of all allowlisted CIDR notations and/or IP addresses for the organization. + + + + region, data + + Add CIDR notations and/or IP addresses to the allowlist of the organization if not already there. When service allowlisting functionality is enabled, CIDRs/IP addresses that are allowlisted will have access to Sumo Logic and/or content sharing. + + + + + region, data + + Remove allowlisted CIDR notations and/or IP addresses from the organization. Removed CIDRs/IPs will immediately lose access to Sumo Logic and content sharing. + @@ -106,7 +121,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -114,12 +129,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a list of all allowlisted CIDR notations and/or IP addresses for the organization. @@ -128,7 +143,49 @@ SELECT cidr, description FROM sumologic.service_allowlist.addresses -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Add CIDR notations and/or IP addresses to the allowlist of the organization if not already there. When service allowlisting functionality is enabled, CIDRs/IP addresses that are allowlisted will have access to Sumo Logic and/or content sharing. + +```sql +EXEC sumologic.service_allowlist.addresses.add +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"data": "{{ data }}" +}' +; +``` + + + +Remove allowlisted CIDR notations and/or IP addresses from the organization. Removed CIDRs/IPs will immediately lose access to Sumo Logic and content sharing. + +```sql +EXEC sumologic.service_allowlist.addresses.remove +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"data": "{{ data }}" +}' ; ``` diff --git a/website/docs/services/service_allowlist/addresses_add/index.md b/website/docs/services/service_allowlist/addresses_add/index.md deleted file mode 100644 index bdfad93..0000000 --- a/website/docs/services/service_allowlist/addresses_add/index.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: addresses_add -hide_title: false -hide_table_of_contents: false -keywords: - - addresses_add - - service_allowlist - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an addresses_add resource. - -## Overview - - - - -
Nameaddresses_add
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
region, data__dataAdd CIDR notations and/or IP addresses to the allowlist of the organization if not already there. When service allowlisting functionality is enabled, CIDRs/IP addresses that are allowlisted will have access to Sumo Logic and/or content sharing.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## `INSERT` examples - - - - -Add CIDR notations and/or IP addresses to the allowlist of the organization if not already there. When service allowlisting functionality is enabled, CIDRs/IP addresses that are allowlisted will have access to Sumo Logic and/or content sharing. - -```sql -INSERT INTO sumologic.service_allowlist.addresses_add ( -data__data, -region -) -SELECT -'{{ data }}' /* required */, -'{{ region }}' -RETURNING -data -; -``` - - - -```yaml -# Description fields are for documentation purposes -- name: addresses_add - props: - - name: region - value: string - description: Required parameter for the addresses_add resource. - - name: data - value: array - description: | - An array of CIDR notations and/or IP addresses. -``` - - diff --git a/website/docs/services/service_allowlist/addresses_remove/index.md b/website/docs/services/service_allowlist/addresses_remove/index.md deleted file mode 100644 index b864542..0000000 --- a/website/docs/services/service_allowlist/addresses_remove/index.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: addresses_remove -hide_title: false -hide_table_of_contents: false -keywords: - - addresses_remove - - service_allowlist - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an addresses_remove resource. - -## Overview - - - - -
Nameaddresses_remove
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
region, dataRemove allowlisted CIDR notations and/or IP addresses from the organization. Removed CIDRs/IPs will immediately lose access to Sumo Logic and content sharing.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Remove allowlisted CIDR notations and/or IP addresses from the organization. Removed CIDRs/IPs will immediately lose access to Sumo Logic and content sharing. - -```sql -EXEC sumologic.service_allowlist.addresses_remove.deleteAllowlistedCidrs -@region='{{ region }}' --required -@@json= -'{ -"data": "{{ data }}" -}' -; -``` - - diff --git a/website/docs/services/service_allowlist/disable/index.md b/website/docs/services/service_allowlist/disable/index.md deleted file mode 100644 index 9f1b365..0000000 --- a/website/docs/services/service_allowlist/disable/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: disable -hide_title: false -hide_table_of_contents: false -keywords: - - disable - - service_allowlist - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a disable resource. - -## Overview - - - - -
Namedisable
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
allowlistType, regionDisable service allowlisting functionality for login/API authentication or content sharing for the organization.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe type of allowlisting to be disabled. It can be one of: `Login`, `Content`, or `Both`.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Disable service allowlisting functionality for login/API authentication or content sharing for the organization. - -```sql -EXEC sumologic.service_allowlist.disable.disableAllowlisting -@allowlistType='{{ allowlistType }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/service_allowlist/enable/index.md b/website/docs/services/service_allowlist/enable/index.md deleted file mode 100644 index 6246af5..0000000 --- a/website/docs/services/service_allowlist/enable/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: enable -hide_title: false -hide_table_of_contents: false -keywords: - - enable - - service_allowlist - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an enable resource. - -## Overview - - - - -
Nameenable
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
allowlistType, regionEnable service allowlisting functionality for the organization. The service allowlisting can be for 1. Login: If enabled, access to Sumo Logic is granted only to CIDRs/IP addresses that are allowlisted. 2. Content: If enabled, dashboards can be shared with users connecting from CIDRs/IP addresses that are allowlisted without logging in.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe type of allowlisting to be enabled. It can be one of: `Login`, `Content`, or `Both`.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Enable service allowlisting functionality for the organization. The service allowlisting can be for 1. Login: If enabled, access to Sumo Logic is granted only to CIDRs/IP addresses that are allowlisted. 2. Content: If enabled, dashboards can be shared with users connecting from CIDRs/IP addresses that are allowlisted without logging in. - -```sql -EXEC sumologic.service_allowlist.enable.enableAllowlisting -@allowlistType='{{ allowlistType }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/service_allowlist/index.md b/website/docs/services/service_allowlist/index.md index 2d13a94..47a5619 100644 --- a/website/docs/services/service_allowlist/index.md +++ b/website/docs/services/service_allowlist/index.md @@ -18,20 +18,16 @@ service_allowlist service documentation. :::info[Service Summary] -total resources: __6__ +total resources: __2__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/service_allowlist/status/index.md b/website/docs/services/service_allowlist/status/index.md index feaab4e..b4b1175 100644 --- a/website/docs/services/service_allowlist/status/index.md +++ b/website/docs/services/service_allowlist/status/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a status resource. ## Overview - +
Namestatus
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a status resource. The following fields are returned by `SELECT` queries: - + The status of service allowlisting for Content and Login. @@ -51,14 +52,14 @@ The status of service allowlisting for Content and Login. - + boolean - Whether service allowlisting is enabled for Content. + Whether service allowlisting is enabled for Content. (wire: contentEnabled) - + boolean - Whether service allowlisting is enabled for Login. + Whether service allowlisting is enabled for Login. (wire: loginEnabled) @@ -81,12 +82,26 @@ The following methods are available for this resource: - + region Get the status of the service allowlisting functionality for login/API authentication or content sharing for the organization. + + + + allowlistType, region + + Enable service allowlisting functionality for the organization. The service allowlisting can be for 1. Login: If enabled, access to Sumo Logic is granted only to CIDRs/IP addresses that are allowlisted. 2. Content: If enabled, dashboards can be shared with users connecting from CIDRs/IP addresses that are allowlisted without logging in. + + + + + allowlistType, region + + Disable service allowlisting functionality for login/API authentication or content sharing for the organization. + @@ -103,10 +118,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# + + + string + The type of allowlisting to be disabled. It can be one of: `Login`, `Content`, or `Both`. + string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -114,21 +134,57 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the status of the service allowlisting functionality for login/API authentication or content sharing for the organization. ```sql SELECT -contentEnabled, -loginEnabled +content_enabled, +login_enabled FROM sumologic.service_allowlist.status -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Enable service allowlisting functionality for the organization. The service allowlisting can be for 1. Login: If enabled, access to Sumo Logic is granted only to CIDRs/IP addresses that are allowlisted. 2. Content: If enabled, dashboards can be shared with users connecting from CIDRs/IP addresses that are allowlisted without logging in. + +```sql +EXEC sumologic.service_allowlist.status.enable +@allowlistType='{{ allowlistType }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Disable service allowlisting functionality for login/API authentication or content sharing for the organization. + +```sql +EXEC sumologic.service_allowlist.status.disable +@allowlistType='{{ allowlistType }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/slos/copy/index.md b/website/docs/services/slos/copy/index.md deleted file mode 100644 index 31e5e16..0000000 --- a/website/docs/services/slos/copy/index.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: copy -hide_title: false -hide_table_of_contents: false -keywords: - - copy - - slos - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a copy resource. - -## Overview - - - - -
Namecopy
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, region, parentIdCopy a slo or folder in the slos library.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the slo or folder to copy.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Copy a slo or folder in the slos library. - -```sql -EXEC sumologic.slos.copy.slosCopy -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"parentId": "{{ parentId }}", -"name": "{{ name }}", -"description": "{{ description }}" -}' -; -``` - - diff --git a/website/docs/services/slos/export/index.md b/website/docs/services/slos/export/index.md deleted file mode 100644 index 35e0772..0000000 --- a/website/docs/services/slos/export/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: export -hide_title: false -hide_table_of_contents: false -keywords: - - export - - slos - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an export resource. - -## Overview - - - - -
Nameexport
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionExport a slo or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the slo or folder to export.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Export a slo or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root. - -```sql -EXEC sumologic.slos.export.slosExportItem -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/slos/import/index.md b/website/docs/services/slos/import/index.md deleted file mode 100644 index b384a96..0000000 --- a/website/docs/services/slos/import/index.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: import -hide_title: false -hide_table_of_contents: false -keywords: - - import - - slos - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an import resource. - -## Overview - - - - -
Nameimport
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
parentId, region, name, typeImport a slo or folder.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the parent folder in which to import the slo or folder.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Import a slo or folder. - -```sql -EXEC sumologic.slos.import.slosImportItem -@parentId='{{ parentId }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"name": "{{ name }}", -"description": "{{ description }}", -"type": "{{ type }}" -}' -; -``` - - diff --git a/website/docs/services/slos/index.md b/website/docs/services/slos/index.md index eec86ef..a293d36 100644 --- a/website/docs/services/slos/index.md +++ b/website/docs/services/slos/index.md @@ -18,23 +18,18 @@ slos service documentation. :::info[Service Summary] -total resources: __10__ +total resources: __5__ ::: ## Resources
diff --git a/website/docs/services/slos/move/index.md b/website/docs/services/slos/move/index.md deleted file mode 100644 index 465a7fa..0000000 --- a/website/docs/services/slos/move/index.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: move -hide_title: false -hide_table_of_contents: false -keywords: - - move - - slos - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a move resource. - -## Overview - - - - -
Namemove
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, parentId, regionMove a slo or folder to a different location in the slos library.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the slo or folder to move.
stringIdentifier of the parent folder to move the slo or folder to.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Move a slo or folder to a different location in the slos library. - -```sql -EXEC sumologic.slos.move.slosMove -@id='{{ id }}' --required, -@parentId='{{ parentId }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/slos/path/index.md b/website/docs/services/slos/paths/index.md similarity index 59% rename from website/docs/services/slos/path/index.md rename to website/docs/services/slos/paths/index.md index 6185fb2..8e8d4cc 100644 --- a/website/docs/services/slos/path/index.md +++ b/website/docs/services/slos/paths/index.md @@ -1,9 +1,9 @@ --- -title: path +title: paths hide_title: false hide_table_of_contents: false keywords: - - path + - paths - slos - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a path resource. +Creates, updates, deletes, gets or lists a paths resource. ## Overview - + - +
Namepath
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a path resource. The following fields are returned by `SELECT` queries: - + Full path of the slo or folder. @@ -56,9 +57,9 @@ Full path of the slo or folder. String representation of the path. - + array - Elements of the path. + Elements of the path. (wire: pathItems) @@ -81,19 +82,12 @@ The following methods are available for this resource: - + id, region Get the full path of the slo or folder in the slos library. - - - - path, region - - Read a slo or folder by its path in the slos library structure. - @@ -115,15 +109,10 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string Identifier of the slo or folder. - - - string - The path of the slo or folder. - string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -131,44 +120,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the full path of the slo or folder in the slos library. ```sql SELECT path, -pathItems -FROM sumologic.slos.path +path_items +FROM sumologic.slos.paths WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required -; -``` - - - - -## Lifecycle Methods - - - - -Read a slo or folder by its path in the slos library structure. - -```sql -EXEC sumologic.slos.path.slosGetByPath -@path='{{ path }}' --required, -@region='{{ region }}' --required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/slos/root/index.md b/website/docs/services/slos/root/index.md index be51516..383c4ca 100644 --- a/website/docs/services/slos/root/index.md +++ b/website/docs/services/slos/root/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a root resource. ## Overview - +
Nameroot
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a root resource. The following fields are returned by `SELECT` queries: - + Root folder of the slos library. @@ -60,25 +61,30 @@ Root folder of the slos library. string Identifier of the slo or folder. + + + string + Identifier of the parent folder. (wire: parentId) + array Children of the folder. NOTE: Permissions field will not be filled (empty list) for children. - + string - Type of the content. Valid values: 1) Slo 2) Folder + Type of the content. Valid values: 1) Slo 2) Folder (wire: contentType) - + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt) - + string - Identifier of the user who created the resource. + Identifier of the user who created the resource. (wire: createdBy) @@ -86,29 +92,24 @@ Root folder of the slos library. Description of the slo or folder. - + boolean - Immutable objects are "READ-ONLY". + Immutable objects are "READ-ONLY". (wire: isMutable) - + boolean - System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. (wire: isSystem) - + string (date-time) - Last modification timestamp in UTC. - - - - string - Identifier of the user who last modified the resource. + Last modification timestamp in UTC. (wire: modifiedAt) - + string - Identifier of the parent folder. + Identifier of the user who last modified the resource. (wire: modifiedBy) @@ -146,7 +147,7 @@ The following methods are available for this resource: - + region @@ -171,7 +172,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -179,12 +180,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the root folder in the slos library. @@ -192,21 +193,21 @@ Get the root folder in the slos library. SELECT id, name, +parent_id, children, -contentType, -createdAt, -createdBy, +content_type, +created_at, +created_by, description, -isMutable, -isSystem, -modifiedAt, -modifiedBy, -parentId, +is_mutable, +is_system, +modified_at, +modified_by, permissions, type, version FROM sumologic.slos.root -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/slos/search/index.md b/website/docs/services/slos/search/index.md index d34a67f..05ce7a2 100644 --- a/website/docs/services/slos/search/index.md +++ b/website/docs/services/slos/search/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a search resource. ## Overview - +
Namesearch
Name
TypeResource
Id
@@ -31,8 +32,37 @@ Creates, updates, deletes, gets or lists a search resource. The following fields are returned by `SELECT` queries: -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
object
stringPath of the slo or folder. (example: /Slos/SampleFolder/TestSlo)
+
+
## Methods @@ -50,10 +80,10 @@ The following methods are available for this resource: - - + + query, region - limit, offset + limit, offset, skip_children Search for a slo or folder in the slos library structure. @@ -80,7 +110,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -92,27 +122,36 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# integer (int32) The position or row from where to start the search operation. (example: 5) + + + boolean + a boolean parameter to control skipping fetching children of requested folder(s) (wire: skipChildren) + -## Lifecycle Methods +## `SELECT` examples - + Search for a slo or folder in the slos library structure. ```sql -EXEC sumologic.slos.search.slosSearch -@query='{{ query }}' --required, -@region='{{ region }}' --required, -@limit='{{ limit }}', -@offset='{{ offset }}' +SELECT +item, +path +FROM sumologic.slos.search +WHERE query = '{{ query }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND offset = '{{ offset }}' +AND skip_children = '{{ skip_children }}' ; ``` diff --git a/website/docs/services/slos/sli/index.md b/website/docs/services/slos/sli/index.md deleted file mode 100644 index 6a08023..0000000 --- a/website/docs/services/slos/sli/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: sli -hide_title: false -hide_table_of_contents: false -keywords: - - sli - - slos - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a sli resource. - -## Overview - - - - -
Namesli
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
ids, regionBulk fetch SLI values, error budget remaining and SLI computation status for the current compliance period.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
arrayThe identifiers of the SLOs. (example: 000000000000000A,000000000000000B)
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Bulk fetch SLI values, error budget remaining and SLI computation status for the current compliance period. - -```sql -EXEC sumologic.slos.sli.sli -@ids='{{ ids }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/slos/slos/index.md b/website/docs/services/slos/slos/index.md index d98a501..d76108a 100644 --- a/website/docs/services/slos/slos/index.md +++ b/website/docs/services/slos/slos/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a slos resource. ## Overview - +
Nameslos
Name
TypeResource
Id
@@ -31,8 +32,186 @@ Creates, updates, deletes, gets or lists a slos resource. The following fields are returned by `SELECT` queries: -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +Requested slo or folder. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the slo or folder.
stringIdentifier of the slo or folder.
stringIdentifier of the parent folder. (wire: parentId)
stringType of the content. Valid values: 1) Slo 2) Folder (wire: contentType)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt)
stringIdentifier of the user who created the resource. (wire: createdBy)
stringDescription of the slo or folder.
booleanImmutable objects are "READ-ONLY". (wire: isMutable)
booleanSystem objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. (wire: isSystem)
string (date-time)Last modification timestamp in UTC. (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (wire: modifiedBy)
arrayAggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint.
stringType of the object model.
integer (int64)Version of the slo or folder.
+
+ + +Requested slo or folder. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the slo or folder.
stringIdentifier of the slo or folder.
stringIdentifier of the parent folder. (wire: parentId)
stringType of the content. Valid values: 1) Slo 2) Folder (wire: contentType)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt)
stringIdentifier of the user who created the resource. (wire: createdBy)
stringDescription of the slo or folder.
booleanImmutable objects are "READ-ONLY". (wire: isMutable)
booleanSystem objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. (wire: isSystem)
string (date-time)Last modification timestamp in UTC. (wire: modifiedAt)
stringIdentifier of the user who last modified the resource. (wire: modifiedBy)
arrayAggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint.
stringType of the object model.
integer (int64)Version of the slo or folder.
+
+
## Methods @@ -50,46 +229,88 @@ The following methods are available for this resource: - + + + id, region + + Get a slo or folder from the slos library. + + + + + path, region + + Read a slo or folder by its path in the slos library structure. + + + + + parent_id, region, name, type + + Create a slo or folder in the slos library. + + + + + id, region, name, type, version + + Update a slo or folder in the slos library. + + + + + id, region + + Delete a slo or folder from the slos library. + + + ids, region - Bulk read a slo or folder by the given identifiers from the slos library. + Bulk fetch SLI values, error budget remaining and SLI computation status for the current compliance period. - + - parentId, region, name, type - - Create a slo or folder in the slos library. + ids, region + skipChildren + Bulk read a slo or folder by the given identifiers from the slos library. - + ids, region Bulk delete a slo or folder by the given identifiers in the slos library. - + - id, region + id, parentId, region - Get a slo or folder from the slos library. + Move a slo or folder to a different location in the slos library. - + - id, region, name, type, version + id, region, parentId - Update a slo or folder in the slos library. + Copy a slo or folder in the slos library. - + id, region - Delete a slo or folder from the slos library. + Export a slo or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root. + + + + + parentId, region, name, type + + Import a slo or folder. @@ -110,7 +331,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the slo or folder to delete. + Identifier of the slo or folder to export. @@ -120,105 +341,343 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the parent folder in which to create the slo or folder. + Identifier of the parent folder in which to import the slo or folder. + + + + string + Identifier of the parent folder in which to create the slo or folder. (wire: parentId) + + + + string + The path of the slo or folder. string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) + + + + boolean + a boolean parameter to control skipping fetching children of requested folder(s) +## `SELECT` examples + + + + +Get a slo or folder from the slos library. + +```sql +SELECT +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_mutable, +is_system, +modified_at, +modified_by, +permissions, +type, +version +FROM sumologic.slos.slos +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Read a slo or folder by its path in the slos library structure. + +```sql +SELECT +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_mutable, +is_system, +modified_at, +modified_by, +permissions, +type, +version +FROM sumologic.slos.slos +WHERE path = '{{ path }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples + + + + +Create a slo or folder in the slos library. + +```sql +INSERT INTO sumologic.slos.slos ( +name, +description, +type, +parent_id, +region +) +SELECT +'{{ name }}' /* required */, +'{{ description }}', +'{{ type }}' /* required */, +'{{ parent_id }}', +'{{ region }}' +RETURNING +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_mutable, +is_system, +modified_at, +modified_by, +permissions, +type, +version +; +``` + + + +{`# Description fields are for documentation purposes +- name: slos + props: + - name: parent_id + value: "{{ parent_id }}" + description: Required parameter for the slos resource. + - name: region + value: "{{ region }}" + description: Required parameter for the slos resource. + - name: name + value: "{{ name }}" + description: | + Name of the slo or folder. + - name: description + value: "{{ description }}" + description: | + Description of the slo or folder. + default: + - name: type + value: "{{ type }}" + description: | + Type of the object model. Valid values: + 1) SlosLibrarySlo + 2) SlosLibraryFolder +`} + + + + + +## `UPDATE` examples + + + + +Update a slo or folder in the slos library. + +```sql +UPDATE sumologic.slos.slos +SET +name = '{{ name }}', +description = '{{ description }}', +version = {{ version }}, +type = '{{ type }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND name = '{{ name }}' --required +AND type = '{{ type }}' --required +AND version = '{{ version }}' --required +RETURNING +id, +name, +parent_id, +content_type, +created_at, +created_by, +description, +is_mutable, +is_system, +modified_at, +modified_by, +permissions, +type, +version; +``` + + + + +## `DELETE` examples + + + + +Delete a slo or folder from the slos library. + +```sql +DELETE FROM sumologic.slos.slos +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + ## Lifecycle Methods +EXEC variables use wire (API) names. + - + -Bulk read a slo or folder by the given identifiers from the slos library. +Bulk fetch SLI values, error budget remaining and SLI computation status for the current compliance period. ```sql -EXEC sumologic.slos.slos.slosReadByIds +EXEC sumologic.slos.slos.get_sli @ids='{{ ids }}' --required, -@region='{{ region }}' --required +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + -Create a slo or folder in the slos library. +Bulk read a slo or folder by the given identifiers from the slos library. ```sql -EXEC sumologic.slos.slos.slosCreate -@parentId='{{ parentId }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"name": "{{ name }}", -"description": "{{ description }}", -"type": "{{ type }}" -}' +EXEC sumologic.slos.slos.read_by_ids +@ids='{{ ids }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set, +@skipChildren={{ skipChildren }} ; ``` - + Bulk delete a slo or folder by the given identifiers in the slos library. ```sql -EXEC sumologic.slos.slos.slosDeleteByIds +EXEC sumologic.slos.slos.delete_by_ids @ids='{{ ids }}' --required, -@region='{{ region }}' --required +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + -Get a slo or folder from the slos library. +Move a slo or folder to a different location in the slos library. ```sql -EXEC sumologic.slos.slos.slosReadById +EXEC sumologic.slos.slos.move @id='{{ id }}' --required, -@region='{{ region }}' --required +@parentId='{{ parentId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + -Update a slo or folder in the slos library. +Copy a slo or folder in the slos library. ```sql -EXEC sumologic.slos.slos.slosUpdateById +EXEC sumologic.slos.slos.copy @id='{{ id }}' --required, -@region='{{ region }}' --required +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set @@json= '{ +"parentId": "{{ parentId }}", "name": "{{ name }}", -"description": "{{ description }}", -"version": {{ version }}, -"type": "{{ type }}" +"description": "{{ description }}" }' ; ``` - + -Delete a slo or folder from the slos library. +Export a slo or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root. ```sql -EXEC sumologic.slos.slos.slosDeleteById +EXEC sumologic.slos.slos.export @id='{{ id }}' --required, -@region='{{ region }}' --required +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Import a slo or folder. + +```sql +EXEC sumologic.slos.slos.import +@parentId='{{ parentId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"name": "{{ name }}", +"description": "{{ description }}", +"type": "{{ type }}" +}' ; ``` diff --git a/website/docs/services/slos/usage_info/index.md b/website/docs/services/slos/usage_info/index.md index b018c8a..a19646c 100644 --- a/website/docs/services/slos/usage_info/index.md +++ b/website/docs/services/slos/usage_info/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a usage_info resource. ## Overview - +
Nameusage_info
Name
TypeResource
Id
@@ -32,14 +33,14 @@ Creates, updates, deletes, gets or lists a usage_info resource. The following fields are returned by `SELECT` queries: - + -SLO Usage Info has been retrieved successfully. +The usage info of SLOs. @@ -56,9 +57,9 @@ SLO Usage Info has been retrieved successfully. - + - + @@ -86,7 +87,7 @@ The following methods are available for this resource: - + @@ -111,7 +112,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - +
The limit of active Logs/Metrics/Monitors SLOs.
stringThe type of SLO usage info (Logs/Metrics/Monitor based). (pattern: ^(Logs|Metrics|Monitors)$, example: Logs, x-pattern-message: Either `Logs` or `Metrics` or `Monitors`.)The type of SLO usage info (Logs/Metrics/Monitor based). (pattern: <code>^(Logs|Metrics|Monitors)$</code>, example: Logs, x-pattern-message: Either `Logs` or `Metrics` or `Monitors`.) (wire: sliType)
region
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
@@ -119,22 +120,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the current number and the allowed number of log and metrics SLOs. ```sql SELECT limit, -sliType, +sli_type, usage FROM sumologic.slos.usage_info -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/source_templates/index.md b/website/docs/services/source_templates/index.md new file mode 100644 index 0000000..307221e --- /dev/null +++ b/website/docs/services/source_templates/index.md @@ -0,0 +1,33 @@ +--- +title: source_templates +hide_title: false +hide_table_of_contents: false +keywords: + - source_templates + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +source_templates service documentation. + +:::info[Service Summary] + +total resources: __1__ + +::: + +## Resources +
+ +
+ +
+
\ No newline at end of file diff --git a/website/docs/services/source_templates/source_templates/index.md b/website/docs/services/source_templates/source_templates/index.md new file mode 100644 index 0000000..8637eaf --- /dev/null +++ b/website/docs/services/source_templates/source_templates/index.md @@ -0,0 +1,591 @@ +--- +title: source_templates +hide_title: false +hide_table_of_contents: false +keywords: + - source_templates + - source_templates + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a source_templates resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Get source template response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringid of source template. (example: 0000000003343FDD)
stringconfiguration of source template (example: apache.yaml.example)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringId of the user who created source template (example: 0000000006743FDD) (wire: createdBy)
objectinputJson of source template (wire: inputJson)
booleanA boolean parameter to get if the source template is enabled. (wire: isEnabled)
string (date-time)Modification timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringId of the user who last modified the source template (example: 0000000006243FDD) (wire: modifiedBy)
objectschema reference for source template. (wire: schemaRef)
objectAgent selector conditions
stringStatus of Source template (enable, disable)
integer (int32)count of total collector linked with this source template. (wire: totalCollectorLinked)
+
+ + +A list of source templates. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringid of source template. (example: 0000000003343FDD)
stringconfiguration of source template (example: apache.yaml.example)
string (date-time)Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt)
stringId of the user who created source template (example: 0000000006743FDD) (wire: createdBy)
objectinputJson of source template (wire: inputJson)
booleanA boolean parameter to get if the source template is enabled. (wire: isEnabled)
string (date-time)Modification timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt)
stringId of the user who last modified the source template (example: 0000000006243FDD) (wire: modifiedBy)
objectschema reference for source template. (wire: schemaRef)
objectAgent selector conditions
stringStatus of Source template (enable, disable)
integer (int32)count of total collector linked with this source template. (wire: totalCollectorLinked)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionGet a source template with the given identifier.
regionshow_disabled, name, fleet_idsGet a list of all source templates.
region, input_json, schema_refdry_runCreate source template.
id, region, input_json, schema_refUpdate a source template with the given identifier.
id, regionDelete a source template with the given identifier.
id, region, statusUpdate the status (enable or disable) of a source template.
id, region, inputJson, schemaRefUpgrade a source template with the given identifier.
region, collectorIdGiven the set of tags user wants to update, display the list of source templates that will be linked/unlinked to the otCollector.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the source template to upgrade.
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
booleanWhether this creation request is a dry run. With dryRun set to true, the source template will not be created but the request will be validated. (wire: dryRun)
arrayComma-separated list of fleet IDs (hex-encoded). (wire: fleetIds)
stringOnly return source template matching the given name (exact match).
booleanA boolean parameter to get all, including disabled source templates. (wire: showDisabled)
+ +## `SELECT` examples + + + + +Get a source template with the given identifier. + +```sql +SELECT +id, +config, +created_at, +created_by, +input_json, +is_enabled, +modified_at, +modified_by, +schema_ref, +selector, +status, +total_collector_linked +FROM sumologic.source_templates.source_templates +WHERE id = '{{ id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Get a list of all source templates. + +```sql +SELECT +id, +config, +created_at, +created_by, +input_json, +is_enabled, +modified_at, +modified_by, +schema_ref, +selector, +status, +total_collector_linked +FROM sumologic.source_templates.source_templates +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND show_disabled = '{{ show_disabled }}' +AND name = '{{ name }}' +AND fleet_ids = '{{ fleet_ids }}' +; +``` + + + + +## `INSERT` examples + + + + +Create source template. + +```sql +INSERT INTO sumologic.source_templates.source_templates ( +schema_ref, +input_json, +selector, +is_enabled, +region, +dry_run +) +SELECT +'{{ schema_ref }}' /* required */, +'{{ input_json }}' /* required */, +'{{ selector }}', +{{ is_enabled }}, +'{{ region }}', +'{{ dry_run }}' +RETURNING +id, +config, +created_at, +created_by, +input_json, +is_enabled, +modified_at, +modified_by, +schema_ref, +selector, +status, +total_collector_linked +; +``` + + + +{`# Description fields are for documentation purposes +- name: source_templates + props: + - name: region + value: "{{ region }}" + description: Required parameter for the source_templates resource. + - name: schema_ref + description: | + schema reference for source template. + value: + type: "{{ type }}" + - name: input_json + description: | + inputJson of source template + value: + name: "{{ name }}" + receivers: "{{ receivers }}" + description: "{{ description }}" + processors: "{{ processors }}" + - name: selector + description: | + Agent selector conditions + value: + tags: + - "{{ tags }}" + names: + - "{{ names }}" + fleetIds: + - "{{ fleetIds }}" + - name: is_enabled + value: {{ is_enabled }} + description: | + Indicates whether the source template is enabled - **Create operation:** Defaults to \`true\` (the template is enabled when created). - **Update operation:** If omitted, the existing status is preserved. + - name: dry_run + value: {{ dry_run }} + description: Whether this creation request is a dry run. With dryRun set to true, the source template will not be created but the request will be validated. + description: Whether this creation request is a dry run. With dryRun set to true, the source template will not be created but the request will be validated. +`} + + + + + +## `UPDATE` examples + + + + +Update a source template with the given identifier. + +```sql +UPDATE sumologic.source_templates.source_templates +SET +schema_ref = '{{ schema_ref }}', +input_json = '{{ input_json }}', +selector = '{{ selector }}', +is_enabled = {{ is_enabled }} +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND input_json = '{{ input_json }}' --required +AND schema_ref = '{{ schema_ref }}' --required +RETURNING +id, +config, +created_at, +created_by, +input_json, +is_enabled, +modified_at, +modified_by, +schema_ref, +selector, +status, +total_collector_linked; +``` + + + + +## `DELETE` examples + + + + +Delete a source template with the given identifier. + +```sql +DELETE FROM sumologic.source_templates.source_templates +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Update the status (enable or disable) of a source template. + +```sql +EXEC sumologic.source_templates.source_templates.update_status +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"status": "{{ status }}" +}' +; +``` + + + +Upgrade a source template with the given identifier. + +```sql +EXEC sumologic.source_templates.source_templates.upgrade +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"schemaRef": "{{ schemaRef }}", +"inputJson": "{{ inputJson }}" +}' +; +``` + + + +Given the set of tags user wants to update, display the list of source templates that will be linked/unlinked to the otCollector. + +```sql +EXEC sumologic.source_templates.source_templates.get_linked_impact +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"collectorId": "{{ collectorId }}", +"tags": "{{ tags }}", +"updatedName": "{{ updatedName }}" +}' +; +``` + + diff --git a/website/docs/services/threat_intel/data_sources/index.md b/website/docs/services/threat_intel/data_sources/index.md new file mode 100644 index 0000000..f473f36 --- /dev/null +++ b/website/docs/services/threat_intel/data_sources/index.md @@ -0,0 +1,111 @@ +--- +title: data_sources +hide_title: false +hide_table_of_contents: false +keywords: + - data_sources + - threat_intel + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a data_sources resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
data_source_name, regionUpdates source properties
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSource name (wire: dataSourceName)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `UPDATE` examples + + + + +Updates source properties + +```sql +UPDATE sumologic.threat_intel.data_sources +SET +enabled = {{ enabled }}, +description = '{{ description }}' +WHERE +data_source_name = '{{ data_source_name }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set; +``` + + diff --git a/website/docs/services/threat_intel/datastore/index.md b/website/docs/services/threat_intel/datastore/index.md new file mode 100644 index 0000000..8d2ac52 --- /dev/null +++ b/website/docs/services/threat_intel/datastore/index.md @@ -0,0 +1,176 @@ +--- +title: datastore +hide_title: false +hide_table_of_contents: false +keywords: + - datastore + - threat_intel + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a datastore resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Threat intel ingest DB information. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int64)Total DB size in terms of disk bytes (wire: diskSize)
integer (int64)Total number of indicators in the DB (wire: indicatorCount)
integer (int64)Limit number of indicators supported in the DB (wire: indicatorLimit)
arrayA list of sources and their individual DB sizes and indicator counts (wire: sourceStatus)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionGet threat intel indicators DB information, such as storage utilization and indicator counts
regionRemoves the entire database and all indicators associated with this tenant
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get threat intel indicators DB information, such as storage utilization and indicator counts + +```sql +SELECT +disk_size, +indicator_count, +indicator_limit, +source_status +FROM sumologic.threat_intel.datastore +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `DELETE` examples + + + + +Removes the entire database and all indicators associated with this tenant + +```sql +DELETE FROM sumologic.threat_intel.datastore +WHERE region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/threat_intel/index.md b/website/docs/services/threat_intel/index.md new file mode 100644 index 0000000..af2f01d --- /dev/null +++ b/website/docs/services/threat_intel/index.md @@ -0,0 +1,35 @@ +--- +title: threat_intel +hide_title: false +hide_table_of_contents: false +keywords: + - threat_intel + - sumologic + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +threat_intel service documentation. + +:::info[Service Summary] + +total resources: __4__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/threat_intel/indicators/index.md b/website/docs/services/threat_intel/indicators/index.md new file mode 100644 index 0000000..75f0ae9 --- /dev/null +++ b/website/docs/services/threat_intel/indicators/index.md @@ -0,0 +1,154 @@ +--- +title: indicators +hide_title: false +hide_table_of_contents: false +keywords: + - indicators + - threat_intel + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an indicators resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
region, indicatorsUploads a list indicators in a Sumo normalized format.
region, indicators, sourceUploads a list indicators in in a STIX 2.x json format.
region, indicatorIds, sourceRemoves indicators by specifying a list of indicator IDs
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Uploads a list indicators in a Sumo normalized format. + +```sql +EXEC sumologic.threat_intel.indicators.upload_normalized +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"indicators": "{{ indicators }}" +}' +; +``` + + + +Uploads a list indicators in in a STIX 2.x json format. + +```sql +EXEC sumologic.threat_intel.indicators.upload_stix +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"source": "{{ source }}", +"indicators": "{{ indicators }}" +}' +; +``` + + + +Removes indicators by specifying a list of indicator IDs + +```sql +EXEC sumologic.threat_intel.indicators.remove +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"source": "{{ source }}", +"indicatorIds": "{{ indicatorIds }}" +}' +; +``` + + diff --git a/website/docs/services/threat_intel/retention_period/index.md b/website/docs/services/threat_intel/retention_period/index.md new file mode 100644 index 0000000..cd85261 --- /dev/null +++ b/website/docs/services/threat_intel/retention_period/index.md @@ -0,0 +1,163 @@ +--- +title: retention_period +hide_title: false +hide_table_of_contents: false +keywords: + - retention_period + - threat_intel + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a retention_period resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Threat intel indicators store retention period. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int64)Retention period in days. (wire: retentionPeriod)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionGet the threat intel indicators store retention period in terms of days.
region, retention_periodSets the threat intel indicators store retention period in terms of days.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get the threat intel indicators store retention period in terms of days. + +```sql +SELECT +retention_period +FROM sumologic.threat_intel.retention_period +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `UPDATE` examples + + + + +Sets the threat intel indicators store retention period in terms of days. + +```sql +UPDATE sumologic.threat_intel.retention_period +SET +retention_period = {{ retention_period }} +WHERE +region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND retention_period = '{{ retention_period }}' --required +RETURNING +retention_period; +``` + + diff --git a/website/docs/services/tokens/tokens/index.md b/website/docs/services/tokens/tokens/index.md index eee8a89..fc054c2 100644 --- a/website/docs/services/tokens/tokens/index.md +++ b/website/docs/services/tokens/tokens/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a tokens resource. ## Overview - +
Nametokens
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a tokens resource. The following fields are returned by `SELECT` queries: - + Token object that was requested. @@ -62,14 +63,14 @@ Token object that was requested. Name of the token. (example: token-name) - + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt) - + string - Identifier of the user who created the resource. + Identifier of the user who created the resource. (wire: createdBy) @@ -77,24 +78,24 @@ Token object that was requested. Description of the token. (example: token description: for test.) - + string (date-time) - Last modification timestamp in UTC. + Last modification timestamp in UTC. (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. + Identifier of the user who last modified the resource. (wire: modifiedBy) string - Status of the token. Can be `Active`, or `Inactive`. (pattern: ^(Active|Inactive)$, example: Active, x-pattern-message: must be either `Active` or `Inactive`) + Status of the token. Can be `Active`, or `Inactive`. (pattern: <code>^(Active|Inactive)$</code>, example: Active, x-pattern-message: must be either `Active` or `Inactive`) string - Type of the token. Valid values: 1) CollectorRegistrationTokenResponse (pattern: ^(CollectorRegistrationTokenResponse)$, example: CollectorRegistrationTokenResponse, x-pattern-message: must be `CollectorRegistrationTokenResponse`) + Type of the token. Valid values: 1) CollectorRegistrationTokenResponse (pattern: <code>^(CollectorRegistrationTokenResponse)$</code>, example: CollectorRegistrationTokenResponse, x-pattern-message: must be `CollectorRegistrationTokenResponse`) @@ -104,7 +105,7 @@ Token object that was requested. - + A list of tokens. @@ -118,9 +119,54 @@ A list of tokens. - - array - List of tokens. + + string + Identifier of the token. + + + + string + Name of the token. (example: token-name) + + + + string (date-time) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (wire: createdAt) + + + + string + Identifier of the user who created the resource. (wire: createdBy) + + + + string + Description of the token. (example: token description: for test.) + + + + string (date-time) + Last modification timestamp in UTC. (wire: modifiedAt) + + + + string + Identifier of the user who last modified the resource. (wire: modifiedBy) + + + + string + Status of the token. Can be `Active`, or `Inactive`. (pattern: <code>^(Active|Inactive)$</code>, example: Active, x-pattern-message: must be either `Active` or `Inactive`) + + + + string + Type of the token. Valid values: 1) CollectorRegistrationTokenResponse (pattern: <code>^(CollectorRegistrationTokenResponse)$</code>, example: CollectorRegistrationTokenResponse, x-pattern-message: must be `CollectorRegistrationTokenResponse`) + + + + integer (int64) + Version of the token. @@ -143,39 +189,39 @@ The following methods are available for this resource: - + id, region Get a token with the given identifier in the token library. - + region Get a list of all tokens in the token library. - + - region, data__name, data__status, data__type + region, name, status, type Create a token in the token library. - - - id, region + + + id, region, name, status, type, version - Delete a token with the given identifier in the token library. + Update a token with the given identifier in the token library. - - - id, region, name, status, type, version + + + id, region - Update a token with the given identifier in the token library. + Delete a token with the given identifier in the token library. @@ -196,12 +242,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the token to update. + Identifier of the token to delete. string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -209,13 +255,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a token with the given identifier in the token library. @@ -223,29 +269,38 @@ Get a token with the given identifier in the token library. SELECT id, name, -createdAt, -createdBy, +created_at, +created_by, description, -modifiedAt, -modifiedBy, +modified_at, +modified_by, status, type, version FROM sumologic.tokens.tokens WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + Get a list of all tokens in the token library. ```sql SELECT -data +id, +name, +created_at, +created_by, +description, +modified_at, +modified_by, +status, +type, +version FROM sumologic.tokens.tokens -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` @@ -255,22 +310,22 @@ WHERE region = '{{ region }}' -- required ## `INSERT` examples - + Create a token in the token library. ```sql INSERT INTO sumologic.tokens.tokens ( -data__name, -data__description, -data__status, -data__type, +name, +description, +status, +type, region ) SELECT @@ -282,11 +337,11 @@ SELECT RETURNING id, name, -createdAt, -createdBy, +created_at, +created_by, description, -modifiedAt, -modifiedBy, +modified_at, +modified_by, status, type, version @@ -295,80 +350,93 @@ version -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: tokens props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the tokens resource. - name: name - value: string + value: "{{ name }}" description: | Name of the token. - name: description - value: string + value: "{{ description }}" description: | Description of the token. - name: status - value: string + value: "{{ status }}" description: | - Status of the token. Can be `Active`, or `Inactive`. + Status of the token. Can be \`Active\`, or \`Inactive\`. - name: type - value: string + value: "{{ type }}" description: | Type of the token. Valid values: 1) CollectorRegistration -``` +`} + -## `DELETE` examples +## `UPDATE` examples - + -Delete a token with the given identifier in the token library. +Update a token with the given identifier in the token library. ```sql -DELETE FROM sumologic.tokens.tokens -WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required -; +UPDATE sumologic.tokens.tokens +SET +name = '{{ name }}', +description = '{{ description }}', +status = '{{ status }}', +type = '{{ type }}', +version = {{ version }} +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND name = '{{ name }}' --required +AND status = '{{ status }}' --required +AND type = '{{ type }}' --required +AND version = '{{ version }}' --required +RETURNING +id, +name, +created_at, +created_by, +description, +modified_at, +modified_by, +status, +type, +version; ``` -## Lifecycle Methods +## `DELETE` examples - + -Update a token with the given identifier in the token library. +Delete a token with the given identifier in the token library. ```sql -EXEC sumologic.tokens.tokens.updateToken -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"name": "{{ name }}", -"description": "{{ description }}", -"status": "{{ status }}", -"type": "{{ type }}", -"version": {{ version }} -}' +DELETE FROM sumologic.tokens.tokens +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/tracing/critical_path_service_breakdowns/index.md b/website/docs/services/tracing/critical_path_service_breakdowns/index.md new file mode 100644 index 0000000..32fd0e2 --- /dev/null +++ b/website/docs/services/tracing/critical_path_service_breakdowns/index.md @@ -0,0 +1,160 @@ +--- +title: critical_path_service_breakdowns +hide_title: false +hide_table_of_contents: false +keywords: + - critical_path_service_breakdowns + - tracing + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a critical_path_service_breakdowns resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +List of elements representing the critical path service breakdown. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int64)Overall processing time in nanoseconds consumed by the spans belonging to this service in the critical path (a sum of the duration times of the spans' critical path segments).
integer (int64)Number of nanoseconds the longest span segment in the critical path lasted. (wire: longestSegmentDuration)
integer (int32)Number of spans that are part of this service. (wire: numSpans)
stringThe name of the service. (example: user-service)
stringColor hex code assigned to the service. (example: #fa41c6) (wire: serviceColor)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
trace_id, regionGet a critical path breakdown by services of the spans contributing to the critical path of a trace with the given identifier.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringIdentifier of the trace. (wire: traceId)
+ +## `SELECT` examples + + + + +Get a critical path breakdown by services of the spans contributing to the critical path of a trace with the given identifier. + +```sql +SELECT +duration, +longest_segment_duration, +num_spans, +service, +service_color +FROM sumologic.tracing.critical_path_service_breakdowns +WHERE trace_id = '{{ trace_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/tracing/traces_critical_path/index.md b/website/docs/services/tracing/critical_paths/index.md similarity index 58% rename from website/docs/services/tracing/traces_critical_path/index.md rename to website/docs/services/tracing/critical_paths/index.md index 003c21a..8bc2be3 100644 --- a/website/docs/services/tracing/traces_critical_path/index.md +++ b/website/docs/services/tracing/critical_paths/index.md @@ -1,9 +1,9 @@ --- -title: traces_critical_path +title: critical_paths hide_title: false hide_table_of_contents: false keywords: - - traces_critical_path + - critical_paths - tracing - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a traces_critical_path resource. +Creates, updates, deletes, gets or lists a critical_paths resource. ## Overview - + - +
Nametraces_critical_path
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a traces_critical_path res The following fields are returned by `SELECT` queries: - + List of span segments composing the critical path. @@ -51,14 +52,34 @@ List of span segments composing the critical path. - + string - Next continuation token. (example: Mi93V0ZqTTBzaW89) + Span identifier. (example: 00000000000120CB) (wire: spanId) - - array - List of span segments from the critical path. + + integer (int64) + Number of nanoseconds the span segment lasted. + + + + number (double) + The fraction (value between 0.0 and 1.0) from the trace duration time this segment took. + + + + string + The name of the service this span is part of. (example: user-service) + + + + string + Color hex code assigned to the service. (example: #fa41c6) (wire: serviceColor) + + + + integer (int64) + Number of nanoseconds from the span startedAt the segment started. (wire: startOffset) @@ -81,9 +102,9 @@ The following methods are available for this resource: - + - traceId, region + trace_id, region limit, token Get a list of span segments composing the critical path of the trace. A span segment represents the processing time that was consumed within the span itself and does not incorporate the processing time of its children. The critical path is the sequence of span segments that contribute to the total trace duration. An increase of the processing time of any segment from the critical path would result in an increase of the total trace processing time. @@ -106,12 +127,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) - - + + string - Identifier of the trace. + Identifier of the trace. (wire: traceId) @@ -129,22 +150,26 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a list of span segments composing the critical path of the trace. A span segment represents the processing time that was consumed within the span itself and does not incorporate the processing time of its children. The critical path is the sequence of span segments that contribute to the total trace duration. An increase of the processing time of any segment from the critical path would result in an increase of the total trace processing time. ```sql SELECT -next, -segments -FROM sumologic.tracing.traces_critical_path -WHERE traceId = '{{ traceId }}' -- required -AND region = '{{ region }}' -- required +span_id, +duration, +fraction, +service, +service_color, +start_offset +FROM sumologic.tracing.critical_paths +WHERE trace_id = '{{ trace_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' ; diff --git a/website/docs/services/tracing/index.md b/website/docs/services/tracing/index.md index 4f7f599..f4379ba 100644 --- a/website/docs/services/tracing/index.md +++ b/website/docs/services/tracing/index.md @@ -18,37 +18,33 @@ tracing service documentation. :::info[Service Summary] -total resources: __23__ +total resources: __19__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/tracing/metrics/index.md b/website/docs/services/tracing/metrics/index.md index 517390f..41e392e 100644 --- a/website/docs/services/tracing/metrics/index.md +++ b/website/docs/services/tracing/metrics/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a metrics resource. ## Overview - +
Namemetrics
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a metrics resource. The following fields are returned by `SELECT` queries: - + List of available metrics. @@ -51,9 +52,19 @@ List of available metrics. - - array - List of trace metrics. + + string + Short description of the metric. (example: The duration of a trace in nanoseconds.) + + + + string + Trace metric name. In trace queries it can be used in `MetricTracingFilter.metric`. (example: _duration) + + + + string + The type the values of this field will have. Possible values: `DoubleTracingValue`, `IntegerTracingValue`. (example: IntegerTracingValue) @@ -76,7 +87,7 @@ The following methods are available for this resource: - + region @@ -101,7 +112,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -109,20 +120,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a list of available trace metrics that can be used in trace search queries. ```sql SELECT -metrics +description, +metric, +type FROM sumologic.tracing.metrics -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/tracing/service_map/index.md b/website/docs/services/tracing/service_map/index.md index 14aafe4..db81326 100644 --- a/website/docs/services/tracing/service_map/index.md +++ b/website/docs/services/tracing/service_map/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a service_map resource. ## Overview - +
Nameservice_map
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a service_map resource. The following fields are returned by `SELECT` queries: - + List of nodes and list of edges. @@ -81,7 +82,7 @@ The following methods are available for this resource: - + region @@ -106,7 +107,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -114,12 +115,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Run a search request to get a map of services and connections between them. @@ -128,7 +129,7 @@ SELECT edges, nodes FROM sumologic.tracing.service_map -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/tracing/traces_spans_billing_info/index.md b/website/docs/services/tracing/span_billing_info/index.md similarity index 53% rename from website/docs/services/tracing/traces_spans_billing_info/index.md rename to website/docs/services/tracing/span_billing_info/index.md index feac3d2..ad9fc0c 100644 --- a/website/docs/services/tracing/traces_spans_billing_info/index.md +++ b/website/docs/services/tracing/span_billing_info/index.md @@ -1,9 +1,9 @@ --- -title: traces_spans_billing_info +title: span_billing_info hide_title: false hide_table_of_contents: false keywords: - - traces_spans_billing_info + - span_billing_info - tracing - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a traces_spans_billing_info resource. +Creates, updates, deletes, gets or lists a span_billing_info resource. ## Overview - + - +
Nametraces_spans_billing_info
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a traces_spans_billing_info - + Billing information of the span with the given identifier. @@ -51,14 +52,14 @@ Billing information of the span with the given identifier. - + integer - Number of bytes that were charged for the span. + Number of bytes that were charged for the span. (wire: billedBytes) - + string - Billing format of the span. Number of bytes of this representation of the span is equal to `billedBytes`. (example: traceId=2ff9c457b1aa00f4;spanId=97872e33215c4275;parentSpanId=98bcdfc5da874c40;operation=spanId-97872e33215c4275;startTimestamp=1603283111874000000;endTimestamp=1603283112268000000;service=ServiceA;status.code=ERROR;status.message=ERROR;kind=SERVER;custom-tag-2=value2;_sourcehost=127.0.0.1;http.url=/api/operation-x;message=Some error message;_sourcecategory=Http Input;custom-tag-1=value1;error=true;_sourcename=Http Input;error.kind=InvalidInput;_collector=trace-generator-collector;http.method=GET;) + Billing format of the span. Number of bytes of this representation of the span is equal to `billedBytes`. (example: traceId=2ff9c457b1aa00f4;spanId=97872e33215c4275;parentSpanId=98bcdfc5da874c40;operation=spanId-97872e33215c4275;startTimestamp=1603283111874000000;endTimestamp=1603283112268000000;service=ServiceA;status.code=ERROR;status.message=ERROR;kind=SERVER;custom-tag-2=value2;_sourcehost=127.0.0.1;url.full=https:​//example.com/api/operation-x;message=Some error message;_sourcecategory=Http Input;custom-tag-1=value1;error=true;_sourcename=Http Input;error.kind=InvalidInput;_collector=trace-generator-collector;http.request.method=GET;) (wire: billedFormat) @@ -81,9 +82,9 @@ The following methods are available for this resource: - + - traceId, spanId, region + trace_id, span_id, region Get the billing information of the span. @@ -106,17 +107,17 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) - - + + string - Identifier of the span to get the billing info. + Identifier of the span to get the billing info. (wire: spanId) - - + + string - Identifier of the trace the span belongs to. + Identifier of the trace the span belongs to. (wire: traceId) @@ -124,23 +125,23 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get the billing information of the span. ```sql SELECT -billedBytes, -billedFormat -FROM sumologic.tracing.traces_spans_billing_info -WHERE traceId = '{{ traceId }}' -- required -AND spanId = '{{ spanId }}' -- required -AND region = '{{ region }}' -- required +billed_bytes, +billed_format +FROM sumologic.tracing.span_billing_info +WHERE trace_id = '{{ trace_id }}' -- required +AND span_id = '{{ span_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/tracing/span_queries/index.md b/website/docs/services/tracing/span_queries/index.md new file mode 100644 index 0000000..afc7333 --- /dev/null +++ b/website/docs/services/tracing/span_queries/index.md @@ -0,0 +1,294 @@ +--- +title: span_queries +hide_title: false +hide_table_of_contents: false +keywords: + - span_queries + - tracing + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a span_queries resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Details about the given span query. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
arrayA list of span analytics queries. (wire: queryRows)
stringStatus of the query. Possible values: `Processing`, `Finished`, `Error`, `Paused` (pattern: <code>^(Processing|Finished|Error|Paused)$</code>, example: Processing, x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Paused`.)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
query_id, regionGet a status of a span analytics query with the given id. When the query has been completed, use the Span Query Result endpoint to get the result of the asynchronous query.
region, query_rows, time_rangeExecute a span analytics query and get the id to fetch its status and results. Use the Span Query Status endpoint to check a query status. When the query has been completed, use the Span Query Result endpoint to get the result of the asynchronous query.
query_id, regionCancel a currently processed span search query with the given id.
queryId, regionPause a currently processed span search query with the given id.
queryId, regionResume a previously paused span search query with the given id.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the query to resume.
stringIdentifier of the query to cancel. (wire: queryId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get a status of a span analytics query with the given id. When the query has been completed, use the Span Query Result endpoint to get the result of the asynchronous query. + +```sql +SELECT +query_rows, +status +FROM sumologic.tracing.span_queries +WHERE query_id = '{{ query_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples + + + + +Execute a span analytics query and get the id to fetch its status and results. Use the Span Query Status endpoint to check a query status. When the query has been completed, use the Span Query Result endpoint to get the result of the asynchronous query. + +```sql +INSERT INTO sumologic.tracing.span_queries ( +query_rows, +time_range, +time_zone, +region +) +SELECT +'{{ query_rows }}' /* required */, +'{{ time_range }}' /* required */, +'{{ time_zone }}', +'{{ region }}' +RETURNING +query_id, +has_errors, +query_rows, +time_range +; +``` + + + +{`# Description fields are for documentation purposes +- name: span_queries + props: + - name: region + value: "{{ region }}" + description: Required parameter for the span_queries resource. + - name: query_rows + description: | + A list of span analytics queries. + value: + - queryString: "{{ queryString }}" + rowId: "{{ rowId }}" + - name: time_range + value: + type: "{{ type }}" + - name: time_zone + value: "{{ time_zone }}" + description: | + Time zone for the query time ranges. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + default: UTC +`} + + + + + +## `DELETE` examples + + + + +Cancel a currently processed span search query with the given id. + +```sql +DELETE FROM sumologic.tracing.span_queries +WHERE query_id = '{{ query_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + + + + +Pause a currently processed span search query with the given id. + +```sql +EXEC sumologic.tracing.span_queries.pause +@queryId='{{ queryId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Resume a previously paused span search query with the given id. + +```sql +EXEC sumologic.tracing.span_queries.resume +@queryId='{{ queryId }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/tracing/spanquery_aggregates/index.md b/website/docs/services/tracing/span_query_aggregates/index.md similarity index 62% rename from website/docs/services/tracing/spanquery_aggregates/index.md rename to website/docs/services/tracing/span_query_aggregates/index.md index e57da1a..a8b0297 100644 --- a/website/docs/services/tracing/spanquery_aggregates/index.md +++ b/website/docs/services/tracing/span_query_aggregates/index.md @@ -1,9 +1,9 @@ --- -title: spanquery_aggregates +title: span_query_aggregates hide_title: false hide_table_of_contents: false keywords: - - spanquery_aggregates + - span_query_aggregates - tracing - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a spanquery_aggregates resource. +Creates, updates, deletes, gets or lists a span_query_aggregates resource. ## Overview - + - +
Namespanquery_aggregates
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a spanquery_aggregates res The following fields are returned by `SELECT` queries: - + The aggregation result of the executed query. @@ -76,9 +77,9 @@ The following methods are available for this resource: - + - queryId, region + query_id, region Get span aggregation results for an aggregated span analytics query with the specified id. Only aggregated rows being part of the executed query will have matching results in the response of this endpoint. @@ -98,15 +99,15 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - - + + string - Identifier of the executed query. + Identifier of the executed query. (wire: queryId) string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -114,21 +115,21 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get span aggregation results for an aggregated span analytics query with the specified id. Only aggregated rows being part of the executed query will have matching results in the response of this endpoint. ```sql SELECT result -FROM sumologic.tracing.spanquery_aggregates -WHERE queryId = '{{ queryId }}' -- required -AND region = '{{ region }}' -- required +FROM sumologic.tracing.span_query_aggregates +WHERE query_id = '{{ query_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/tracing/span_query_facets/index.md b/website/docs/services/tracing/span_query_facets/index.md new file mode 100644 index 0000000..3a36e0c --- /dev/null +++ b/website/docs/services/tracing/span_query_facets/index.md @@ -0,0 +1,166 @@ +--- +title: span_query_facets +hide_title: false +hide_table_of_contents: false +keywords: + - span_query_facets + - tracing + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a span_query_facets resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The list of facets from the executed query. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringName of the field facet. (example: _sourceHost)
integer (int32)The number of unique values this field occured.
stringData type of the field. (pattern: <code>^(String|Int|Long|Double|Boolean)$</code>, example: String, x-pattern-message: Should be either `String`, `Int`, `Long`, `Double` or `Boolean`.) (wire: dataType)
booleanIndicates whether the field is available in the span schema. (wire: inSchema)
objectMap of field value frequencies. (wire: valueFrequency)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
query_id, row_id, regionGet a list of facets of a span analytics query with the specified id.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the executed query. (wire: queryId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringIdentifier of the query row. (wire: rowId)
+ +## `SELECT` examples + + + + +Get a list of facets of a span analytics query with the specified id. + +```sql +SELECT +name, +cardinality, +data_type, +in_schema, +value_frequency +FROM sumologic.tracing.span_query_facets +WHERE query_id = '{{ query_id }}' -- required +AND row_id = '{{ row_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/tracing/spanquery_fields_values/index.md b/website/docs/services/tracing/span_query_field_values/index.md similarity index 71% rename from website/docs/services/tracing/spanquery_fields_values/index.md rename to website/docs/services/tracing/span_query_field_values/index.md index 3308d84..ab601d0 100644 --- a/website/docs/services/tracing/spanquery_fields_values/index.md +++ b/website/docs/services/tracing/span_query_field_values/index.md @@ -1,9 +1,9 @@ --- -title: spanquery_fields_values +title: span_query_field_values hide_title: false hide_table_of_contents: false keywords: - - spanquery_fields_values + - span_query_field_values - tracing - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a spanquery_fields_values resource. +Creates, updates, deletes, gets or lists a span_query_field_values resource. ## Overview - + - +
Namespanquery_fields_values
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a spanquery_fields_values The following fields are returned by `SELECT` queries: - + List of available filter values for the given field. @@ -50,21 +51,6 @@ List of available filter values for the given field. - - - array - List of filter field values. - - - - string - Next continuation token. (example: Mi93V0ZqTTBzaW89) - - - - integer (int64) - Total number of values for a field matching the query. Can be approximated when it's above 3000. - @@ -86,7 +72,7 @@ The following methods are available for this resource: - + field, region query, limit, token @@ -116,7 +102,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -139,23 +125,21 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a list of available values for the given span analytics query filter field. Not all fields support value listing. The response is paginated with a default limit of 10 field values per page. ```sql SELECT -fieldValues, -next, -totalCount -FROM sumologic.tracing.spanquery_fields_values +* +FROM sumologic.tracing.span_query_field_values WHERE field = '{{ field }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND query = '{{ query }}' AND limit = '{{ limit }}' AND token = '{{ token }}' diff --git a/website/docs/services/tracing/span_query_fields/index.md b/website/docs/services/tracing/span_query_fields/index.md new file mode 100644 index 0000000..5e13aa2 --- /dev/null +++ b/website/docs/services/tracing/span_query_fields/index.md @@ -0,0 +1,166 @@ +--- +title: span_query_fields +hide_title: false +hide_table_of_contents: false +keywords: + - span_query_fields + - tracing + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a span_query_fields resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +List of available fields. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringShort description of the field. (example: A piece of the workflow represented by a span)
stringFilter field name. (example: operation)
stringIndicates the kind of a field. Possible values: `SpanAttribute`, `SpanEventAttribute`. (pattern: <code>^(SpanAttribute|SpanEventAttribute)$</code>, example: SpanEventAttribute, default: SpanAttribute, x-pattern-message: Should be one of: `SpanAttribute`, `SpanEventAttribute`.) (wire: fieldType)
booleanIndicates whether the field is available in the schema. (wire: inSchema)
object (wire: noValuesReason)
stringThe type the values of this field will have. Possible values: `DoubleTracingValue`, `IntegerTracingValue`, `StringTracingValue`, `DateTimeTracingValue`. (example: StringTracingValue)
booleanIndicates whether values for this field can be listed. (wire: valueListing)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionGet a list of available fields which can be used in span analytics queries.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get a list of available fields which can be used in span analytics queries. + +```sql +SELECT +description, +field, +field_type, +in_schema, +no_values_reason, +type, +value_listing +FROM sumologic.tracing.span_query_fields +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/tracing/span_query_results/index.md b/website/docs/services/tracing/span_query_results/index.md new file mode 100644 index 0000000..ab1a014 --- /dev/null +++ b/website/docs/services/tracing/span_query_results/index.md @@ -0,0 +1,220 @@ +--- +title: span_query_results +hide_title: false +hide_table_of_contents: false +keywords: + - span_query_results + - tracing + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a span_query_results resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Details about the given span query. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the parent span, if any. If the span has no parent it's considered a root span. (example: 000000000003C7BE) (wire: parentSpanId)
stringIdentifier of the span. (example: 00000000002317A9) (wire: spanId)
stringIdentifier of the trace. (example: 1BB004A0005213C2) (wire: traceId)
stringThe name of the operation given to the span. (example: retrieveAccount) (wire: operationName)
integer (int64)Number of nanoseconds the span lasted.
stringSpan kind describes the relationship between the Span, its parents, and its children in a Trace. Possible values: `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER`, `INTERNAL`. (pattern: <code>^(CLIENT|SERVER|PRODUCER|CONSUMER|INTERNAL)$</code>, example: SERVER, x-pattern-message: Should be either `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER` or `INTERNAL`.)
objectMetadata attached to the span.
stringName of the possible remote span's service. (example: external-service) (wire: remoteService)
stringThe name of the service this span is part of. (example: user-service)
string (date-time)Date and time the span was started in [ISO 8601 / RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2019-11-22T09:00:00.000Z) (wire: startedAt)
object
stringTags attached to this span as JSON. (example: {<br /> "http.host":"http:​//example.com",<br /> "http.request.method":"GET"<br />}) (wire: tagsJSON)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
query_id, row_id, regionlimit, tokenGet a list of spans matching a query with the specified id. The response is paginated with a default limit of 100 spans per page.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the executed query. (wire: queryId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringIdentifier of the query row. (wire: rowId)
integer (int32)Limit of the number of spans returned in the response.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left.
+ +## `SELECT` examples + + + + +Get a list of spans matching a query with the specified id. The response is paginated with a default limit of 100 spans per page. + +```sql +SELECT +parent_span_id, +span_id, +trace_id, +operation_name, +duration, +kind, +metadata, +remote_service, +service, +started_at, +status, +tags_json +FROM sumologic.tracing.span_query_results +WHERE query_id = '{{ query_id }}' -- required +AND row_id = '{{ row_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +; +``` + + diff --git a/website/docs/services/tracing/spanquery/index.md b/website/docs/services/tracing/spanquery/index.md deleted file mode 100644 index 63c70ba..0000000 --- a/website/docs/services/tracing/spanquery/index.md +++ /dev/null @@ -1,172 +0,0 @@ ---- -title: spanquery -hide_title: false -hide_table_of_contents: false -keywords: - - spanquery - - tracing - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a spanquery resource. - -## Overview - - - - -
Namespanquery
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
region, data__queryRows, data__timeRangeExecute a span analytics query and get the id to fetch its status and results. Use the [Span Query Status] endpoint to check a query status. When the query has been completed, use the [Span Query Result] endpoint to get the result of the asynchronous query.
queryId, regionCancel a currently processed span search query with the given id.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the query to cancel.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## `INSERT` examples - - - - -Execute a span analytics query and get the id to fetch its status and results. Use the [Span Query Status] endpoint to check a query status. When the query has been completed, use the [Span Query Result] endpoint to get the result of the asynchronous query. - -```sql -INSERT INTO sumologic.tracing.spanquery ( -data__queryRows, -data__timeRange, -data__timeZone, -region -) -SELECT -'{{ queryRows }}' /* required */, -'{{ timeRange }}' /* required */, -'{{ timeZone }}', -'{{ region }}' -RETURNING -hasErrors, -queryId, -queryRows, -timeRange -; -``` - - - -```yaml -# Description fields are for documentation purposes -- name: spanquery - props: - - name: region - value: string - description: Required parameter for the spanquery resource. - - name: queryRows - value: array - description: | - A list of span analytics queries. - - name: timeRange - value: object - - name: timeZone - value: string - description: | - Time zone for the query time ranges. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). - default: UTC -``` - - - - -## Lifecycle Methods - - - - -Cancel a currently processed span search query with the given id. - -```sql -EXEC sumologic.tracing.spanquery.cancelSpanQuery -@queryId='{{ queryId }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/tracing/spanquery_pause/index.md b/website/docs/services/tracing/spanquery_pause/index.md deleted file mode 100644 index 120cd42..0000000 --- a/website/docs/services/tracing/spanquery_pause/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: spanquery_pause -hide_title: false -hide_table_of_contents: false -keywords: - - spanquery_pause - - tracing - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a spanquery_pause resource. - -## Overview - - - - -
Namespanquery_pause
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
queryId, regionPause a currently processed span search query with the given id.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the query to pause.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Pause a currently processed span search query with the given id. - -```sql -EXEC sumologic.tracing.spanquery_pause.pauseSpanQuery -@queryId='{{ queryId }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/tracing/spanquery_resume/index.md b/website/docs/services/tracing/spanquery_resume/index.md deleted file mode 100644 index 3f61891..0000000 --- a/website/docs/services/tracing/spanquery_resume/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: spanquery_resume -hide_title: false -hide_table_of_contents: false -keywords: - - spanquery_resume - - tracing - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a spanquery_resume resource. - -## Overview - - - - -
Namespanquery_resume
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
queryId, regionResume a previously paused span search query with the given id.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the query to resume.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Resume a previously paused span search query with the given id. - -```sql -EXEC sumologic.tracing.spanquery_resume.resumeSpanQuery -@queryId='{{ queryId }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/tracing/spanquery_rows_spans/index.md b/website/docs/services/tracing/spanquery_rows_spans/index.md deleted file mode 100644 index 4a81396..0000000 --- a/website/docs/services/tracing/spanquery_rows_spans/index.md +++ /dev/null @@ -1,159 +0,0 @@ ---- -title: spanquery_rows_spans -hide_title: false -hide_table_of_contents: false -keywords: - - spanquery_rows_spans - - tracing - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a spanquery_rows_spans resource. - -## Overview - - - - -
Namespanquery_rows_spans
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -Details about the given span query. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringNext continuation token. (example: Mi93V0ZqTTBzaW89)
arrayList of trace spans.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
queryId, rowId, regionlimit, tokenGet a list of spans matching a query with the specified id. The response is paginated with a default limit of 100 spans per page.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the executed query.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringIdentifier of the query row.
integer (int32)Limit of the number of spans returned in the response.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left.
- -## `SELECT` examples - - - - -Get a list of spans matching a query with the specified id. The response is paginated with a default limit of 100 spans per page. - -```sql -SELECT -next, -spanPage -FROM sumologic.tracing.spanquery_rows_spans -WHERE queryId = '{{ queryId }}' -- required -AND rowId = '{{ rowId }}' -- required -AND region = '{{ region }}' -- required -AND limit = '{{ limit }}' -AND token = '{{ token }}' -; -``` - - diff --git a/website/docs/services/tracing/spanquery_status/index.md b/website/docs/services/tracing/spanquery_status/index.md deleted file mode 100644 index 068d973..0000000 --- a/website/docs/services/tracing/spanquery_status/index.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: spanquery_status -hide_title: false -hide_table_of_contents: false -keywords: - - spanquery_status - - tracing - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a spanquery_status resource. - -## Overview - - - - -
Namespanquery_status
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -Details about the given span query. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
arrayA list of span analytics queries.
stringStatus of the query. Possible values: `Processing`, `Finished`, `Error`, `Paused` (pattern: ^(Processing|Finished|Error|Paused)$, example: Processing, x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Paused`.)
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
queryId, regionGet a status of a span analytics query with the given id. When the query has been completed, use the [Span Query Result] endpoint to get the result of the asynchronous query.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the executed query.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## `SELECT` examples - - - - -Get a status of a span analytics query with the given id. When the query has been completed, use the [Span Query Result] endpoint to get the result of the asynchronous query. - -```sql -SELECT -queryRows, -status -FROM sumologic.tracing.spanquery_status -WHERE queryId = '{{ queryId }}' -- required -AND region = '{{ region }}' -- required -; -``` - - diff --git a/website/docs/services/tracing/spans/index.md b/website/docs/services/tracing/spans/index.md new file mode 100644 index 0000000..46b3f52 --- /dev/null +++ b/website/docs/services/tracing/spans/index.md @@ -0,0 +1,413 @@ +--- +title: spans +hide_title: false +hide_table_of_contents: false +keywords: + - spans + - tracing + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a spans resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Details of the span with the given identifier. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the span. (example: 00000000002317A9)
stringIdentifier of the parent span, if any. If the span has no parent it's considered a root span. (example: 000000000003C7BE) (wire: parentId)
stringThe name of the operation given to the span. (example: retrieveAccount) (wire: operationName)
object (wire: criticalPathContribution)
integer (int64)Number of nanoseconds the span lasted.
stringProduced error message (could be a stack trace, database error code, ..) (example: Exception in thread "local[9]" java.lang.OutOfMemoryError: Java heap space<br /> at my.app.force.fields.SpaceShipForceField.main(SpaceShipForceField.java:17)<br />) (wire: errorMessage)
arrayEvents attached to this span.
objectFields attached to this span.
object
stringSpan kind describes the relationship between the Span, its parents, and its children in a Trace. Possible values: `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER`, `INTERNAL`. (pattern: <code>^(CLIENT|SERVER|PRODUCER|CONSUMER|INTERNAL)$</code>, example: SERVER, x-pattern-message: Should be either `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER` or `INTERNAL`.)
arrayList of casually related spans.
arrayLogs attached to this span.
integer (int32)Number of span links in this span. (wire: numberOfLinks)
stringName of the possible remote span's service. (example: external-service) (wire: remoteService)
stringColor hex code assigned to the remote service. (example: #fa41c6) (wire: remoteServiceColor)
stringDefines type of service. (pattern: <code>^(Db|HTTP|MQ|Web|Mixed|Unknown|Cpp|DotNET|Erlang|Go|Java|NodeJS|Php|Python|Ruby|WebJS|Swift|MSSQL|MySQL|Oracle|Db2|PostgreSQL|Redshift|Hive|Cloudscape|HSQLDB|Progress|MaxDB|HANADB|Ingres|FirstSQL|EnterpriseDB|Cache|Adabas|Firebird|ApacheDerby|FileMaker|Informix|InstantDB|InterBase|MariaDB|Netezza|PervasivePSQL|PointBase|SQLite|Sybase|Teradata|Vertica|H2|ColdFusion|Cassandra|HBase|MongoDB|Redis|Couchbase|CouchDB|CosmosDB|DynamoDB|Neo4j|Geode|Elasticsearch|Memcached|CockroachDB|RPC|gRPC|JavaRMI|DotNETWCF|ApacheDubbo)$</code>, example: HTTP, x-pattern-message: Should be either `Db`, `HTTP`, `MQ`, `Web`, `Mixed`, `Unknown`, `Cpp`, `DotNET`, `Erlang`, `Go`, `Java`, `NodeJS`, `Php`, `Python`, `Ruby`, `WebJS`, `Swift`, `MSSQL`, `MySQL`, `Oracle`, `Db2`, `PostgreSQL`, `Redshift`, `Hive`, `Cloudscape`, `HSQLDB`, `Progress`, `MaxDB`, `HANADB`, `Ingres`, `FirstSQL`, `EnterpriseDB`, `Cache`, `Adabas`, `Firebird`, `ApacheDerby`, `FileMaker`, `Informix`, `InstantDB`, `InterBase`, `MariaDB`, `Netezza`, `PervasivePSQL`, `PointBase`, `SQLite`, `Sybase`, `Teradata`, `Vertica`, `H2`, `ColdFusion`, `Cassandra`, `HBase`, `MongoDB`, `Redis`, `Couchbase`, `CouchDB`, `CosmosDB`, `DynamoDB`, `Neo4j`, `Geode`, `Elasticsearch`, `Memcached`, `CockroachDB`, `RPC`, `gRPC`, `JavaRMI`, `DotNETWCF` or `ApacheDubbo`) (wire: remoteServiceType)
stringThe name of the resource attached to the span. (example: http.request)
stringThe name of the service this span is part of. (example: user-service)
stringColor hex code assigned to the service. (example: #fa41c6) (wire: serviceColor)
stringDefines type of service. (pattern: <code>^(Db|HTTP|MQ|Web|Mixed|Unknown|Cpp|DotNET|Erlang|Go|Java|NodeJS|Php|Python|Ruby|WebJS|Swift|MSSQL|MySQL|Oracle|Db2|PostgreSQL|Redshift|Hive|Cloudscape|HSQLDB|Progress|MaxDB|HANADB|Ingres|FirstSQL|EnterpriseDB|Cache|Adabas|Firebird|ApacheDerby|FileMaker|Informix|InstantDB|InterBase|MariaDB|Netezza|PervasivePSQL|PointBase|SQLite|Sybase|Teradata|Vertica|H2|ColdFusion|Cassandra|HBase|MongoDB|Redis|Couchbase|CouchDB|CosmosDB|DynamoDB|Neo4j|Geode|Elasticsearch|Memcached|CockroachDB|RPC|gRPC|JavaRMI|DotNETWCF|ApacheDubbo)$</code>, example: HTTP, x-pattern-message: Should be either `Db`, `HTTP`, `MQ`, `Web`, `Mixed`, `Unknown`, `Cpp`, `DotNET`, `Erlang`, `Go`, `Java`, `NodeJS`, `Php`, `Python`, `Ruby`, `WebJS`, `Swift`, `MSSQL`, `MySQL`, `Oracle`, `Db2`, `PostgreSQL`, `Redshift`, `Hive`, `Cloudscape`, `HSQLDB`, `Progress`, `MaxDB`, `HANADB`, `Ingres`, `FirstSQL`, `EnterpriseDB`, `Cache`, `Adabas`, `Firebird`, `ApacheDerby`, `FileMaker`, `Informix`, `InstantDB`, `InterBase`, `MariaDB`, `Netezza`, `PervasivePSQL`, `PointBase`, `SQLite`, `Sybase`, `Teradata`, `Vertica`, `H2`, `ColdFusion`, `Cassandra`, `HBase`, `MongoDB`, `Redis`, `Couchbase`, `CouchDB`, `CosmosDB`, `DynamoDB`, `Neo4j`, `Geode`, `Elasticsearch`, `Memcached`, `CockroachDB`, `RPC`, `gRPC`, `JavaRMI`, `DotNETWCF` or `ApacheDubbo`) (wire: serviceType)
string (date-time)Date and time the span was started in the [ISO 8601 / RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2019-11-22T09:00:00.000Z) (wire: startedAt)
object
+
+ + +List of spans for the given trace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the span. (example: 00000000002317A9)
stringIdentifier of the parent span, if any. If the span has no parent it's considered a root span. (example: 000000000003C7BE) (wire: parentId)
stringThe name of the operation given to the span. (example: retrieveAccount) (wire: operationName)
integer (int64)Number of nanoseconds the span lasted.
object
stringSpan kind describes the relationship between the Span, its parents, and its children in a Trace. Possible values: `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER`, `INTERNAL`. (pattern: <code>^(CLIENT|SERVER|PRODUCER|CONSUMER|INTERNAL)$</code>, example: SERVER, x-pattern-message: Should be either `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER` or `INTERNAL`.)
integer (int32)Number of span links in this span. (wire: numberOfLinks)
stringName of the possible remote span's service. (example: external-service) (wire: remoteService)
stringColor hex code assigned to the remote service. (example: #fa41c6) (wire: remoteServiceColor)
stringDefines type of service. (pattern: <code>^(Db|HTTP|MQ|Web|Mixed|Unknown|Cpp|DotNET|Erlang|Go|Java|NodeJS|Php|Python|Ruby|WebJS|Swift|MSSQL|MySQL|Oracle|Db2|PostgreSQL|Redshift|Hive|Cloudscape|HSQLDB|Progress|MaxDB|HANADB|Ingres|FirstSQL|EnterpriseDB|Cache|Adabas|Firebird|ApacheDerby|FileMaker|Informix|InstantDB|InterBase|MariaDB|Netezza|PervasivePSQL|PointBase|SQLite|Sybase|Teradata|Vertica|H2|ColdFusion|Cassandra|HBase|MongoDB|Redis|Couchbase|CouchDB|CosmosDB|DynamoDB|Neo4j|Geode|Elasticsearch|Memcached|CockroachDB|RPC|gRPC|JavaRMI|DotNETWCF|ApacheDubbo)$</code>, example: HTTP, x-pattern-message: Should be either `Db`, `HTTP`, `MQ`, `Web`, `Mixed`, `Unknown`, `Cpp`, `DotNET`, `Erlang`, `Go`, `Java`, `NodeJS`, `Php`, `Python`, `Ruby`, `WebJS`, `Swift`, `MSSQL`, `MySQL`, `Oracle`, `Db2`, `PostgreSQL`, `Redshift`, `Hive`, `Cloudscape`, `HSQLDB`, `Progress`, `MaxDB`, `HANADB`, `Ingres`, `FirstSQL`, `EnterpriseDB`, `Cache`, `Adabas`, `Firebird`, `ApacheDerby`, `FileMaker`, `Informix`, `InstantDB`, `InterBase`, `MariaDB`, `Netezza`, `PervasivePSQL`, `PointBase`, `SQLite`, `Sybase`, `Teradata`, `Vertica`, `H2`, `ColdFusion`, `Cassandra`, `HBase`, `MongoDB`, `Redis`, `Couchbase`, `CouchDB`, `CosmosDB`, `DynamoDB`, `Neo4j`, `Geode`, `Elasticsearch`, `Memcached`, `CockroachDB`, `RPC`, `gRPC`, `JavaRMI`, `DotNETWCF` or `ApacheDubbo`) (wire: remoteServiceType)
stringThe name of the resource attached to the span. (example: http.request)
stringThe name of the service this span is part of. (example: user-service)
stringColor hex code assigned to the service. (example: #fa41c6) (wire: serviceColor)
stringDefines type of service. (pattern: <code>^(Db|HTTP|MQ|Web|Mixed|Unknown|Cpp|DotNET|Erlang|Go|Java|NodeJS|Php|Python|Ruby|WebJS|Swift|MSSQL|MySQL|Oracle|Db2|PostgreSQL|Redshift|Hive|Cloudscape|HSQLDB|Progress|MaxDB|HANADB|Ingres|FirstSQL|EnterpriseDB|Cache|Adabas|Firebird|ApacheDerby|FileMaker|Informix|InstantDB|InterBase|MariaDB|Netezza|PervasivePSQL|PointBase|SQLite|Sybase|Teradata|Vertica|H2|ColdFusion|Cassandra|HBase|MongoDB|Redis|Couchbase|CouchDB|CosmosDB|DynamoDB|Neo4j|Geode|Elasticsearch|Memcached|CockroachDB|RPC|gRPC|JavaRMI|DotNETWCF|ApacheDubbo)$</code>, example: HTTP, x-pattern-message: Should be either `Db`, `HTTP`, `MQ`, `Web`, `Mixed`, `Unknown`, `Cpp`, `DotNET`, `Erlang`, `Go`, `Java`, `NodeJS`, `Php`, `Python`, `Ruby`, `WebJS`, `Swift`, `MSSQL`, `MySQL`, `Oracle`, `Db2`, `PostgreSQL`, `Redshift`, `Hive`, `Cloudscape`, `HSQLDB`, `Progress`, `MaxDB`, `HANADB`, `Ingres`, `FirstSQL`, `EnterpriseDB`, `Cache`, `Adabas`, `Firebird`, `ApacheDerby`, `FileMaker`, `Informix`, `InstantDB`, `InterBase`, `MariaDB`, `Netezza`, `PervasivePSQL`, `PointBase`, `SQLite`, `Sybase`, `Teradata`, `Vertica`, `H2`, `ColdFusion`, `Cassandra`, `HBase`, `MongoDB`, `Redis`, `Couchbase`, `CouchDB`, `CosmosDB`, `DynamoDB`, `Neo4j`, `Geode`, `Elasticsearch`, `Memcached`, `CockroachDB`, `RPC`, `gRPC`, `JavaRMI`, `DotNETWCF` or `ApacheDubbo`) (wire: serviceType)
string (date-time)Date and time the span was started in the [ISO 8601 / RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2019-11-22T09:00:00.000Z) (wire: startedAt)
object
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
trace_id, span_id, regionGet details of a span with the given identifier.
trace_id, regionlimit, tokenGet a list of spans for the given trace. The response is paginated with a default limit of 100 spans per page.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringIdentifier of the span to get the details. (wire: spanId)
stringIdentifier of the trace to get the spans. (wire: traceId)
integer (int32)The maximum number of results to fetch.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left.
+ +## `SELECT` examples + + + + +Get details of a span with the given identifier. + +```sql +SELECT +id, +parent_id, +operation_name, +critical_path_contribution, +duration, +error_message, +events, +fields, +info, +kind, +links, +logs, +number_of_links, +remote_service, +remote_service_color, +remote_service_type, +resource, +service, +service_color, +service_type, +started_at, +status +FROM sumologic.tracing.spans +WHERE trace_id = '{{ trace_id }}' -- required +AND span_id = '{{ span_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Get a list of spans for the given trace. The response is paginated with a default limit of 100 spans per page. + +```sql +SELECT +id, +parent_id, +operation_name, +duration, +info, +kind, +number_of_links, +remote_service, +remote_service_color, +remote_service_type, +resource, +service, +service_color, +service_type, +started_at, +status +FROM sumologic.tracing.spans +WHERE trace_id = '{{ trace_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +; +``` + + diff --git a/website/docs/services/tracing/traces_trace_events/index.md b/website/docs/services/tracing/trace_events/index.md similarity index 69% rename from website/docs/services/tracing/traces_trace_events/index.md rename to website/docs/services/tracing/trace_events/index.md index cddfd89..497c74b 100644 --- a/website/docs/services/tracing/traces_trace_events/index.md +++ b/website/docs/services/tracing/trace_events/index.md @@ -1,9 +1,9 @@ --- -title: traces_trace_events +title: trace_events hide_title: false hide_table_of_contents: false keywords: - - traces_trace_events + - trace_events - tracing - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a traces_trace_events resource. +Creates, updates, deletes, gets or lists a trace_events resource. ## Overview - + - +
Nametraces_trace_events
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a traces_trace_events reso The following fields are returned by `SELECT` queries: - + Map of spans to events relations. @@ -56,9 +57,9 @@ Map of spans to events relations. Next continuation token. (example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI) - + object - Map of span ids to lists of their events, without their attributes. + Map of span ids to lists of their events, without their attributes. (wire: spanEvents) @@ -81,9 +82,9 @@ The following methods are available for this resource: - + - traceId, region + trace_id, region limit, token Gets a list of the events (without their attributes) attached to each span in a given trace. The response is paginated with a default limit of 100 spans per page. @@ -106,12 +107,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) - - + + string - Identifier of the trace for which span events will be returned. + Identifier of the trace for which span events will be returned. (wire: traceId) @@ -129,22 +130,22 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Gets a list of the events (without their attributes) attached to each span in a given trace. The response is paginated with a default limit of 100 spans per page. ```sql SELECT next, -spanEvents -FROM sumologic.tracing.traces_trace_events -WHERE traceId = '{{ traceId }}' -- required -AND region = '{{ region }}' -- required +span_events +FROM sumologic.tracing.trace_events +WHERE trace_id = '{{ trace_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' ; diff --git a/website/docs/services/tracing/trace_existence/index.md b/website/docs/services/tracing/trace_existence/index.md new file mode 100644 index 0000000..9316a56 --- /dev/null +++ b/website/docs/services/tracing/trace_existence/index.md @@ -0,0 +1,142 @@ +--- +title: trace_existence +hide_title: false +hide_table_of_contents: false +keywords: + - trace_existence + - tracing + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a trace_existence resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +The response contains the information whether the trace exists with other optional attributes. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
booleanIndicates whether the trace with the given trace id exists.
stringA path to the trace view page in Sumo Logic UI. (example: #/trace/00000000000120CB)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
trace_id, regionCheck if the trace with the given identifier exists.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringIdentifier of the trace to check. (wire: traceId)
+ +## `SELECT` examples + + + + +Check if the trace with the given identifier exists. + +```sql +SELECT +exists, +url +FROM sumologic.tracing.trace_existence +WHERE trace_id = '{{ trace_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/tracing/trace_queries/index.md b/website/docs/services/tracing/trace_queries/index.md new file mode 100644 index 0000000..6168edb --- /dev/null +++ b/website/docs/services/tracing/trace_queries/index.md @@ -0,0 +1,233 @@ +--- +title: trace_queries +hide_title: false +hide_table_of_contents: false +keywords: + - trace_queries + - tracing + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a trace_queries resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Status of the given trace search query. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
arrayA list of trace queries. (wire: queryRows)
stringStatus of the query. Possible values: `Processing`, `Finished`, `Error`, `Canceled`. (pattern: <code>^(Processing|Finished|Error|Canceled)$</code>, example: Processing, x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Canceled`.)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
query_id, regionGet a status of a trace query with the given id. When the query has been completed, use the Trace Query Result endpoint to get the result of the asynchronous query.
region, query_rows, time_rangeExecute a trace search query and get the id to fetch its status and results. Use the Trace Query Status endpoint to check a query status. When the query has been completed, use the Trace Query Result endpoint to get the result of the asynchronous query.
query_id, regionCancel a currently processed trace search query with the given id.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the query to cancel. (wire: queryId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get a status of a trace query with the given id. When the query has been completed, use the Trace Query Result endpoint to get the result of the asynchronous query. + +```sql +SELECT +query_rows, +status +FROM sumologic.tracing.trace_queries +WHERE query_id = '{{ query_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + + +## `INSERT` examples + + + + +Execute a trace search query and get the id to fetch its status and results. Use the Trace Query Status endpoint to check a query status. When the query has been completed, use the Trace Query Result endpoint to get the result of the asynchronous query. + +```sql +INSERT INTO sumologic.tracing.trace_queries ( +query_rows, +time_range, +region +) +SELECT +'{{ query_rows }}' /* required */, +'{{ time_range }}' /* required */, +'{{ region }}' +RETURNING +query_id +; +``` + + + +{`# Description fields are for documentation purposes +- name: trace_queries + props: + - name: region + value: "{{ region }}" + description: Required parameter for the trace_queries resource. + - name: query_rows + description: | + A list of trace queries. + value: + - query: + type: "{{ type }}" + rowId: "{{ rowId }}" + orderBy: + fieldName: "{{ fieldName }}" + order: "{{ order }}" + - name: time_range + value: + type: "{{ type }}" +`} + + + + + +## `DELETE` examples + + + + +Cancel a currently processed trace search query with the given id. + +```sql +DELETE FROM sumologic.tracing.trace_queries +WHERE query_id = '{{ query_id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/tracing/tracequery_fields_values/index.md b/website/docs/services/tracing/trace_query_field_values/index.md similarity index 70% rename from website/docs/services/tracing/tracequery_fields_values/index.md rename to website/docs/services/tracing/trace_query_field_values/index.md index e5cb669..d2172b8 100644 --- a/website/docs/services/tracing/tracequery_fields_values/index.md +++ b/website/docs/services/tracing/trace_query_field_values/index.md @@ -1,9 +1,9 @@ --- -title: tracequery_fields_values +title: trace_query_field_values hide_title: false hide_table_of_contents: false keywords: - - tracequery_fields_values + - trace_query_field_values - tracing - sumologic - infrastructure-as-code @@ -15,16 +15,17 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Creates, updates, deletes, gets or lists a tracequery_fields_values resource. +Creates, updates, deletes, gets or lists a trace_query_field_values resource. ## Overview - + - +
Nametracequery_fields_values
Name
TypeResource
Id
Id
## Fields @@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a tracequery_fields_values The following fields are returned by `SELECT` queries: - + List of available filter values for the given field. @@ -50,21 +51,6 @@ List of available filter values for the given field. - - - array - List of filter field values. - - - - string - Next continuation token. (example: Mi93V0ZqTTBzaW89) - - - - integer (int64) - Total number of values for a field matching the query. Can be approximated when it's above 3000. - @@ -86,10 +72,10 @@ The following methods are available for this resource: - + field, region - query, limit, token + query, limit, token, field_type Get a list of available values for the given trace search query filter field. Not all fields support value listing. The response is paginated with a default limit of 10 values per page. @@ -116,7 +102,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) + + + + string + Indicates the kind of a field. Possible values: `SpanAttribute`, `SpanEventAttribute`. (wire: fieldType) @@ -139,26 +130,25 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a list of available values for the given trace search query filter field. Not all fields support value listing. The response is paginated with a default limit of 10 values per page. ```sql SELECT -fieldValues, -next, -totalCount -FROM sumologic.tracing.tracequery_fields_values +* +FROM sumologic.tracing.trace_query_field_values WHERE field = '{{ field }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND query = '{{ query }}' AND limit = '{{ limit }}' AND token = '{{ token }}' +AND field_type = '{{ field_type }}' ; ``` diff --git a/website/docs/services/tracing/trace_query_fields/index.md b/website/docs/services/tracing/trace_query_fields/index.md new file mode 100644 index 0000000..6ab62db --- /dev/null +++ b/website/docs/services/tracing/trace_query_fields/index.md @@ -0,0 +1,160 @@ +--- +title: trace_query_fields +hide_title: false +hide_table_of_contents: false +keywords: + - trace_query_fields + - tracing + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a trace_query_fields resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +List of available fields. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringShort description of the field. (example: A piece of the workflow represented by a span)
stringFilter field name. (example: operation)
stringIndicates the kind of a field. Possible values: `SpanAttribute`, `SpanEventAttribute`. (pattern: <code>^(SpanAttribute|SpanEventAttribute)$</code>, example: SpanEventAttribute, default: SpanAttribute, x-pattern-message: Should be one of: `SpanAttribute`, `SpanEventAttribute`.) (wire: fieldType)
object (wire: noValuesReason)
stringThe type the values of this field will have. Possible values: `DoubleTracingValue`, `IntegerTracingValue`, `StringTracingValue`, `DateTimeTracingValue`. (example: StringTracingValue)
booleanIndicates whether values for this field can be listed. (wire: valueListing)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
regionGet a list of available fields which can be used in trace search queries.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
+ +## `SELECT` examples + + + + +Get a list of available fields which can be used in trace search queries. + +```sql +SELECT +description, +field, +field_type, +no_values_reason, +type, +value_listing +FROM sumologic.tracing.trace_query_fields +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + diff --git a/website/docs/services/tracing/trace_query_results/index.md b/website/docs/services/tracing/trace_query_results/index.md new file mode 100644 index 0000000..335e185 --- /dev/null +++ b/website/docs/services/tracing/trace_query_results/index.md @@ -0,0 +1,196 @@ +--- +title: trace_query_results +hide_title: false +hide_table_of_contents: false +keywords: + - trace_query_results + - tracing + - sumologic + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage sumologic resources using SQL +custom_edit_url: null +image: /img/stackql-sumologic-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a trace_query_results resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Details about the given span query. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringTrace identifier. (example: 00000000000120CB)
stringThe name of the operation given to the root span. (example: retrieveAccount) (wire: rootOperationName)
object (wire: criticalPathServiceBreakdownSummary)
objectCalculated trace metrics.
stringRoot resource on which the trace was started. Examples: `db.query`, `http.request`, `rpc.call`, `container` (example: http.request) (wire: rootResource)
stringRoot service which started the trace. Examples: `user-service`, `authentication-service`, `payment-service`, `/shopping-cart` (example: user-service) (wire: rootService)
object (wire: rootStatus)
string (date-time)Date and time the trace was started in [ISO 8601 / RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2019-11-22T09:00:00.000Z) (wire: startedAt)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
query_id, row_id, regionlimit, tokenGet a list of traces matching a query with the specified id. The response is paginated with a default limit of 100 traces per page.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringIdentifier of the executed query. (wire: queryId)
stringSumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT)
stringIdentifier of the query row. (wire: rowId)
integer (int32)Limit of the number of traces returned in the response.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left.
+ +## `SELECT` examples + + + + +Get a list of traces matching a query with the specified id. The response is paginated with a default limit of 100 traces per page. + +```sql +SELECT +id, +root_operation_name, +critical_path_service_breakdown_summary, +metrics, +root_resource, +root_service, +root_status, +started_at +FROM sumologic.tracing.trace_query_results +WHERE query_id = '{{ query_id }}' -- required +AND row_id = '{{ row_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set +AND limit = '{{ limit }}' +AND token = '{{ token }}' +; +``` + + diff --git a/website/docs/services/tracing/tracequery/index.md b/website/docs/services/tracing/tracequery/index.md deleted file mode 100644 index 78630d7..0000000 --- a/website/docs/services/tracing/tracequery/index.md +++ /dev/null @@ -1,162 +0,0 @@ ---- -title: tracequery -hide_title: false -hide_table_of_contents: false -keywords: - - tracequery - - tracing - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a tracequery resource. - -## Overview - - - - -
Nametracequery
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
region, data__queryRows, data__timeRangeExecute a trace search query and get the id to fetch its status and results. Use the [Trace Query Status] endpoint to check a query status. When the query has been completed, use the [Trace Query Result] endpoint to get the result of the asynchronous query.
queryId, regionCancel a currently processed trace search query with the given id.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the query to cancel.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## `INSERT` examples - - - - -Execute a trace search query and get the id to fetch its status and results. Use the [Trace Query Status] endpoint to check a query status. When the query has been completed, use the [Trace Query Result] endpoint to get the result of the asynchronous query. - -```sql -INSERT INTO sumologic.tracing.tracequery ( -data__queryRows, -data__timeRange, -region -) -SELECT -'{{ queryRows }}' /* required */, -'{{ timeRange }}' /* required */, -'{{ region }}' -RETURNING -queryId -; -``` - - - -```yaml -# Description fields are for documentation purposes -- name: tracequery - props: - - name: region - value: string - description: Required parameter for the tracequery resource. - - name: queryRows - value: array - description: | - A list of trace queries. - - name: timeRange - value: object -``` - - - - -## Lifecycle Methods - - - - -Cancel a currently processed trace search query with the given id. - -```sql -EXEC sumologic.tracing.tracequery.cancelTraceQuery -@queryId='{{ queryId }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/tracing/tracequery_rows_traces/index.md b/website/docs/services/tracing/tracequery_rows_traces/index.md deleted file mode 100644 index 54a1759..0000000 --- a/website/docs/services/tracing/tracequery_rows_traces/index.md +++ /dev/null @@ -1,159 +0,0 @@ ---- -title: tracequery_rows_traces -hide_title: false -hide_table_of_contents: false -keywords: - - tracequery_rows_traces - - tracing - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a tracequery_rows_traces resource. - -## Overview - - - - -
Nametracequery_rows_traces
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -Details about the given span query. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringNext continuation token. (example: 10001)
arrayList of traces matching the query.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
queryId, rowId, regionlimit, tokenGet a list of traces matching a query with the specified id. The response is paginated with a default limit of 100 traces per page.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the executed query.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringIdentifier of the query row.
integer (int32)Limit of the number of traces returned in the response.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left.
- -## `SELECT` examples - - - - -Get a list of traces matching a query with the specified id. The response is paginated with a default limit of 100 traces per page. - -```sql -SELECT -next, -results -FROM sumologic.tracing.tracequery_rows_traces -WHERE queryId = '{{ queryId }}' -- required -AND rowId = '{{ rowId }}' -- required -AND region = '{{ region }}' -- required -AND limit = '{{ limit }}' -AND token = '{{ token }}' -; -``` - - diff --git a/website/docs/services/tracing/tracequery_status/index.md b/website/docs/services/tracing/tracequery_status/index.md deleted file mode 100644 index 6f85874..0000000 --- a/website/docs/services/tracing/tracequery_status/index.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: tracequery_status -hide_title: false -hide_table_of_contents: false -keywords: - - tracequery_status - - tracing - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a tracequery_status resource. - -## Overview - - - - -
Nametracequery_status
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -Status of the given trace search query. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
arrayA list of trace queries.
stringStatus of the query. Possible values: `Processing`, `Finished`, `Error`, `Canceled`. (pattern: ^(Processing|Finished|Error|Canceled)$, example: Processing, x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Canceled`.)
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
queryId, regionGet a status of a trace query with the given id. When the query has been completed, use the [Trace Query Result] endpoint to get the result of the asynchronous query.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the executed query.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## `SELECT` examples - - - - -Get a status of a trace query with the given id. When the query has been completed, use the [Trace Query Result] endpoint to get the result of the asynchronous query. - -```sql -SELECT -queryRows, -status -FROM sumologic.tracing.tracequery_status -WHERE queryId = '{{ queryId }}' -- required -AND region = '{{ region }}' -- required -; -``` - - diff --git a/website/docs/services/tracing/traces/index.md b/website/docs/services/tracing/traces/index.md index fc4a669..36826f1 100644 --- a/website/docs/services/tracing/traces/index.md +++ b/website/docs/services/tracing/traces/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a traces resource. ## Overview - +
Nametraces
Name
TypeResource
Id
@@ -32,12 +33,12 @@ Creates, updates, deletes, gets or lists a traces resource. The following fields are returned by `SELECT` queries: - + Details of the trace with the given identifier. @@ -56,9 +57,14 @@ Details of the trace with the given identifier. Trace identifier. (example: 00000000000120CB) - + + string + The name of the operation given to the root span. (example: retrieveAccount) (wire: rootOperationName) + + + object - + (wire: criticalPathServiceBreakdownSummary) @@ -66,29 +72,24 @@ Details of the trace with the given identifier. Calculated trace metrics. - + string - The name of the operation given to the root span. (example: retrieveAccount) + Root resource on which the trace was started. Examples: `db.query`, `http.request`, `rpc.call`, `container` (example: http.request) (wire: rootResource) - + string - Root resource on which the trace was started. Examples: `db.query`, `http.request`, `rpc.call`, `container` (example: http.request) + Root service which started the trace. Examples: `user-service`, `authentication-service`, `payment-service`, `/shopping-cart` (example: user-service) (wire: rootService) - - string - Root service which started the trace. Examples: `user-service`, `authentication-service`, `payment-service`, `/shopping-cart` (example: user-service) - - - + object - + (wire: rootStatus) - + string (date-time) - Date and time the trace was started in [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2019-11-22T09:00:00Z) + Date and time the trace was started in [ISO 8601 / RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2019-11-22T09:00:00.000Z) (wire: startedAt) @@ -111,9 +112,9 @@ The following methods are available for this resource: - + - traceId, region + trace_id, region Get details of a trace with the given identifier. @@ -136,12 +137,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) - - + + string - Identifier of the trace to get the details. + Identifier of the trace to get the details. (wire: traceId) @@ -149,28 +150,28 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get details of a trace with the given identifier. ```sql SELECT id, -criticalPathServiceBreakdownSummary, +root_operation_name, +critical_path_service_breakdown_summary, metrics, -rootOperationName, -rootResource, -rootService, -rootStatus, -startedAt +root_resource, +root_service, +root_status, +started_at FROM sumologic.tracing.traces -WHERE traceId = '{{ traceId }}' -- required -AND region = '{{ region }}' -- required +WHERE trace_id = '{{ trace_id }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/tracing/traces_critical_path_breakdown_service/index.md b/website/docs/services/tracing/traces_critical_path_breakdown_service/index.md deleted file mode 100644 index 6cd6d5d..0000000 --- a/website/docs/services/tracing/traces_critical_path_breakdown_service/index.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: traces_critical_path_breakdown_service -hide_title: false -hide_table_of_contents: false -keywords: - - traces_critical_path_breakdown_service - - tracing - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a traces_critical_path_breakdown_service resource. - -## Overview - - - - -
Nametraces_critical_path_breakdown_service
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -List of elements representing the critical path service breakdown. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
arrayList of elements representing the critical path service breakdown.
integer (int64)Overall time in nanoseconds when no particular operation was in progress.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
traceId, regionGet a critical path breakdown by services of the spans contributing to the critical path of a trace with the given identifier.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringIdentifier of the trace.
- -## `SELECT` examples - - - - -Get a critical path breakdown by services of the spans contributing to the critical path of a trace with the given identifier. - -```sql -SELECT -elements, -idleTime -FROM sumologic.tracing.traces_critical_path_breakdown_service -WHERE traceId = '{{ traceId }}' -- required -AND region = '{{ region }}' -- required -; -``` - - diff --git a/website/docs/services/tracing/traces_exists/index.md b/website/docs/services/tracing/traces_exists/index.md deleted file mode 100644 index 8903fcb..0000000 --- a/website/docs/services/tracing/traces_exists/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: traces_exists -hide_title: false -hide_table_of_contents: false -keywords: - - traces_exists - - tracing - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a traces_exists resource. - -## Overview - - - - -
Nametraces_exists
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
traceId, regionCheck if the trace with the given identifier exists.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringIdentifier of the trace to check.
- -## Lifecycle Methods - - - - -Check if the trace with the given identifier exists. - -```sql -EXEC sumologic.tracing.traces_exists.traceExists -@traceId='{{ traceId }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/tracing/traces_spans/index.md b/website/docs/services/tracing/traces_spans/index.md deleted file mode 100644 index 5b7cc22..0000000 --- a/website/docs/services/tracing/traces_spans/index.md +++ /dev/null @@ -1,334 +0,0 @@ ---- -title: traces_spans -hide_title: false -hide_table_of_contents: false -keywords: - - traces_spans - - tracing - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a traces_spans resource. - -## Overview - - - - -
Nametraces_spans
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -Details of the span with the given identifier. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the span. (example: 00000000002317A9)
object
integer (int64)Number of nanoseconds the span lasted.
stringProduced error message (could be a stack trace, database error code, ..) (example: Exception in thread "local[9]" java.lang.OutOfMemoryError: Java heap space
at my.app.force.fields.SpaceShipForceField.main(SpaceShipForceField.java:17)
)
arrayEvents attached to this span.
objectFields attached to this span.
object
stringSpan kind describes the relationship between the Span, its parents, and its children in a Trace. Possible values: `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER`, `INTERNAL`. (pattern: ^(CLIENT|SERVER|PRODUCER|CONSUMER|INTERNAL)$, example: SERVER, x-pattern-message: Should be either `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER` or `INTERNAL`.)
arrayList of casually related spans.
arrayLogs attached to this span.
integer (int32)Number of span links in this span.
stringThe name of the operation given to the span. (example: retrieveAccount)
stringIdentifier of the parent span, if any. If the span has no parent it's considered a root span. (example: 000000000003C7BE)
stringName of the possible remote span's service. (example: external-service)
stringColor hex code assigned to the remote service. (example: #fa41c6)
stringDefines type of service. (pattern: ^(Db|HTTP|MQ|Web|Mixed|Unknown|Cpp|DotNET|Erlang|Go|Java|NodeJS|Php|Python|Ruby|WebJS|Swift|MSSQL|MySQL|Oracle|Db2|PostgreSQL|Redshift|Hive|Cloudscape|HSQLDB|Progress|MaxDB|HANADB|Ingres|FirstSQL|EnterpriseDB|Cache|Adabas|Firebird|ApacheDerby|FileMaker|Informix|InstantDB|InterBase|MariaDB|Netezza|PervasivePSQL|PointBase|SQLite|Sybase|Teradata|Vertica|H2|ColdFusion|Cassandra|HBase|MongoDB|Redis|Couchbase|CouchDB|CosmosDB|DynamoDB|Neo4j|Geode|Elasticsearch|Memcached|CockroachDB)$, example: HTTP, x-pattern-message: Should be either `Db`, `HTTP`, `MQ`, `Web`, `Mixed`, `Unknown`, `Cpp`, `DotNET`, `Erlang`, `Go`, `Java`, `NodeJS`, `Php`, `Python`, `Ruby`, `WebJS`, `Swift`, `MSSQL`, `MySQL`, `Oracle`, `Db2`, `PostgreSQL`, `Redshift`, `Hive`, `Cloudscape`, `HSQLDB`, `Progress`, `MaxDB`, `HANADB`, `Ingres`, `FirstSQL`, `EnterpriseDB`, `Cache`, `Adabas`, `Firebird`, `ApacheDerby`, `FileMaker`, `Informix`, `InstantDB`, `InterBase`, `MariaDB`, `Netezza`, `PervasivePSQL`, `PointBase`, `SQLite`, `Sybase`, `Teradata`, `Vertica`, `H2`, `ColdFusion`, `Cassandra`, `HBase`, `MongoDB`, `Redis`, `Couchbase`, `CouchDB`, `CosmosDB`, `DynamoDB`, `Neo4j`, `Geode`, `Elasticsearch`, `Memcached` or `CockroachDB`)
stringThe name of the resource attached to the span. (example: http.request)
stringThe name of the service this span is part of. (example: user-service)
stringColor hex code assigned to the service. (example: #fa41c6)
stringDefines type of service. (pattern: ^(Db|HTTP|MQ|Web|Mixed|Unknown|Cpp|DotNET|Erlang|Go|Java|NodeJS|Php|Python|Ruby|WebJS|Swift|MSSQL|MySQL|Oracle|Db2|PostgreSQL|Redshift|Hive|Cloudscape|HSQLDB|Progress|MaxDB|HANADB|Ingres|FirstSQL|EnterpriseDB|Cache|Adabas|Firebird|ApacheDerby|FileMaker|Informix|InstantDB|InterBase|MariaDB|Netezza|PervasivePSQL|PointBase|SQLite|Sybase|Teradata|Vertica|H2|ColdFusion|Cassandra|HBase|MongoDB|Redis|Couchbase|CouchDB|CosmosDB|DynamoDB|Neo4j|Geode|Elasticsearch|Memcached|CockroachDB)$, example: HTTP, x-pattern-message: Should be either `Db`, `HTTP`, `MQ`, `Web`, `Mixed`, `Unknown`, `Cpp`, `DotNET`, `Erlang`, `Go`, `Java`, `NodeJS`, `Php`, `Python`, `Ruby`, `WebJS`, `Swift`, `MSSQL`, `MySQL`, `Oracle`, `Db2`, `PostgreSQL`, `Redshift`, `Hive`, `Cloudscape`, `HSQLDB`, `Progress`, `MaxDB`, `HANADB`, `Ingres`, `FirstSQL`, `EnterpriseDB`, `Cache`, `Adabas`, `Firebird`, `ApacheDerby`, `FileMaker`, `Informix`, `InstantDB`, `InterBase`, `MariaDB`, `Netezza`, `PervasivePSQL`, `PointBase`, `SQLite`, `Sybase`, `Teradata`, `Vertica`, `H2`, `ColdFusion`, `Cassandra`, `HBase`, `MongoDB`, `Redis`, `Couchbase`, `CouchDB`, `CosmosDB`, `DynamoDB`, `Neo4j`, `Geode`, `Elasticsearch`, `Memcached` or `CockroachDB`)
string (date-time)Date and time the span was started in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2019-11-22T09:00:00Z)
object
-
- - -List of spans for the given trace. - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringNext continuation token. (example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI)
arrayList of trace spans.
integer (int64)Total count of spans for this trace.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
traceId, spanId, regionGet details of a span with the given identifier.
traceId, regionlimit, tokenGet a list of spans for the given trace. The response is paginated with a default limit of 100 spans per page.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
stringIdentifier of the span to get the details.
stringIdentifier of the trace to get the spans.
integer (int32)The maximum number of results to fetch.
stringContinuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left.
- -## `SELECT` examples - - - - -Get details of a span with the given identifier. - -```sql -SELECT -id, -criticalPathContribution, -duration, -errorMessage, -events, -fields, -info, -kind, -links, -logs, -numberOfLinks, -operationName, -parentId, -remoteService, -remoteServiceColor, -remoteServiceType, -resource, -service, -serviceColor, -serviceType, -startedAt, -status -FROM sumologic.tracing.traces_spans -WHERE traceId = '{{ traceId }}' -- required -AND spanId = '{{ spanId }}' -- required -AND region = '{{ region }}' -- required -; -``` - - - -Get a list of spans for the given trace. The response is paginated with a default limit of 100 spans per page. - -```sql -SELECT -next, -spanPage, -totalCount -FROM sumologic.tracing.traces_spans -WHERE traceId = '{{ traceId }}' -- required -AND region = '{{ region }}' -- required -AND limit = '{{ limit }}' -AND token = '{{ token }}' -; -``` - - diff --git a/website/docs/services/transformation_rules/transformation_rules/index.md b/website/docs/services/transformation_rules/transformation_rules/index.md index 8149926..74d4079 100644 --- a/website/docs/services/transformation_rules/transformation_rules/index.md +++ b/website/docs/services/transformation_rules/transformation_rules/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a transformation_rules res ## Overview - +
Nametransformation_rules
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a transformation_rules res The following fields are returned by `SELECT` queries: - + Transformation rule object that was requested. @@ -57,14 +58,14 @@ Transformation rule object that was requested. Unique identifier for the transformation rule. - + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) - + string - Identifier of the user who created the resource. (example: 0000000006743FDD) + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) @@ -72,24 +73,24 @@ Transformation rule object that was requested. True if the rule is enabled. - + string (date-time) - Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. (example: 0000000006743FE8) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) - + object - The properties that define a transformation rule. + The properties that define a transformation rule. (wire: ruleDefinition) - + List of transformation rules. @@ -103,14 +104,39 @@ List of transformation rules. - - array - List of transformation rules. + + string + Unique identifier for the transformation rule. + + + + string (date-time) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) + + + + string + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) + + + + boolean + True if the rule is enabled. + + + + string (date-time) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Next continuation token. (example: aGNzTmZBN1ZZWFk9) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) + + + + object + The properties that define a transformation rule. (wire: ruleDefinition) @@ -133,39 +159,39 @@ The following methods are available for this resource: - + id, region Get a transformation rule with the given identifier. - + region limit, token Get a list of transformation rules in the organization. The response is paginated with a default limit of 100 rules per page. - + - region, data__enabled, data__ruleDefinition + region, enabled, rule_definition Create a new transformation rule. - - - id, region + + + id, region, enabled, rule_definition - Delete a transformation rule with the given identifier. + Update an existing transformation rule. All properties specified in the request are replaced. Missing properties will remain the same. - - - id, region, enabled, ruleDefinition + + + id, region - Update an existing transformation rule. All properties specified in the request are replaced. Missing properties will remain the same. + Delete a transformation rule with the given identifier. @@ -186,12 +212,12 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the transformation rule to update. + Identifier of the transformation rule to delete. string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) @@ -209,41 +235,46 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a transformation rule with the given identifier. ```sql SELECT id, -createdAt, -createdBy, +created_at, +created_by, enabled, -modifiedAt, -modifiedBy, -ruleDefinition +modified_at, +modified_by, +rule_definition FROM sumologic.transformation_rules.transformation_rules WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + Get a list of transformation rules in the organization. The response is paginated with a default limit of 100 rules per page. ```sql SELECT -data, -next +id, +created_at, +created_by, +enabled, +modified_at, +modified_by, +rule_definition FROM sumologic.transformation_rules.transformation_rules -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' ; @@ -255,102 +286,116 @@ AND token = '{{ token }}' ## `INSERT` examples - + Create a new transformation rule. ```sql INSERT INTO sumologic.transformation_rules.transformation_rules ( -data__ruleDefinition, -data__enabled, +rule_definition, +enabled, region ) SELECT -'{{ ruleDefinition }}' /* required */, +'{{ rule_definition }}' /* required */, {{ enabled }} /* required */, '{{ region }}' RETURNING id, -createdAt, -createdBy, +created_at, +created_by, enabled, -modifiedAt, -modifiedBy, -ruleDefinition +modified_at, +modified_by, +rule_definition ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: transformation_rules props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the transformation_rules resource. - - name: ruleDefinition - value: object + - name: rule_definition description: | The properties that define a transformation rule. + value: + name: "{{ name }}" + selector: "{{ selector }}" + dimensionTransformations: + - transformationType: "{{ transformationType }}" + transformedMetricsRetention: {{ transformedMetricsRetention }} + retention: {{ retention }} - name: enabled - value: boolean + value: {{ enabled }} description: | True if the rule is enabled. -``` +`} + -## `DELETE` examples +## `UPDATE` examples - + -Delete a transformation rule with the given identifier. +Update an existing transformation rule. All properties specified in the request are replaced. Missing properties will remain the same. ```sql -DELETE FROM sumologic.transformation_rules.transformation_rules -WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required -; +UPDATE sumologic.transformation_rules.transformation_rules +SET +rule_definition = '{{ rule_definition }}', +enabled = {{ enabled }} +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND enabled = {{ enabled }} --required +AND rule_definition = '{{ rule_definition }}' --required +RETURNING +id, +created_at, +created_by, +enabled, +modified_at, +modified_by, +rule_definition; ``` -## Lifecycle Methods +## `DELETE` examples - + -Update an existing transformation rule. All properties specified in the request are replaced. Missing properties will remain the same. +Delete a transformation rule with the given identifier. ```sql -EXEC sumologic.transformation_rules.transformation_rules.updateTransformationRule -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"ruleDefinition": "{{ ruleDefinition }}", -"enabled": {{ enabled }} -}' +DELETE FROM sumologic.transformation_rules.transformation_rules +WHERE id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set ; ``` diff --git a/website/docs/services/users/email_request_change/index.md b/website/docs/services/users/email_request_change/index.md deleted file mode 100644 index 23853ef..0000000 --- a/website/docs/services/users/email_request_change/index.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: email_request_change -hide_title: false -hide_table_of_contents: false -keywords: - - email_request_change - - users - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an email_request_change resource. - -## Overview - - - - -
Nameemail_request_change
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, region, emailAn email with an activation link is sent to the user’s new email address. The user must click the link in the email within seven days to complete the email address change, or the link will expire.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the user to change email address.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -An email with an activation link is sent to the user’s new email address. The user must click the link in the email within seven days to complete the email address change, or the link will expire. - -```sql -EXEC sumologic.users.email_request_change.requestChangeEmail -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"email": "{{ email }}" -}' -; -``` - - diff --git a/website/docs/services/users/index.md b/website/docs/services/users/index.md index cfe7d1b..deb0618 100644 --- a/website/docs/services/users/index.md +++ b/website/docs/services/users/index.md @@ -18,19 +18,16 @@ users service documentation. :::info[Service Summary] -total resources: __5__ +total resources: __1__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/users/mfa_disable/index.md b/website/docs/services/users/mfa_disable/index.md deleted file mode 100644 index c25f846..0000000 --- a/website/docs/services/users/mfa_disable/index.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: mfa_disable -hide_title: false -hide_table_of_contents: false -keywords: - - mfa_disable - - users - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a mfa_disable resource. - -## Overview - - - - -
Namemfa_disable
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, region, email, passwordDisable multi-factor authentication for given user.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the user to disable MFA for.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Disable multi-factor authentication for given user. - -```sql -EXEC sumologic.users.mfa_disable.disableMfa -@id='{{ id }}' --required, -@region='{{ region }}' --required -@@json= -'{ -"email": "{{ email }}", -"password": "{{ password }}" -}' -; -``` - - diff --git a/website/docs/services/users/password_reset/index.md b/website/docs/services/users/password_reset/index.md deleted file mode 100644 index 96bb138..0000000 --- a/website/docs/services/users/password_reset/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: password_reset -hide_title: false -hide_table_of_contents: false -keywords: - - password_reset - - users - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a password_reset resource. - -## Overview - - - - -
Namepassword_reset
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionReset a user's password.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringIdentifier of the user to reset password.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Reset a user's password. - -```sql -EXEC sumologic.users.password_reset.resetPassword -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/users/unlock/index.md b/website/docs/services/users/unlock/index.md deleted file mode 100644 index b170d4b..0000000 --- a/website/docs/services/users/unlock/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: unlock -hide_title: false -hide_table_of_contents: false -keywords: - - unlock - - users - - sumologic - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage sumologic resources using SQL -custom_edit_url: null -image: /img/stackql-sumologic-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an unlock resource. - -## Overview - - - - -
Nameunlock
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - -`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. - - -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
id, regionUnlock another user's account.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe id of the user that needs to be unlocked.
stringSumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2)
- -## Lifecycle Methods - - - - -Unlock another user's account. - -```sql -EXEC sumologic.users.unlock.unlockUser -@id='{{ id }}' --required, -@region='{{ region }}' --required -; -``` - - diff --git a/website/docs/services/users/users/index.md b/website/docs/services/users/users/index.md index 582ff28..39aa617 100644 --- a/website/docs/services/users/users/index.md +++ b/website/docs/services/users/users/index.md @@ -15,6 +15,7 @@ image: /img/stackql-sumologic-provider-featured-image.png --- import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -22,7 +23,7 @@ Creates, updates, deletes, gets or lists a users resource. ## Overview - +
Nameusers
Name
TypeResource
Id
@@ -32,13 +33,13 @@ Creates, updates, deletes, gets or lists a users resource. The following fields are returned by `SELECT` queries: - + User object that was requested. @@ -57,14 +58,24 @@ User object that was requested. Unique identifier for the user. (example: 000000000FE20FE2) - + + string + First name of the user. (example: John) (wire: firstName) + + + + string + Last name of the user. (example: Doe) (wire: lastName) + + + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) - + string - Identifier of the user who created the resource. (example: 0000000006743FDD) + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) @@ -72,54 +83,44 @@ User object that was requested. Email address of the user. (example: johndoe@acme.com) - - string - First name of the user. (example: John) - - - + boolean - True if the user is active. + True if the user is active. (wire: isActive) - + boolean - This has the value `true` if the user's account has been locked. If a user tries to log into their account several times and fails, his or her account will be locked for security reasons. + This has the value `true` if the user's account has been locked. If a user tries to log into their account several times and fails, his or her account will be locked for security reasons. (wire: isLocked) - + boolean - True if multi factor authentication is enabled for the user. + True if multi factor authentication is enabled for the user. (wire: isMfaEnabled) - + string (date-time) - Timestamp of the last login for the user in UTC. Will be null if the user has never logged in. - - - - string - Last name of the user. (example: Doe) + Timestamp of the last login for the user in UTC. Will be null if the user has never logged in. (wire: lastLoginTimestamp) - + string (date-time) - Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. (example: 0000000006743FE8) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) - + array - List of roleIds associated with the user. + List of roleIds associated with the user. (wire: roleIds) - + A paginated list of users in the organization. @@ -138,14 +139,24 @@ A paginated list of users in the organization. Unique identifier for the user. (example: 000000000FE20FE2) - + + string + First name of the user. (example: John) (wire: firstName) + + + + string + Last name of the user. (example: Doe) (wire: lastName) + + + string (date-time) - Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00Z) + Creation timestamp in UTC in [RFC3339](https:​//tools.ietf.org/html/rfc3339) format. (example: 2018-10-16T09:10:00.000Z) (wire: createdAt) - + string - Identifier of the user who created the resource. (example: 0000000006743FDD) + Identifier of the user who created the resource. (example: 0000000006743FDD) (wire: createdBy) @@ -153,49 +164,39 @@ A paginated list of users in the organization. Email address of the user. (example: johndoe@acme.com) - - string - First name of the user. (example: John) - - - + boolean - True if the user is active. + True if the user is active. (wire: isActive) - + boolean - This has the value `true` if the user's account has been locked. If a user tries to log into their account several times and fails, his or her account will be locked for security reasons. + This has the value `true` if the user's account has been locked. If a user tries to log into their account several times and fails, his or her account will be locked for security reasons. (wire: isLocked) - + boolean - True if multi factor authentication is enabled for the user. + True if multi factor authentication is enabled for the user. (wire: isMfaEnabled) - + string (date-time) - Timestamp of the last login for the user in UTC. Will be null if the user has never logged in. - - - - string - Last name of the user. (example: Doe) + Timestamp of the last login for the user in UTC. Will be null if the user has never logged in. (wire: lastLoginTimestamp) - + string (date-time) - Last modification timestamp in UTC. (example: 2018-10-16T09:10:00Z) + Last modification timestamp in UTC. (example: 2018-10-16T09:10:00.000Z) (wire: modifiedAt) - + string - Identifier of the user who last modified the resource. (example: 0000000006743FE8) + Identifier of the user who last modified the resource. (example: 0000000006743FE8) (wire: modifiedBy) - + array - List of roleIds associated with the user. + List of roleIds associated with the user. (wire: roleIds) @@ -218,39 +219,74 @@ The following methods are available for this resource: - + id, region Get a user with the given identifier from the organization. - + region - limit, token, sortBy, email + limit, token, sort_by, email, include_service_accounts Get a list of all users in the organization. The response is paginated with a default limit of 100 users per page. - + - region, data__email, data__firstName, data__lastName, data__roleIds + region, email, first_name, last_name, role_ids Create a new user in the organization. - + + + id, region, first_name, last_name + + Update an existing user in the organization. + + + id, region - transferTo, deleteContent + transfer_to, delete_content Delete a user with the given identifier from the organization and transfer their content to the user with the identifier specified in "transferTo". - + - id, region, firstName, isActive, lastName, roleIds + id, region, email - Update an existing user in the organization. + An email with an activation link is sent to the user’s new email address. The user must click the link in the email within seven days to complete the email address change, or the link will expire. + + + + + id, region + + Reset a user's password. + + + + + id, region + + Unlock another user's account. + + + + + id, region, email, password + + Disable multi-factor authentication for given user. + + + + + id, region + + Resend the welcome email to a user. @@ -271,42 +307,47 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string - Identifier of the user to update. + Identifier of the user to resend the welcome email. string - SumoLogic region (enum: [us2, au, ca, de, eu, fed, in, jp], default: us2) + Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. (enum: [au, ca, ch, de, eu, fed, in, jp, kr, us1, us2], default: us2, x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT) - - + + boolean - Whether to delete content from the deleted user or not.
**Warning:** If `deleteContent` is set to `true`, all of the content for the user being deleted is permanently deleted and cannot be recovered. + Whether to delete content from the deleted user or not. <br /> **Warning:** If `deleteContent` is set to `true`, all of the content for the user being deleted is permanently deleted and cannot be recovered. (wire: deleteContent) string Find user with the given email address. + + + boolean + Include service accounts while listing users within the organization. (wire: includeServiceAccounts) + integer (int32) Limit the number of users returned in the response. The number of users returned may be less than the `limit`. - - + + string - Sort the list of users by the `firstName`, `lastName`, or `email` field. + Sort the list of users by the `firstName`, `lastName`, or `email` field. (wire: sortBy) string Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. - - + + string - Identifier of the user to receive the transfer of content from the deleted user.
**Note:** If `deleteContent` is not set to `true`, and no user identifier is specified in `transferTo`, content from the deleted user is transferred to the executing user. + Identifier of the user to receive the transfer of content from the deleted user. <br /> **Note:** If `deleteContent` is not set to `true`, and no user identifier is specified in `transferTo`, content from the deleted user is transferred to the executing user. (wire: transferTo) @@ -314,62 +355,63 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# ## `SELECT` examples - + Get a user with the given identifier from the organization. ```sql SELECT id, -createdAt, -createdBy, +first_name, +last_name, +created_at, +created_by, email, -firstName, -isActive, -isLocked, -isMfaEnabled, -lastLoginTimestamp, -lastName, -modifiedAt, -modifiedBy, -roleIds +is_active, +is_locked, +is_mfa_enabled, +last_login_timestamp, +modified_at, +modified_by, +role_ids FROM sumologic.users.users WHERE id = '{{ id }}' -- required -AND region = '{{ region }}' -- required +AND region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set ; ``` - + Get a list of all users in the organization. The response is paginated with a default limit of 100 users per page. ```sql SELECT id, -createdAt, -createdBy, +first_name, +last_name, +created_at, +created_by, email, -firstName, -isActive, -isLocked, -isMfaEnabled, -lastLoginTimestamp, -lastName, -modifiedAt, -modifiedBy, -roleIds +is_active, +is_locked, +is_mfa_enabled, +last_login_timestamp, +modified_at, +modified_by, +role_ids FROM sumologic.users.users -WHERE region = '{{ region }}' -- required +WHERE region = '{{ region }}' -- required unless SUMOLOGIC_ENVIRONMENT is set AND limit = '{{ limit }}' AND token = '{{ token }}' -AND sortBy = '{{ sortBy }}' +AND sort_by = '{{ sort_by }}' AND email = '{{ email }}' +AND include_service_accounts = '{{ include_service_accounts }}' ; ``` @@ -379,72 +421,116 @@ AND email = '{{ email }}' ## `INSERT` examples - + Create a new user in the organization. ```sql INSERT INTO sumologic.users.users ( -data__firstName, -data__lastName, -data__email, -data__roleIds, +first_name, +last_name, +email, +role_ids, region ) SELECT -'{{ firstName }}' /* required */, -'{{ lastName }}' /* required */, +'{{ first_name }}' /* required */, +'{{ last_name }}' /* required */, '{{ email }}' /* required */, -'{{ roleIds }}' /* required */, +'{{ role_ids }}' /* required */, '{{ region }}' RETURNING id, -createdAt, -createdBy, +first_name, +last_name, +created_at, +created_by, email, -firstName, -isActive, -isLocked, -isMfaEnabled, -lastLoginTimestamp, -lastName, -modifiedAt, -modifiedBy, -roleIds +is_active, +is_locked, +is_mfa_enabled, +last_login_timestamp, +modified_at, +modified_by, +role_ids ; ``` -```yaml -# Description fields are for documentation purposes +{`# Description fields are for documentation purposes - name: users props: - name: region - value: string + value: "{{ region }}" description: Required parameter for the users resource. - - name: firstName - value: string + - name: first_name + value: "{{ first_name }}" description: | First name of the user. - - name: lastName - value: string + - name: last_name + value: "{{ last_name }}" description: | Last name of the user. - name: email - value: string + value: "{{ email }}" description: | Email address of the user. - - name: roleIds - value: array + - name: role_ids + value: + - "{{ role_ids }}" description: | List of roleIds associated with the user. +`} + + + + + +## `UPDATE` examples + + + + +Update an existing user in the organization. + +```sql +UPDATE sumologic.users.users +SET +first_name = '{{ first_name }}', +last_name = '{{ last_name }}', +is_active = {{ is_active }}, +role_ids = '{{ role_ids }}' +WHERE +id = '{{ id }}' --required +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND first_name = '{{ first_name }}' --required +AND last_name = '{{ last_name }}' --required +RETURNING +id, +first_name, +last_name, +created_at, +created_by, +email, +is_active, +is_locked, +is_mfa_enabled, +last_login_timestamp, +modified_at, +modified_by, +role_ids; ``` @@ -453,21 +539,21 @@ roleIds ## `DELETE` examples - + Delete a user with the given identifier from the organization and transfer their content to the user with the identifier specified in "transferTo". ```sql DELETE FROM sumologic.users.users WHERE id = '{{ id }}' --required -AND region = '{{ region }}' --required -AND transferTo = '{{ transferTo }}' -AND deleteContent = '{{ deleteContent }}' +AND region = '{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +AND transfer_to = '{{ transfer_to }}' +AND delete_content = '{{ delete_content }}' ; ``` @@ -476,28 +562,80 @@ AND deleteContent = '{{ deleteContent }}' ## Lifecycle Methods +EXEC variables use wire (API) names. + - + -Update an existing user in the organization. +An email with an activation link is sent to the user’s new email address. The user must click the link in the email within seven days to complete the email address change, or the link will expire. + +```sql +EXEC sumologic.users.users.request_change_email +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +@@json= +'{ +"email": "{{ email }}" +}' +; +``` + + + +Reset a user's password. ```sql -EXEC sumologic.users.users.updateUser +EXEC sumologic.users.users.reset_password @id='{{ id }}' --required, -@region='{{ region }}' --required +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Unlock another user's account. + +```sql +EXEC sumologic.users.users.unlock +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + + + +Disable multi-factor authentication for given user. + +```sql +EXEC sumologic.users.users.disable_mfa +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set @@json= '{ -"firstName": "{{ firstName }}", -"lastName": "{{ lastName }}", -"isActive": {{ isActive }}, -"roleIds": "{{ roleIds }}" +"email": "{{ email }}", +"password": "{{ password }}" }' ; ``` + + +Resend the welcome email to a user. + +```sql +EXEC sumologic.users.users.resend_welcome_email +@id='{{ id }}' --required, +@region='{{ region }}' --required unless SUMOLOGIC_ENVIRONMENT is set +; +``` + diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index e2f0510..6b17140 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -1,232 +1,48 @@ -// @ts-check -// `@type` JSDoc annotations allow editor autocompletion and type checking -// (when paired with `@ts-check`). -// There are various equivalent ways to declare your Docusaurus config. -// See: https://docusaurus.io/docs/api/docusaurus-config - import {themes as prismThemes} from 'prism-react-renderer'; - -// Provider configuration - change these for different providers -const providerName = "sumologic"; -const providerTitle = "Sumo Logic"; - -const providerDropDownListItems = [ - { - label: 'AWS', - to: '/providers/aws', - }, - { - label: 'Azure', - to: '/providers/azure', - }, - { - label: 'Google', - to: '/providers/google', - }, - { - label: 'Databricks', - to: '/providers/databricks', - }, - { - label: 'Snowflake', - to: '/providers/snowflake', - }, - { - label: 'Confluent', - to: '/providers/confluent', - }, - { - label: 'Okta', - to: '/providers/okta', - }, - { - label: 'GitHub', - to: '/providers/github', - }, - { - label: 'OpenAI', - to: '/providers/openai', - }, - { - label: '... More', - to: '/providers', - }, -]; - -const footerStackQLItems = [ - { - label: 'Documentation', - to: '/stackqldocs', - }, - { - label: 'Install', - to: '/install', - }, - { - label: 'Contact us', - to: '/contact-us', - }, -]; - -const footerMoreItems = [ - { - label: 'Providers', - to: '/providers', - }, - { - label: 'stackql-deploy', - to: '/stackql-deploy', - }, - { - label: 'Blog', - to: '/blog', - }, - { - label: 'Tutorials', - to: '/tutorials', - }, -]; - -// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) - -/** @type {import('@docusaurus/types').Config} */ -const config = { - title: `StackQL ${providerTitle} Provider`, - tagline: `Query and Provision ${providerTitle} Resources using StackQL`, - favicon: 'img/favicon.ico', - staticDirectories: ['static'], - // Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future - future: { - v4: true, // Improve compatibility with the upcoming Docusaurus v4 - }, - - // Set the production url of your site here - url: `https://${providerName}-provider.stackql.io`, - // Set the // pathname under which your site is served - // For GitHub pages deployment, it is often '//' - baseUrl: '/', - - // GitHub pages deployment config. - // If you aren't using GitHub pages, you don't need these. - organizationName: 'stackql', // Usually your GitHub org/user name. - projectName: `stackql-provider-${providerName}`, // Usually your repo name. - - onBrokenLinks: 'warn', - onBrokenMarkdownLinks: 'warn', - - // Even if you don't use internationalization, you can use this field to set - // useful metadata like html lang. For example, if your site is Chinese, you - // may want to replace "en" with "zh-Hans". - i18n: { - defaultLocale: 'en', - locales: ['en'], - }, - - presets: [ - [ - 'classic', - /** @type {import('@docusaurus/preset-classic').Options} */ - ({ - docs: { - sidebarPath: './sidebars.js', - // Please change this to your repo. - // Remove this to remove the "edit this page" links. - // editUrl: 'https://github.com/stackql/stackql-deploy/tree/main/website/', - routeBasePath: '/', // Set the docs to be the root of the site - }, - theme: { - customCss: './src/css/custom.css', - }, - }), - ], - ], - - themeConfig: - /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ - ({ - // Replace with your project's social card - image: 'img/stackql-cover.png', - navbar: { - logo: { - alt: 'StackQL Registry', - href: '/providers', - src: 'img/stackql-registry-logo.svg', - srcDark: 'img/stackql-registry-logo-white.svg', - }, - items: [ - { - to: '/install', - position: 'left', - label: 'Install', - }, - { - to: '/stackql-deploy', - position: 'left', - label: 'stackql-deploy', - }, - { - to: '/providers', - type: 'dropdown', - label: 'Providers', - position: 'left', - items: providerDropDownListItems, - }, - { - type: 'dropdown', - label: 'More', - position: 'left', - items: [ - { - to: '/stackqldocs', - label: 'StackQL Docs', - }, - { - to: '/blog', - label: 'Blog', - }, - { - to: '/tutorials', - label: 'Tutorials', - }, - ], - }, - { - href: 'https://github.com/stackql/stackql', - position: 'right', - className: 'header-github-link', - 'aria-label': 'GitHub repository', - }, - ], - }, - footer: { - style: 'dark', - logo: { - alt: 'StackQL', - href: '/providers', - src: 'img/stackql-registry-logo.svg', - srcDark: 'img/stackql-registry-logo-white.svg', - }, - links: [ - { - title: 'StackQL', - items: footerStackQLItems, - }, - { - title: 'More', - items: footerMoreItems, - }, - ], - copyright: `© ${new Date().getFullYear()} StackQL Studios`, - }, - colorMode: { - // using user system preferences, instead of the hardcoded defaultMode - respectPrefersColorScheme: true, - }, - prism: { - theme: prismThemes.nightOwl, - darkTheme: prismThemes.dracula, - }, - }), +import { createConfig } from './.shared-config/index.js'; +import { providerName, providerTitle } from './provider.js'; + +const config = createConfig({ + providerName, + providerTitle, + prismThemes, + overrides: { + // Docusaurus Faster (rspack + swc, via @docusaurus/faster) - kept for + // build speed and consistency with the other provider microsites. + future: { + v4: true, + faster: true, + }, + }, +}); + +// This provider's website lives at website/ within the canonical +// stackql-registry/stackql-provider-sumologic repo, so the "Edit this page" +// links point at that subdirectory (the shared config default omits the +// website/ path). +config.projectName = 'stackql-provider-sumologic'; +config.presets[0][1].docs.editUrl = + 'https://github.com/stackql-registry/stackql-provider-sumologic/edit/main/website/'; + +// Use the locally vendored registry-branded logos (STACKQL>> | REGISTRY) +// instead of the shared config's hotlinked main-site wordmark - +// self-contained assets, no cross-origin fetch. global.css swaps in the +// -mobile variants below 996px. +const registryLogo = { + alt: 'StackQL', + href: '/', + src: 'img/stackql-registry-logo.svg', + srcDark: 'img/stackql-registry-logo-white.svg', }; +config.themeConfig.navbar.logo = { ...registryLogo }; +config.themeConfig.footer.logo = { ...registryLogo }; + +// Date-stamp every doc page ("Last updated on ..."), matching the main +// stackql.io site. The shared config ships showLastUpdateTime: false, and +// .shared-config is wiped and re-cloned on every build (vendor-config), so +// the flip must live here post-createConfig. Timestamps come from git +// history; the docs tree is committed after every regen, so pages stamp +// with their last regeneration date. +config.presets[0][1].docs.showLastUpdateTime = true; export default config; diff --git a/website/package.json b/website/package.json index 8f57f6c..8e860a9 100644 --- a/website/package.json +++ b/website/package.json @@ -4,6 +4,10 @@ "private": true, "scripts": { "docusaurus": "docusaurus", + "vendor-config": "rimraf .shared-config && git clone --depth 1 --branch main https://github.com/stackql/docusaurus-config.git .shared-config", + "prestart": "yarn vendor-config", + "prebuild": "yarn vendor-config", + "sanitize-docs": "node scripts/sanitize-docs.mjs", "start": "docusaurus start", "build": "docusaurus build", "swizzle": "docusaurus swizzle", @@ -14,8 +18,11 @@ "write-heading-ids": "docusaurus write-heading-ids" }, "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/preset-classic": "3.8.1", + "@docusaurus/core": "^3.10.2", + "@docusaurus/faster": "^3.10.2", + "@docusaurus/plugin-ideal-image": "^3.10.2", + "@docusaurus/preset-classic": "^3.10.2", + "@docusaurus/theme-mermaid": "^3.10.2", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", "@iconify/react": "^6.0.0", @@ -29,8 +36,25 @@ "react-dom": "^19.0.0" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/types": "3.8.1" + "@docusaurus/module-type-aliases": "^3.10.2", + "@docusaurus/types": "^3.10.2", + "rimraf": "^6.0.1" + }, + "overrides": { + "rimraf": "^6.0.1", + "glob": "^13.0.0", + "memfs": "^4.17.0", + "uuid": "^11.0.0", + "@ungap/structured-clone": "^1.3.1", + "sharp": "^0.33.0" + }, + "resolutions": { + "rimraf": "^6.0.1", + "glob": "^13.0.0", + "memfs": "^4.17.0", + "uuid": "^11.0.0", + "@ungap/structured-clone": "^1.3.1", + "sharp": "^0.33.0" }, "browserslist": { "production": [ @@ -45,7 +69,7 @@ ] }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "license": "MIT" } diff --git a/website/provider.js b/website/provider.js new file mode 100644 index 0000000..d7ec092 --- /dev/null +++ b/website/provider.js @@ -0,0 +1,2 @@ +export const providerName = 'sumologic'; +export const providerTitle = 'Sumo Logic'; diff --git a/website/scripts/sanitize-docs.mjs b/website/scripts/sanitize-docs.mjs new file mode 100644 index 0000000..dfdc2ae --- /dev/null +++ b/website/scripts/sanitize-docs.mjs @@ -0,0 +1,210 @@ +#!/usr/bin/env node +// Post-docgen sanitizer for the generated provider docs. +// +// Vendor descriptions can carry literal angle-bracket placeholders, stray +// unpaired HTML and regex fragments. MDX v3 parses any raw as JSX and +// fails the build on the first mismatch; braces ({...}) parse as JSX +// expressions with the same failure mode. +// +// The doc generator's own structure is line-shaped: one `...` +// cell per line, and description text ONLY ever appears as td inner +// content. So the deterministic fix: inside every description cell, +// escape ALL angle brackets and braces (protecting the stage-1 +// backtick-wrapped `` tokens as spans); leave +// every other line - tables, Tabs/TabItem/CodeBlock, CopyableCode, +// index link lists - byte-for-byte untouched. +// +// Run after `npm run generate-docs`, before building the website. + +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const docsDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', 'docs'); + +const TD_LINE = /^(\s*)(.*)(<\/td>\s*)$/; +const LINK_TOKEN = '(?:]*\\/>|[^<>]*<\\/code>)<\\/a>'; +const LINK_TOKEN_CELL = new RegExp(`^${LINK_TOKEN}(?:,\\s*${LINK_TOKEN})*$`); +const BACKTICKED = /`<([A-Za-z][A-Za-z0-9_.:-]*)>`/g; +// Control-char sentinels: cannot occur in generated markdown. +const OPEN = ''; +const CLOSE = ''; + +let filesChanged = 0; +let cellsEscaped = 0; +// --------------------------------------------------------------------------- +// sumologic-specific: region scope annotations +// +// region is an OpenAPI server variable resolved from SUMOLOGIC_ENVIRONMENT +// (x-stackQL-envVar) with a default of us2. docgen merges server variables +// into every method's required parameters and example WHERE clauses, which +// overstates the requirement once the variable is set (and a SELECT falls +// back to us2 regardless). Every example +// region = '{{ region }}' -- required / @region='{{ region }}' --required +// is annotated "required unless SUMOLOGIC_ENVIRONMENT is set". +// --------------------------------------------------------------------------- +const REGION_REQUIRED_SQL = /(region\s*=\s*'\{\{ region \}\}'\s*--\s*required)(?!\s+unless)/; +const REGION_REQUIRED_EXEC = /(@region='\{\{ region \}\}'\s*--required)(?!\s+unless)/; +let regionAnnotated = 0; + +function annotateRegionScope(lines) { + let changed = false; + for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + if (REGION_REQUIRED_SQL.test(line)) { + lines[i] = line.replace(REGION_REQUIRED_SQL, '$1 unless SUMOLOGIC_ENVIRONMENT is set'); + changed = true; regionAnnotated++; + } else if (REGION_REQUIRED_EXEC.test(line)) { + lines[i] = line.replace(REGION_REQUIRED_EXEC, '$1 unless SUMOLOGIC_ENVIRONMENT is set'); + changed = true; regionAnnotated++; + } + } + return changed; +} + +function escapeDescription(inner) { + let out = inner.replace(BACKTICKED, (m, name) => OPEN + name + CLOSE); + out = out + .replace(//g, '>') + .replace(/\{/g, '{') + .replace(/\}/g, '}') + // Regex fragments in descriptions ("s3://([^/]+)(/.*)?") read as + // markdown links ("[...](...)") and crash the link resolver. + .replace(/\[/g, '[') + .replace(/\]/g, ']') + // GFM autolinks bare "scheme://..." literals on the DECODED text + // tree (entity escapes cannot evade it) and Docusaurus crashes on + // regex-shaped ones ("https://.+"). A zero-width space inside "://" + // is invisible in rendering but breaks the autolink prefix match. + .replace(/:\/\//g, ':​//'); + out = out.split(OPEN).join('<').split(CLOSE).join('>'); + return out; +} + +// Inside a CodeBlock template literal, a lone backslash before u/x is a JS +// string escape (backslash-u007F evaluates to a DEL byte at build time), and ${ +// starts interpolation. Double the backslash / escape the $ so the source +// text renders verbatim. +// The (?{`...`} spans hold verbatim SQL in a JSX + // template literal. The MDX/HTML escapes applied elsewhere must NOT + // touch these lines, but JS still evaluates the template literal, so + // sequences like backslash-u007F in AWS description text become raw control + // characters in the built HTML. Neutralize JS escape starts (\u, \x) + // and interpolation (${) so the text survives verbatim. + if (inCodeBlock) { + if (/<\/CodeBlock>/.test(line)) inCodeBlock = false; + const esc = escapeTemplateLiteral(line); + if (esc !== line) { lines[i] = esc; changed = true; } + continue; + } + if (//.test(line)) inCodeBlock = true; + const esc = escapeTemplateLiteral(line); + if (esc !== line) { lines[i] = esc; changed = true; } + continue; + } + if (/^/.test(trimmed)) { + inTabItemProse = false; + continue; + } + + // Description table cells (one ... per line). + const m = TD_LINE.exec(line); + if (m) { + const inner = m[2]; + if (/^]*\/>$/.test(inner)) continue; + // Structural link cells in the Methods/Parameters tables: one or + // more comma-separated anchor-wrapped tokens + // ( or + // x). Generated structure, + // not description text - must stay verbatim. + if (LINK_TOKEN_CELL.test(inner)) continue; + const codeCell = /^([^<>]*)<\/code>$/.exec(inner); + if (codeCell) { + // Type/pattern cells: regex patterns form accidental markdown + // links ("[...](...)" inside character classes) and MDX brace + // expressions ({4,7} quantifiers). Neutralise both; entities + // decode inside the element so rendering is unchanged. + const escaped = codeCell[1] + .replace(/\[/g, '[') + .replace(/\]/g, ']') + .replace(/\{/g, '{') + .replace(/\}/g, '}') + .replace(/:\/\//g, ':​//'); + if (escaped !== codeCell[1]) { + lines[i] = m[1] + '' + escaped + '' + m[3]; + cellsEscaped++; + changed = true; + } + continue; + } + const escaped = escapeDescription(inner); + if (escaped !== inner) { + lines[i] = m[1] + escaped + m[3]; + cellsEscaped++; + changed = true; + } + continue; + } + + // Method-description prose inside blocks (the paragraphs + // between the TabItem opener and the ```sql fence). Prose never + // starts with '<'; anything with raw angle brackets or braces there + // is hostile description content. + if (inTabItemProse && trimmed && !trimmed.startsWith('<') && /[<>{}]/.test(line)) { + const escaped = escapeDescription(line); + if (escaped !== line) { + lines[i] = escaped; + cellsEscaped++; + changed = true; + } + } + } + return { text: lines.join('\n'), changed }; +} + +function walk(dir) { + for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { + const p = path.join(dir, entry.name); + if (entry.isDirectory()) { + walk(p); + } else if (entry.name.endsWith('.md') || entry.name.endsWith('.mdx')) { + const before = fs.readFileSync(p, 'utf8'); + const { text: after, changed } = sanitize(before, p); + if (changed) { + fs.writeFileSync(p, after); + filesChanged++; + } + } + } +} + +walk(docsDir); +console.log(`sanitize-docs: escaped ${cellsEscaped} description cell(s) across ${filesChanged} file(s); ${regionAnnotated} region scope annotation(s)`); diff --git a/website/sidebars.js b/website/sidebars.js index 72e3166..f719984 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -1,42 +1,14 @@ -// @ts-check +import { providerTitle } from './provider.js'; -// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) - -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - - @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} - */ - -import config from './docusaurus.config'; - -const providerTitle = config.title.replace(/^StackQL /, '').replace(/ Provider$/, ''); - - const sidebars = { +const sidebars = { mainSidebar: [ - { - type: 'link', - label: 'All Providers', - href: '/providers', - }, + { type: 'link', label: 'All Providers', href: '/providers' }, { type: 'category', label: `${providerTitle} Provider`, - link: {type: 'doc', id: 'provider-intro'}, - items: [ - { - type: 'autogenerated', - dirName: 'services', - } - ] - }, + link: { type: 'doc', id: 'provider-intro' }, + items: [{ type: 'autogenerated', dirName: 'services' }], + }, ], }; diff --git a/website/src/components/CopyableCode/CopyableCode.js b/website/src/components/CopyableCode/CopyableCode.js index 8115f33..d17969f 100644 --- a/website/src/components/CopyableCode/CopyableCode.js +++ b/website/src/components/CopyableCode/CopyableCode.js @@ -1,29 +1,29 @@ -import React, { useState } from 'react'; -import Clipboard from 'clipboard'; - -const CopyableCode = ({ code }) => { - const [isCopied, setIsCopied] = useState(false); - - const handleCopy = () => { - const clipboard = new Clipboard('.copyable-code', { - text: () => code, - }); - - clipboard.on('success', function() { - setIsCopied(true); - window.setTimeout(() => setIsCopied(false), 2000); - clipboard.destroy(); - }); - }; - - return ( - - - {code} - - {isCopied ? Copied! : null} - - ); -}; - -export default CopyableCode; +import React, { useState } from 'react'; +import Clipboard from 'clipboard'; + +const CopyableCode = ({ code }) => { + const [isCopied, setIsCopied] = useState(false); + + const handleCopy = () => { + const clipboard = new Clipboard('.copyable-code', { + text: () => code, + }); + + clipboard.on('success', function() { + setIsCopied(true); + window.setTimeout(() => setIsCopied(false), 2000); + clipboard.destroy(); + }); + }; + + return ( + + + {code} + + {isCopied ? Copied! : null} + + ); +}; + +export default CopyableCode; diff --git a/website/src/components/SchemaTable/SchemaTable.js b/website/src/components/SchemaTable/SchemaTable.js new file mode 100644 index 0000000..2553353 --- /dev/null +++ b/website/src/components/SchemaTable/SchemaTable.js @@ -0,0 +1,49 @@ +import React, { useState } from 'react'; +import styles from './SchemaTable.module.css'; + +function SchemaRow({ name, type, description, children, depth = 0 }) { + const [expanded, setExpanded] = useState(false); + const hasChildren = children && children.length > 0; + + return ( + <> + + + {hasChildren && ( + setExpanded(!expanded)} + > + {expanded ? '▼' : '▶'} + + )} + {name} + + {type} + + + {expanded && children?.map((child, idx) => ( + + ))} + + ); +} + +export default function SchemaTable({ fields }) { + return ( + + + + + + + + + + {fields.map((field, idx) => ( + + ))} + +
NameDatatypeDescription
+ ); +} \ No newline at end of file diff --git a/website/src/components/SchemaTable/SchemaTable.module.css b/website/src/components/SchemaTable/SchemaTable.module.css new file mode 100644 index 0000000..ed4ef36 --- /dev/null +++ b/website/src/components/SchemaTable/SchemaTable.module.css @@ -0,0 +1,27 @@ +.schemaTable { + width: 100%; + border-collapse: collapse; +} + +.schemaTable th, +.schemaTable td { + border: 1px solid var(--ifm-table-border-color); + padding: 8px 12px; + text-align: left; +} + +.schemaTable th { + background: var(--ifm-table-head-background); +} + +.row:hover { + background: var(--ifm-table-stripe-background); +} + +.expander { + cursor: pointer; + margin-right: 8px; + user-select: none; + color: var(--ifm-color-primary); + font-size: 10px; +} \ No newline at end of file diff --git a/website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.js b/website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.js new file mode 100644 index 0000000..b252fd7 --- /dev/null +++ b/website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.js @@ -0,0 +1,400 @@ +import React, { useState } from 'react'; +import Button from '@mui/material/Button'; +import Menu from '@mui/material/Menu'; +import MenuItem from '@mui/material/MenuItem'; +import ListItemIcon from '@mui/material/ListItemIcon'; +import ListItemText from '@mui/material/ListItemText'; +import DownloadIcon from '@mui/icons-material/Download'; +import ContentCopyIcon from '@mui/icons-material/ContentCopy'; +import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'; +import {useLocation} from '@docusaurus/router'; +import styles from './StackqlDeployDropdown.module.css'; + +/** + * Collects all DOM elements between a heading and the next

. + */ +function getElementsBetweenHeadings(heading) { + const elements = []; + let el = heading.nextElementSibling; + while (el && el.tagName !== 'H2') { + elements.push(el); + el = el.nextElementSibling; + } + return elements; +} + +/** + * Extracts text from a element, preserving newlines. + * prism-react-renderer wraps each line in a child element (div or span), + * and textContent concatenates them without newlines, so we join manually. + */ +function getCodeText(codeEl) { + if (codeEl.children.length > 0) { + return Array.from(codeEl.children) + .map(line => line.textContent.replace(/\n$/, '')) + .join('\n'); + } + return codeEl.textContent; +} + +/** + * Extracts the text content of a code block from within a set of elements. + * If preferredTab is provided, looks for a tab with that label first. + */ +function extractCodeFromElements(elements, preferredTab) { + if (preferredTab) { + for (const el of elements) { + const tabs = el.querySelectorAll('[role="tab"]'); + const panels = el.querySelectorAll('[role="tabpanel"]'); + for (let i = 0; i < tabs.length; i++) { + const tabLabel = tabs[i].textContent.trim().toLowerCase(); + if (tabLabel === preferredTab.toLowerCase() && panels[i]) { + const codeEl = panels[i].querySelector('pre code'); + if (codeEl) return getCodeText(codeEl); + } + } + } + } + // Fallback: first code block in the section + for (const el of elements) { + const codeEl = el.querySelector('pre code'); + if (codeEl) return getCodeText(codeEl); + } + return null; +} + +/** + * Scans the rendered page DOM for SQL example sections and extracts + * code blocks to build a context-aware stackql-deploy template. + * + * Section heading IDs generated by Docusaurus: + * ## `SELECT` examples -> #select-examples + * ## `INSERT` examples -> #insert-examples + * ## `UPDATE` examples -> #update-examples + * ## `REPLACE` examples -> #replace-examples + * ## `DELETE` examples -> #delete-examples + * ## Lifecycle Methods -> #lifecycle-methods + */ +function extractTemplateFromPage() { + const sections = {}; + + // --- SELECT (prefer "get" tab for a single-resource check) --- + const selectH2 = document.getElementById('select-examples'); + if (selectH2) { + const els = getElementsBetweenHeadings(selectH2); + sections.select = extractCodeFromElements(els, 'get (all properties)') + || extractCodeFromElements(els, 'get') + || extractCodeFromElements(els); + } + + // --- INSERT (prefer "create" tab -- skip "Manifest" yaml tab) --- + const insertH2 = document.getElementById('insert-examples') || document.getElementById('insert-example'); + if (insertH2) { + const els = getElementsBetweenHeadings(insertH2); + sections.insert = extractCodeFromElements(els, 'All Properties') + || extractCodeFromElements(els, 'create') + || extractCodeFromElements(els); + } + + // --- UPDATE --- + const updateH2 = document.getElementById('update-examples') || document.getElementById('update-example'); + if (updateH2) { + const els = getElementsBetweenHeadings(updateH2); + sections.update = extractCodeFromElements(els); + } + + // --- REPLACE --- + const replaceH2 = document.getElementById('replace-examples'); + if (replaceH2) { + const els = getElementsBetweenHeadings(replaceH2); + sections.replace = extractCodeFromElements(els); + } + + // --- DELETE (standalone section) --- + const deleteH2 = document.getElementById('delete-examples') || document.getElementById('delete-example'); + if (deleteH2) { + const els = getElementsBetweenHeadings(deleteH2); + sections.delete = extractCodeFromElements(els); + } + + // --- Lifecycle Methods: look for a "delete" tab if no standalone DELETE --- + if (!sections.delete) { + const lifecycleH2 = document.getElementById('lifecycle-methods'); + if (lifecycleH2) { + const els = getElementsBetweenHeadings(lifecycleH2); + sections.delete = extractCodeFromElements(els, 'delete'); + } + } + + return sections; +} + +/** + * Parses a SELECT SQL string into its components: + * fields - column names from the SELECT list + * table - fully-qualified table reference after FROM + * where - the raw WHERE clause (conditions only, no leading WHERE) + */ +function parseSelectSQL(sql) { + const selectFromMatch = sql.match(/SELECT\s+([\s\S]+?)\s+FROM\s+/i); + const fromMatch = sql.match(/FROM\s+(\S+)/i); + const whereMatch = sql.match(/WHERE\s+([\s\S]+?)(?:\s*;\s*$|$)/i); + + const fields = selectFromMatch + ? selectFromMatch[1] + .split(',') + .map(f => f.trim()) + .filter(f => f && f !== '*') + : []; + + const table = fromMatch ? fromMatch[1] : ''; + const where = whereMatch ? whereMatch[1].trim().replace(/;\s*$/, '').trim() : ''; + + return { fields, table, where }; +} + +// Parses column names from an INSERT INTO ... (...) statement +// and returns the base field names (stripping data__ prefix). +function parseInsertColumns(sql) { + const match = sql.match(/INSERT\s+INTO\s+\S+\s*\(([\s\S]+?)\)/i); + if (!match) return []; + return match[1] + .split(',') + // .map(c => c.trim().replace(/^data__/, '')) + .map(c => c.trim()) + .filter(Boolean); +} + +// Builds an "exists" hint query - a simplified count query using only the +// original WHERE params (required parameters from the page). +function buildExistsQuery(parsed) { + let sql = `SELECT count(*) as count\nFROM ${parsed.table}`; + if (parsed.where) { + const conditions = parsed.where.split(/\s+AND\s+/i).map(c => c.trim()); + sql += `\nWHERE ${conditions.join(' AND\n')}`; + } + sql += '\n;'; + return sql; +} + +// Builds a "statecheck" hint query - a count query where SELECT fields become +// equality checks in the WHERE clause, followed by the original WHERE params. +function buildStatecheckQuery(parsed) { + // Extract condition field names from WHERE clause to avoid duplicates + const whereConditionFields = new Set(); + if (parsed.where) { + parsed.where.split(/\s+AND\s+/i).forEach(c => { + const match = c.trim().match(/^\s*(\w+)\s*=/); + if (match) whereConditionFields.add(match[1].toLowerCase()); + }); + } + + // Filter out fields already in the WHERE clause (e.g., region) + const filteredFields = parsed.fields.filter(f => !whereConditionFields.has(f.toLowerCase())); + const fieldConditions = filteredFields.map(f => `${f} = {{ ${f} }}`); + + // Collect all WHERE conditions + const allConditions = [...fieldConditions]; + if (parsed.where) { + parsed.where.split(/\s+AND\s+/i).forEach(c => allConditions.push(c.trim())); + } + + let sql = `SELECT count(*) as count\nFROM ${parsed.table}`; + if (allConditions.length > 0) { + sql += `\nWHERE \n${allConditions.join(' AND\n')}`; + } + sql += '\n;'; + return sql; +} + +/** + * Builds the stackql-deploy IQL template from extracted sections. + * Only includes anchors for operations that actually exist on the page. + */ +function buildTemplate(sections) { + const parts = []; + let parsed = null; + + if (sections.select) { + parsed = parseSelectSQL(sections.select); + parts.push(`/*+ exists */\n${buildExistsQuery(parsed)}`); + } + + if (sections.insert) { + parts.push(sections.insert); + } + + if (sections.update) { + parts.push(sections.update); + } else if (sections.replace) { + parts.push(sections.replace); + } + + if (parsed) { + // If INSERT exists, narrow to mutable fields only (skip created_at, etc.) + let mutableParsed = parsed; + if (sections.insert) { + const insertColSet = new Set(parseInsertColumns(sections.insert)); + const mutableFields = parsed.fields.filter(f => insertColSet.has(f)); + if (mutableFields.length > 0) { + mutableParsed = { ...parsed, fields: mutableFields }; + } + } + + parts.push(`/*+ statecheck, retries=5, retry_delay=10 */\n${buildStatecheckQuery(mutableParsed)}`); + + // Use all GET fields minus region for exports + const exportFields = parsed.fields.filter(f => f.toLowerCase() !== 'region'); + let exportsSql = `SELECT\n${exportFields.join(',\n')}\nFROM ${parsed.table}`; + if (parsed.where) { + const conditions = parsed.where.split(/\s+AND\s+/i).map(c => c.trim()); + exportsSql += `\nWHERE ${conditions.join(' AND\n')}`; + } + exportsSql += ';'; + parts.push(`/*+ exports */\n${exportsSql}`); + } + + if (sections.delete) { + parts.push(sections.delete); + } + + return parts.join('\n\n'); +} + +function getResourceName(pathname) { + const match = pathname.match(/\/services\/[^/]+\/([^/]+)/); + return match ? match[1] : null; +} + +export default function StackqlDeployDropdown() { + const [anchorEl, setAnchorEl] = useState(null); + const [copied, setCopied] = useState(false); + const open = Boolean(anchorEl); + const location = useLocation(); + + const resourceName = getResourceName(location.pathname); + + // Only render on resource pages (URL: /services/{service}/{resource}) + if (!resourceName) return null; + + const filename = `${resourceName}.iql`; + + function getTemplate() { + const sections = extractTemplateFromPage(); + return buildTemplate(sections); + } + + const handleClick = (event) => { + setAnchorEl(event.currentTarget); + }; + + const handleClose = () => { + setAnchorEl(null); + }; + + const handleDownload = () => { + const template = getTemplate(); + if (!template) { + handleClose(); + return; + } + const blob = new Blob([template], { type: 'text/plain' }); + const url = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = filename; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + URL.revokeObjectURL(url); + handleClose(); + }; + + const handleCopy = async () => { + const template = getTemplate(); + if (!template) { + handleClose(); + return; + } + try { + await navigator.clipboard.writeText(template); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } catch { + const textarea = document.createElement('textarea'); + textarea.value = template; + document.body.appendChild(textarea); + textarea.select(); + document.execCommand('copy'); + document.body.removeChild(textarea); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } + handleClose(); + }; + + return ( +
+ + + + + + + + Download + + + + + + + + {copied ? 'Copied!' : 'Copy'} + + + +
+ ); +} diff --git a/website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.module.css b/website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.module.css new file mode 100644 index 0000000..cdb453c --- /dev/null +++ b/website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.module.css @@ -0,0 +1,12 @@ +/* Only show on md+ viewports (Docusaurus default breakpoint: 996px) */ +.dropdownWrapper { + display: none; + flex-shrink: 0; +} + +@media screen and (min-width: 997px) { + .dropdownWrapper { + display: flex; + align-items: center; + } +} diff --git a/website/src/css/custom.css b/website/src/css/global.css similarity index 89% rename from website/src/css/custom.css rename to website/src/css/global.css index ce0b531..3e50218 100644 --- a/website/src/css/custom.css +++ b/website/src/css/global.css @@ -256,4 +256,32 @@ div:has(> .vhsImage) { .providerDocColumn { width: 100%; } - } \ No newline at end of file + } + +/* +* breadcrumbs with actions (stackql-deploy dropdown) +*/ +.breadcrumbs-with-actions { + display: flex; + align-items: center; + justify-content: space-between; + flex-wrap: nowrap; +} + +.breadcrumbs-with-actions nav { + flex: 1; + min-width: 0; +} + +/* +* registry logo: swap to the narrower -mobile mark below the Docusaurus +* mobile breakpoint (996px), per theme +*/ +@media (max-width: 996px) { + .navbar__logo img[src$='stackql-registry-logo.svg'] { + content: url('/img/stackql-registry-logo-mobile.svg'); + } + .navbar__logo img[src$='stackql-registry-logo-white.svg'] { + content: url('/img/stackql-registry-logo-white-mobile.svg'); + } +} \ No newline at end of file diff --git a/website/src/pages/blog.js b/website/src/pages/blog.js deleted file mode 100644 index e435012..0000000 --- a/website/src/pages/blog.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Blog() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/contact-us.js b/website/src/pages/contact-us.js deleted file mode 100644 index b6850d8..0000000 --- a/website/src/pages/contact-us.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function ConactUs() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/install.js b/website/src/pages/install.js deleted file mode 100644 index 341a4bb..0000000 --- a/website/src/pages/install.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Install() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/aws.js b/website/src/pages/providers/aws.js deleted file mode 100644 index 780099a..0000000 --- a/website/src/pages/providers/aws.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/azure.js b/website/src/pages/providers/azure.js deleted file mode 100644 index 467f77a..0000000 --- a/website/src/pages/providers/azure.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/confluent.js b/website/src/pages/providers/confluent.js deleted file mode 100644 index e886aaf..0000000 --- a/website/src/pages/providers/confluent.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/databricks.js b/website/src/pages/providers/databricks.js deleted file mode 100644 index a04b603..0000000 --- a/website/src/pages/providers/databricks.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/github.js b/website/src/pages/providers/github.js deleted file mode 100644 index b425c6c..0000000 --- a/website/src/pages/providers/github.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/google.js b/website/src/pages/providers/google.js deleted file mode 100644 index 01fe8b7..0000000 --- a/website/src/pages/providers/google.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/index.js b/website/src/pages/providers/index.js deleted file mode 100644 index 9afaa02..0000000 --- a/website/src/pages/providers/index.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Providers() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/okta.js b/website/src/pages/providers/okta.js deleted file mode 100644 index cdddc72..0000000 --- a/website/src/pages/providers/okta.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/openai.js b/website/src/pages/providers/openai.js deleted file mode 100644 index 9884c84..0000000 --- a/website/src/pages/providers/openai.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/providers/snowflake.js b/website/src/pages/providers/snowflake.js deleted file mode 100644 index 7b3ec43..0000000 --- a/website/src/pages/providers/snowflake.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Registry() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/stackql-deploy.js b/website/src/pages/stackql-deploy.js deleted file mode 100644 index 95e18b3..0000000 --- a/website/src/pages/stackql-deploy.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Deploy() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/stackqldocs.js b/website/src/pages/stackqldocs.js deleted file mode 100644 index 7182d93..0000000 --- a/website/src/pages/stackqldocs.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function StackQLDocs() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/pages/tutorials.js b/website/src/pages/tutorials.js deleted file mode 100644 index 2bb5f07..0000000 --- a/website/src/pages/tutorials.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import Head from '@docusaurus/Head'; - -export default function Tutorials() { - return ( - - - - ); -}; \ No newline at end of file diff --git a/website/src/theme/DocBreadcrumbs/index.js b/website/src/theme/DocBreadcrumbs/index.js new file mode 100644 index 0000000..2c5c7cf --- /dev/null +++ b/website/src/theme/DocBreadcrumbs/index.js @@ -0,0 +1,12 @@ +import React from 'react'; +import DocBreadcrumbs from '@theme-original/DocBreadcrumbs'; +import StackqlDeployDropdown from '@site/src/components/StackqlDeployDropdown/StackqlDeployDropdown'; + +export default function DocBreadcrumbsWrapper(props) { + return ( +
+ + +
+ ); +} diff --git a/website/src/theme/Footer/index.tsx b/website/src/theme/Footer/index.tsx index 99ba9d5..eb3d03a 100644 --- a/website/src/theme/Footer/index.tsx +++ b/website/src/theme/Footer/index.tsx @@ -1,262 +1,262 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -import React from 'react'; -import clsx from 'clsx'; - -import Link from '@docusaurus/Link'; -import {FooterLinkItem, useThemeConfig} from '@docusaurus/theme-common'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import isInternalUrl from '@docusaurus/isInternalUrl'; -import styles from './styles.module.css'; -import ThemedImage, {Props as ThemedImageProps} from '@theme/ThemedImage'; -import IconExternalLink from '@theme/Icon/ExternalLink'; -import { IconButton } from '@mui/material'; -import { useColorMode } from '@docusaurus/theme-common'; - -import { Icon } from '@iconify/react'; - -// add for responsive logo image -import { useWindowSize } from '@docusaurus/theme-common'; - -// Custom styles to fix the spacing issue -const socialIconsContainerStyle: React.CSSProperties = { - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - flexWrap: 'wrap', // Allow wrapping on small screens - margin: '16px 0', -}; - -const iconButtonStyle = { - padding: '12px', // Ensure buttons have enough clickable area -}; - -function FooterLink({ - to, - href, - label, - prependBaseUrlToHref, - ...props -}: FooterLinkItem) { - const toUrl = useBaseUrl(to); - const normalizedHref = useBaseUrl(href, {forcePrependBaseUrl: true}); - - return ( - - {href && !isInternalUrl(href) ? ( - - {label} - - - ) : ( - label - )} - - ); -} - -const FooterLogo = ({ - sources, - alt, - width, - height, - logo, -}: Pick & { logo: any }) => { - // Get window width for responsiveness - const windowSize = useWindowSize(); - - // Set threshold for mobile view (e.g., 768px) - const isMobile = windowSize === 'mobile' ? true : false; - - const getMobileLogoPath = (path: string) => path?.replace('.svg', '-mobile.svg'); - - // Choose appropriate image sources based on screen size - // const responsiveSources = { - // light: useBaseUrl(isMobile ? getMobileLogoPath(logo.src) : logo.src), - // dark: useBaseUrl(isMobile ? getMobileLogoPath(logo.srcDark || logo.src) : (logo.srcDark || logo.src)), - // }; - const responsiveSources = { - light: useBaseUrl(isMobile ? getMobileLogoPath(logo?.src) : logo?.src), - dark: useBaseUrl(isMobile ? getMobileLogoPath(logo?.srcDark || logo?.src) : (logo?.srcDark || logo?.src)), - }; - - return ( - - ); -} - -function Footer(): JSX.Element | null { - const socialLinks = { - linkedin: "https://www.linkedin.com/company/stackql", - twitter: "https://twitter.com/stackql", - github: "https://github.com/stackql", - discord: "https://discord.com/invite/xVXZ9d5NxN", - slack: "https://join.slack.com/t/stackqlcommunity/shared_invite/zt-1cbdq9s5v-CkY65IMAesCgFqjN6FU6hg", - }; - - const {colorMode} = useColorMode(); - - const {footer} = useThemeConfig(); - - const {copyright, links = [], logo = { src: '' }} = footer || {}; - const sources = { - light: useBaseUrl(logo.src), - dark: useBaseUrl(logo.srcDark || logo.src), - }; - - if (!footer) { - return null; - } - - return ( -
-
- {links && links.length > 0 && ( -
-
- {logo && (logo.src || logo.srcDark) && ( -
- {logo.href ? ( - - - - ) : ( - - )} -
- )} -

- A new approach to querying and
- provisioning cloud services. -

-
- {links.map((linkItem, i) => ( -
- {linkItem.title != null ? ( -

{linkItem.title}

- ) : null} - {linkItem.items != null && - Array.isArray(linkItem.items) && - linkItem.items.length > 0 ? ( -
    - {linkItem.items.map((item, key) => - item.html ? ( -
  • - ) : ( -
  • - -
  • - ), - )} -
- ) : null} -
- ))} -
- )} -
- {(logo || copyright) && ( - <> -
- {copyright ? ( -
- ) : null} -
- {/* Social Icons Container with Fixed Spacing */} -
- - - - - - - - - - - - - - - -
- - )} -
-
- ); -} - +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import clsx from 'clsx'; + +import Link from '@docusaurus/Link'; +import {FooterLinkItem, useThemeConfig} from '@docusaurus/theme-common'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import isInternalUrl from '@docusaurus/isInternalUrl'; +import styles from './styles.module.css'; +import ThemedImage, {Props as ThemedImageProps} from '@theme/ThemedImage'; +import IconExternalLink from '@theme/Icon/ExternalLink'; +import { IconButton } from '@mui/material'; +import { useColorMode } from '@docusaurus/theme-common'; + +import { Icon } from '@iconify/react'; + +// add for responsive logo image +import { useWindowSize } from '@docusaurus/theme-common'; + +// Custom styles to fix the spacing issue +const socialIconsContainerStyle: React.CSSProperties = { + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + flexWrap: 'wrap', // Allow wrapping on small screens + margin: '16px 0', +}; + +const iconButtonStyle = { + padding: '12px', // Ensure buttons have enough clickable area +}; + +function FooterLink({ + to, + href, + label, + prependBaseUrlToHref, + ...props +}: FooterLinkItem) { + const toUrl = useBaseUrl(to); + const normalizedHref = useBaseUrl(href, {forcePrependBaseUrl: true}); + + return ( + + {href && !isInternalUrl(href) ? ( + + {label} + + + ) : ( + label + )} + + ); +} + +const FooterLogo = ({ + sources, + alt, + width, + height, + logo, +}: Pick & { logo: any }) => { + // Get window width for responsiveness + const windowSize = useWindowSize(); + + // Set threshold for mobile view (e.g., 768px) + const isMobile = windowSize === 'mobile' ? true : false; + + const getMobileLogoPath = (path: string) => path?.replace('.svg', '-mobile.svg'); + + // Choose appropriate image sources based on screen size + // const responsiveSources = { + // light: useBaseUrl(isMobile ? getMobileLogoPath(logo.src) : logo.src), + // dark: useBaseUrl(isMobile ? getMobileLogoPath(logo.srcDark || logo.src) : (logo.srcDark || logo.src)), + // }; + const responsiveSources = { + light: useBaseUrl(isMobile ? getMobileLogoPath(logo?.src) : logo?.src), + dark: useBaseUrl(isMobile ? getMobileLogoPath(logo?.srcDark || logo?.src) : (logo?.srcDark || logo?.src)), + }; + + return ( + + ); +} + +function Footer(): JSX.Element | null { + const socialLinks = { + linkedin: "https://www.linkedin.com/company/stackql", + twitter: "https://twitter.com/stackql", + github: "https://github.com/stackql", + discord: "https://discord.com/invite/xVXZ9d5NxN", + slack: "https://join.slack.com/t/stackqlcommunity/shared_invite/zt-1cbdq9s5v-CkY65IMAesCgFqjN6FU6hg", + }; + + const {colorMode} = useColorMode(); + + const {footer} = useThemeConfig(); + + const {copyright, links = [], logo = { src: '' }} = footer || {}; + const sources = { + light: useBaseUrl(logo.src), + dark: useBaseUrl(logo.srcDark || logo.src), + }; + + if (!footer) { + return null; + } + + return ( +
+
+ {links && links.length > 0 && ( +
+
+ {logo && (logo.src || logo.srcDark) && ( +
+ {logo.href ? ( + + + + ) : ( + + )} +
+ )} +

+ A new approach to querying and
+ provisioning cloud services. +

+
+ {links.map((linkItem, i) => ( +
+ {linkItem.title != null ? ( +

{linkItem.title}

+ ) : null} + {linkItem.items != null && + Array.isArray(linkItem.items) && + linkItem.items.length > 0 ? ( +
    + {linkItem.items.map((item, key) => + item.html ? ( +
  • + ) : ( +
  • + +
  • + ), + )} +
+ ) : null} +
+ ))} +
+ )} +
+ {(logo || copyright) && ( + <> +
+ {copyright ? ( +
+ ) : null} +
+ {/* Social Icons Container with Fixed Spacing */} +
+ + + + + + + + + + + + + + + +
+ + )} +
+
+ ); +} + export default Footer; \ No newline at end of file diff --git a/website/static/CNAME b/website/static/CNAME index 1f7a4f5..1aa549f 100644 --- a/website/static/CNAME +++ b/website/static/CNAME @@ -1 +1 @@ -snowflake-provider.stackql.io +sumologic-provider.stackql.io diff --git a/website/static/apple-touch-icon.png b/website/static/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..54d5bf4c39a0ea69edae2faf1de88b441fc77799 GIT binary patch literal 7748 zcma)h1yEc;v+e>RxCHkQba8^aB{(6tySr|1mjo6Ii@R?E1b26rU}HPmVXO+eEQ^fd`SXo&>)KMWYKnzut+h;L;0e0K_IGb#kbO0K8r^=`fi50ndx2r zNccwGfob6ALa+t_i&8D4Qe%T&t&?)&;qmoiDqDskBd>UllD0R`NI%{$R?X5(#UCmk zOlDG);2Ie&OXoa|VvX!oi=;7&ElNfV&|(F5W@+Spual8JRJ*8WD~;G8>)UrU#jK!q zN(sbH_9NnkCK7GED(J!xL<~mq0=-9C3gPMgOS_cJP7%<}fDd{e>XMJt{LJWiE9jB3 z>tP$k+34=oOI)ZEssN}8bRX(LYu#A|v+CiEe0Afyj_yW42D*La5zJK(PRAz2e~Ps( zn{U@y71Cet6YALgh#~>{yKx`=FGmJV_W3aAf&7%sY&#&Y!fF~Hv>(!iB!MaxtgtT} ziJR0yb*sFNN^3uf!!kG+0WuDeqJ8W1T}M4gEn#oyh|MSdY&p+e`ge7eP_C{J-R<`q zAz9|rn{HDSac=MWcpp}C9#@ng6sMen1Y%S~rrCJWtR%Ua8&CIe^2epBAtSpi*`Bh& zouz89S<|4cDHPc&Mk!l0jv*%OM`1r=h#pk#5a22h6GpGd*jEWlEw-owqu+AcK6699 zZR#eDV!!&POu}?g)cx4IEBO844JsTFX4q$viPnB8^iRd_1G1kJ7u3qU2%OKF&x)x- zJOk6hocWe)v!s`i^wy+|So@!94P}TV%4CmI=?S5T${&OElPFqGFkKVQUGu_kxc_p3 zX-seuyZ&v2x3Cr}&mk-EotFR!vu3vW8|z8AB8*#2ItB3xv-I(j?vs!s-ljq@_vTNb zmA%5!wHQI#&7bT_;|b`aIp(^)cJ`QtN*ZnpKUxZ}h}ZK#6Q>n(`>}W>$d94IR>w3K z7t%#Z<=*1A{48}0tr4yCgc3QLO~wHWTgBhW)7d=F@K4u5mQP7J+)N=7=0mE8x5t09= zVKdTRz&dq+?RMUXWlFn=eg^7sH&xiR4H?a#+@rX0Z+R%qdA@7S&y5$ z8U_X7E@*X!n%@T2ELUMvE?;r)%?9f!=DsDMM`Y$#4oyS|7AEiOTv&4w#vp)+`;-I*D|>z5ALEhx2ZuM~xdx{v1fJpa;P(eP-S z-Hl6<#ygr&;k73{`RWwHxmas08>qVif7AVHaKcSw>kU^8bjxP`7&( zQ^1Io{7VLlZbh9fksbX{)Repa;v2eXky^a}?(RQC{(mF>FPe<>TE#O@Fhop|XiJkK z2PUp$JE{}&84qW{UV^e5#4w$hE;#EspS^cAnaJz9B`b$|#?F)Ul*y84Z0QaSy*IHvx6(egG<0xRUzyU@r;4ASdE0I|(vF2QNd2d*u-ea_^YM6_y1mmDMSkBv z7*d#9eiW#3hxiJ07%j=y1BOsgreV0jE!>uV2gjZTe zcF(k9KU`)^v{wgGo0_=n91-FK%+AEk9=*<_Ak1`b`04~^vk0_*6^xi;k`PX4KLit7Woe+!tDrl5OAGXE?Mk?DdbNZ<2**AZp*{jW)3k z@y_WEm-t}M3O`k8+lVMLMf1$+r=T+O*TPZAM>~>Us*1+^0{4F zP zJ>|M~{nMctMa#cZ2uh0BC?e}afMjaO) z;1dq!Z}eaMD2YVOc2EijR7M61&8m3LgC0WS%UGj%Iuj`2_#)YeaX#GR%8g%(n5qI0 zk6j-WW=a>{Lr4)A%96FMrc6A#5$v(Sbdv4F9f&JQ04EfAYh%Fk-PN!!DNDz_=8Dsm zx@spz`RFoE74+xO^`pmamyZ_~mrK=V4BHWvh{<vc%RDZb6kj?jN07hn|rz?aYZ3wSAe}F{FBr|2dcS}EhvTX`lIK|61 znTSS(!Zyd2cY5oER2Ok;fj|04^ z8S(xvA1aKRr{kp5va?hjJT$b>1j-6O=Vc6Dmu(*|)n;1XWdQmBgPl53Knc1+lMBJX zyHWeEK0t8!kcLj2F}jx>tHmp#|7IeW-a2bP$r^0>fY$%!XJiluZIK}r$J zrK?ShXjPS8LpL>Y+0hDQrpe1I%!cr29I1EgLJL2qq^cZc5?s&gsOiH#E&cuy3?ZnJ z#5YnFxhAFMQ~Tf>VAS>@;r)R@OHesp)(;tXRX-Jjvdv|Pmn-=9$fr@3VI|AqJ(~sL zNce&KKWRxYmdq|brkr><=d+bJzXJlVNQSCbEFd0G#5cZLY8Leq8X*nXf|^c0upz&i z%h0>vvyvjwO91V%*+n}#L$f=k*aB9ysDvO4nB@#CsjyX2TYY#;h2NlTqFi77^FZ_1 z*iilFM+sWV{ zp3_M+Q`i10Z>*wn7jg?dnh)dnQR1a4NXDUU-WYzVSFaUs<-n#aq-HphY3f?vuTco6Wj#Rye5z~Zb2p7F&!ye4&V zMFdT)eM04eM5zUPT8xfuH=0OPIF{7Z83L;4#Ei~}(es}7!?m}HzwjJF zczHJDX0Mv979??THq44{F$mJ9ER!{8rHq~Xz@O|e4b`wrG5fe5e~AxJ zgnvv^LJ}tjg{s1F+hfVtvODQF?SMRNKjf78g^n$pX2S6=m>c&Z za9io>A~Zi2X*$a??zOJaAg|3Qt3K>itkwpPuytSqn`Vw}B`5T#lhOnu z{$?quIqf8;vGt^u?WrCbu*NvlYxxVL*4z|mZ`q2FQF*`KjCEBe?yUzjxe`Qa1%Nje zz%sYZzs^j{CICKI!5QVfX;F*6Ec~i3OSg4oE7jM3D>b`|Wi7V}z8+8AcQE8CD^p88 zqUB%YNTC?t(5>P&C<|jBWD>`YZ;Ks|BFGz$+Ka?}p>&6l?`;)EI4^p4?jhQzD(FjY zztwLB6&`T0JUS1^Ev+z9w#EQ(LsDd9D|ucBE(ATo+Fd>*Z>=g}9R(Csgi6~mEND3E zzmru2^YW0VjSm;T5TVjmmkO2slEoY6eS4@uX*{brUix|@_8X>+T%#@r^A8tGvpMUz z*nVMNf+Yc{<{MPNCO6#9Y5LG1ym1%r`~wR8xiIDbpd<=lk^tr(46 z{DRQAh2l@GI+oCu23vIbSa^B`NeX}@hb#3^0KpQIaxE?enc?_!5}M<6hGk0uz9l)K zuStC~N&$nC>nO>b+?b~j4$xL7Bg?Y#7$v>(G?{y{d<2uYM5XsKfOa~S-k0We`ry&{ z2co(%Rw66m1%1uY*(}|pybPtjBP4kHL$eK<49AbD<}BWK#sM@=rL|NnL{@O~Xm#9R zQ|?bMr#=`QW6NEYsv+ya%q^Wa4y7M~Md`mJsykU?`4c1PhaZ-%@|q1Qqw0qVIHLfs z(zx7$Xy4L9VE+b2v+HKB4I$NgufV25ax)z3|N~4yVG<L{MYmMRwr%0Q23(%Nx_cmn?Q@#cc9y}1ZVN@F-whB~8> zagr5HC+DENaXkF&@qU*PU{>R~an?`5qCeAMi4Kp`_X>P694R0Q5j4A2-fmzWCNC1S z&Nr`F0fthTyC2K+BF}l}{V6l^0HyY8k5&{*P6>(Na49Lvs~ICrOzL=9?Wqsa2P>~u z5sTp~7UmxmS9=L4kb;~$@z~s_BBkb0h4)wvEA>Zu#QB}7I2p%Y963o@6zn0R>Y02V z@myl{wVwAANG6u;IAvL6xSpP%Z{@^Cht^Vwb@=jE9aR=I)<(>2?UEoEC^9Q8)wO@7 zZk_dBe`v2Rf{w!4zoudKW3pUg%OsZ8)5f4Y^`^_uZ#}T!9KAIDp!Y1_Uc@UaGR|7r z2dMupS({26sgK3lhorG<52v5yq37wSFUo|%mcOpyz!cEUvzz){EH7HO+gts`@0+yL zl5;xEY@>`js@99WX7yg`6X7XY{AJP+_GC(R_S!0Rgk;DcaAGe;A}QNF3lp=% z-(1v=O6?+DD|^oRHa5a^X-vQOm8bPPg$=))`ifUs?RIN~#hJk6Vw^7f>ar=3C52g_ zVzXg|U(BE(`!ac9E0N#$OM`7X-lV`qPX?3AH8$Z?ee=x_zi~cmb(v6Bo>*(Du2+Ta z3N-BNnhIs_(UoWE73U{azEk~Ea@Ky|5o}E?YNZa2iHUW95C%Q?;NT5#^V}g*;56O) z?pUF`4E9VC{a3Wxo1P!_WjqsZS@%^dh2(TIo;Bz?UEPYf{HOWy_6FoP^(w&pM*ddY zx_^J;Xr)x}#+xpUbmtUNyic&})2kV#;&Ru{_rl9gFf zZaYr~-S1;IRSUk+cX$V0(|m%gc2UsHSa|h%BU#1cPV#U^NU=q{03@LkEIbk#4d#PBRb3#yEKTe|?ie=tYt8@TQw^viH7KKd&#b{1@{70$5#eI0!R&yLRv_w*ry>ESE@ ztLbm2u|3-h<{Xmjsf_`dHU}l&z?|0g+PtafHIBs;zzFXd<$u==(twiZq zPewq)RC1RZKk9mE*O_a(kGqJR-Xa^hv;m>DPUf>5~JTpX7^e>g+nh};kL(rF?(r>2q-0DWq|T@W!@)PFZHvz&gVo8!W@ zlhx*P;3Ga%xzZZku-Jd)lNmuO(jI$u=j`Znb#^tEOgzBO^X?8| zE7-8NyzS>jlKgyiAuXHD?=bT(Syh!32co&I$2MZk4mx!5zZDq1P2I@CkF=jqZ6cx^!f+bYeoHC;=4Snk3LSnjef)2YJnr$i3{mZ^iA+du6F^y@o5s^fSQ7@vG-m>Rf67q0j7PD=dyYF z%f@AeGAAuoR;aA-^rdNVwq%fp=6I`SlBNU@2|oqIot=w4Q_cRZdUgeA{!1K#Wf;7! zJ3ya3!z@EGHdT_{fP;KG&(kr^m$;&YOlf6cwe;<%=y7^NO{%V-EWrfh9j969LF2(@ zGYM$q<~w9`@q68C%Z&7MkH*rNCQ>`jE9pJTjP==8V1Mk^J%IhGa+S7ar-_Kb7cq!c zQ6c|fI&>hsv`m~@!(BDdiVs<({9Sax@f3*V*eOh~xkSZV+8Ef?US+(O5h zG^Fg8v9f#_jP>xCh=9hN`IqZT+-ZMDB7a7V>h;5>M_A%b+Xk`#9cFKx2YbhN5SCHP z+X}RK%wGZkE8Co~oDV0Dxt-S=N4t?@x&ug}D^1(vc4J$Ng%LguK_i|x&+CC2$EL8B zInHd(@9k?JxpCS8NdHin%|SvS{T3#PhIAR!V@y~*JRCSu zwM;49Ox*&#_QQNh4Yai++U5q+bQkRf&9CN-(2*Yht?*vPskpg9EYxGMHhbE!D!@Sg zr*@YviSrqdo=_uJdHfy6e8I_=-Zf~!Nivoom^(a0`;>|MU*yI9ZB z{*SrA8w?Ka+$I}s;*8cL20qNhm!E{#WDI|pRg}JkeFcBExX;}#($Rj^=aO;qCRO22 ze;I4>BHeYWah-`aG1yISOT!!%@z(5;wpN2Zv2{S4m7D+K$0mewMCVsRDg%v-lvi!! zxD~%foLn0w-#8*1!H0EcuS4MT@7)NUjecsJRk_HlEs~L1XcdO1F{o6L)$#mj7;Rjc zAdVm`6;z{xTk=@yxNeM#sDVcu~mO=+Z~1394Z+8xHj~0(@Lq1{(*u4)?A3Cm*x6J zjEe=9Al^N6>P+*OZC&e@`Pq7P`Jw(ct*ES*IK#y!&ipBJYkzxI0pkICrQ`q!yn5;KdHN*Ued(G{A?4>{h`uf2GE@e>2_Qp*4LeAnAR;DOz7hI)Fh zPx-72Gs)MXA-tYJ+e?zc{SCUpI}M-O<(_>pe})YH^``EtDJ+r@Aiv(b8i>Z1kGg=F zJdPMEgs`=gk~}v;VhWVOC1HFmOZqvd@LWq)0*qP3PxTu%7#*pZI zhF$B=lD@7PGuH&PH#=c=7wrM(RDibEI`_gST%)}E0=VcQ_RRTK7y=I;tK!}NNtQ7K zAIOb{W3?Ml(I5)Q-lYMzAev^3-BnoiLM5Sm)X45p6qs^bmyXjN@ny&(0x8&SN}+v9 ziXY=PA#C=F`RO2J zvBCr=-qBQ>{#fKB6%|s%ALs5vKS=!z$m{6m!?uhHKrdRiBkB}o{d6JqLV%qR7XHec zqZ&yMXA7nD?XjyNl3_MyEGC2auCN5?%&Fo}>z;2xfhExZj=9QyPS4lxuIQZ)9kRGx z+>+4hVP_Pc5O(b8qZbk`L!ZTI^tjJ=&u%wU)_s{@IWgkS|V_irGA4@cXG#m-uGfa^_0h^!vO${b=XV(DQG6d)dM9$pUa*Bq~3Yw_@k za0`p@@UwAqi*R%MTeT|xKLXCKR`xc&|FZz5F!Bu`K>jp>rmGFa+uXw%ByHttVNI*( zY;J3po)rbnmL`r=h%t3L)*=5WYSu6#6OYPZVv{kD_Y(*7STf_=&joR9(y{VNT_Kc{JXeo-u z9wjAaBKAu1K0e>yd%VZ{|NGZ_eE)FpM0oD|ey;nv&g(qSJCXXjT9+9)7#SECET^IRzl3_BKb<~7)xKKc z=_I1=f~;G1gO9AfXO=pYsvgdAAp5miqkgPPrj7-aIh3_z_0v>mYNy;TUI50%AhlhJ z3qAq-a8vuF=xrr zO}k#Am1!&K9PdPiEQlC3G2$ZHe-6e*3}=p?U?INyoAIE07-Xl2^F@zfgXKVWn5kV1 z`%r>aqv8H`5G$^LJIh*m8d|gwFhQU8>LH(E=n(jR@|hYn-nuXmds(WlqhR; zs$;H5QsOti2eEb)II-f2BC(Bpa^P&OIQY=Clf~<{DPl6}soqiP0bJRxo5$%z_@VUV zz$l6`%|k{~ng3JGW_;+Avu)1!doN}Hai~suv zNs9{VHRp^O*??~cs(}Ci3uOoyI-_w)wBPyK^61ruks6g;!y0S-kpvZ3-pTD zNaA73vPg#=)2N80|G}(NbIha26*7nKOtd7evw!7+y?Lq$n#c|N{!Q9zgSW^-X~#7M zI{LBvd41WG{#e7Q+-5EQ5(GyMon(#~As2NLh8SE3ViXZ4@tx!FK z2yU6Tzp;W+ta!0sJ}<*)^J{TCdShiqC)uL;^`A$`T=fR{#%#jStl>^^?ThNfpeq&2 zjHtYgH$P3aUb9$X_y2A741XmA)&Or^Rk8_Gr0FDdZ@$odXsvYGguy!+c8>k=+#L1W zMU>d7_t7Zx1Q%bB?Md!_kM5=9!V(8jQ4uVAz=8y(mIAKjN83NhVB`NgMd-XZbWXfk zp?O`n^UFelctc%a9Lr4?TD-L^jTf=r)&u!-)kWg9yS>!0%>n8^^<-4t}6h#(4;x~cGRnEfi~ zVI{ig$^cRD;6|){C7gg}e(!UGar=9yLYCcr#u?MZ#$`@eGVk?2ELIv}V^><~XdJ9b z;sdfiBfwtq->O8xit&{BzH{m0(?1-<%?!AbvqeHgFW!#ulEGK1FUdeywOkJ7+KCY+;Y5iHl)<#%2PU`+3a3W&?HZ=Xyk){?EBY~ zw9f>n{J!ELF7MwqST#Uj2;MF67XqI1oa>k9e#JL`+L8Ti3Djb%sGmV<&vor$c>Vi8 z^X$QSOmU{+4pTU-!Db1wB*9*+>uFSWt1Fa%q_Mr<`7( z!As&9uZg$U_}&jz6;qp(XwKn4wcfqoiA!Qc3rYRi9ZqvrPoeK0RIkl~C3c#YjV5zH z(XOfZHRYmN9kO>jA|l}y8Cp40{mBak20KY!80p{rB@~scyZ){C8&+%E-I*LSOIeFh z(5$YX5E{38U=TwYyI8L4Al~%zMU|vDu6;(lSwu&9DQ_c zk_#U9?|+$h7ufpUs{FYxj5)iv~8)ps4eNWnK-BHJ4g&QG3Q`sg8ZpMlLm*F^b&m5f_y=-<7)0> zI(DAz7}9&K?jRrgc^yJPj0=D6?B0}cB%W&I`;-2uy@i~woip2{ zsmkJt9IBLma2Cw$%$YDL8mp8Uo zh2NFqfkL(>ql9r*Y&IHW^b$%+CATeB5~S0*avr6drJ%qa@ZG8%dFgzmqaaRe>u1^@ zlPhd0EZaXhFpCM$4UL|jaI(SdP6MOdqVS39TMa2WTZY?DL=52D?K1(c1QzPQIcG>R z+jxG#L`yxw*myjHdYd)i8D*L|5yHs>M^iGF)!m`f86kr{mb$1=$m3`);%dB>iIY_C zZ~h;OtCJ!_x!A_p?m3exF4sN&A5o0;k(=Ve_L>KyE*%d2MI5AZkh z?<@5l`T+YD+)6^F(M;j9Pv>V2|4oJr-TkO1PKSfy0*0nzQHyf<+?|@_GM#uASLJ0f z7UNE#6}=c+h7@E%^k#oS5%<9Mv)ln`cB?6B$4AbY65UWprFX@|EFL`5(2RZ>d13DN z*#KMW_@JO!L^zpDo2;sey2F79AhTl{&eA95VJhI+I-mTP%x`L@-0+_s=>_y=^yBLS z?>#Ca%+x^A6zt=>5m~mW!)q(Dh4#)QiDVZje_DO8+kjK7R%RsT0pxl@wyW>@fRON% z&@mtxr|o8s_!^-`XCxo4)s3ocN-YwugMyN?g478H;YrzSD0SW z6kwO%dG~bbB6c*`IC*EthPSEet*a%T^nWV)gu`k`U-Q9E6<9q}C3$X=%65NR|13>O zxm9U|Gk>0m7WnW0A53qe6!W-EdL?g>QWK)R7D$##S8Pg|Up{0q$1KpKooR!({N>KD zUquT%76G3OrafGH;qyhyYoVqFy&yQmlZ`D6Jk25{JeC%AlA6AMt*@lb|lg72#DOt zQn6mumoF5Zhqt7IinxVUf*0~QPYmZk(62sjwdL>Xba7X}{D-Sgo9dq-U-{iJH#CL7 zh6RYyS2RI=;@HlcCriL=zqEJ76_=gxR*@&y%!uVl;yw;6pX#^ zdFeyr=MIF>jFKKRqXnBC7}l<2)MnqD%H1Snyfm8eV~fr1R@hM7o%nRG_%XG$^`jY= zBem_QAe*ExNv@E~GfXOn+Dmn{9GLjdmmRy7afjXqDdA-O3%~}fNCeHuhzSPCN%(5r z5QUl_^`&@E!}gc#QDtQzqP-J`kVO0&@SVd|X-uDG{ecyhQor1u(4AA#xA{2Kc31jC z>8z+-$k~m$XPQ0Yg9Cf8Mzo;M} zn!^3ic&g`~Kuj>iBgh>Y94>P3>c5&9>tK;oF4`w{pm^DuE1oE3nF=IYL;L2?%kj!q z`;8npMqt>*CdLC!OeMy74-Xwbs#6a8vs9=z9u5PE;x1h~IFd0BA$$SZWbnW!#By72 zYAIRv>VRBnobWF(jhRMHHgx`_WMr|X69fP^m7aTlR5)gwT<)Qx?%9_5Nul2;mp^+u zWD+IIF$?w`2^+zyI;kEmIxY2W5{Iu_xVYT=VFqtQ*X$yF%C}*f>Fbk zZaK_*A5LboZq~G)IWI=jG-|NSh_kAwDRpPP^vL0~$?yC;7SBZ6!DPei0`61g=&u~07F%~7PG6Dy@V1kk83^7IK{6VNoWOE zK0ECq*BktC9r4IRR0BM?$E{WO&8tDR^{Ct|`3i0&y5IxRJD1~)x!^Uj(~NSkt0Jv8 zVC3MCp2yBB_`_&6cg|ONC0b-Kw2>{bCs9syL%rWfgt!>qjIlOu;0DmvDUd7TcCOe- z(M1C$<3JlVuMJWxYU66csOuIX?=UawUeXGf&;LHwBoa3VzC*rcOu0HGoCtrG3c%_w?Y%co}2x-bbX$1yj_+%mOnrpRt5=wBW? zyfQI3ljY-kV{jN+R8^I?#R(h1TuP`ENa~=jRW%QGCWs3sSI$s7v|>;!dkZQ|s;09( z1GUKQpC7Ituc|Cq*{|%)KB#78jxoJJt7G21Z>|qTpGm&fL>7(c$L$Y2o%eu1 zBDN`5k%YM`%gmQ&cHv}ud(h`_vHcwAwX1J-Yb?9w^oH(2Wb%~%Wx)fo6CI%5gLe8#Ip6IprV4x}HO6{P1C zCBf^;vjiXRsqSy*9anr^6v81P{GEz!q_)~n6GVmoM5@+WGRA#;*2#a%i8E}ze2x9> z9)^gH9s;Gx1=2}uy1GQ3=3sxy#U?MU-@2Ej16!#-8Rag|%r2cad2o07UaooG2|uu% z_@iVo?p8eEvx&Yze7P_le<=LnyTmJFzuMY1W|5?r>AlKgG)DkTuE^tqV>%Z=1(ck+DyCgc8>;t->TlYIG zwwZFozi)-Opv$}K!WN!WmbGZirc|-0vsTPni&d@ReAnDdYqiapX<3`2xTVdaU(cB= zw`o;TiyAi|EO6VUZfToo4XlC)B4PsoWC8T2PHP21MV!P|0q)9vp0Tqb147QYkC+U> zU$Kn!W??ormxN$TcBEw&Z&D-t4(Q%|2~pw=f4yh>0esiW*yjovWl?&NLw{x5-{gC1R- zBI?-Jw;^r+gYt$t0bmRuadZD8B7JNx_~j~4o8vhkl(Jp|KY^M&^~d-0c1e}O0VQ@} z%{;o01h(waLX}&H*C&@Xwo<@Q+oit%(;>t2IUmZ&QznLvdP!Uz8>&h<3R3mAmcf)i zGqTg%2A3y-CZudexQFiE7h*g7Hcmtb_U=|+Vq#A6ZQ)x$S< z9S^ef5O21Mz}Ew7zFE{K+L3ISALWQ_u3O;ez_cFb**iVTpAE2tadAgB)cKCs(C?SE zY<;cSS~Yc|KP6OOI!j2QwQn?ctD06C-6x$c(YsF7eRoC$QEr~06(KWUqunDopPz ziL}TITg}cT?M?ms?W(&`$*$Sg)j zbAdgt3T84(h-+_rtCS;Y*VyK#+;9@?Lkwd*Kq#c!hjAJ`1V$({^Ur+b0%Gp=|U5KRAD1)E02J{)ePt`vd4@o^nVg#b0 zS3XOSY5+Yh;LUkQrj$QJEmQojO8v_NyAIBY$#4kFDM}`>X@Uk~FHRd6v&^$EXo3u+ z183$(^%6(28f63H=fjdSqy$v95_gN3xSNAHvX?g69ruD(g)oZxvp&(`zB z-1&`qDtRiyNA&>hz4ZavgAld3-U0Op>-|09GDsuwrJgV`uRIW+`6P%>RBV^X4DS_rG#c&vjhh?F)3KIVLTF1YU!zGzm zv4hojMPr2XTB8b?w9A+>G$@t0m>6) zLz>i}cf9YAz=$s&kJu42Db`~=0|}D4ZZrJn{`JB$*jJdiDCPr*^kdYc=jaLU!-0SB zk5Pilm7x*{Tg{HC${NJn%ASepXouG!1~dycvcgM_{g6R3db|ZIKwOHRRkLv&7Cv=q zj#{}j;^M2$TPi7>#AfB${mWBf62RM1`Wk=s=$=>MRkjL~oc#@=6X9f=9a_TRMm$fp zt7spxi?;y=1WtbY8oHpq$TE)Von~&)rM6xHj9K=0%s{`4a=Br1f1v0V!r+PmfFpOA z=;@wSw}0oQ7Eeb<7YlREeDgaTo+J0BR0RN=&oa;w3VxMYoKMFG1;n`pYKWihKsE>O zxf7J|k-vonO@X48yUf^e!)>%oBB_fc$Cm_`;W4^ZSG&J5dYv3gPNS%0Bly!&h#T!t zPF{G`?4ia;`BS}D<3i5ajyb$-f7=a*8oNl@R!1L{MJ9oE*^1mG&)xFUsmW#S?B$uI zrvPm6Fwl@3xAknX&jEqV0Ggx`?VNV|W2obAvqZ=4$w=egX(bjFv}|nqM*2D4fIJFV zCQlK&(T4uRZKW{}2IC{ZB8NR-<@oXXlux^lBW+G!rkEiD@7muk@e{cW6oLJ&I6auv zJy=fEoeqLvQb#5g3!4ARmF6Svj=}SIKxUN|Z-VXxMXjF9IdvX|P(F*ej!y;aJ>8w~vY5F<@f8E}ROlTwGbQ;JULe3k zkr6yi%T#;NK(tgD|1zi&?GBVPHsTEIo50SPz(h0KBNRZ(#7FBn5M+NUa9*m(d$eL- zt+xN_v2X0Fu5g6Eb(l|jy_-t|-PL?<`z^`S-UbgcVYO~dI1&~Rvh=kyQ_}1}R@BW+ zd(N+{<)2VpN>nmF@Fbb=YJW+5S?S_oc>}D@1Z-~)c;kO1%g+WCF&}2Fy7|M?Z`LVT zR^#4zfm;AS!`xEgY4U6|Ztoksg74^F&0Bm+ZRZ7+e_M|QHg(rFzL0jqOASr!#nfJ2 z>)dFcP*ZZqdAgszX<;=gV(T}1M2Eh-@e2NCn$Ky(F~`m8Q5S$Dg~U~;5uScvROE6g zlZDS_f{n4!>!ozO8se?L>fook?oV?5{@b3^cE`!1_YR7i8=(J4?g^8qb@{%M#@!|E z^Nz@XF9|+yC+m5Y!{G|9!9&qZUpwi$YEafnfCxuP0o1MP}BWJ|qJ;Vwdn=u9Ukzl4+pvO>cM|yV0(# zoBEmOp!;y>V;t46=VI=0*O}T-Yyxz@iLzxpVl1zEtpm-|JjV-2FGub8y-TJ3Dv)#n z3Odx!{Wh7&j*tEcnQXg8U zAyu%`<)4;#+V^-=1>G0yhXo7jqR^clLxT>nS!bK$7sQMf|vx?=dnY*XCi7! zMd*aLr$hSd(9F+(<+GDCZ6$9EiIgec&@qUG4u*}$@_ep#^t4L!ic6i|LvVB%`zou) zqjY2>C=((F=Fxy_A24MnU~6UFWC`F8DZ z4kCSmDhtA5{D9kddGN8o?x0}?!KY1G*gK~fx3S$L0MKC)4M09HVm6){5=(1?_)&NF z8Ob#bVjhlV*Ja_`c==;Wfu z{Vn{|_1Wx({gZZC3>R?`jxSZ%Uma6(dNZ18q)F(Xqk>qie}&!CkYh2)?;Wces#~~J zq%{aOK56$Jk>zOz5nYQ7GEtC$X4kC5B^uu_t_@URg9g5=CWl%YdFq#ZOuc=M(Jlw;9mRd$a+_Ks|-L!w*on z<-xDba;n1+R$?tD56kIKWdJ+=(tlS2KuHPW&v=`cjUV=$|B836*W4bz?F6LarQur6 zLAS3KZA0fPUS3LXSc$W*-fg?LlHkRpn~*o78y_(rT4@m*Xkjty*#rod5~oHK)eZNA zyAE!Tl$St1C^(J0iSJPwhOkKurYE5=5@IH3sp$DT6KbvF!aW~()=)|?Rd)D}aG(m+ z-HT1rT9kE?+!8%#-q*-)xnD~*6P7<&`FuU2_0TMh9q&xk+D-tgmR{o_X z3?VKq6nsq1NWGrrp+0tBWOuprj^PNC2$ST`DE&&|u93-VF$5FxDo6}MHH4zz&R{+H z5m#R$jdMCX_Adi_iS%n7sZJ6O3;kv3(t`61jx>>9;>^J8D6E)`f?wp5gPY)lB!#c zmTt*DYS;UvV8W+)?pUiGCG8{{8r{NOCC5vYkzq`MPdt3bUB9~Oz!n=Jg^A8`MzXkk zGhZqIi>kBm69Pw@J>+K&Rz6+@ZEcr%mH2eh2_o1nxh13Snv4E3cG^Z+tB9!V z1}hg)&ijYJ&b{ocEC0)e+L67efqQhs^2uha>ukm8JQI_?MwwFIOZWWYrbfm8 zpklqU>b}sSBi2EMuICcuEYp!1u}6z36>-B|Y4cKJjMf%`pQ?_^54F~|jc)H~u=UO-brNm z_@-?kGJ8-f?hARKQ!V)%@y$*--8JJz^CH&P=IEs9OzHBOb;mJOc{k)i|FlB#%Zi9_baH+J(Z0X;1nILv-JrYR;MW)4-tLfbc+_2Z2plUg2*G5~$uIC02Ro#)dTPhZZ<+w%k2W z2;$x?R=I=ywok23Uonq*;CvJ(@kSXjy?O>xq!aI>_Gwxosphx`pR}R0X(3S&t4WH& zbA=#Q2p$rOoiRxl%=GqXRHimL-pZOyZxgYqdffEyPpT8uzNpYEJ~hi~>qxm{WYG<} zf$iy8u8r4BI4rj6S#Q~1{Ey7p+Vg%)Q3WVcHPZg=;TWBhqB$afuDeJyg2)U{xvueIr!b+xxbqGYx&#bcxsAtAH!R=NL&y045K=b^HzYQ?|R{J|^z^eG$+0V2S5 zx=^}$-i;-P-*rGyBj%KwY5Na9fG{3LvjdO?3QY1noAwBk;#>yF!npRL1ui4=j%|~=o%cPq7T&OzzcQ-KDXn-+VR3uZr@E2wy>pm`yp1(p za`U0C{(G70SgAIcbxo;-;9e!tRVSV<+M09w7j5Y2(t(gj=*|x*$H+JI_sg}~gQaJ* zhssjLS!0%KO?(<%XYVc<0;Q#yw8h`03I`f-Z_DSHx$^hm=%;K`tg!5uoN$Mz+hss9 z-<~LpQ*yz1u);ag4UoKB?mxi`SUAQX>1|wl*c0Q0dhVt`jPjlz!KB;&zS_3DYWudlW$RDXi{SBZ z4Ub<35u}qYWU=ayh?akftqz|i@zTEbi0h>qoQ0g~5nm}84jbVAeo|Az$X27D)qmtR z0+kju{Ss_Fp?PXTv3!Lnfe|Z%{~f^PA8GiG$B$n|orTYJh7A6?8*DN0p&~&XEnYVD zyM^hj?Ty)A9FI!Re^oOv=2+mh#g1C(bHzhXU+&`4j}bdzJQK~ByP5ZS53MOcfwF`z z$n6L??*A=yaso15Pk~D_sphd5*-ZdSRADM4hMh_D6e!>g!&I2j%{TVK~iq(zp zBd@1cc{Bl2KulVyAp#|st2B3V{}~>lqhW7|rxxTTTi{^=TmXqs;I!FF3>FBDXG=IN zDY71ifs!);7Itn1@8{57Jh}KiBHP!pYPDQbuLLJ2b&ZH0%WhCqG3Yq$ zH#3KpbQyNm3?g;xH2yN zUn#>XtdBoWpZw_fi-%g~nn90~hNCRE>+{G!@EY8A8Y!BwjGp$GA8ADrO*mDpJGeOj z)uScpsiRQ|muFvc)s;%yrxQoF>l5EUdoFx%yHn9`;h*d){rtW00 z#ddC52(sr%227qHXKC8)aFO4!@ofm9Fe4`3!k{3WSOPl-0C?t|6n_f zW*ozP+*nBFMo+lLgC`sg?pmoe{Tr`T>Qk%)j8#sC*q*6niy+ST`sIAX#AvUHr)*Y- zug>V47BTEM8Qp}B0)8s1C3F>E0D-fE8GeS)7Ydby#=94ovo==8ryBP--?&8ZMBA-d z2a=k+Ej=*BcC1=AeSc+>z!Q5phy0HF?HlxT!7Oi&G?`$hrn1%4BnNj;>==1(b+YPs zDiU2D4M2@Mg?H`>5{7Sy)E8#IYI=STF>)Qf`Mt(EjSDkOIdBo&=HrR+>^+L;0+nd_glzf2%$!XMXU0+>?NoH$|c$NE1N-B)Tcv%|6&R zE0ha}pcz-LN^w+Y`*(ib;^!Te3O}|aSX5zO6r2w)%m{K)^cv`$$9j|}{m1Xh_}mds zDbAjTWJbE%dttk5rsN(*Ft5ZDEmDljk#!#-MRP~nNnQk!X>XSWD%_-tTi*rztJ&eX zE)Xa|uL+!>!v}21f8n!R9nLHBSNVp4+LS!I;b>e|I--0;{3KGMBhyFzzM^L~;4lR6$dCf=;P z1(2BYyej3TR?+s!9MvI!E#lE+?VTiH7ctU@y5m+ECfzOe!wk@zyAMY?r8t&lOqR49 z#2f1llw^ZE``T)CFP#+zV~nPA-KG0@J>u>>uCetTh&x|dXJIREjBQBS>h@1-Vmhlf z<+#k#Qo;YN%qvF1q)Lk0la%O0$e%*pp&o5C54Hi26Ju`Jk9SVzp|!%zh<3`f6Ez{Q*g1_kD8q16%Hw z78^xP$4xa@#9nw6s@m1ERO>Vu2Y3U_V^_#cYLwDvRkZ=*mTrw5Il)F|*M z322-O`>mS`H<(=qMPR}rpXVBl3zAQky5r?Yx|`y~WYT-UYvSv1iEJ5=_&t|sm1?Z{ zV9yiOP}&y&7s~O*%@poCU>0gVB4ZVzvCDqN+!JHC7Bh-HgRzGK@PgrT)L5!hJUq ze5NWdEzPauKFSB!S$-E`!41HzD;)3_57lKif=1w-PZ;n0ofjFzj+B+JD!ARPb4G`^ zM6FpA$iCP+W_noAQA8SGlk2&$#vpQFj=ikBlPRz3ex?Ip=XkDXuNqHj zztQ&i%)_=40AeFiwi~zs1M@XDsmC`mGBo4A>R|u1n)hP7O7uDY#Ge?x4cJwCd=Xc* z&-M5D?*GlnXR~PO<-BzX5?UrXiz0lHNprS_%zCY{fx}H&*k6V%HeLfgheoV%qVh?R zE>qh4hZ>>6*7DSda@`o@l?s0>5NwHLJE+7VM;U|j4A4<@p`B3Wq25!{94Cy?bgs>! zghA_H8OrVsnvI}K=?oYBO#=D3Z3aw|%(uadT@1+O%A}z${jc*r-1D~qF9l$oc_AIn z@xqCZ`)Dsr_uGaNd*mdPpq-$*EgUbgqoaVC#;GGeUJheecEfPziFTi2)lO7)Q?mL_ zQzXl9&}wM81o`Sqyb`II`=v%OvY0t)CC(L0ff~x4DqVB~zDT|$mq$j2-p33yk+@ohmb?9cZId3X`AJ2o%dw=hRY;I zjI5eB-fWJu+_8;x;pPW8%3;xjQL)ZfqQWv=O~)>s>%;8-#7wHHj$Rg!I9T|G?_WT% zm!B_Jm3KBXYhC{{cjT@uC+X9!dnYN zDsL@j*zEvTMDc-`hVIJihhm5{|DP1M@#c+-2dF@5b1VwMhIc`V%a`on##?T-Bkg8t zk}sHc*kCJReXC9-<*P)1;1W5!Ijj@0{WY>(B%F_<+S+sZ*VbPMt*Vq+Do9h1qZ$Rs zlHP`|b?j7`aU3FYmR$R1xUHD~I*i<@|f*fMCY>f*7nsP0tw+*P6Ak1 z(4&BhW|}w4HTpAT#LApSns zJm9GEsPx!!C4nfZhxFx1dQW~=_tj9!YsGVCXQsQ}5eeM_SfWL@+P|6S5_`n^RbKmZ z@b-wi=q_>`52d)29U0qWXWIn$t+ra0zi11WZ$&@Ig&-Gff9W86pH2gX5!qs`|CZcP zKocVJC=0e{jB2rr_ht;5_ZT&c;jn<$4k5M|$*E>h^;QQ$dd9~4IuNh`&R1ntN_{-) z%n0d@isz2nRcC)@ai5C)C8uo4cMa6|A!#<6W}K}CeLa>!{UacFG2Z4YP#Ml)UD6@e zzAxrkmouhQOtd+`@P+RSeIwY772sCyA&y-(bB06{ zMV3Sm3u&wR{4#$<_1lVo@+07cfxRm@5y1b0s?}nwUF5A- zVZZMh@ckid&mO}gOFD>hw0Ii5GtTve}!F%909R@DZZW)Al~Ss zLqG!F^A>52yl#P{hsJkF>+CSlT4C{D^l^C|@1(?%x5`I(DQ2QKxG;+X;GK&|8&}!U zKUBFX6YWvvhikFCN~&Uk{VYx&RTpDx$)S{`tRCH!!)2*(31Dy02M9xQ5-Iof`CesQ zGPi&MZP2;a4O*3b7;g2`u_XOI#iZ*S;D{^!!Ld8Y%|X{AN4-fdZi*VwfN9XvOs0(! z8*au>$Cz~E3Y20|$QMvlrH}f}K*AAgw-Sgn67tYknFwafFxr6{KxI6w<=570Ah9}A zGtgP6rPDH|;5=Zh^fpu6O`!%z{fPRDP}YoA1FY)QU2g{xy){xa4tFb%gVa5Z*J zLIJAjzupsUD*HP4GtKyu7%;xi|G`U+aa^agDwtf0C{0PhdBx8^K$L50i8>=+OrDXz zy;h5mY;?oE*PC4O_|LP{B$D(Ad%6+wp;W#I>lI5Z9Rbcxh?Z2B1RO1ShJ&+Uwx%|x zO|#Qr?i{UzXkgNqInsxaHn7pt?pvcTEQa9j!!=v_M&~nwLTSbV*J8(7H`@L)sXP@z z@7ErfKV$;5(Cny4CnF(su<_T2M6TD^O%4mjYiw&IDS3Za>(-Lel;RggV%rJl{~>n% zlS1)}?3b$M*kk6i6f#Bf@}!flc6mj6rENY|;a@Ge->JCNzA^|1{#oYZAk^B_eZist zaU~f`IH}Yd@cLCThTFzu%Mo+7T6*TF2mQiKt*~aBlDOttqg`iCNV;hUm0++?a>4Ufc*+k-YeCy_SZwrc*d6!gmhpM+dAdrWb zLq=oks$c7fOmO|Ntlj(#xQ}|Qn_8YBqm;KKuscT`wgKZgzY|WI+`}b;7y4!&WW*75~0y9=(THyV4n z$&RZN&76QiH+PLqR}G!yzJvhuDj`evwFI55RzDiLW(0|7jkY<;ij7yE_LcToHIE^9 zifTV%Xwp2EAw=aOqIb_ltA*4*i0@k4S{g&9gkBL><5(@R`^mJGeZDsDjs3mfPDCyi zo8G@Vf^$dAiSksg*F(*K@=ZF&b9d&P8laZ>&;93Qh1L7|ImO<-72S1%O!X2@ zzeK1rOo z4xDkn^QaVP7vwV67g`J@>OY(9eiv|>Z;E{iVPOEyy8t(~IhYu_qL-Z!@T6b%alF#i zzLcuw*Cd8ldaN)82KHQ~VYg>m5)Dm7Y0bO=-@gGK=J+T5SFKL`J_Q`-V$gqoeEM&C zyK!Z(yOy)cErur%lAYpJvCjA|3*gQf-Z8=he|Ad;Q(VS&5)ay!J{A$KjP_JLWbltV zUTEPYJDK5zWYVW&tM@U<|7DT!ofU8jkl|gL#dd7%@zITf*m%|Hy}m{H6~N#7N1*WA zS}@%&mdx&0UiTk@o9@odb!fapNxaTVqRyay;{8GgeFt3^7pumnZa% zg=H=VwBu*!K~05wLl+O$wiy_{n*d?WPRKL6+n(W5bGWN%*xJIw!0_PRnR^Sh2%}{g z>W)9K?kBE)PuXps+0Vp5sJZ|B%bUQTZCY)f3)Y`bMR6Ni*Le|;f!h-+zy~t`5B{2} zGV~1rnG481lNVS4pYZ>gnIbT=rN178q5YvAX9R zng_$8e5bQ&4rV_NJytt3^J^ef}lzEczQKCd47n?1|SHn@C4?>Q_j=IlyiY@=?c z$2Hr)D;$BA67g#N!9j#(ztIg}4rzH((JI=Dpk!ybrGIGPp*!iBaV3i>gH=(^H*4wu zE_g8Ll07Eby6vUnSw9s`kVo0o^LF~gdHrU^Qb6=6&lgt-w#{>`lHzkJxtzn-h~%-sj(VPdX*@e_qGWPsH;dLmStP2H& z$7XY~-7o9Z(4Cwj6;JuB_~t?XZOl92ub*hE3w*V#y3~1rl_Nf!*it`bhAGVLbT*;X zsRiRYl^!JnQ9JBg<03FN%yN3tVzqfRxU8-tiT_r_jMBEfQt|}G655(2b{SLWc)itr zPvL8u-O}H^p*Cj@;4q9p^vL*X?@!&6(tb$>)6 z*fXzIjO-MX`dPR6Y`sH<1MgdcvXZYw=Q&mZ>Qu96lPI>P$Hiz2`b3I~eW79b=YW+qwMA{a7G}^Z4DC z66fwN%Uk|#z-~{GM$b?`Vxo2EiqEnUbUP-pQr2ZFc zICsQ8vH2Ib^H#1n;-x?wQYD%|y+7m1GY!7om&t2dE36~7W7pgd?aN{{JA0a9rsz?e`?sC#tQWNJp>D`P3seJGG2a&jPF{1>U%_nJ4MN`$lIxz%)!{<{Y~Dn{RAo z<~ZC{(rPEtxp1zr_KX6C0+KSp1qDaLO3xr&LuUYM-PJ4($wd)J(E z@+@U@j#ziK%>bzvLx9HJVvmW0h!{K^5v!zMIXFbsUBZvcupg9Z#43XI80$`Y?7Y>Xz``L(m3?Z_!+ zj9F8dTw|HoI&y=HaKBhhE{-YDR-VZ(x3RVw+fsF?Zwk7`@srW@Q%|nCY4w#B4`e(+hmXE9v7U>q|!HxPfJrYj!HQK;-R;%&4btPUn^F%({!2 z)t9F%PASZ}+uti*Dq>!NW940HpQ9`*>9*$a_`5&dJ91vnjYiDJL9|AH?^%I^c97Od z{c?yq;e^iO_BSj%8t%%IMDCuhv@-%BJ>y<+sI%?J`K3Nyx|dj&hG_E2tH{?zmQ=8Z zcwk;$cZs}EU-NvD%^4?iGs@pWDXzx+NnQNg5?@z}e|{ci#O}_W{iWc`p%7>KytOc= z7jFaHUcr?IEe%MWba=PYXx2%krx+7vFJ=LyM+5)2AL zGXG!gefL+A{r`VED@SIIa^32k-JxlY+@sXAVVWsuE*y6`0m%e6t=l~+@3fq$IRa5h z1-F%gr75W?DyRvmIS>&yDxa(O_k6zR`#*f&KXN#SbDfLV>vcWW^Kk_&K21!mij%5} zGI-==o9hO~hT*nATeeQ8%;4;nDnSOtc}$XjW-T;j)2L%3g$=Pu0Iv>XIC#<;5O5Q! zV!p!N4|JwQsG^b4R^N0P7s_7`m-Zc=n=XG45M6Z?sh<8bTq8=9z3l|8fF;f-bUrAf z8Wa6+nDsU1HY0w?6LHVFrmt8>8>ykHy5}G zsxq$ykfM=0TV3rqLLe}AXJ!!=$$^mu8*@Vpl&!9v2R#H1YcV6yn^KYzbco}q#97;~ zk(*uz&d#d|pCF=uI$7z#{B*RRJw6_>X4?A}xulf^i!>PrQ8&zZo(_uSZ4s(4Zq2z(f_e4rJ z!2QcksCV>dh1(%#$n~tBKMI!N5#)kGB8KGIIi&ortX=p;1}mVRMa*G7j(RJCwYg!! zp$h9flD*wTTEua%lV~Avh;H38t&Ile zq?)hMH<0Te?|ECQUsLRDD9O?AubDebv0|*=@4I~1bkp-VOPO*l+Mj@D%c7No*V|KE z@|__ybzJu%?4oH^)K~^}YMI%_QOoaqs>fO00RE?!oJZ`GZ$hy%vFyyWcHA(hueoht zX&Et8q2PGqh|OH452IFAom_9ILg{&Q*z6*F_osb-hm1aKp)6gBf6p<8b%@f)PReNT zJ-GF`ThncL18a&@()D9@XuFJT`CQ0+3~ba^cHE5k^$Md%6szxB(cZO?C?PT@e3Mtu z_$u|`k9Nm0Jq1&b6@|oBb9O?3EGfk7ZT++H_ieY`y{rpx;l1nwI!YSNIjc=c3fJ+U zp4D$8j;pd0>=7*GpuY&|w6A8R0Tbmyip8JGU%#q{>iAl-`iOOr8im5|l3-(9KZxlC z(!SMs6XxYunuHJYR7~%v!xZwJTana z@{X;MFLc^%|9e=Tx_nA#dsGr_BNN{%ayMj~rI>Xi)TklHH9Vx3K?K<_{YZ1vupV!n z{_j~~QrMTi(_2$F&#tf+=>}$^o1GYc!!OB4);9;rvgo0IIY_S4aL#qYr_GFEkw*8| z$K1?F9#S593)R5%{b^{tnEmS)YwD`S^!vN$R@3T&?Cr{M`wd%eGkt`kmJ~|Pb%O_N zF%XgS^sbqKt+LcK1GDk^zmWqU{#4x|XwoC(*QHnsbBfz<4B#A1&Niu5W}SbM)jHUg zy#AbYk`?NkJk8b8F!wOYx@WF~En!m5<1@F&{k_zaGmCztVH#4usr+b=UyAj?)#p{? zcoVUfr3NZ28vTYFwQ@aqJPN-Rd2=LSX65zHy5|0mFw>f2r&;wQygT=QdC#U2QjLVD zLng~t8~$Bs%TdoT{y%^SPrNg{x_o7}Ew16G2JvGib*Czc73ntlcS=tCF4eqLBu8K0 zRM2Wd>4_c4hG&HDgeC)zVJWmi3R1#%$&h**y06E;!b>a9s|!qH?@hm~0@-1Y)dG=hnYHs2L&M6na9aj#L> zgi-vb)4~zii5E)lgo8`sV~3iR&r;ltC&4m|H9`SPq9u#wZ+9g+7#f0zVbPkN?N6=C2fLD_d^K&f2x*BS^XFKXeuen4h9|aUl49fp zf*u5)r;FP_@CO=pPfXs#eRyY*CT3g_5H2}>C#5rIVvAVYE+w%73z$KR+Q_v#T;_gb zM34<<-mSmh&~XZvoVLXmw_N&8;k#R9reSaJWmvEz&B z$uvIAvGnaAnH&Cb7n8kquJ;amyUB$z4Dw2YMfhqhb{#L`w!mJyZ}%D~+6HoSS!g2m z(`ljn*l&>VRcFW2Qk+=M^Ly-8{=g^Pk_|cHR|>7Qve|lM{Vt}q=lB_m%zw!BX-E?| zzyJ!!yQwrqMY-s(>91w-w7dT}u{f}ETQBMwCH^*q?=Ij2Cd^0IP>TQIMf!g7d26v> zZe;Ja+-IC*6>aIru1N2dN^w9IDimHa{%CD$Hk$VU-MEc^S?+(w!S;Ck(Sva(sKt4p z7bu)N0BTVd6_CrG2ZXqd*@?HXc~f`9@7G4=If(z8EWK;TOPsx>?3I{Ih9}2-1N|W! zCU2irHQ%i0s-qRFX}t8NwDWdzoXhxN?~6+K$^o2f!%g}tT}o_{Z|mUSnnY(Ow+^Cw zkVLzInewXu;zgC(tq`rf2t6eIw%iP|6|uI?l9L5r2ivXqU~IqxN-Q)x+?*nlfSFjB zAV(PWp26pb1`m`!4PIL>;y{|{I)3dD<_Rzly($E671|o>(f#Z%5Q~Tq&lUxxuj_$k zi?XZl2#qW*ca?vBt>bOcJt0jE`r;jLdfq+x2Pl6&uO`hdo>IT~L~G!kjGDMMc^*N6 zx+cWl!>>`x)^ajY;p4p1>DkFUym#f5fxe7wYfH5Mb)ZA(`_y51_trw9nno}E2x9d0 z0!hsxU+7?*gnO;y5vfAUCSdw@gOA4wS=i3SouIem0TnJzMK6Du4%t4vn|A;cmYjH} zti{XPv1Z5MFG_$%r(+6h$T4^A-^-uA$Bbs@b_Q+EzjLH-HMP{5TjE0g_;)7G=Y8Lo z2bx5-n&-wRN-;qRwB!o5xH9;42&{s)Is?J&2^(xrua&eS77MHSV$!`HV|<*v>o(R2 zR=B}6(35lujeepNiL0(~wz_)D=FHd|7nF>*pAJWT%}tJz7fdZbl*~idT>5)eMNB^i zrjHo?uKh>i%+TC=@cGP*)QMRBdqqbl9qU2JSwU;Tzc&n%Sz9CW8ee4P^n2EN1)#N? zO)-6kb^r+PuF%x8)|t)RxfXq}=LitcPdZjK`Sdg=W~V^6HLwzUZ_&X}mx0YeJ+5`h zG>~JfKMGpq)88cpf_tRs4TIzeQcga=3x|~KRx*;zy!whOu!P%LC`uo3%cD*utqdaF zM!?{XCNR_P;z0u9ceof4#lJhn%rDq}%N_hyBycSAwtgDRiDA!gDZBX7Zj%3O9{E#~ zLcdHlINhrkASrakcLh|G9-fxxlpu0u99LB3SyKRb6uG>($Z`m>vp|%xXcjAV+ zu}A^a0;dp>B^qWJrrW_YN*fq0rieR zaExTZ_s;$%c;LDyOv}3HW2~-gx~!P3$9n_$hUkb91PGfpddF-;MC%&7B=0&F7O)b%#hrMmi{FK9?@p%l^_*XGOt|3V)`ltPAkK|98ROl5oL_=jOfeP0H zV&;Jk@{$GHMD6cDPrz)?cL04J_wEf*eIh{1i^gzjIVgBOPU5Vc9OUKo=#b-_7)1@rC5HE^ zWa_PXorztDR_SgX`%(~3GnqT$BTOFS5-;wKZVoJnCM!{9h--evw5#G?Q;Lq$LHCjF zVrV|OKHwrHt#xt>mX?Uxt!;ebV+cPD-4F1YeMZZl^fD8`-hXC%Fs7GhN05(M>%CTl z>nxwY@@zQpy+mOzQPmjPy>QRxg$|?Z&GUpK+cu?(1L3;b;(_EpRWq|}J)^-5KdWUsr3r2dbBC9%78aGde6xc6dU)_mUur(1Pf zon&61cx>uR-c=7ziO$sv=`Syy-^v2T^c&;^*DR~F%+p@hGk)ndl=x%tlSl+0Ov`Zepsszt! zTV1Ii>Hl=xl*qK_bU5!<^j9|xw$2{*u9=4@e>M84xNA06kF+Gn+vpTwsri^CX8uvN zP@WAL37fx+0bHXPKfaz>Lj|_#+ts?7pYZu=Q0ALj*Tw;O`%a@(LLC!^@r)2FanalC zl~g;OJ~!BVJI^k&=EByfp}y5buICA`LSEX(`w={$!*Dr8)dcFv!kf9Y99T}d#@MoG z@%|oq+r)#c71!0lH^U10&8x847|in7fcT?PM&zg;3^({SwDm}Fx`K(}P_5JkwQQu4Q0^=c< zebib)Oja|7%kV$%!~LC&(O|~tC1~CAn}5+qGQ+y->~BTHH%jd#Pt9{8?%!_vD-!w= z3UfQ4HPzoiVR=5F1VOVP@}|Z+J!S}7U{CX~k>@cD%S0tv&$elDu^T~(L#CfT+^0_% z3#`uC={Wa+|N!71Gu5AL+#do`Iq)R2b@AU+Y!#v&c0GpB<( z%Q|~%w>FVw4gN!8U!$Oct(9?FODk|>Ie3J9GvAH@D9&O`rvTy7y-;)(ta}PkGFC9r z%S$~rDfFa>W2?ItcF%xM$}2G5kh50)H1LaeBBqNOX5;eB4qAl2ay5cS-)-jpdX0@V zjf$PckecbgpYFN~vMLLXa`yPh26a&EuF}oe*ybVs2aJUt6VLfUau9o^Xk(i~7+vrK z_|H8quPKVuJ(;A14nbDbH7;$AAK}Oh$$tQfRAxRyvLIr;uj!D`c@z=Dc)1ABFH|ie zy>WNz!A!cKf$L8nA22wq&u@^Z+_)WC^u?o2Is6VZxO-A}x$=`nvPMvZeidr{O4+@O zL}blG>`Y(HfQDxHURv7azI8^g|g&`wFcncgW2pkUoX=9x77_KsNWt?@T+??`M2B_K9xNI+2}E~@U3 zbo2~;YO{1iOJZ^XDm|0qhrS@?HxXjlsFL=Ns`>f~MFuhRAH6j*^_!vr(rzoy8{UMD z*$JAB6Oqk^$ImCn=**tcoSm!Rd#D^xVEoIC>2)V0rcfFhHhc|tvwdo!wFzHsVy%nn=Ptwzt2$g1m&PWGnv@Gai`7MYx|;G|X$u9C zZmX#pk6l>3i_f}5!E@q^cUS=%=&wI#yRe0Ns#o=40C@R1n(5!`@wNYSdZWtL-mqn3 z6)O$F&4bJhf8xbr3oh<_CS?_;0^OO@!&U=br7+)a-iPN+>~SI(V*&Umr3T`n4V;}by5=TMW5i>NO(`Cjp!NdXi*X8^WE!HnPGS2t${@k4fEzmu$z*DlO_1ndwKWZZnm48 zqJzgtD#D=fj+`S$jbft-Mg+fGa2xzvS&pSP?wr%or~)0^_6t70FU4|~tJn|4H`bVR zcC4jOh+mFMnH8Ie@N+)fAih8;m`u8$2KqNXQ~@X<$;0pgFgCJJ4(C=WXOah^;5*h0wk>%DOUn}oPHzmR=3bavm7zuE zuaS|U!t0EW)fMAG1k5;w-?h@A8QT~By>-~0V9Vut@6ugfoZ{pVz9M5-ExMqOzH*&W zvmvn>D<}R#DktTT${QB=(5iUv8b;lT}sDYIDRPP<8SV)OH@+ zHngj{K6Mv@tgt~4;$3rPmH$p`la@%tk|W-NFP-d~iQHLM$|@q)^FL$3Q*UQTlJF^j zTy_LroK59jdJ1Bzzm`9_(^mA}D}alba07%&t&VJo9)>Jb%w|DgcY3fhHlJ7Lmc2Ic z+Z>r)7Sd{}HP!rU&9_-v_|Un$B--~mcopE8enY1QNh-$~#1$(}>Km8easwpkfm!*2&3LH=ikTjJUo=I9@;is`zt-p$ygt6;`;k@`AmDAKDQDuv>c)e z7|KM+liS^xUBAt9-VtTFK9<|qVGYgAmI*b|N0MNQu(H|I<_3=k)SY@S!A>`O_?>g} zkAJ3kGL`=03e+eAp90b-L|lmIct@(c%Ev;!(2fBz^BfSIN9pF& zhR&5gXmc*9Ai_OwWb>L>mFr-*ZmmEdVgI%mHPM1U^8ISZMzU{n9_XXNbg{jIZdO{u zS7NV--x$&+vZ5!n{muG=Z_oJgWK`k=t?NUm2XwK@AWJ0Q&zz4(l!=Waqv$O7w;zV} zgEfq@4P$64XM81Ds5L&&sL;2dW5ST1gEql4bv-dDyeGcbTyp5= za|LV!N%&8r5$U`ng49mJ=;jY!H?s}%iEj>1xK#`^v~e-sJa{u(ak$xVr|O7AAfi%{ zzYs$bQGdc8w~xKONdL9D+AY`(i-Z#dESJDFVdg}EW6D2}$)&H(Em*mD`e?fNzRHM= z=b4iMxovG*Pag5mPsO=4#MoGeG2+6b!(H4{_yfB&TGPJ46I;cKC9kWZ!G@J|abH$e z+bILFx>2aP`Wh{Z(?T+^G4nLrovOk(nvt3mBL2kha?`u-HXd7S4Ep>`&C_i=f8$hq z%ks+r{)`#=GkfJU#} zhUFqgPi06;Rgu78XWf4|Z~L}~x{!{+6OW9EqA)MU_M2hR{d}!h){WS8bb+1}=RDEx z07MI}p_cYYu+0%@v?E68iy0FzUq%OYGiMOz8uwVsb9`;i8At)FHxsGy-)=De zIlg6Uj8>|!w6%h4Z_?>=gAVH+LZt84R$U~E_MP7{5TS(>AaG5~0DUGoT>ftB?oMnB zf|tfB-4md09k4IRYsIkobik{Thpt>YIq691 zAU3=kE?~PyQ-XRnHJ-A!Q!Xp!H`*H!Ub)a>`s7&;x?Yf9YHkKOpGCK-t#ekpn>-(V z@AVKmOz!Vke^7XRu4bULOa+a=++q8V{}XcSDZ(LUXjU5=ZtsEqWNeiEloUGCep$a| z6&66v=Csm!J=i|)hD6EyOHKk|vn<7(1-~g&GH~$ImV1i*%8)lLR)q44uFr9^)7Q&K zH*LAC-@lj{F9^1MUHO`V{-Jrfcm8&*Kdalb$44$$$Dc?k&SWFkO;kMvo2DQl%uQE^8SzRNEX+jlKA&C~L7YPdAeg=2KH+(F18I zvIZ+53CH;Xp*>1>ay9Ar@FY-{!T7u=0TMjw1bJ3xY*FmJ(QhdR#O60Q(w0Ej@1qf` z1^IgTwV466qLJ8K`W!Gt%CKr9j~mr|{Pi14I^BIG@$y1X=KU$J3msTol2UebCvfeK z|JY^OrPTsuG)%{pM)Se+J@1lAO4=oTTPo+OJ|3@KtgfRQ9g!6~MQc~eNfpO8NpV{sAoTPlnGB{SWj6{pjtNGD*0z;i>Ii_SaC<>y4on;(!r)U*R)0yEhw6g5=TIS9$iSIs35ndk@EyPi z9i(fhFbcG+4`XMrV$~MGIUtLQ@Rqxnx@^^qzLTazOI^jP+bchlLc@*G&%Qb^!YapL z<6kDm`i;-p`p>Hhao6X74w}RZyi`qov1_dTf!A7bXGK+(5))&#>6YlRx_;k3GPSLt zgh`XK1y_uR?=ZA%e1QGa=j~%=y9~`-2aoW8NT` z<_tOgMiJP!vI0Q$@4w;Mf8T@>`s&s~76gM>wlhYbL|q12qkeOY8@k&HcEiUp=DTCr zBc1_vL@YBcdw+g9QL$|Ug~jDdq4ChJzJ+xwH4^+|h5lA4mO zfl=Y@s&lc6SNF{f+x11w;Zj5V{*>4Ww{w;@Kf5IbaTo~$WC`b1lAJs}_?5XPC{p>7 z+_g7S${kzN6~zP1i5W%;np`<4g>bKk*4Zp;rnt7}*0g@s-k61g=W>?f+E?mj6d$7c z_p=?zu`$RDq&TO9;9g7HZ|P6*5GthBhDv`@?8&2T1inEy=-Q@ELHmG~Bc=$lAgiT9 zxI+2DsaY%I#a}~nc2Q$g+VLu5&Ccdu+}`wUm1{6ZJr)KA9fhHZwGYZb?3Z zwnbTk7B^OCILJi>m|OF%o!X*L^w^yg+#_RQiXJ>B>tlIG;>1NDOC}cOMq7=HJJF^| zdC*KLOe;Q~F>qfF{6PI5BWRFuXW%wtV-w%uvay6U9_Yu%ddkfMCbj|fr*fwGOV-+C ze0=jxtf6%>ArgpK+0WlWIkD_QdYq6mO~d&F43i;G4RiC!$(*U6L!h`s!W&7VMA>fl77_zwghPDjDA&}+x_UJz?ryO7`|tA8!b#RWH{5g!tBSH* z7^duYoU=JQ?I}T?W%;oD+5FJ_n5#*ZL8*_N$#DIER}D%I4=IEI}u+g(BD?jBdJS=!8r z9?D^=K0VuvLQG65`pE0aWGxhv!`;`b1V%r3>DTc9xzy47tzdM=%_NJN)~+2tOT4yH znZ!ogb4M39zu3nuP^IbjmYN}HQ{pK(8!d_+HAd&p^`3FdpYV~j9@vx)n=IXPAsZNR z@iP*sCQ2bvkk56?lS1BR1@CP6z8Iyx)G9usTHE&vbz?_w2qG;}cUkMpmy+8Who8_( zo!264YY#u6LHO_8_6`k2vKe)&hFcwGD3WqT?3fbN!7n%BqdWLX?s2p@B9JeklR?uZiu#3B^*?2w+87B!OD^;qX zo@;^t)h&U`J>fk)cPxZrC?_l)_W2%}96piCBn4-hxuX?KqpZ+F`yUc69sExq9b3gr zi&PP*VlF-m8}k<1vjw#0@7ZItGJ?QFeWp*7)E1>S0d3EdqqfH%m>>tfx^-n0%uzmF=CHFk|{Cnfd0oDkR=Jog;TTt7BU3m`1^>1PLBp?miv{l`{VlpRT z&L6Dm?~&Cn&C!S1qIWks146msZbh`gfAgT3(^l;$wCsV0-v0@qAB?UIpM%|DPc5?<@cB$N!Br|MzbEcQO3mjQf8V!+#gU|L==Iy+j~Z Y#5x*y>S=)4?+3-TD|S|u7G9742QxT=#{d8T literal 0 HcmV?d00001 diff --git a/website/static/safari-pinned-tab.svg b/website/static/safari-pinned-tab.svg new file mode 100644 index 0000000..2563f76 --- /dev/null +++ b/website/static/safari-pinned-tab.svg @@ -0,0 +1,27 @@ + + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + diff --git a/website/static/site.webmanifest b/website/static/site.webmanifest new file mode 100644 index 0000000..d5e7cbc --- /dev/null +++ b/website/static/site.webmanifest @@ -0,0 +1,11 @@ +{ + "name": "StackQL Sumo Logic Provider", + "short_name": "StackQL Sumo Logic", + "icons": [ + { "src": "/favicon-32x32.png", "sizes": "32x32", "type": "image/png" }, + { "src": "/favicon-16x16.png", "sizes": "16x16", "type": "image/png" } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/website/yarn.lock b/website/yarn.lock index 00f1900..02b7745 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -2,163 +2,194 @@ # yarn lockfile v1 -"@algolia/abtesting@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@algolia/abtesting/-/abtesting-1.3.0.tgz#3fade769bf5b03244baaee8034b83e2b49f8e86c" - integrity sha512-KqPVLdVNfoJzX5BKNGM9bsW8saHeyax8kmPFXul5gejrSPN3qss7PgsFH5mMem7oR8tvjvNkia97ljEYPYCN8Q== - dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" - -"@algolia/autocomplete-core@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz#83374c47dc72482aa45d6b953e89377047f0dcdc" - integrity sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ== - dependencies: - "@algolia/autocomplete-plugin-algolia-insights" "1.17.9" - "@algolia/autocomplete-shared" "1.17.9" - -"@algolia/autocomplete-plugin-algolia-insights@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz#74c86024d09d09e8bfa3dd90b844b77d9f9947b6" - integrity sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ== - dependencies: - "@algolia/autocomplete-shared" "1.17.9" - -"@algolia/autocomplete-preset-algolia@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz#911f3250544eb8ea4096fcfb268f156b085321b5" - integrity sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ== - dependencies: - "@algolia/autocomplete-shared" "1.17.9" - -"@algolia/autocomplete-shared@1.17.9": - version "1.17.9" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz#5f38868f7cb1d54b014b17a10fc4f7e79d427fa8" - integrity sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ== - -"@algolia/client-abtesting@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.37.0.tgz#37df3674ccc37dfb0aa4cbfea42002bb136fb909" - integrity sha512-Dp2Zq+x9qQFnuiQhVe91EeaaPxWBhzwQ6QnznZQnH9C1/ei3dvtmAFfFeaTxM6FzfJXDLvVnaQagTYFTQz3R5g== - dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" - -"@algolia/client-analytics@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.37.0.tgz#6fb4d748e1af43d8bc9f955d73d98205ce1c1ee5" - integrity sha512-wyXODDOluKogTuZxRII6mtqhAq4+qUR3zIUJEKTiHLe8HMZFxfUEI4NO2qSu04noXZHbv/sRVdQQqzKh12SZuQ== - dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" - -"@algolia/client-common@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.37.0.tgz#f7ca097c4bae44e4ea365ee8f420693d0005c98e" - integrity sha512-GylIFlPvLy9OMgFG8JkonIagv3zF+Dx3H401Uo2KpmfMVBBJiGfAb9oYfXtplpRMZnZPxF5FnkWaI/NpVJMC+g== - -"@algolia/client-insights@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.37.0.tgz#f4f4011fc89bc0b2dfc384acc3c6fb38f633f4ec" - integrity sha512-T63afO2O69XHKw2+F7mfRoIbmXWGzgpZxgOFAdP3fR4laid7pWBt20P4eJ+Zn23wXS5kC9P2K7Bo3+rVjqnYiw== - dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" - -"@algolia/client-personalization@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.37.0.tgz#c1688db681623b189f353599815a118033ceebb5" - integrity sha512-1zOIXM98O9zD8bYDCJiUJRC/qNUydGHK/zRK+WbLXrW1SqLFRXECsKZa5KoG166+o5q5upk96qguOtE8FTXDWQ== - dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" - -"@algolia/client-query-suggestions@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.37.0.tgz#fa514df8d36fb548258c712f3ba6f97eb84ebb87" - integrity sha512-31Nr2xOLBCYVal+OMZn1rp1H4lPs1914Tfr3a34wU/nsWJ+TB3vWjfkUUuuYhWoWBEArwuRzt3YNLn0F/KRVkg== - dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" - -"@algolia/client-search@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.37.0.tgz#38c7110d96fbbbda7b7fb0578a18b8cad3c25af2" - integrity sha512-DAFVUvEg+u7jUs6BZiVz9zdaUebYULPiQ4LM2R4n8Nujzyj7BZzGr2DCd85ip4p/cx7nAZWKM8pLcGtkTRTdsg== - dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" +"@11ty/gray-matter@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@11ty/gray-matter/-/gray-matter-1.0.0.tgz#35ee04d76b870893c053f64f659c923a7a9db2d7" + integrity sha512-7mJJl+wf1AByoT0PknQiQfOPnVNT4fevGrUBVWO4HXsnYn1aQPyRyrELYrNUFleUBM++KzMKN6QaxHPk0t/6/g== + dependencies: + js-yaml "^4.1.0" + kind-of "^6.0.3" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + +"@algolia/abtesting@1.25.0": + version "1.25.0" + resolved "https://registry.yarnpkg.com/@algolia/abtesting/-/abtesting-1.25.0.tgz#cf3b1ead5b9910b22ec953bcf1e20ad8b308f5d4" + integrity sha512-rSTin9Uta23uaewYVQEp8XI9T3iA/zrg0/1G2vhf8oFFDxFL5vybnZ5IQwsVAg4JpKxPX4/WYNKdcfWrZymk7w== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/autocomplete-core@1.19.2": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.19.2.tgz#702df67a08cb3cfe8c33ee1111ef136ec1a9e232" + integrity sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw== + dependencies: + "@algolia/autocomplete-plugin-algolia-insights" "1.19.2" + "@algolia/autocomplete-shared" "1.19.2" + +"@algolia/autocomplete-core@^1.19.2": + version "1.19.10" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.19.10.tgz#a8c6b9ac8d29d41402800d5e095b632b70089ec4" + integrity sha512-K8uQ5iZCCMeqqE0JxjvcxJzDFuqZC1LTGJvR2P76ofDoOdKTs6jqoNxG5MnhzlTkNfE98VOQjcrg7qLxXPpT7g== + dependencies: + "@algolia/autocomplete-plugin-algolia-insights" "1.19.10" + "@algolia/autocomplete-shared" "1.19.10" + +"@algolia/autocomplete-plugin-algolia-insights@1.19.10": + version "1.19.10" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.10.tgz#2686c0daca6e1f72b59ae9dae375c72193b3c35e" + integrity sha512-zy/cYkMKEDdT4ns/SZC6by99qaIzLCTtckPw7cTe8BMPepwXjjQdhRyBCk2CJodMQc4Ktb0zJrt2YxTtMYa4Gg== + dependencies: + "@algolia/autocomplete-shared" "1.19.10" + +"@algolia/autocomplete-plugin-algolia-insights@1.19.2": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.2.tgz#3584b625b9317e333d1ae43664d02358e175c52d" + integrity sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg== + dependencies: + "@algolia/autocomplete-shared" "1.19.2" + +"@algolia/autocomplete-shared@1.19.10": + version "1.19.10" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.10.tgz#b608b23d11a24f0d64dfebc859d572acd33a200e" + integrity sha512-vGJ2MDLgDOK3k256ks6t8u07bX4jdRQ0B/8MuRjjcvGTveVWwOU5lNd564uyuuqPMXQITl03HJx/juMtIFcQRw== + +"@algolia/autocomplete-shared@1.19.2": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.2.tgz#c0b7b8dc30a5c65b70501640e62b009535e4578f" + integrity sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w== + +"@algolia/client-abtesting@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.59.0.tgz#3a6c22f3b71b79c9911d7a9b5d137401cd39d57f" + integrity sha512-bm2XN0hCSMYwStSsCBT0/PUB2BDxoyR1Lnub3c392HMEy9bi8PUSW8vR6zltVEKWG2t4PQFWMD5C07bmJxGgPg== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/client-analytics@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.59.0.tgz#0eaba7b10c46da7bac955841961134a8af16e435" + integrity sha512-XOFPOTa69WuqHR6c5tMgnUUwwqQgNSzMpxmhrgA9KmxRf8WIqEa0cokHJvohk5CYb7CZx0xeSL6Bk2IUJ7Lv7Q== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/client-common@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.59.0.tgz#3def8bbdba75c5eb13e5fbbdbbc80a6b4362f897" + integrity sha512-PC8ipLOYFKRTfIUY1J3FJxS6ryzWziaXmIX9/sNMoUR8L+XhF7hX2QAeUI87YVl5zujvlYTSOb+HAIqKXDjyHQ== + +"@algolia/client-insights@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.59.0.tgz#47d8127d4f9093dbb9c4456f18139378614248ac" + integrity sha512-yFNcCMM5fHiyoR0HuxMrzy+VjDcmhFUZTm2IJ2DHwGsVH3B5SEob4zTmeEZ3j/AZqNnmrJOCKl/tJnBg7+84bA== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/client-personalization@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.59.0.tgz#b4200dbbeeda202440d0a81176bc004347c655ae" + integrity sha512-GYja6HkDt2VrQhWmB2cLx3Z5fDwI9no7q+xwCWcFrTPm5CLH9QZvK0XLO9co1FcNIDxxkMaP3AXM39/XcecEOg== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/client-query-suggestions@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.59.0.tgz#5abd4de319821587b5fefffcb6a82557877f6fce" + integrity sha512-Wofg7bMpWh8N5qDDZs0wy6whc+KMmdNsxgrIGp9Ug2s1Bka0uq7AjyckdxReKPHLA0Q1qH8X/SNh0wn2t2X2Lw== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/client-search@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.59.0.tgz#04b78294e570410025ae5baa2af726afd94060f6" + integrity sha512-fHnALZfbEnODczGk14Y/1YBRApp6UEpZUTexGcMUPzY7RDc7q4HN2Y6jh0KUG8Jo9B+q+wOoQEc3ziR0ErbuFg== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" "@algolia/events@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@algolia/events/-/events-4.0.1.tgz#fd39e7477e7bc703d7f893b556f676c032af3950" integrity sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ== -"@algolia/ingestion@1.37.0": - version "1.37.0" - resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.37.0.tgz#bb6016e656c68014050814abf130e103f977794e" - integrity sha512-pkCepBRRdcdd7dTLbFddnu886NyyxmhgqiRcHHaDunvX03Ij4WzvouWrQq7B7iYBjkMQrLS8wQqSP0REfA4W8g== +"@algolia/ingestion@1.59.0": + version "1.59.0" + resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.59.0.tgz#c151412bef8130958b49f2b67c74267b4390a3ae" + integrity sha512-Fa38s1mHgoaLCT117sfJ6P78rtxUt93CYxBYpq1VOIcslaF+cH+1h5uikAPsKfxLnsuEDZHiBiaI6eNPTsQMRA== dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" -"@algolia/monitoring@1.37.0": - version "1.37.0" - resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.37.0.tgz#6d20c220d648db8faea45679350f1516917cc13d" - integrity sha512-fNw7pVdyZAAQQCJf1cc/ih4fwrRdQSgKwgor4gchsI/Q/ss9inmC6bl/69jvoRSzgZS9BX4elwHKdo0EfTli3w== +"@algolia/monitoring@1.59.0": + version "1.59.0" + resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.59.0.tgz#a4d88bd92c7732d9753cd8540113b8b80435824d" + integrity sha512-NyNsRSqM2tF1MX7ZGw/j4rduoEJiQ5wfvbSo/CFVdEzYCjyxbGFRPOZyS/GETJG9rk1TdHOq8NZqKqk/u1fm4g== dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" -"@algolia/recommend@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.37.0.tgz#dd5e814f30bbb92395902e120fdb28a120b91341" - integrity sha512-U+FL5gzN2ldx3TYfQO5OAta2TBuIdabEdFwD5UVfWPsZE5nvOKkc/6BBqP54Z/adW/34c5ZrvvZhlhNTZujJXQ== +"@algolia/recommend@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.59.0.tgz#59fc6015f6a5d0c044d2ff1f7085a33e6229da73" + integrity sha512-nXBK2uygWtvbCOffMWqqfjjcEtp9enDKY5/2Pw/Hhw8VVaOyK2ThbGK04bNX/Le+qoK1VHYkodWGVTKfw0Otkw== dependencies: - "@algolia/client-common" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" -"@algolia/requester-browser-xhr@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.37.0.tgz#8851ab846d8005055c36a59422161ebe1594ae48" - integrity sha512-Ao8GZo8WgWFABrU7iq+JAftXV0t+UcOtCDL4mzHHZ+rQeTTf1TZssr4d0vIuoqkVNnKt9iyZ7T4lQff4ydcTrw== +"@algolia/requester-browser-xhr@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.59.0.tgz#d5212acb793a600bf456b5de9fa9821cbb982c80" + integrity sha512-yb+4afX/zja8QwX0KmV4/ae2kyYkRknsE79CRusYS2U5D8qwn2wq0cn1x12f3tm3F3+5FgmDdbuGdQTuCLSKMQ== dependencies: - "@algolia/client-common" "5.37.0" + "@algolia/client-common" "5.59.0" -"@algolia/requester-fetch@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.37.0.tgz#93602fdc9a59b41ecd53768c53c11cddb0db846a" - integrity sha512-H7OJOXrFg5dLcGJ22uxx8eiFId0aB9b0UBhoOi4SMSuDBe6vjJJ/LeZyY25zPaSvkXNBN3vAM+ad6M0h6ha3AA== +"@algolia/requester-fetch@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.59.0.tgz#76eed36e67286b59da4b6685587d93b0e600774f" + integrity sha512-Lp52TmpA1QtNmdHzs505Xwf4tgII7RAapkDSF9AAtWIBETcGaTIaXci4Rd9nS6SdaWK1BWTSqAPp5wzh6UN3Ag== dependencies: - "@algolia/client-common" "5.37.0" + "@algolia/client-common" "5.59.0" -"@algolia/requester-node-http@5.37.0": - version "5.37.0" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.37.0.tgz#83da1b52f3ee86f262a5d4b2a88a74db665211c2" - integrity sha512-npZ9aeag4SGTx677eqPL3rkSPlQrnzx/8wNrl1P7GpWq9w/eTmRbOq+wKrJ2r78idlY0MMgmY/mld2tq6dc44g== +"@algolia/requester-node-http@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.59.0.tgz#b443a095ba494f5d176b891dcd07d8edad78c686" + integrity sha512-YYHLEs5rC6oRTFwT7bJaKBR9NSFzikeVHGAT1ffATmUQzR8XqyhHXjoieAUoR7fBU6I5cfy1FVeh5GoRgriuzA== dependencies: - "@algolia/client-common" "5.37.0" + "@algolia/client-common" "5.59.0" + +"@antfu/install-pkg@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-2.0.1.tgz#bdbc3d228e6f645c583ed93545fcdd5f5a2f0ca2" + integrity sha512-iCKVQcIC0e3oDxEfs3SHQGW+ovhBMZmS1TE+bTk50rVyMCBmCfClv7Qi3HQKlumYwvjb/iIMeWCW2i67q6kFfQ== + dependencies: + package-manager-detector "^1.7.0" + tinyexec "^1.2.4" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.27.1": version "7.27.1" @@ -1019,13 +1050,6 @@ "@babel/plugin-transform-modules-commonjs" "^7.27.1" "@babel/plugin-transform-typescript" "^7.27.1" -"@babel/runtime-corejs3@^7.25.9": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.28.4.tgz#c25be39c7997ce2f130d70b9baecb8ed94df93fa" - integrity sha512-h7iEYiW4HebClDEhtvFObtPmIvrd1SSfpI9EhOeKk4CtIK/ngBWFpuhCzhdmRKtg71ylcue+9I6dv54XYO1epQ== - dependencies: - core-js-pure "^3.43.0" - "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.25.9", "@babel/runtime@^7.28.3", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": version "7.28.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" @@ -1061,6 +1085,43 @@ "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" +"@braintree/sanitize-url@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-7.1.2.tgz#ca2035b0fefe956a8676ff0c69af73e605fcd81f" + integrity sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA== + +"@chevrotain/cst-dts-gen@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.1.2.tgz#501ea6177fa21cc57264c792ef5cc3d0bb9410fd" + integrity sha512-XTsjvDVB5nDZBQB8o0o/0ozNelQtn2KrUVteIHSlPd2VAV2utEb6JzyCJaJ8tGxACR4RiBNWy5uYUHX2eji88Q== + dependencies: + "@chevrotain/gast" "11.1.2" + "@chevrotain/types" "11.1.2" + lodash-es "4.17.23" + +"@chevrotain/gast@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@chevrotain/gast/-/gast-11.1.2.tgz#213393f2b5842e8bf13369bdc042c7fd18201af2" + integrity sha512-Z9zfXR5jNZb1Hlsd/p+4XWeUFugrHirq36bKzPWDSIacV+GPSVXdk+ahVWZTwjhNwofAWg/sZg58fyucKSQx5g== + dependencies: + "@chevrotain/types" "11.1.2" + lodash-es "4.17.23" + +"@chevrotain/regexp-to-ast@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.1.2.tgz#6aeb0b3fd5e3f220b063b3d856fbbaed582e4cfa" + integrity sha512-nMU3Uj8naWer7xpZTYJdxbAs6RIv/dxYzkYU8GSwgUtcAAlzjcPfX1w+RKRcYG8POlzMeayOQ/znfwxEGo5ulw== + +"@chevrotain/types@11.1.2", "@chevrotain/types@~11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@chevrotain/types/-/types-11.1.2.tgz#e83a1a2704f0c5e49e7592b214031a0f4a34d7e5" + integrity sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw== + +"@chevrotain/utils@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@chevrotain/utils/-/utils-11.1.2.tgz#a0b13637acc0a2933d8a2edeba4bf1da789c565d" + integrity sha512-4mudFAQ6H+MqBTfqLmU7G1ZwRzCLfJEooL/fsF6rCX5eePMbGhoy5n4g+G4vlh2muDcsCTJtL+uKbOzWxs5LHA== + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -1426,25 +1487,29 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@docsearch/css@3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.9.0.tgz#3bc29c96bf024350d73b0cfb7c2a7b71bf251cd5" - integrity sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA== +"@docsearch/core@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@docsearch/core/-/core-4.7.0.tgz#914962191f2718b9caa48f4cbe46c0720fdc055d" + integrity sha512-p/9xVKmPDj3FPvMfPf5naVO3Ej8SCbcUugGvx1+8GgkuBNbqxqN2Irx3WLBv8VY0jH7XpRwKWdlmjXLZsmTLsg== -"@docsearch/react@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.9.0.tgz#d0842b700c3ee26696786f3c8ae9f10c1a3f0db3" - integrity sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ== +"@docsearch/css@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-4.7.0.tgz#d6d93c6ddf5e813a3ea09da719e150c222693a5c" + integrity sha512-Sk5xkdRFeE7PeWjG9l4AfTwdvMfr9wHiwNNCpHXT4v4SNyNMKdHGvEILc31BgaVFGDDNbv5u/a73tofRiwbEZw== + +"@docsearch/react@^3.9.0 || ^4.3.2": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-4.7.0.tgz#8e7d77c34d19755f98d225a3413eddf605658d70" + integrity sha512-x6oedjJ8O8/pIDBsMo5Orca3/6cQCz616/CwthVe68l43mqnj2lrJ9kFQITBqy8hMsS3nWeBWFoVO5dJ1DCFKA== dependencies: - "@algolia/autocomplete-core" "1.17.9" - "@algolia/autocomplete-preset-algolia" "1.17.9" - "@docsearch/css" "3.9.0" - algoliasearch "^5.14.2" + "@algolia/autocomplete-core" "1.19.2" + "@docsearch/core" "4.7.0" + "@docsearch/css" "4.7.0" -"@docusaurus/babel@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/babel/-/babel-3.8.1.tgz#db329ac047184214e08e2dbc809832c696c18506" - integrity sha512-3brkJrml8vUbn9aeoZUlJfsI/GqyFcDgQJwQkmBtclJgWDEQBKKeagZfOgx0WfUQhagL1sQLNW0iBdxnI863Uw== +"@docusaurus/babel@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/babel/-/babel-3.10.2.tgz#4d5f8ac4d16bfe26c06f256687831787edb46e8a" + integrity sha512-aJ1hpGyvfkte3dDAfNbWM4biW4yWZBVz7TIGLZP+v+tWOBgxX3e0N5ZIXHIvmfNNXTI77pcHUx3KmtOk05Ze3Q== dependencies: "@babel/core" "^7.25.9" "@babel/generator" "^7.25.9" @@ -1454,25 +1519,24 @@ "@babel/preset-react" "^7.25.9" "@babel/preset-typescript" "^7.25.9" "@babel/runtime" "^7.25.9" - "@babel/runtime-corejs3" "^7.25.9" "@babel/traverse" "^7.25.9" - "@docusaurus/logger" "3.8.1" - "@docusaurus/utils" "3.8.1" + "@docusaurus/logger" "3.10.2" + "@docusaurus/utils" "3.10.2" babel-plugin-dynamic-import-node "^2.3.3" fs-extra "^11.1.1" tslib "^2.6.0" -"@docusaurus/bundler@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/bundler/-/bundler-3.8.1.tgz#e2b11d615f09a6e470774bb36441b8d06736b94c" - integrity sha512-/z4V0FRoQ0GuSLToNjOSGsk6m2lQUG4FRn8goOVoZSRsTrU8YR2aJacX5K3RG18EaX9b+52pN4m1sL3MQZVsQA== +"@docusaurus/bundler@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/bundler/-/bundler-3.10.2.tgz#323492eb0550b6a7f6e5fa6b9877cdb2c53b1be3" + integrity sha512-i0ZNcy0f0WhaOlYVgzLsWhIoEXO9kS3HRoKPtgE6vQtZUq7arKZaYdNBudr3mqCmd+TyOkwtwfHgs1ENj07r5g== dependencies: "@babel/core" "^7.25.9" - "@docusaurus/babel" "3.8.1" - "@docusaurus/cssnano-preset" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" + "@docusaurus/babel" "3.10.2" + "@docusaurus/cssnano-preset" "3.10.2" + "@docusaurus/logger" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" babel-loader "^9.2.1" clean-css "^5.3.3" copy-webpack-plugin "^11.0.0" @@ -1490,20 +1554,20 @@ tslib "^2.6.0" url-loader "^4.1.1" webpack "^5.95.0" - webpackbar "^6.0.1" - -"@docusaurus/core@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.8.1.tgz#c22e47c16a22cb7d245306c64bc54083838ff3db" - integrity sha512-ENB01IyQSqI2FLtOzqSI3qxG2B/jP4gQPahl2C3XReiLebcVh5B5cB9KYFvdoOqOWPyr5gXK4sjgTKv7peXCrA== - dependencies: - "@docusaurus/babel" "3.8.1" - "@docusaurus/bundler" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + webpackbar "^7.0.0" + +"@docusaurus/core@3.10.2", "@docusaurus/core@^3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.10.2.tgz#349cae728fc3769b3f8aef4cf538ccb79aace8d0" + integrity sha512-EYByj6nk+aD9KeVxV6Hmo2/nAAT79P21Y82ycTBOBtrmqilloIbIEhgL2/8Xpt2Jz/pgNqHAwyusOGwmbKeJmA== + dependencies: + "@docusaurus/babel" "3.10.2" + "@docusaurus/bundler" "3.10.2" + "@docusaurus/logger" "3.10.2" + "@docusaurus/mdx-loader" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-common" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" boxen "^6.2.1" chalk "^4.1.2" chokidar "^3.5.3" @@ -1511,11 +1575,11 @@ combine-promises "^1.1.0" commander "^5.1.0" core-js "^3.31.1" - detect-port "^1.5.1" + detect-port "^2.1.0" escape-html "^1.0.3" eta "^2.2.0" eval "^0.1.8" - execa "5.1.1" + execa "^5.1.1" fs-extra "^11.1.1" html-tags "^3.3.1" html-webpack-plugin "^5.6.0" @@ -1526,46 +1590,73 @@ prompts "^2.4.2" react-helmet-async "npm:@slorber/react-helmet-async@1.3.0" react-loadable "npm:@docusaurus/react-loadable@6.0.0" - react-loadable-ssr-addon-v5-slorber "^1.0.1" + react-loadable-ssr-addon-v5-slorber "^1.0.3" react-router "^5.3.4" react-router-config "^5.1.1" react-router-dom "^5.3.4" semver "^7.5.4" - serve-handler "^6.1.6" + serve-handler "^6.1.7" tinypool "^1.0.2" tslib "^2.6.0" update-notifier "^6.0.2" webpack "^5.95.0" webpack-bundle-analyzer "^4.10.2" - webpack-dev-server "^4.15.2" + webpack-dev-server "^5.2.2" webpack-merge "^6.0.1" -"@docusaurus/cssnano-preset@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.8.1.tgz#bd55026251a6ab8e2194839a2042458ef9880c44" - integrity sha512-G7WyR2N6SpyUotqhGznERBK+x84uyhfMQM2MmDLs88bw4Flom6TY46HzkRkSEzaP9j80MbTN8naiL1fR17WQug== +"@docusaurus/cssnano-preset@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.10.2.tgz#e3ac7e85585f77e8fdef95176ab7c211d1296630" + integrity sha512-4gCnHRbJLTloiwfvFAa92tgb2gI4KYhvjfQVYnEaiMO/EgvWfCo1LwytHXen+1oZAN0VAlS0JAPxp3MsvKDa3A== dependencies: cssnano-preset-advanced "^6.1.2" postcss "^8.5.4" postcss-sort-media-queries "^5.2.0" tslib "^2.6.0" -"@docusaurus/logger@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.8.1.tgz#45321b2e2e14695d0dbd8b4104ea7b0fbaa98700" - integrity sha512-2wjeGDhKcExEmjX8k1N/MRDiPKXGF2Pg+df/bDDPnnJWHXnVEZxXj80d6jcxp1Gpnksl0hF8t/ZQw9elqj2+ww== +"@docusaurus/faster@^3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/faster/-/faster-3.10.2.tgz#6cacd14085445d5826990f7525c5df1cf371e04a" + integrity sha512-p/5E5/RyHv+QWusJMPN5i3OMJTqTgkhuwzVbB1AReDWTUHXQCmf5mlTFzGiDrWeQWIDOKsuOPn1jJh0s9LUOHA== + dependencies: + "@docusaurus/types" "3.10.2" + "@rspack/core" "^1.7.10" + "@swc/core" "^1.15.40" + "@swc/html" "^1.15.40" + browserslist "^4.24.2" + lightningcss "^1.27.0" + semver "^7.5.4" + swc-loader "^0.2.6" + tslib "^2.6.0" + webpack "^5.95.0" + +"@docusaurus/logger@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.10.2.tgz#280bed53d0eb9cdc56e896a155036207910e89c9" + integrity sha512-gSEwqtPfCAnC3ZSJY6xL7tcIfgg0vFD39jbv93eakuweyvO2864xR0K+kmKwBhkTCtWRNjuGGnb5rdmkD/ndqw== dependencies: chalk "^4.1.2" tslib "^2.6.0" -"@docusaurus/mdx-loader@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.8.1.tgz#74309b3614bbcef1d55fb13e6cc339b7fb000b5f" - integrity sha512-DZRhagSFRcEq1cUtBMo4TKxSNo/W6/s44yhr8X+eoXqCLycFQUylebOMPseHi5tc4fkGJqwqpWJLz6JStU9L4w== +"@docusaurus/lqip-loader@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/lqip-loader/-/lqip-loader-3.10.2.tgz#6cfe52091e4df3832acfec4001910d0e0889158b" + integrity sha512-U9ON9YXhfQcF7s4JUrcw02Nxez9ctI5nu/+6XGGmLJ+yx36ALT1fFCHzHfd7+TvSB1H7aoT/6T5BdfZvRp++Wg== dependencies: - "@docusaurus/logger" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/logger" "3.10.2" + file-loader "^6.2.0" + lodash "^4.17.21" + sharp "^0.32.3" + tslib "^2.6.0" + +"@docusaurus/mdx-loader@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.10.2.tgz#3b4e7ffacff4ed856db2ec4e94c13b0a652d62eb" + integrity sha512-9Fd4V/SFjfrVQ0JH5EN0+iPWyFunvTeQE3gfyFeetqPaXMP0OylIjOw16dCuXG4NZJrYdBqwzjh18/h3gRi47w== + dependencies: + "@docusaurus/logger" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" "@mdx-js/mdx" "^3.0.0" "@slorber/remark-comment" "^1.0.0" escape-html "^1.0.3" @@ -1588,12 +1679,12 @@ vfile "^6.0.1" webpack "^5.88.1" -"@docusaurus/module-type-aliases@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.8.1.tgz#454de577bd7f50b5eae16db0f76b49ca5e4e281a" - integrity sha512-6xhvAJiXzsaq3JdosS7wbRt/PwEPWHr9eM4YNYqVlbgG1hSK3uQDXTVvQktasp3VO6BmfYWPozueLWuj4gB+vg== +"@docusaurus/module-type-aliases@3.10.2", "@docusaurus/module-type-aliases@^3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.10.2.tgz#7c3b940c77d72e71d33a1e76f0e003b418e6163a" + integrity sha512-h/I5e4jaAhDHW4vaLENi1i2hnOEnXY1t9R+nnRTbgUl7ymVRzN/HF7dDfj8rKYGj8gfIge+Ef+iYRAMtbGvsrQ== dependencies: - "@docusaurus/types" "3.8.1" + "@docusaurus/types" "3.10.2" "@types/history" "^4.7.11" "@types/react" "*" "@types/react-router-config" "*" @@ -1601,20 +1692,21 @@ react-helmet-async "npm:@slorber/react-helmet-async@1.3.0" react-loadable "npm:@docusaurus/react-loadable@6.0.0" -"@docusaurus/plugin-content-blog@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.8.1.tgz#88d842b562b04cf59df900d9f6984b086f821525" - integrity sha512-vNTpMmlvNP9n3hGEcgPaXyvTljanAKIUkuG9URQ1DeuDup0OR7Ltvoc8yrmH+iMZJbcQGhUJF+WjHLwuk8HSdw== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" +"@docusaurus/plugin-content-blog@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.10.2.tgz#2374886ec3d76e8f014e85db8c3c010de6c419be" + integrity sha512-0cbEnNKf0InmLkhj/+nVRmqEnWEoOE8Mh+2x1qOXI0qYpCnphq4RXknVJ8BvybKRXqYVvbmdMfiJSup+k4tm5w== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/logger" "3.10.2" + "@docusaurus/mdx-loader" "3.10.2" + "@docusaurus/theme-common" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-common" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" cheerio "1.0.0-rc.12" + combine-promises "^1.1.0" feed "^4.2.2" fs-extra "^11.1.1" lodash "^4.17.21" @@ -1625,20 +1717,20 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@docusaurus/plugin-content-docs@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.8.1.tgz#40686a206abb6373bee5638de100a2c312f112a4" - integrity sha512-oByRkSZzeGNQByCMaX+kif5Nl2vmtj2IHQI2fWjCfCootsdKZDPFLonhIp5s3IGJO7PLUfe0POyw0Xh/RrGXJA== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/module-type-aliases" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" +"@docusaurus/plugin-content-docs@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.10.2.tgz#249bbc806437f227b06410ecc771eb67d8910a9a" + integrity sha512-Sqwl4FPoZBDrlY8I2VU2H8O0M91CHp9T8ToMSkTZmjvHCif+1laqfXi6sTk8IfyVS/trN5yNjcWd1bFsGB6W5Q== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/logger" "3.10.2" + "@docusaurus/mdx-loader" "3.10.2" + "@docusaurus/module-type-aliases" "3.10.2" + "@docusaurus/theme-common" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-common" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" "@types/react-router-config" "^5.0.7" combine-promises "^1.1.0" fs-extra "^11.1.1" @@ -1649,142 +1741,163 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@docusaurus/plugin-content-pages@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.8.1.tgz#41b684dbd15390b7bb6a627f78bf81b6324511ac" - integrity sha512-a+V6MS2cIu37E/m7nDJn3dcxpvXb6TvgdNI22vJX8iUTp8eoMoPa0VArEbWvCxMY/xdC26WzNv4wZ6y0iIni/w== +"@docusaurus/plugin-content-pages@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.10.2.tgz#377c11b36a6a5e0c0c14dd9dea799f986d662ed7" + integrity sha512-h5R12sZ/vV9EPiVjvIl9YFCOwkpwXes7dQMYt3EvP6Pphu4amHxxTqWxf08Fl5DR8h+oZMbWpFTNw5vKEYfvzQ== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/core" "3.10.2" + "@docusaurus/mdx-loader" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" fs-extra "^11.1.1" tslib "^2.6.0" webpack "^5.88.1" -"@docusaurus/plugin-css-cascade-layers@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.8.1.tgz#cb414b4a82aa60fc64ef2a435ad0105e142a6c71" - integrity sha512-VQ47xRxfNKjHS5ItzaVXpxeTm7/wJLFMOPo1BkmoMG4Cuz4nuI+Hs62+RMk1OqVog68Swz66xVPK8g9XTrBKRw== +"@docusaurus/plugin-css-cascade-layers@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.10.2.tgz#54edc6450b0bb95be5990ea416b4c4dc5e6bdde0" + integrity sha512-UkdvQby5OQUKWrw3lLnSTJXQ6VETaUVTuPQX9AABtmFm5h+ifEBx1OQ+LN726Q4byuwBf2ElHkf4qU4hTxdvRg== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/core" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" tslib "^2.6.0" -"@docusaurus/plugin-debug@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.8.1.tgz#45b107e46b627caaae66995f53197ace78af3491" - integrity sha512-nT3lN7TV5bi5hKMB7FK8gCffFTBSsBsAfV84/v293qAmnHOyg1nr9okEw8AiwcO3bl9vije5nsUvP0aRl2lpaw== +"@docusaurus/plugin-debug@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.10.2.tgz#2452f258668bb2514085d2d5fff700457c531aad" + integrity sha512-8vbZNOSCpnsT57EY6CgN7sgRVmx3KTYwO8Uvo2pbxOyb8tbqAwtT9SslqaQ41HbA1v1hpn5RP7u5s2KvRwAFpQ== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" + "@docusaurus/core" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" fs-extra "^11.1.1" react-json-view-lite "^2.3.0" tslib "^2.6.0" -"@docusaurus/plugin-google-analytics@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.8.1.tgz#64a302e62fe5cb6e007367c964feeef7b056764a" - integrity sha512-Hrb/PurOJsmwHAsfMDH6oVpahkEGsx7F8CWMjyP/dw1qjqmdS9rcV1nYCGlM8nOtD3Wk/eaThzUB5TSZsGz+7Q== +"@docusaurus/plugin-google-analytics@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.10.2.tgz#7a0375c5a238cd9220166d9be8afc00ba508c55d" + integrity sha512-kMHMBK9j4VAtgd5owwrRLRIi0EjkrpXlX7ePj1+y68XfVZV9I1T4S+koPDm+Hfw2TtnyHvh0uNrDvjz+DjQGVA== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/core" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" tslib "^2.6.0" -"@docusaurus/plugin-google-gtag@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.8.1.tgz#8c76f8a1d96448f2f0f7b10e6bde451c40672b95" - integrity sha512-tKE8j1cEZCh8KZa4aa80zpSTxsC2/ZYqjx6AAfd8uA8VHZVw79+7OTEP2PoWi0uL5/1Is0LF5Vwxd+1fz5HlKg== +"@docusaurus/plugin-google-gtag@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.10.2.tgz#65df25eb5fb3f2a3f2d0fba8ddd423060e09e1ca" + integrity sha512-Vt90nNFhtAChRe9+it1hcHFgFvETdSnOkL5Bma+p6E/yU2tAYrvvyk+gv+LJGM2ZUkyKuKXLRsZ2Lb0bO7+Vog== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" - "@types/gtag.js" "^0.0.12" + "@docusaurus/core" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" tslib "^2.6.0" -"@docusaurus/plugin-google-tag-manager@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.8.1.tgz#88241ffd06369f4a4d5fb982ff3ac2777561ae37" - integrity sha512-iqe3XKITBquZq+6UAXdb1vI0fPY5iIOitVjPQ581R1ZKpHr0qe+V6gVOrrcOHixPDD/BUKdYwkxFjpNiEN+vBw== +"@docusaurus/plugin-google-tag-manager@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.10.2.tgz#882a24e51dc42487d2c1d4f2cde3f59c99a276cb" + integrity sha512-MLCffCldysi/R0nzJQP7ZWd0xAoGNnSTiVOo6TTR6mKVGFhE+/XArGe67ZcaZv1uytgQXoXs92VJrgVDrz80rQ== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/core" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" tslib "^2.6.0" -"@docusaurus/plugin-sitemap@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.8.1.tgz#3aebd39186dc30e53023f1aab44625bc0bdac892" - integrity sha512-+9YV/7VLbGTq8qNkjiugIelmfUEVkTyLe6X8bWq7K5qPvGXAjno27QAfFq63mYfFFbJc7z+pudL63acprbqGzw== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" +"@docusaurus/plugin-ideal-image@^3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-3.10.2.tgz#51fa3048328ce403b2f153aee1fa676827d49106" + integrity sha512-M1uRffUaE5hqbo7368jSclYSU6oOOFdJ3/fq644kwaoComeG+jjBJ9piFrHkExtiU2Q7zcm1dWaqtfJVrR9wSQ== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/lqip-loader" "3.10.2" + "@docusaurus/responsive-loader" "^1.7.0" + "@docusaurus/theme-translations" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + sharp "^0.32.3" + tslib "^2.6.0" + webpack "^5.88.1" + +"@docusaurus/plugin-sitemap@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.10.2.tgz#6c662c7df3bb7d36887f8b73f54d85dc4d36371d" + integrity sha512-PODkwg5XetLML3hU/3xpCKJUZ9cqExLaBnD/Fzzwj2VHogLeqnDisLIujae87zuze7T4mCm2A6KEqZkyiz07EQ== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/logger" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-common" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" fs-extra "^11.1.1" sitemap "^7.1.1" tslib "^2.6.0" -"@docusaurus/plugin-svgr@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-svgr/-/plugin-svgr-3.8.1.tgz#6f340be8eae418a2cce540d8ece096ffd9c9b6ab" - integrity sha512-rW0LWMDsdlsgowVwqiMb/7tANDodpy1wWPwCcamvhY7OECReN3feoFwLjd/U4tKjNY3encj0AJSTxJA+Fpe+Gw== +"@docusaurus/plugin-svgr@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-svgr/-/plugin-svgr-3.10.2.tgz#916fd0a5d39bf73cb621de9789cce243a7ef1754" + integrity sha512-JgfT3jWM0TJ8Uw0cEcqxHpybngQY1vlBYpuuNO+gEh5iPh5Ar+vxq/u9CFrYsWeXy48BN7Db76Pzp2edNXUQ8A== dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" + "@docusaurus/core" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" "@svgr/core" "8.1.0" "@svgr/webpack" "^8.1.0" tslib "^2.6.0" webpack "^5.88.1" -"@docusaurus/preset-classic@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.8.1.tgz#bb79fd12f3211363720c569a526c7e24d3aa966b" - integrity sha512-yJSjYNHXD8POMGc2mKQuj3ApPrN+eG0rO1UPgSx7jySpYU+n4WjBikbrA2ue5ad9A7aouEtMWUoiSRXTH/g7KQ== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/plugin-content-blog" "3.8.1" - "@docusaurus/plugin-content-docs" "3.8.1" - "@docusaurus/plugin-content-pages" "3.8.1" - "@docusaurus/plugin-css-cascade-layers" "3.8.1" - "@docusaurus/plugin-debug" "3.8.1" - "@docusaurus/plugin-google-analytics" "3.8.1" - "@docusaurus/plugin-google-gtag" "3.8.1" - "@docusaurus/plugin-google-tag-manager" "3.8.1" - "@docusaurus/plugin-sitemap" "3.8.1" - "@docusaurus/plugin-svgr" "3.8.1" - "@docusaurus/theme-classic" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/theme-search-algolia" "3.8.1" - "@docusaurus/types" "3.8.1" - -"@docusaurus/theme-classic@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.8.1.tgz#1e45c66d89ded359225fcd29bf3258d9205765c1" - integrity sha512-bqDUCNqXeYypMCsE1VcTXSI1QuO4KXfx8Cvl6rYfY0bhhqN6d2WZlRkyLg/p6pm+DzvanqHOyYlqdPyP0iz+iw== - dependencies: - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/module-type-aliases" "3.8.1" - "@docusaurus/plugin-content-blog" "3.8.1" - "@docusaurus/plugin-content-docs" "3.8.1" - "@docusaurus/plugin-content-pages" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/theme-translations" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" +"@docusaurus/preset-classic@^3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.10.2.tgz#e4419c811723ab913a946c63efcc15e7f5f60a0a" + integrity sha512-a4B3VczmDl99zK0EufDQYomdJ186WDingjmDXxhN2PNPS9Ty/Y2M5CLFX1KQMRKqRTLiRDKfutzG5IY1FC/ceg== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/plugin-content-blog" "3.10.2" + "@docusaurus/plugin-content-docs" "3.10.2" + "@docusaurus/plugin-content-pages" "3.10.2" + "@docusaurus/plugin-css-cascade-layers" "3.10.2" + "@docusaurus/plugin-debug" "3.10.2" + "@docusaurus/plugin-google-analytics" "3.10.2" + "@docusaurus/plugin-google-gtag" "3.10.2" + "@docusaurus/plugin-google-tag-manager" "3.10.2" + "@docusaurus/plugin-sitemap" "3.10.2" + "@docusaurus/plugin-svgr" "3.10.2" + "@docusaurus/theme-classic" "3.10.2" + "@docusaurus/theme-common" "3.10.2" + "@docusaurus/theme-search-algolia" "3.10.2" + "@docusaurus/types" "3.10.2" + +"@docusaurus/responsive-loader@^1.7.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@docusaurus/responsive-loader/-/responsive-loader-1.7.1.tgz#fe22a657263350cbc777e296e8d8403c53d2f247" + integrity sha512-jAebZ43f8GVpZSrijLGHVVp7Y0OMIPRaL+HhiIWQ+f/b72lTsKLkSkOVHEzvd2psNJ9lsoiM3gt6akpak6508w== + dependencies: + loader-utils "^2.0.0" + +"@docusaurus/theme-classic@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.10.2.tgz#a64bd600c789b33c67c30c256b07e2ca0f57e2ae" + integrity sha512-JqTSLQmqmA9uKWZsD5iwBGJ4JyKB4/yTw6PsSXVPRJG/6GAm/u+add9Iip+hvwP12/AnPNztrdxsI14NJW4KeA== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/logger" "3.10.2" + "@docusaurus/mdx-loader" "3.10.2" + "@docusaurus/module-type-aliases" "3.10.2" + "@docusaurus/plugin-content-blog" "3.10.2" + "@docusaurus/plugin-content-docs" "3.10.2" + "@docusaurus/plugin-content-pages" "3.10.2" + "@docusaurus/theme-common" "3.10.2" + "@docusaurus/theme-translations" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-common" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" "@mdx-js/react" "^3.0.0" clsx "^2.0.0" copy-text-to-clipboard "^3.2.0" @@ -1799,15 +1912,15 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-common@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.8.1.tgz#17c23316fbe3ee3f7e707c7298cb59a0fff38b4b" - integrity sha512-UswMOyTnPEVRvN5Qzbo+l8k4xrd5fTFu2VPPfD6FcW/6qUtVLmJTQCktbAL3KJ0BVXGm5aJXz/ZrzqFuZERGPw== +"@docusaurus/theme-common@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.10.2.tgz#5cf2a8b76554b8b38c6afe8448470c411f683e5b" + integrity sha512-R9b/vMpK1yye6hNZTA6x/ivRv+at6GhxnXcxkpzCGzO1R1RwiquqiFg2wMFh6aqlJTpWRFKpFD2TzCDQcyOU0A== dependencies: - "@docusaurus/mdx-loader" "3.8.1" - "@docusaurus/module-type-aliases" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" + "@docusaurus/mdx-loader" "3.10.2" + "@docusaurus/module-type-aliases" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-common" "3.10.2" "@types/history" "^4.7.11" "@types/react" "*" "@types/react-router-config" "*" @@ -1817,21 +1930,35 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-search-algolia@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.8.1.tgz#3aa3d99c35cc2d4b709fcddd4df875a9b536e29b" - integrity sha512-NBFH5rZVQRAQM087aYSRKQ9yGEK9eHd+xOxQjqNpxMiV85OhJDD4ZGz6YJIod26Fbooy54UWVdzNU0TFeUUUzQ== - dependencies: - "@docsearch/react" "^3.9.0" - "@docusaurus/core" "3.8.1" - "@docusaurus/logger" "3.8.1" - "@docusaurus/plugin-content-docs" "3.8.1" - "@docusaurus/theme-common" "3.8.1" - "@docusaurus/theme-translations" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-validation" "3.8.1" - algoliasearch "^5.17.1" - algoliasearch-helper "^3.22.6" +"@docusaurus/theme-mermaid@^3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-mermaid/-/theme-mermaid-3.10.2.tgz#826e47a01fefbe49fdbb0f4f575c9399d3ccd92c" + integrity sha512-Stssh5MYQJ+EdYugUXf+ZcpeJFQPKXf0KCd/SWp10o3CmXNaOoh5IEgVjVqY1e1XhQf3on4+Y4BnrMiD95E2SQ== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/module-type-aliases" "3.10.2" + "@docusaurus/theme-common" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + mermaid ">=11.6.0" + tslib "^2.6.0" + +"@docusaurus/theme-search-algolia@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.10.2.tgz#e7756d4088a7df4d11fd734bfe0e8fa28ceac1dd" + integrity sha512-1msxllyhi/5m77JukXtp5UFnUAriwZIC1oJ7MTnpQpCwLTbclJi5BK5n28CTZuSXpQN2ewbbnqRgAhMM6c6ihg== + dependencies: + "@algolia/autocomplete-core" "^1.19.2" + "@docsearch/react" "^3.9.0 || ^4.3.2" + "@docusaurus/core" "3.10.2" + "@docusaurus/logger" "3.10.2" + "@docusaurus/plugin-content-docs" "3.10.2" + "@docusaurus/theme-common" "3.10.2" + "@docusaurus/theme-translations" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + algoliasearch "^5.37.0" + algoliasearch-helper "^3.26.0" clsx "^2.0.0" eta "^2.2.0" fs-extra "^11.1.1" @@ -1839,21 +1966,22 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-translations@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.8.1.tgz#4b1d76973eb53861e167c7723485e059ba4ffd0a" - integrity sha512-OTp6eebuMcf2rJt4bqnvuwmm3NVXfzfYejL+u/Y1qwKhZPrjPoKWfk1CbOP5xH5ZOPkiAsx4dHdQBRJszK3z2g== +"@docusaurus/theme-translations@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.10.2.tgz#cd649083babd12df324e7129008aaccacd4cfb13" + integrity sha512-iv20wrxnyXkY89LM3TzRlzGlt5fIGO5UnaR6UL1ZVfB9RRFjxQFQ6awDrwAc6Km8Y5gD8pInuwYPF+6/TiCxXA== dependencies: fs-extra "^11.1.1" tslib "^2.6.0" -"@docusaurus/types@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.8.1.tgz#83ab66c345464e003b576a49f78897482061fc26" - integrity sha512-ZPdW5AB+pBjiVrcLuw3dOS6BFlrG0XkS2lDGsj8TizcnREQg3J8cjsgfDviszOk4CweNfwo1AEELJkYaMUuOPg== +"@docusaurus/types@3.10.2", "@docusaurus/types@^3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.10.2.tgz#9ffe35adfb4587e49158ee9e10d94b86419a5932" + integrity sha512-B6rvfwIFSapUqUJjMriZswX13K8l5Z7AcmVE6uTEJpYddQieSTR12DsGaFtcZAIDsQd4p+0WTl0Vc6jmZK0Trw== dependencies: "@mdx-js/mdx" "^3.0.0" "@types/history" "^4.7.11" + "@types/mdast" "^4.0.2" "@types/react" "*" commander "^5.1.0" joi "^17.9.2" @@ -1862,43 +1990,43 @@ webpack "^5.95.0" webpack-merge "^5.9.0" -"@docusaurus/utils-common@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.8.1.tgz#c369b8c3041afb7dcd595d4172beb1cc1015c85f" - integrity sha512-zTZiDlvpvoJIrQEEd71c154DkcriBecm4z94OzEE9kz7ikS3J+iSlABhFXM45mZ0eN5pVqqr7cs60+ZlYLewtg== +"@docusaurus/utils-common@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.10.2.tgz#a65fcfffafa4e15a59fe61d7ba315ee5d4c49269" + integrity sha512-x3Dz6jv6iQKBNjBmVTu8p57abMp/VNTUgKBMgRVXJc5444orBTsArv0+cdfrXTiz/VMmHfDRVkPbL7GH2B7T7w== dependencies: - "@docusaurus/types" "3.8.1" + "@docusaurus/types" "3.10.2" tslib "^2.6.0" -"@docusaurus/utils-validation@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.8.1.tgz#0499c0d151a4098a0963237057993282cfbd538e" - integrity sha512-gs5bXIccxzEbyVecvxg6upTwaUbfa0KMmTj7HhHzc016AGyxH2o73k1/aOD0IFrdCsfJNt37MqNI47s2MgRZMA== +"@docusaurus/utils-validation@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.10.2.tgz#2624b0ca6675675da2f063828115b43c9a22de47" + integrity sha512-sn8unbDfUL585NtR3cwHefPicOyaHvPaX7VD0aOg/siIxUBoKyKKaGEqzJZDS64mM43TnxurkYDtmB1wsJlZsw== dependencies: - "@docusaurus/logger" "3.8.1" - "@docusaurus/utils" "3.8.1" - "@docusaurus/utils-common" "3.8.1" + "@docusaurus/logger" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-common" "3.10.2" fs-extra "^11.2.0" joi "^17.9.2" js-yaml "^4.1.0" lodash "^4.17.21" tslib "^2.6.0" -"@docusaurus/utils@3.8.1": - version "3.8.1" - resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.8.1.tgz#2ac1e734106e2f73dbd0f6a8824d525f9064e9f0" - integrity sha512-P1ml0nvOmEFdmu0smSXOqTS1sxU5tqvnc0dA4MTKV39kye+bhQnjkIKEE18fNOvxjyB86k8esoCIFM3x4RykOQ== +"@docusaurus/utils@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.10.2.tgz#d99c1ffc5c7961e912344269a8728ce2aad8b3dc" + integrity sha512-xx0W3eav2uW1NRIpuHJWNwLTC15xPNjU4Uxi9NSnd3swYC96BE3vFiT93SD8s24kmAAWNwgZwfZ2fghGZ01Lcw== dependencies: - "@docusaurus/logger" "3.8.1" - "@docusaurus/types" "3.8.1" - "@docusaurus/utils-common" "3.8.1" + "@11ty/gray-matter" "^1.0.0" + "@docusaurus/logger" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils-common" "3.10.2" escape-string-regexp "^4.0.0" - execa "5.1.1" + execa "^5.1.1" file-loader "^6.2.0" fs-extra "^11.1.1" github-slugger "^1.5.0" globby "^11.1.0" - gray-matter "^4.0.3" jiti "^1.20.0" js-yaml "^4.1.0" lodash "^4.17.21" @@ -1911,6 +2039,28 @@ utility-types "^3.10.0" webpack "^5.88.1" +"@emnapi/core@^1.5.0": + version "1.11.3" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.11.3.tgz#5e95348a42cd1e06f0b9aa380cd74091daa4d520" + integrity sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg== + dependencies: + "@emnapi/wasi-threads" "1.2.3" + tslib "^2.4.0" + +"@emnapi/runtime@^1.2.0", "@emnapi/runtime@^1.5.0": + version "1.11.3" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.11.3.tgz#84257ae3b0531eb2aec1ffa23d70700da007ba95" + integrity sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz#c9bf72fd4be5b928aee894820e8d814ed73916e9" + integrity sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g== + dependencies: + tslib "^2.4.0" + "@emotion/babel-plugin@^11.13.5": version "11.13.5" resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz#eab8d65dbded74e0ecfd28dc218e75607c4e7bc0" @@ -2042,6 +2192,128 @@ resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== +"@iconify/utils@^3.0.2": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-3.1.7.tgz#fff11c528490b119a250ace3cf35a0a78e182317" + integrity sha512-JZHlwdID+dy+lTgbYC8NEC4zeugqeYsc6jewvzb4c58kHauJn+X7rNwQjxz5p2qSjqaEeQoLkCIQ9v/H4PK0/w== + dependencies: + "@antfu/install-pkg" "^2.0.1" + "@iconify/types" "^2.0.0" + import-meta-resolve "^4.2.0" + +"@img/sharp-darwin-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz#ef5b5a07862805f1e8145a377c8ba6e98813ca08" + integrity sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ== + optionalDependencies: + "@img/sharp-libvips-darwin-arm64" "1.0.4" + +"@img/sharp-darwin-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz#e03d3451cd9e664faa72948cc70a403ea4063d61" + integrity sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q== + optionalDependencies: + "@img/sharp-libvips-darwin-x64" "1.0.4" + +"@img/sharp-libvips-darwin-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz#447c5026700c01a993c7804eb8af5f6e9868c07f" + integrity sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg== + +"@img/sharp-libvips-darwin-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz#e0456f8f7c623f9dbfbdc77383caa72281d86062" + integrity sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ== + +"@img/sharp-libvips-linux-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz#979b1c66c9a91f7ff2893556ef267f90ebe51704" + integrity sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA== + +"@img/sharp-libvips-linux-arm@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz#99f922d4e15216ec205dcb6891b721bfd2884197" + integrity sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g== + +"@img/sharp-libvips-linux-s390x@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz#f8a5eb1f374a082f72b3f45e2fb25b8118a8a5ce" + integrity sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA== + +"@img/sharp-libvips-linux-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz#d4c4619cdd157774906e15770ee119931c7ef5e0" + integrity sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw== + +"@img/sharp-libvips-linuxmusl-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz#166778da0f48dd2bded1fa3033cee6b588f0d5d5" + integrity sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA== + +"@img/sharp-libvips-linuxmusl-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz#93794e4d7720b077fcad3e02982f2f1c246751ff" + integrity sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw== + +"@img/sharp-linux-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz#edb0697e7a8279c9fc829a60fc35644c4839bb22" + integrity sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA== + optionalDependencies: + "@img/sharp-libvips-linux-arm64" "1.0.4" + +"@img/sharp-linux-arm@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz#422c1a352e7b5832842577dc51602bcd5b6f5eff" + integrity sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ== + optionalDependencies: + "@img/sharp-libvips-linux-arm" "1.0.5" + +"@img/sharp-linux-s390x@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz#f5c077926b48e97e4a04d004dfaf175972059667" + integrity sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q== + optionalDependencies: + "@img/sharp-libvips-linux-s390x" "1.0.4" + +"@img/sharp-linux-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz#d806e0afd71ae6775cc87f0da8f2d03a7c2209cb" + integrity sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA== + optionalDependencies: + "@img/sharp-libvips-linux-x64" "1.0.4" + +"@img/sharp-linuxmusl-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz#252975b915894fb315af5deea174651e208d3d6b" + integrity sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" + +"@img/sharp-linuxmusl-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz#3f4609ac5d8ef8ec7dadee80b560961a60fd4f48" + integrity sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-x64" "1.0.4" + +"@img/sharp-wasm32@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz#6f44f3283069d935bb5ca5813153572f3e6f61a1" + integrity sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg== + dependencies: + "@emnapi/runtime" "^1.2.0" + +"@img/sharp-win32-ia32@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz#1a0c839a40c5351e9885628c85f2e5dfd02b52a9" + integrity sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ== + +"@img/sharp-win32-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz#56f00962ff0c4e0eb93d34a047d29fa995e3e342" + integrity sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg== + "@jest/schemas@^29.6.3": version "29.6.3" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" @@ -2103,6 +2375,167 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jsonjoy.com/base64@17.67.0": + version "17.67.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-17.67.0.tgz#7eeda3cb41138d77a90408fd2e42b2aba10576d7" + integrity sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw== + +"@jsonjoy.com/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578" + integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== + +"@jsonjoy.com/buffers@17.67.0", "@jsonjoy.com/buffers@^17.65.0": + version "17.67.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz#5c58dbcdeea8824ce296bd1cfce006c2eb167b3d" + integrity sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw== + +"@jsonjoy.com/buffers@^1.0.0", "@jsonjoy.com/buffers@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz#8d99c7f67eaf724d3428dfd9826c6455266a5c83" + integrity sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA== + +"@jsonjoy.com/codegen@17.67.0": + version "17.67.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz#3635fd8769d77e19b75dc5574bc9756019b2e591" + integrity sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q== + +"@jsonjoy.com/codegen@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz#5c23f796c47675f166d23b948cdb889184b93207" + integrity sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g== + +"@jsonjoy.com/fs-core@4.78.0": + version "4.78.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-core/-/fs-core-4.78.0.tgz#d8d03caf1d537308c893a447f34abb293a651d16" + integrity sha512-0YE5XQj383AwNj5fG0Mm1gyx/ViVe2DJzS5FeVbJulw0pteEK9mfbeB0MWH3/ARoXb2AhHHuiiNthdWF0Y6EYQ== + dependencies: + "@jsonjoy.com/fs-node-builtins" "4.78.0" + "@jsonjoy.com/fs-node-utils" "4.78.0" + thingies "^2.5.0" + +"@jsonjoy.com/fs-fsa@4.78.0": + version "4.78.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-fsa/-/fs-fsa-4.78.0.tgz#afc0ccf9af5f497260895e69b150965587516af3" + integrity sha512-V1lUo5k4xUypsfdmvCrrUJ44BCixbgvpus71WI3a3BOQt39bK2LasU/HgpJ1P9or8a2d5mWR3kk26sRoehDlaw== + dependencies: + "@jsonjoy.com/fs-core" "4.78.0" + "@jsonjoy.com/fs-node-builtins" "4.78.0" + "@jsonjoy.com/fs-node-utils" "4.78.0" + thingies "^2.5.0" + +"@jsonjoy.com/fs-node-builtins@4.78.0": + version "4.78.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.78.0.tgz#c1b30600aca51a6fd45b7f1b991e4e3c7468dcbd" + integrity sha512-yiyMh9uKnQvRVDYzINP9P2AXZPdHYM2iVsQ/2U2V+g+gfTr4vPcT1Ox0aQs0IIXGQRAnksyA63KSqpOOJ/O3lA== + +"@jsonjoy.com/fs-node-to-fsa@4.78.0": + version "4.78.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.78.0.tgz#444a0b118e24649b4fa076264b266809144f0746" + integrity sha512-L1e0UgRJ/igqt3JUDJh3z8YXTKqJc9r9MY4ZakEMOqqEDq/C5fmSZDDzq03d7HqdG1rehkmCDpKyXWqQEVpQGw== + dependencies: + "@jsonjoy.com/fs-fsa" "4.78.0" + "@jsonjoy.com/fs-node-builtins" "4.78.0" + "@jsonjoy.com/fs-node-utils" "4.78.0" + +"@jsonjoy.com/fs-node-utils@4.78.0": + version "4.78.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.78.0.tgz#652ddc6a000ba89af24adca9fdc9477e8ed4edfe" + integrity sha512-Am25+Y/rEFtkJBZCFgs84XPXqeqXq4FvXmCYMZ0bEC/M+vT0e6tHBU4Camp9/Yzuf6NoxaInC3iXIN791wVu9g== + dependencies: + "@jsonjoy.com/fs-node-builtins" "4.78.0" + glob-to-regex.js "^1.3.1" + +"@jsonjoy.com/fs-node@4.78.0": + version "4.78.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node/-/fs-node-4.78.0.tgz#ca45eee75971abf13e70f64a01d68ae17e5da860" + integrity sha512-AhoKCEEzsTU5C+9pSegNkErrQijvpHj10kzVhaXIxjs/0taxjCCLG7zE+Y+EWCMNCVmgFEyca+oTQQWm2RO+sg== + dependencies: + "@jsonjoy.com/fs-core" "4.78.0" + "@jsonjoy.com/fs-node-builtins" "4.78.0" + "@jsonjoy.com/fs-node-utils" "4.78.0" + "@jsonjoy.com/fs-print" "4.78.0" + "@jsonjoy.com/fs-snapshot" "4.78.0" + glob-to-regex.js "^1.3.1" + thingies "^2.5.0" + +"@jsonjoy.com/fs-print@4.78.0": + version "4.78.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-print/-/fs-print-4.78.0.tgz#c5f9cc2c3b5ee90425481ecc33ba5be93da60fd8" + integrity sha512-Uwk0SvDN1X+5FNW3MxibrFVXXUnd0nTUP6qwvPikg3QDeXRiRww91mz34lXYa/xO5eVuUqa1WXmd0ljy1+Ej0w== + dependencies: + "@jsonjoy.com/fs-node-utils" "4.78.0" + tree-dump "^1.1.0" + +"@jsonjoy.com/fs-snapshot@4.78.0": + version "4.78.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.78.0.tgz#1f6669bd06475c83c6465c9c00fc1201110a741a" + integrity sha512-+HvPGwV1IcXtwFFxMBK5x8rmqBuIkPpEFZMGkO8BolJH+AuSvQGVwvlKulUjQ9KECpN4GTCcgeQtyUvYC8heSA== + dependencies: + "@jsonjoy.com/buffers" "^17.65.0" + "@jsonjoy.com/fs-node-utils" "4.78.0" + "@jsonjoy.com/json-pack" "^17.65.0" + "@jsonjoy.com/util" "^17.65.0" + +"@jsonjoy.com/json-pack@^1.11.0": + version "1.21.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz#93f8dd57fe3a3a92132b33d1eb182dcd9e7629fa" + integrity sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg== + dependencies: + "@jsonjoy.com/base64" "^1.1.2" + "@jsonjoy.com/buffers" "^1.2.0" + "@jsonjoy.com/codegen" "^1.0.0" + "@jsonjoy.com/json-pointer" "^1.0.2" + "@jsonjoy.com/util" "^1.9.0" + hyperdyperid "^1.2.0" + thingies "^2.5.0" + tree-dump "^1.1.0" + +"@jsonjoy.com/json-pack@^17.65.0": + version "17.67.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz#8dd8ff65dd999c5d4d26df46c63915c7bdec093a" + integrity sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w== + dependencies: + "@jsonjoy.com/base64" "17.67.0" + "@jsonjoy.com/buffers" "17.67.0" + "@jsonjoy.com/codegen" "17.67.0" + "@jsonjoy.com/json-pointer" "17.67.0" + "@jsonjoy.com/util" "17.67.0" + hyperdyperid "^1.2.0" + thingies "^2.5.0" + tree-dump "^1.1.0" + +"@jsonjoy.com/json-pointer@17.67.0": + version "17.67.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz#74439573dc046e0c9a3a552fb94b391bc75313b8" + integrity sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA== + dependencies: + "@jsonjoy.com/util" "17.67.0" + +"@jsonjoy.com/json-pointer@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz#049cb530ac24e84cba08590c5e36b431c4843408" + integrity sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg== + dependencies: + "@jsonjoy.com/codegen" "^1.0.0" + "@jsonjoy.com/util" "^1.9.0" + +"@jsonjoy.com/util@17.67.0", "@jsonjoy.com/util@^17.65.0": + version "17.67.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-17.67.0.tgz#7c4288fc3808233e55c7610101e7bb4590cddd3f" + integrity sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew== + dependencies: + "@jsonjoy.com/buffers" "17.67.0" + "@jsonjoy.com/codegen" "17.67.0" + +"@jsonjoy.com/util@^1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.9.0.tgz#7ee95586aed0a766b746cd8d8363e336c3c47c46" + integrity sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ== + dependencies: + "@jsonjoy.com/buffers" "^1.0.0" + "@jsonjoy.com/codegen" "^1.0.0" + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.5" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" @@ -2146,6 +2579,56 @@ dependencies: "@types/mdx" "^2.0.0" +"@mermaid-js/parser@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@mermaid-js/parser/-/parser-2.0.0.tgz#018b3e6754e4302fb059765c37bae30ecdff4147" + integrity sha512-K8BeapFUfrfxbRAUQAG5oBOCwo1+bNWzaVnPxTCutkfrTBn6T/j91FIhqxWJ32SUeQ9T3iy1zcmPZ5ROZEvDrg== + dependencies: + "@chevrotain/types" "~11.1.2" + +"@module-federation/error-codes@0.22.0": + version "0.22.0" + resolved "https://registry.yarnpkg.com/@module-federation/error-codes/-/error-codes-0.22.0.tgz#31ccc990dc240d73912ba7bd001f7e35ac751992" + integrity sha512-xF9SjnEy7vTdx+xekjPCV5cIHOGCkdn3pIxo9vU7gEZMIw0SvAEdsy6Uh17xaCpm8V0FWvR0SZoK9Ik6jGOaug== + +"@module-federation/runtime-core@0.22.0": + version "0.22.0" + resolved "https://registry.yarnpkg.com/@module-federation/runtime-core/-/runtime-core-0.22.0.tgz#7321ec792bb7d1d22bee6162ec43564b769d2a3c" + integrity sha512-GR1TcD6/s7zqItfhC87zAp30PqzvceoeDGYTgF3Vx2TXvsfDrhP6Qw9T4vudDQL3uJRne6t7CzdT29YyVxlgIA== + dependencies: + "@module-federation/error-codes" "0.22.0" + "@module-federation/sdk" "0.22.0" + +"@module-federation/runtime-tools@0.22.0": + version "0.22.0" + resolved "https://registry.yarnpkg.com/@module-federation/runtime-tools/-/runtime-tools-0.22.0.tgz#36f2a7cb267af208a9d1a237fe9a71b4bf31431e" + integrity sha512-4ScUJ/aUfEernb+4PbLdhM/c60VHl698Gn1gY21m9vyC1Ucn69fPCA1y2EwcCB7IItseRMoNhdcWQnzt/OPCNA== + dependencies: + "@module-federation/runtime" "0.22.0" + "@module-federation/webpack-bundler-runtime" "0.22.0" + +"@module-federation/runtime@0.22.0": + version "0.22.0" + resolved "https://registry.yarnpkg.com/@module-federation/runtime/-/runtime-0.22.0.tgz#f789c9ef40d846d110711c8221ecc0ad938d43d8" + integrity sha512-38g5iPju2tPC3KHMPxRKmy4k4onNp6ypFPS1eKGsNLUkXgHsPMBFqAjDw96iEcjri91BrahG4XcdyKi97xZzlA== + dependencies: + "@module-federation/error-codes" "0.22.0" + "@module-federation/runtime-core" "0.22.0" + "@module-federation/sdk" "0.22.0" + +"@module-federation/sdk@0.22.0": + version "0.22.0" + resolved "https://registry.yarnpkg.com/@module-federation/sdk/-/sdk-0.22.0.tgz#6ad4c1de85a900c3c80ff26cb87cce253e3a2770" + integrity sha512-x4aFNBKn2KVQRuNVC5A7SnrSCSqyfIWmm1DvubjbO9iKFe7ith5niw8dqSFBekYBg2Fwy+eMg4sEFNVvCAdo6g== + +"@module-federation/webpack-bundler-runtime@0.22.0": + version "0.22.0" + resolved "https://registry.yarnpkg.com/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.22.0.tgz#dcbe8f972d722fe278e6a7c21988d4bee53d401d" + integrity sha512-aM8gCqXu+/4wBmJtVeMeeMN5guw3chf+2i6HajKtQv7SJfxV/f4IyNQJUeUQu9HfiAZHjqtMV5Lvq/Lvh8LdyA== + dependencies: + "@module-federation/runtime" "0.22.0" + "@module-federation/sdk" "0.22.0" + "@mui/core-downloads-tracker@^7.3.2": version "7.3.2" resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-7.3.2.tgz#896a7890864d619093dc79541ec1ecfa3b507ad2" @@ -2230,6 +2713,20 @@ prop-types "^15.8.1" react-is "^19.1.1" +"@napi-rs/wasm-runtime@1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz#dcfea99a75f06209a235f3d941e3460a51e9b14c" + integrity sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw== + dependencies: + "@emnapi/core" "^1.5.0" + "@emnapi/runtime" "^1.5.0" + "@tybys/wasm-util" "^0.10.1" + +"@noble/hashes@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -2251,6 +2748,136 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@peculiar/asn1-cms@^2.6.0", "@peculiar/asn1-cms@^2.9.4": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-cms/-/asn1-cms-2.9.4.tgz#1c0b42ba5dcbaf8e1e060a1e76cd2442affbc37c" + integrity sha512-cben7oxmQsUGZqotus7yt0srYdncOT6RNWcTQ77T2RFOXejYVYkXadrfePdRcrVpO9K95IRLKKglG2k38jKXuw== + dependencies: + "@peculiar/asn1-schema" "^2.9.4" + "@peculiar/asn1-x509" "^2.9.4" + "@peculiar/asn1-x509-attr" "^2.9.4" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-csr@^2.6.0": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-csr/-/asn1-csr-2.9.4.tgz#d306964f97bd7eb4edc6e3dc5e5ac87b2414e858" + integrity sha512-xd4YN4vpRjkDAQWVfZZkeu12IEND7DOpkqaHSIHxZl1uggUNa9Ju0QxY2jHvDAS9pP0zhRBytg8ifsnGo3V0jw== + dependencies: + "@peculiar/asn1-schema" "^2.9.4" + "@peculiar/asn1-x509" "^2.9.4" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-ecc@^2.6.0": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-ecc/-/asn1-ecc-2.9.4.tgz#2bf1bd8734584689a2d3f43c57b25ce3a60a0ce2" + integrity sha512-JJXefFshRAuVAjWQo/39bkg1ywc1VaiO44S8RRC+Ykvf/u2KDmYffoDb0ZBPCR5uJy4AGKQhl8mX+Q8ShcWaXQ== + dependencies: + "@peculiar/asn1-schema" "^2.9.4" + "@peculiar/asn1-x509" "^2.9.4" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-pfx@^2.9.4": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pfx/-/asn1-pfx-2.9.4.tgz#795ddfe7ee3669b50f42cdaed42cc82b22a5d440" + integrity sha512-khuGzHTzNzk4GDlIBEILyIs6Lce0yn0ZBdoI9v93kmNncfZRhD+AQ5ODFqdhvoE8cMJF/JMTQ8yA+t1D14kqCw== + dependencies: + "@peculiar/asn1-cms" "^2.9.4" + "@peculiar/asn1-pkcs8" "^2.9.4" + "@peculiar/asn1-rsa" "^2.9.4" + "@peculiar/asn1-schema" "^2.9.4" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-pkcs8@^2.9.4": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.9.4.tgz#79ac7696eb7acf3fe68b121ac39fcb265f8b219e" + integrity sha512-duRdotlUx9eDZe6QrQpQKl61RbWykCHBCkKayP8V8XdEFwlKHZ8qGGDMyS6Pye7OX7nLFttTTpRkJeet78ckwQ== + dependencies: + "@peculiar/asn1-schema" "^2.9.4" + "@peculiar/asn1-x509" "^2.9.4" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-pkcs9@^2.6.0": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.9.4.tgz#18c89ab8d5e34469d43497bdbde7fc84cf437991" + integrity sha512-kaL4cNxBpdQE2dKlyZBqz4ygCrwffO+8wfoxTEqM1Z8RadvCeELBRzcv0dzM8aY9azHMwODO5nxU65zXmhToOQ== + dependencies: + "@peculiar/asn1-cms" "^2.9.4" + "@peculiar/asn1-pfx" "^2.9.4" + "@peculiar/asn1-pkcs8" "^2.9.4" + "@peculiar/asn1-schema" "^2.9.4" + "@peculiar/asn1-x509" "^2.9.4" + "@peculiar/asn1-x509-attr" "^2.9.4" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-rsa@^2.6.0", "@peculiar/asn1-rsa@^2.9.4": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-rsa/-/asn1-rsa-2.9.4.tgz#0547359f09b10876a21a96ef32b70af6db9855ad" + integrity sha512-pZ96eD1PptovcWQ/GSmuNFXd/7EQJNlKfDaNCyE2rx3W0v6QFelkzquVqRSRyyDXXCYD69ZXJDzZ8GhIiQzKoA== + dependencies: + "@peculiar/asn1-schema" "^2.9.4" + "@peculiar/asn1-x509" "^2.9.4" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-schema@^2.6.0", "@peculiar/asn1-schema@^2.9.4": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.9.4.tgz#99003d4bc87ec2ed2c4deb2843404496a912c3cf" + integrity sha512-GjzePcT9Iw8NzeOPf73iNS9xM+TBhd/FilAfP+RQGkTMQJTVWtytN3JHJACCjf/ABNau5S7mS3g+DcuxmRgYEg== + dependencies: + "@peculiar/utils" "^2.0.2" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-x509-attr@^2.9.4": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.9.4.tgz#c74094ffb97442c3fac7b965bd1345f9a0b59d48" + integrity sha512-ehQXbpQaQYycgu8OrvigwSPTFfVRcu0ECNYCWw+yzBp02Lw5paRqzzhUpfOgO2K38+WfFZuEz/0RPtam5g0OMg== + dependencies: + "@peculiar/asn1-schema" "^2.9.4" + "@peculiar/asn1-x509" "^2.9.4" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-x509@^2.6.0", "@peculiar/asn1-x509@^2.9.4": + version "2.9.4" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.9.4.tgz#f997898c48ba6536bed640f788734d36477c21ad" + integrity sha512-CxhBo/RdEbMMob7T31ZdQjGuoyRFLVwrDzTn25bihzBasRg9kRm/0IxIPvhgQtcK/9dNcO1XQL2fuPugwELL0Q== + dependencies: + "@peculiar/asn1-schema" "^2.9.4" + "@peculiar/utils" "^2.0.2" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/utils@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" + integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== + dependencies: + tslib "^2.8.1" + +"@peculiar/x509@^1.14.2": + version "1.14.3" + resolved "https://registry.yarnpkg.com/@peculiar/x509/-/x509-1.14.3.tgz#2c44c2b89474346afec38a0c2803ec4fb8ce959e" + integrity sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA== + dependencies: + "@peculiar/asn1-cms" "^2.6.0" + "@peculiar/asn1-csr" "^2.6.0" + "@peculiar/asn1-ecc" "^2.6.0" + "@peculiar/asn1-pkcs9" "^2.6.0" + "@peculiar/asn1-rsa" "^2.6.0" + "@peculiar/asn1-schema" "^2.6.0" + "@peculiar/asn1-x509" "^2.6.0" + pvtsutils "^1.3.6" + reflect-metadata "^0.2.2" + tslib "^2.8.1" + tsyringe "^4.10.0" + "@pnpm/config.env-replace@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" @@ -2282,6 +2909,88 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== +"@rspack/binding-darwin-arm64@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.7.12.tgz#e6e10e7ff15c2254d6cbe9125a747ada880a34f3" + integrity sha512-rbFprJaJiqrmfy8SHth8EsoRS0wg4bXcucwj9NiMzpGFq14Opw8c04iQ6H9BECYzgmN0PKZ9rh41LdVvhdZe4A== + +"@rspack/binding-darwin-x64@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.7.12.tgz#fe90b64228eb49612e4932049325f52a4ddcfd28" + integrity sha512-jnOp+/UXOJa9xqUb8KXH03sysoO2e4Ij6tw6MqDdmdj8n/A8PQENRPUbW9AwXpPtVDJPus9r4fi7b3+6e4B8Hg== + +"@rspack/binding-linux-arm64-gnu@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.7.12.tgz#61d63a0fcb9b4eb25b9d68e1f897c8e2619a8a5a" + integrity sha512-C8owWG+yvo7X0oVLIXetkoJhIFBP1LYNcAQqtgLmJnQLQDklGuP83dKC+zISGQWpjawHfZ1ER96vLgoTrxKZdw== + +"@rspack/binding-linux-arm64-musl@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.7.12.tgz#fd5157890b1250937bb98332dcbb35ff2d7aafd3" + integrity sha512-i51WWI64aRpsfSki6rN0aepPqXkVfS+vZM7+4bWDcmnhUmdMvhIPcYg0QRk3DtyJnu33jqNLM0WHY78k00NyfA== + +"@rspack/binding-linux-x64-gnu@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.7.12.tgz#a8c963c47a043069b154c704d87bf6a658772ac7" + integrity sha512-MSos0FuPEefqo9V92ULd5hggKG29EkSNg1zDcypy0OkpsKh5pfjVxTLYFXgTcVyFoUQQbdG8zFBzYbwmJ8V4ew== + +"@rspack/binding-linux-x64-musl@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.7.12.tgz#1e95af2b152a0833272c26c3473cfa60832ef8b0" + integrity sha512-JcAMVKXOnjfpC3coWjCFPWD3Yl8RBw6a+IXQQ8mfRlHaHMIiOv8IfZqx15XRxMUn49CtP7Z0Na8iiAg2aKrcfw== + +"@rspack/binding-wasm32-wasi@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.7.12.tgz#37a10f322e82cbd51114e8a3182f46c6af101a20" + integrity sha512-n+ZqP6ZMc0nhOgvadg5VhEs9ojtbES80AcWeFnmGkbzIszvGSO63GKNiRkXtjJ9KFuRzytbbmsCqkUVH+Tywxg== + dependencies: + "@napi-rs/wasm-runtime" "1.0.7" + +"@rspack/binding-win32-arm64-msvc@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.7.12.tgz#77f648ee1cb717c50fdd02126a528b4960654116" + integrity sha512-8+h5fYDXYdmugbdfZ+D1y8IQ3rv2EhSfyGP7vBe+bjNyaMa4jWrpucmZbtxojUL1AzaeuHbvMdj9UO/gelk/+g== + +"@rspack/binding-win32-ia32-msvc@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.7.12.tgz#9f7cbb26a9c8d9a1cc15d2059de21172b1623c41" + integrity sha512-cDMGwTRSa2p9fNBVe1wTRkF2AEXZ9ARWW36QeC5CkLaI0Ezz8lvhF2+CSOPnhaQ1O1qtn0L0SF+lFnrY+I7xGQ== + +"@rspack/binding-win32-x64-msvc@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.7.12.tgz#b4c6dceaa63def4aa205d25246c1a5b05d7f36b0" + integrity sha512-wIqFvlgFqrgUyj/6S/FJcvShnkZOmIeXTfqvheLY67MGq8qd8jb1YimQVKAIrmWB3yuJKUFACI3Ag1UBtEedEA== + +"@rspack/binding@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding/-/binding-1.7.12.tgz#8c0b19795f980b0e513855245e689719352c08a4" + integrity sha512-f4HHuLbvuld8Ba4iB/4ibse5XrKxFrgmM3S4P2AOKnPlekAFlBjmltCuaTL/W2ggYvILaVY+YcFXrEH1rrKeQA== + optionalDependencies: + "@rspack/binding-darwin-arm64" "1.7.12" + "@rspack/binding-darwin-x64" "1.7.12" + "@rspack/binding-linux-arm64-gnu" "1.7.12" + "@rspack/binding-linux-arm64-musl" "1.7.12" + "@rspack/binding-linux-x64-gnu" "1.7.12" + "@rspack/binding-linux-x64-musl" "1.7.12" + "@rspack/binding-wasm32-wasi" "1.7.12" + "@rspack/binding-win32-arm64-msvc" "1.7.12" + "@rspack/binding-win32-ia32-msvc" "1.7.12" + "@rspack/binding-win32-x64-msvc" "1.7.12" + +"@rspack/core@^1.7.10": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/core/-/core-1.7.12.tgz#e2a36bd16a10e10aee5905827064ac4b8a63b321" + integrity sha512-6CwFIHlhRmXfZoMj3v9MZ1SMTPBn+cHVXeMIeaGp5sufqinKsISbsqHu6ZMJu2wDSmZLdmQJX6zLxkhcAUlhkQ== + dependencies: + "@module-federation/runtime-tools" "0.22.0" + "@rspack/binding" "1.7.12" + "@rspack/lite-tapable" "1.1.0" + +"@rspack/lite-tapable@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@rspack/lite-tapable/-/lite-tapable-1.1.0.tgz#3cfdafeed01078e116bd4f191b684c8b484de425" + integrity sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw== + "@sideway/address@^4.1.5": version "4.1.5" resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5" @@ -2429,6 +3138,179 @@ "@svgr/plugin-jsx" "8.1.0" "@svgr/plugin-svgo" "8.1.0" +"@swc/core-darwin-arm64@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.16.2.tgz#b180d8647923c75e5aabbf4ea6e543d113aa3c79" + integrity sha512-i/j0HNbnn79qnTVPicvay92Nark8fW8NQqn1e2mGERjUXNpBV0+SwQxlRpk2zBhn6laJ8PDI6Kn1nHZhnz3LCA== + +"@swc/core-darwin-x64@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.16.2.tgz#ae8286ddd5a6f1b0f1c540e3338682fed7ceb2ab" + integrity sha512-HrwqHyEyHVXO3qTk8EkNK7/b6sOZSEoNh+pot6RdE5x0LbNqfo8LtJUvi3UTXr+5ja/o5HbJdW80eCXo+NjbiA== + +"@swc/core-linux-arm-gnueabihf@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.16.2.tgz#9879d6eb91d3663dfcae557cde866642b21b7590" + integrity sha512-MdXi83Z/gGp1LIrg+h7HKxiul/z/Bty/ZJSvYAFqDl9zteC1XLSAZdScquKtXPp50rdyXqritTDCqQBhwVfZKA== + +"@swc/core-linux-arm64-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.16.2.tgz#9684df59917e4b0de8f528f04cf7f6e7526ca7b1" + integrity sha512-/jcTmK6Ktz3owM3YtiKvjofV6p3VpHnYzTIrOGwDIOsDigRAAVuZ8east33wYO/7UTdKYFlyHNnJNT0WJqOA3Q== + +"@swc/core-linux-arm64-musl@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.16.2.tgz#36b59ed1a46795755e6d083e6693753c5ea1e7d0" + integrity sha512-4gFarKaFnlJTSlJYKmMhV4u+3YE4uYfiydpBoYjmgQhCf9lAieOq+WilZaK9vVSHeqLuQpTEiGULZqAdsRX5Dw== + +"@swc/core-linux-ppc64-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.16.2.tgz#b0f648e760031e4674e0d07eb4991dfb468d21ee" + integrity sha512-syqSLGd6KlZ1PciNzs6bIUlhOuFztZufebOHaERjc4N4SqNZxyqYd4I+jj/EfOYnpe0kNjccn9HJLN1p5dz3+w== + +"@swc/core-linux-s390x-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.16.2.tgz#7757e4999f4e236a8bb05bd04367574ce926d4cc" + integrity sha512-ZBBLK+ewGyXLzWeMS7wbKtWBdnif6etn7xvPY/iOfbdsjX/+bgkp1pQt2lWF2wlu2hXYZuhJ/tHZE/QR8/apzg== + +"@swc/core-linux-x64-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.16.2.tgz#a25271e8199c46e54f1042c9d98fbf38fdb4736c" + integrity sha512-LyHJgxCA4Tje0ysBMbEb0tt/ie8kgUKoFE3JAKFhpevmTmhYEoC0H9s47WuDsqiFckF1ITUguZIXJG6K5e0dvg== + +"@swc/core-linux-x64-musl@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.16.2.tgz#afc4e5f5e519e4e2ca75a560496fbc6b5164718d" + integrity sha512-PghXJlVM1cgtLfNUR1vxFo1z+PDRAe8cWAJlZZ7spmeiN7BospGXg/MHUg7oNSgwSX7Zo//YKv9P5yD9apsFJQ== + +"@swc/core-win32-arm64-msvc@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.16.2.tgz#98b936a9cf2faad87c92c979161f17f22c55b742" + integrity sha512-StTOSefYBxemvNYYUI3UmO1a8y+hSPjjfHogC2TEHL+Z1PlEBim/XtLas5rS04jAzT9RrNmbtX911SZ42H9jSQ== + +"@swc/core-win32-ia32-msvc@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.16.2.tgz#2e30f6a8f78b0c79268e6d39f0ae3b378919449c" + integrity sha512-fycER209DYIzsibpTMC+chND05OfOjgztWL9U8OE6/uUlsOUZH3eh98isBLEnOymYUhlJLEt5++W1+KL/FOh5Q== + +"@swc/core-win32-x64-msvc@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.16.2.tgz#a25e080ed09770e68c1dc5a2a7e973a01dc40b2f" + integrity sha512-cSd1z6ivSrJPVr+moVwOHWjeKy6TpO4/Shwcv5KCrKYXCccxwh4pRy1C3fDioNx2PF1jPZWHKZjtXt+Be9VbaQ== + +"@swc/core@^1.15.40": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.16.2.tgz#6cc0c7f27938bea7208467a18ab518fa23b78367" + integrity sha512-95I4kiSMeveI/Mhi+tE4fiWcWLUMfzfKrk0jtr8LRMqHgOgq+xHS+zExkDqoO4b5OeeuXHMWVdD5MeP3X6sULw== + dependencies: + "@swc/counter" "^0.1.3" + "@swc/types" "^0.1.28" + optionalDependencies: + "@swc/core-darwin-arm64" "1.16.2" + "@swc/core-darwin-x64" "1.16.2" + "@swc/core-linux-arm-gnueabihf" "1.16.2" + "@swc/core-linux-arm64-gnu" "1.16.2" + "@swc/core-linux-arm64-musl" "1.16.2" + "@swc/core-linux-ppc64-gnu" "1.16.2" + "@swc/core-linux-s390x-gnu" "1.16.2" + "@swc/core-linux-x64-gnu" "1.16.2" + "@swc/core-linux-x64-musl" "1.16.2" + "@swc/core-win32-arm64-msvc" "1.16.2" + "@swc/core-win32-ia32-msvc" "1.16.2" + "@swc/core-win32-x64-msvc" "1.16.2" + +"@swc/counter@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" + integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== + +"@swc/html-darwin-arm64@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-darwin-arm64/-/html-darwin-arm64-1.16.2.tgz#dfe45d70266262a59aaaa0d93740b6161803f192" + integrity sha512-SNBUxkxLBXD0ATwnOG1rF8mpSrRtFDfqWnEUmbm/g4KwmCt7NuHHv9YYqA3lqfq90Ucc+Xlk7afx8KAW/utz4A== + +"@swc/html-darwin-x64@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-darwin-x64/-/html-darwin-x64-1.16.2.tgz#72066bda0d843c024dd5230aa013445d10037cde" + integrity sha512-WVBgn6yrBPMZu+DL95/XGAXYcgd1nhd67Ml1UjMtFoFMVKY+VRpCq8JpTZTMXhWbVoRENUHk+3PHu0nNjlE/Fg== + +"@swc/html-linux-arm-gnueabihf@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-linux-arm-gnueabihf/-/html-linux-arm-gnueabihf-1.16.2.tgz#efa7dd85b03b941ac173ae2870355f9721993905" + integrity sha512-V9F/Akd2TXrf5nUhdLgdy3FoVFxQbw8pA2AOyqnEOa2Mbm1R7DZJJ0GdShEMcoyMyMDB9r/4pWuWfxNtP4mFHA== + +"@swc/html-linux-arm64-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-linux-arm64-gnu/-/html-linux-arm64-gnu-1.16.2.tgz#4b6a02b42a40463e9ed9a96e0c42b7095b244f48" + integrity sha512-jonZVtHc6BesMjC/muUEJGzE1L2kVdgiPVuHc7CL79MrUm0Hjf8LS4Wmtjqe2bLTfRcaMfaYl/60ZcRXHCaYSQ== + +"@swc/html-linux-arm64-musl@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-linux-arm64-musl/-/html-linux-arm64-musl-1.16.2.tgz#0334e071cb8a01e0423fe7da27204b71f1afed66" + integrity sha512-dvki9/sgacHk9ouORmnIok5FbpeE9zUE8yqGGhL1kitNJi6/TKzfnMOpRxSxeDk1/ccvJTAdjRGDIGkT45+b3Q== + +"@swc/html-linux-ppc64-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-linux-ppc64-gnu/-/html-linux-ppc64-gnu-1.16.2.tgz#6c0d7293a1f7f7631e975c767755eb5236769193" + integrity sha512-6m0vVWHl9MW7cmWKVgKlFW6yhRv0uahMEaDxNIvXrPC3LdbbiiYZui+ryhyQGIYeVps3OMujzUjc0GihNz/afQ== + +"@swc/html-linux-s390x-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-linux-s390x-gnu/-/html-linux-s390x-gnu-1.16.2.tgz#853018d7b57377e2f3b23d369a1571862c34d2b9" + integrity sha512-TOlz6wgKyZjg4THJsNZfDz/rAMO+rBa0s2eewTeHEfuJhI+jGu7H6Co6bdbMpN3oyDvTMG7N1f1ktSbkE0erAg== + +"@swc/html-linux-x64-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-linux-x64-gnu/-/html-linux-x64-gnu-1.16.2.tgz#a347921e256f6ecb8847956bbacd4a23e1476adb" + integrity sha512-5EduoVpsnuAAkG9BW8COxcIKAe5swgNAEo+BVkAJCOy1ZMZm0krQYBdvlaDCsGGE9yLDKVPm7rpYIi7vTTZTbA== + +"@swc/html-linux-x64-musl@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-linux-x64-musl/-/html-linux-x64-musl-1.16.2.tgz#ebfbbdb05f2f991a34bc500dce0ca10bfbcdfc3b" + integrity sha512-c0Z84dvBd0oh1ZcBHnM18itmvJFLbCZBKFF2lEDHsGBSLQ/1sPbggEKsVO4KgWkkhwQV2l9AB4jnsw1HrwZJCg== + +"@swc/html-win32-arm64-msvc@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-win32-arm64-msvc/-/html-win32-arm64-msvc-1.16.2.tgz#69207d99cd80e55fe1ea722c8c8d5174b3d3cd2a" + integrity sha512-Aq7V2B5gS23X59DzV2z892c4NBHYtJbwhvsCjJN1MBMx723htjgNE9KVIJp9dQaJBr2PrNfb/u3QFwnWV2tAoQ== + +"@swc/html-win32-ia32-msvc@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-win32-ia32-msvc/-/html-win32-ia32-msvc-1.16.2.tgz#9473a17f22c65ec20059533bd8cc78b32c82a711" + integrity sha512-9gslPcsfXxKvAZtOvDkxGuEbM7lqBrONzLAyRsyUtw8KxFcSYkGIO48RDTstGWOkgTgKjjAq/WWqt9qr/NcE3A== + +"@swc/html-win32-x64-msvc@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-win32-x64-msvc/-/html-win32-x64-msvc-1.16.2.tgz#7c7aeaa21b8848a765be2d4f7ee2ee3fecfd0f52" + integrity sha512-Kdb4VdC8FyF5s1MQaFUNeASLckHECrb/oYy/6OCtU+hbgxQ/o/JCgE4uCe8YAg0LCWSOjhx73PCZDGwPf1TpKw== + +"@swc/html@^1.15.40": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html/-/html-1.16.2.tgz#91ee34374e4c926c6c8a8f43561688192b8a1725" + integrity sha512-RmWH8m5dePWDFpHpmFKquZCRe5SyD/Sb0FBPxWcWv/tsjtlJl6oHeaxBsTL2edvaHuW385Fy5nPuTjDD/a+GEA== + dependencies: + "@swc/counter" "^0.1.3" + optionalDependencies: + "@swc/html-darwin-arm64" "1.16.2" + "@swc/html-darwin-x64" "1.16.2" + "@swc/html-linux-arm-gnueabihf" "1.16.2" + "@swc/html-linux-arm64-gnu" "1.16.2" + "@swc/html-linux-arm64-musl" "1.16.2" + "@swc/html-linux-ppc64-gnu" "1.16.2" + "@swc/html-linux-s390x-gnu" "1.16.2" + "@swc/html-linux-x64-gnu" "1.16.2" + "@swc/html-linux-x64-musl" "1.16.2" + "@swc/html-win32-arm64-msvc" "1.16.2" + "@swc/html-win32-ia32-msvc" "1.16.2" + "@swc/html-win32-x64-msvc" "1.16.2" + +"@swc/types@^0.1.28": + version "0.1.28" + resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.28.tgz#e3cd892383fba3b8904c40518bbe1265a50753f2" + integrity sha512-V6Mnml8v09QALx6K0elJ7o9K/MkVDtW3t6L+7Ou/JcWtb3xwId2AH4FeOceySd2JaO87IMw4+6vSZxLm34LPbw== + dependencies: + "@swc/counter" "^0.1.3" + "@szmarczak/http-timer@^5.0.1": version "5.0.1" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" @@ -2441,6 +3323,13 @@ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== +"@tybys/wasm-util@^0.10.1": + version "0.10.4" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.4.tgz#3e85ecb266f9d1722250e89bc69528615720b154" + integrity sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A== + dependencies: + tslib "^2.4.0" + "@types/body-parser@*": version "1.19.6" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.6.tgz#1859bebb8fd7dac9918a45d54c1971ab8b5af474" @@ -2449,14 +3338,14 @@ "@types/connect" "*" "@types/node" "*" -"@types/bonjour@^3.5.9": +"@types/bonjour@^3.5.13": version "3.5.13" resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== dependencies: "@types/node" "*" -"@types/connect-history-api-fallback@^1.3.5": +"@types/connect-history-api-fallback@^1.5.4": version "1.5.4" resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== @@ -2471,6 +3360,216 @@ dependencies: "@types/node" "*" +"@types/d3-array@*": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.2.2.tgz#e02151464d02d4a1b44646d0fcdb93faf88fde8c" + integrity sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw== + +"@types/d3-axis@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-3.0.6.tgz#e760e5765b8188b1defa32bc8bb6062f81e4c795" + integrity sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-brush@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-3.0.6.tgz#c2f4362b045d472e1b186cdbec329ba52bdaee6c" + integrity sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-chord@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-3.0.6.tgz#1706ca40cf7ea59a0add8f4456efff8f8775793d" + integrity sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg== + +"@types/d3-color@*": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.3.tgz#368c961a18de721da8200e80bf3943fb53136af2" + integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A== + +"@types/d3-contour@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-3.0.6.tgz#9ada3fa9c4d00e3a5093fed0356c7ab929604231" + integrity sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg== + dependencies: + "@types/d3-array" "*" + "@types/geojson" "*" + +"@types/d3-delaunay@*": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz#185c1a80cc807fdda2a3fe960f7c11c4a27952e1" + integrity sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw== + +"@types/d3-dispatch@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz#ef004d8a128046cfce434d17182f834e44ef95b2" + integrity sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA== + +"@types/d3-drag@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-3.0.7.tgz#b13aba8b2442b4068c9a9e6d1d82f8bcea77fc02" + integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-dsv@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-3.0.7.tgz#0a351f996dc99b37f4fa58b492c2d1c04e3dac17" + integrity sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g== + +"@types/d3-ease@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.2.tgz#e28db1bfbfa617076f7770dd1d9a48eaa3b6c51b" + integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA== + +"@types/d3-fetch@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-3.0.7.tgz#c04a2b4f23181aa376f30af0283dbc7b3b569980" + integrity sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA== + dependencies: + "@types/d3-dsv" "*" + +"@types/d3-force@*": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-3.0.10.tgz#6dc8fc6e1f35704f3b057090beeeb7ac674bff1a" + integrity sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw== + +"@types/d3-format@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-3.0.4.tgz#b1e4465644ddb3fdf3a263febb240a6cd616de90" + integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g== + +"@types/d3-geo@*": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-3.1.1.tgz#9e283af179601c549581600b3fec25941911329d" + integrity sha512-65Emv9fQiQQqphLlRkuQ5ypPsOmWPhtBGCMv61JDPEPMvsx+gzhGf74yw1a78xFKPj6zw4AgQICJoQv0vK9M2w== + dependencies: + "@types/geojson" "*" + +"@types/d3-hierarchy@*": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz#6023fb3b2d463229f2d680f9ac4b47466f71f17b" + integrity sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg== + +"@types/d3-interpolate@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz#412b90e84870285f2ff8a846c6eb60344f12a41c" + integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA== + dependencies: + "@types/d3-color" "*" + +"@types/d3-path@*": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.1.1.tgz#f632b380c3aca1dba8e34aa049bcd6a4af23df8a" + integrity sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg== + +"@types/d3-polygon@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-3.0.2.tgz#dfae54a6d35d19e76ac9565bcb32a8e54693189c" + integrity sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA== + +"@types/d3-quadtree@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz#d4740b0fe35b1c58b66e1488f4e7ed02952f570f" + integrity sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg== + +"@types/d3-random@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-3.0.4.tgz#6bd3683b8332fc0f01e7059b7636bc5c7ede7337" + integrity sha512-UHYId5WTCx4L4YNel7NU00XUXXgvgpgZOvp10PuvsQENjMDXhh2RyFc0KBjO7B45ne4Ha1yVH7ii0vnzKkuzWA== + +"@types/d3-scale-chromatic@*": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#dc6d4f9a98376f18ea50bad6c39537f1b5463c39" + integrity sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ== + +"@types/d3-scale@*": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.9.tgz#57a2f707242e6fe1de81ad7bfcccaaf606179afb" + integrity sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw== + dependencies: + "@types/d3-time" "*" + +"@types/d3-selection@*": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.12.tgz#bb207aec0b20bbe62466781c07e74212e9f5c0b1" + integrity sha512-Qe/KWYhEiIIxGs7HrAAjMfShxKldx19SJtr5zu53f3afPsdZNz7HHtdTLXo/kqeiWNXVycI24kSnfzBYkTzpgw== + +"@types/d3-shape@*": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.2.0.tgz#66ff342011dc243c6c20e6b899523d148aca412d" + integrity sha512-kVd74ta9eof3eJOvbNd1vGKS/XERRyQbT26Og63hIsvDO84cjD5gEOhsXf26w3FSoNlPVz84DOFcKv/oou+fMw== + dependencies: + "@types/d3-path" "*" + +"@types/d3-time-format@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-4.0.3.tgz#d6bc1e6b6a7db69cccfbbdd4c34b70632d9e9db2" + integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg== + +"@types/d3-time@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.4.tgz#8472feecd639691450dd8000eb33edd444e1323f" + integrity sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g== + +"@types/d3-timer@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.2.tgz#70bbda77dc23aa727413e22e214afa3f0e852f70" + integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw== + +"@types/d3-transition@*": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.9.tgz#1136bc57e9ddb3c390dccc9b5ff3b7d2b8d94706" + integrity sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-zoom@*": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-3.0.8.tgz#dccb32d1c56b1e1c6e0f1180d994896f038bc40b" + integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw== + dependencies: + "@types/d3-interpolate" "*" + "@types/d3-selection" "*" + +"@types/d3@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@types/d3/-/d3-7.4.3.tgz#d4550a85d08f4978faf0a4c36b848c61eaac07e2" + integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww== + dependencies: + "@types/d3-array" "*" + "@types/d3-axis" "*" + "@types/d3-brush" "*" + "@types/d3-chord" "*" + "@types/d3-color" "*" + "@types/d3-contour" "*" + "@types/d3-delaunay" "*" + "@types/d3-dispatch" "*" + "@types/d3-drag" "*" + "@types/d3-dsv" "*" + "@types/d3-ease" "*" + "@types/d3-fetch" "*" + "@types/d3-force" "*" + "@types/d3-format" "*" + "@types/d3-geo" "*" + "@types/d3-hierarchy" "*" + "@types/d3-interpolate" "*" + "@types/d3-path" "*" + "@types/d3-polygon" "*" + "@types/d3-quadtree" "*" + "@types/d3-random" "*" + "@types/d3-scale" "*" + "@types/d3-scale-chromatic" "*" + "@types/d3-selection" "*" + "@types/d3-shape" "*" + "@types/d3-time" "*" + "@types/d3-time-format" "*" + "@types/d3-timer" "*" + "@types/d3-transition" "*" + "@types/d3-zoom" "*" + "@types/debug@^4.0.0": version "4.1.12" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" @@ -2516,6 +3615,16 @@ "@types/range-parser" "*" "@types/send" "*" +"@types/express-serve-static-core@^4.17.21": + version "4.19.9" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.9.tgz#b746a8bb6c389af7a31141397bb539f775b0ae84" + integrity sha512-QP2ESEe/ImWY0HDwNAnK9PvEffUyhLTnWkk7KXzHfyeWAnlrDe1fN77bXl6ia8KT3wPlmA7t9/VPRpnf4Ex9sg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + "@types/express-serve-static-core@^4.17.33": version "4.19.6" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267" @@ -2535,20 +3644,20 @@ "@types/express-serve-static-core" "^5.0.0" "@types/serve-static" "*" -"@types/express@^4.17.13": - version "4.17.23" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.23.tgz#35af3193c640bfd4d7fe77191cd0ed411a433bef" - integrity sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ== +"@types/express@^4.17.25": + version "4.17.25" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.25.tgz#070c8c73a6fee6936d65c195dbbfb7da5026649b" + integrity sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.33" "@types/qs" "*" - "@types/serve-static" "*" + "@types/serve-static" "^1" -"@types/gtag.js@^0.0.12": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@types/gtag.js/-/gtag.js-0.0.12.tgz#095122edca896689bdfcdd73b057e23064d23572" - integrity sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg== +"@types/geojson@*": + version "7946.0.16" + resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.16.tgz#8ebe53d69efada7044454e3305c19017d97ced2a" + integrity sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg== "@types/hast@^3.0.0": version "3.0.4" @@ -2630,13 +3739,6 @@ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== -"@types/node-forge@^1.3.0": - version "1.3.14" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.14.tgz#006c2616ccd65550560c2757d8472eb6d3ecea0b" - integrity sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw== - dependencies: - "@types/node" "*" - "@types/node@*": version "24.5.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-24.5.2.tgz#52ceb83f50fe0fcfdfbd2a9fab6db2e9e7ef6446" @@ -2712,10 +3814,10 @@ dependencies: csstype "^3.0.2" -"@types/retry@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" - integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== +"@types/retry@0.12.2": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" + integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== "@types/sax@^1.2.1": version "1.2.7" @@ -2732,14 +3834,22 @@ "@types/mime" "^1" "@types/node" "*" -"@types/serve-index@^1.9.1": +"@types/send@<1": + version "0.17.6" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.6.tgz#aeb5385be62ff58a52cd5459daa509ae91651d25" + integrity sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-index@^1.9.4": version "1.9.4" resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== dependencies: "@types/express" "*" -"@types/serve-static@*", "@types/serve-static@^1.13.10": +"@types/serve-static@*": version "1.15.8" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.8.tgz#8180c3fbe4a70e8f00b9f70b9ba7f08f35987877" integrity sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg== @@ -2748,13 +3858,27 @@ "@types/node" "*" "@types/send" "*" -"@types/sockjs@^0.3.33": +"@types/serve-static@^1", "@types/serve-static@^1.15.5": + version "1.15.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.10.tgz#768169145a778f8f5dfcb6360aead414a3994fee" + integrity sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "<1" + +"@types/sockjs@^0.3.36": version "0.3.36" resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== dependencies: "@types/node" "*" +"@types/trusted-types@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== + "@types/unist@*", "@types/unist@^3.0.0": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" @@ -2765,7 +3889,7 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== -"@types/ws@^8.5.5": +"@types/ws@^8.5.10": version "8.18.1" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== @@ -2784,10 +3908,18 @@ dependencies: "@types/yargs-parser" "*" -"@ungap/structured-clone@^1.0.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" - integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== +"@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.3.1": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.4.0.tgz#5e2e1374c0a30b5a42e8b083523a225c6945f88a" + integrity sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ== + +"@upsetjs/venn.js@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@upsetjs/venn.js/-/venn.js-2.0.0.tgz#3be192038cdda927aa4f8b22ab51af82abf47f34" + integrity sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw== + optionalDependencies: + d3-selection "^3.0.0" + d3-transition "^3.0.1" "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": version "1.14.1" @@ -2950,10 +4082,10 @@ acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.15.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== -address@^1.0.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" - integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== +address@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/address/-/address-2.0.3.tgz#e910900615db3d8a20c040d4c710631062fc4ba8" + integrity sha512-XNAb/a6TCqou+TufU8/u11HCu9x1gYvOoxLwtlXgIqmkrYQADVv6ljyW2zwiPhHz9R1gItAWpuDrdJMmrOBFEA== aggregate-error@^3.0.0: version "3.1.0" @@ -2970,6 +4102,13 @@ ajv-formats@^2.1.1: dependencies: ajv "^8.0.0" +ajv-formats@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578" + integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ== + dependencies: + ajv "^8.0.0" + ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" @@ -3002,32 +4141,42 @@ ajv@^8.0.0, ajv@^8.9.0: json-schema-traverse "^1.0.0" require-from-string "^2.0.2" -algoliasearch-helper@^3.22.6: - version "3.26.0" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.26.0.tgz#d6e283396a9fc5bf944f365dc3b712570314363f" - integrity sha512-Rv2x3GXleQ3ygwhkhJubhhYGsICmShLAiqtUuJTUkr9uOCOXyF2E71LVT4XDnVffbknv8XgScP4U0Oxtgm+hIw== +ajv@^8.20.0: + version "8.20.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.20.0.tgz#304b3636add88ba7d936760dd50ece006dea95f9" + integrity sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +algoliasearch-helper@^3.26.0: + version "3.29.3" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.29.3.tgz#dc21f119320acbdd5890a21021846b5730d11e03" + integrity sha512-gVOMbbPVrCO3Xs+B+BLAIGFqIQow6qHMTYCEeBqLQB9m4ZmKUqMwkEumlal2iyyezHEd4Y0FvFTLbCRutCutIQ== dependencies: "@algolia/events" "^4.0.1" -algoliasearch@^5.14.2, algoliasearch@^5.17.1: - version "5.37.0" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.37.0.tgz#73dc4a09654e6e02b529300018d639706b95b47b" - integrity sha512-y7gau/ZOQDqoInTQp0IwTOjkrHc4Aq4R8JgpmCleFwiLl+PbN2DMWoDUWZnrK8AhNJwT++dn28Bt4NZYNLAmuA== - dependencies: - "@algolia/abtesting" "1.3.0" - "@algolia/client-abtesting" "5.37.0" - "@algolia/client-analytics" "5.37.0" - "@algolia/client-common" "5.37.0" - "@algolia/client-insights" "5.37.0" - "@algolia/client-personalization" "5.37.0" - "@algolia/client-query-suggestions" "5.37.0" - "@algolia/client-search" "5.37.0" - "@algolia/ingestion" "1.37.0" - "@algolia/monitoring" "1.37.0" - "@algolia/recommend" "5.37.0" - "@algolia/requester-browser-xhr" "5.37.0" - "@algolia/requester-fetch" "5.37.0" - "@algolia/requester-node-http" "5.37.0" +algoliasearch@^5.37.0: + version "5.59.0" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.59.0.tgz#c4d592b6d99fd0fa9929eaf40077b75824f45a68" + integrity sha512-wUXzaeI7B526W4y1gFg3lcxgDZ67XSgRJIiellYWOas/pLpO7rOtxm9Gr2E/C8aiSDXIgx1q5TdSsvK67Uakqw== + dependencies: + "@algolia/abtesting" "1.25.0" + "@algolia/client-abtesting" "5.59.0" + "@algolia/client-analytics" "5.59.0" + "@algolia/client-common" "5.59.0" + "@algolia/client-insights" "5.59.0" + "@algolia/client-personalization" "5.59.0" + "@algolia/client-query-suggestions" "5.59.0" + "@algolia/client-search" "5.59.0" + "@algolia/ingestion" "1.59.0" + "@algolia/monitoring" "1.59.0" + "@algolia/recommend" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" ansi-align@^3.0.1: version "3.0.1" @@ -3036,13 +4185,6 @@ ansi-align@^3.0.1: dependencies: string-width "^4.1.0" -ansi-escapes@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - ansi-html-community@^0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" @@ -3058,7 +4200,7 @@ ansi-regex@^6.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -3070,6 +4212,11 @@ ansi-styles@^6.1.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== +ansis@^3.2.0: + version "3.17.0" + resolved "https://registry.yarnpkg.com/ansis/-/ansis-3.17.0.tgz#fa8d9c2a93fe7d1177e0c17f9eeb562a58a832d7" + integrity sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg== + anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -3083,13 +4230,6 @@ arg@^5.0.0: resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -3105,6 +4245,15 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +asn1js@^3.0.10, asn1js@^3.0.6: + version "3.0.10" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" + integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== + dependencies: + pvtsutils "^1.3.6" + pvutils "^1.1.5" + tslib "^2.8.1" + astring@^1.8.0: version "1.9.0" resolved "https://registry.yarnpkg.com/astring/-/astring-1.9.0.tgz#cc73e6062a7eb03e7d19c22d8b0b3451fd9bfeef" @@ -3180,6 +4329,16 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +balanced-match@^4.0.2: + version "4.0.4" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.4.tgz#bfb10662feed8196a2c62e7c68e17720c274179a" + integrity sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== + +baseline-browser-mapping@^2.11.20: + version "2.11.23" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.11.23.tgz#304c980a35de0f460cf12985359d6e11494c1ab4" + integrity sha512-le521dGVfxM7yRX0EikCoSz+rOK+hHzdDt/E7mG1jOJB/6WAAUuwVroLwaB7ApaUsz5Q0kFlDXLSA9MheUIfRQ== + baseline-browser-mapping@^2.8.3: version "2.8.5" resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.5.tgz#3147fe6b01a0c49ce1952daebcfc2057fc43fedb" @@ -3200,28 +4359,28 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== -body-parser@1.20.3: - version "1.20.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== +body-parser@~1.20.5: + version "1.20.8" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.8.tgz#328d51ce46cb19c983f3d9661016df2765283a37" + integrity sha512-JNcyFQ64OiijEkPzUBTCe+hyPXUD/3LEldGQ6iF5LR1w00mx9o7xtDWHXBY2iItjdCFGoilOLNQbH943ut7pHA== dependencies: - bytes "3.1.2" + bytes "~3.1.2" content-type "~1.0.5" debug "2.6.9" depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.13.0" - raw-body "2.5.2" + destroy "~1.2.0" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + on-finished "~2.4.1" + qs "~6.16.0" + raw-body "~2.5.3" type-is "~1.6.18" - unpipe "1.0.0" + unpipe "~1.0.0" -bonjour-service@^1.0.11: - version "1.3.0" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" - integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== +bonjour-service@^1.2.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.4.4.tgz#8ff5b85fa0641e0996bf40bcf61fc0c6727b66d3" + integrity sha512-jCZcVv7eoc4QesRscwEZtSROBen+6LpKAmBIsQYQrsAeVHLyMXWX/t6eIV5KiRZYNUBl8eVqImEEMQ8L5+c/Kw== dependencies: fast-deep-equal "^3.1.3" multicast-dns "^7.2.5" @@ -3267,6 +4426,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^5.0.8: + version "5.0.12" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.12.tgz#995fbb4750a77c4d16a7dc942ff2ca6ef8e675ec" + integrity sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ== + dependencies: + balanced-match "^4.0.2" + braces@^3.0.3, braces@~3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" @@ -3285,21 +4451,44 @@ browserslist@^4.0.0, browserslist@^4.23.0, browserslist@^4.24.0, browserslist@^4 node-releases "^2.0.21" update-browserslist-db "^1.1.3" +browserslist@^4.24.2: + version "4.28.9" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.9.tgz#07ce6b449b90af880eb9bfb7cd39372cc4f71c8c" + integrity sha512-EWazOblFYUvlGZcfGhPUPmYh3nikUxBVb+y9MJun5f3hBi812X+8MSQTujLBtgK3cf51fJWbWfOjyeO954d+Eg== + dependencies: + baseline-browser-mapping "^2.11.20" + caniuse-lite "^1.0.30001810" + electron-to-chromium "^1.5.420" + node-releases "^2.0.54" + update-browserslist-db "^1.3.2" + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +bundle-name@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" + integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== + dependencies: + run-applescript "^7.0.0" + bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== -bytes@3.1.2: +bytes@3.1.2, bytes@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== +bytestreamjs@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/bytestreamjs/-/bytestreamjs-2.0.1.tgz#a32947c7ce389a6fa11a09a9a563d0a45889535e" + integrity sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ== + cacheable-lookup@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" @@ -3382,6 +4571,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001702, caniuse-lite@^1.0.30001741: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001743.tgz#50ff91a991220a1ee2df5af00650dd5c308ea7cd" integrity sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw== +caniuse-lite@^1.0.30001810: + version "1.0.30001810" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz#4970b477dea3278374de9bc43aa8f5d39fc3cda2" + integrity sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg== + ccount@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" @@ -3450,7 +4644,19 @@ cheerio@1.0.0-rc.12: parse5 "^7.0.0" parse5-htmlparser2-tree-adapter "^7.0.0" -chokidar@^3.5.3: +chevrotain@~11.1.2: + version "11.1.2" + resolved "https://registry.yarnpkg.com/chevrotain/-/chevrotain-11.1.2.tgz#1db446bdeb63fe42d366508a34280c2e3c0c4f62" + integrity sha512-opLQzEVriiH1uUQ4Kctsd49bRoFDXGGSC4GUqj7pGyxM3RehRhvTlZJc1FL/Flew2p5uwxa1tUDWKzI4wNM8pg== + dependencies: + "@chevrotain/cst-dts-gen" "11.1.2" + "@chevrotain/gast" "11.1.2" + "@chevrotain/regexp-to-ast" "11.1.2" + "@chevrotain/types" "11.1.2" + "@chevrotain/utils" "11.1.2" + lodash-es "4.17.23" + +chokidar@^3.5.3, chokidar@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== @@ -3536,11 +4742,27 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + colord@^2.9.3: version "2.9.3" resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" @@ -3561,6 +4783,11 @@ comma-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== +commander@7, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commander@^10.0.0: version "10.0.1" resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" @@ -3576,11 +4803,6 @@ commander@^5.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== -commander@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - commander@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" @@ -3598,14 +4820,15 @@ compressible@~2.0.18: dependencies: mime-db ">= 1.43.0 < 2" -compression@^1.7.4: - version "1.8.1" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.1.tgz#4a45d909ac16509195a9a28bd91094889c180d79" - integrity sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w== +compression@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.2.tgz#781397127ae2da00c0c5f7c76bda5b2a9b32a49f" + integrity sha512-o8vI5RE5A6EVVOd9o41jKp41aJom+QTEO/Bx8MYNjexMo/Bv2WOjUfZr+aL0WnYSgymUy6zeguqLTsIhV0gMvQ== dependencies: bytes "3.1.2" compressible "~2.0.18" debug "2.6.9" + destroy "1.2.0" negotiator "~0.6.4" on-headers "~1.1.0" safe-buffer "5.2.1" @@ -3650,7 +4873,7 @@ content-disposition@0.5.2: resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== -content-disposition@0.5.4: +content-disposition@~0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== @@ -3672,15 +4895,15 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== +cookie-signature@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.7.tgz#ab5dd7ab757c54e60f37ef6550f481c426d10454" + integrity sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA== -cookie@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" - integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== +cookie@~0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== copy-text-to-clipboard@^3.2.0: version "3.2.1" @@ -3706,11 +4929,6 @@ core-js-compat@^3.43.0: dependencies: browserslist "^4.25.3" -core-js-pure@^3.43.0: - version "3.45.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.45.1.tgz#b129d86a5f7f8380378577c7eaee83608570a05a" - integrity sha512-OHnWFKgTUshEU8MK+lOs1H8kC8GkTi9Z1tvNkxrCcw9wl3MJIO7q2ld77wjWn4/xuGrVu2X+nME1iIIPBSdyEQ== - core-js@^3.31.1: version "3.45.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.45.1.tgz#5810e04a1b4e9bc5ddaa4dd12e702ff67300634d" @@ -3721,6 +4939,20 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +cose-base@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-1.0.3.tgz#650334b41b869578a543358b80cda7e0abe0a60a" + integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg== + dependencies: + layout-base "^1.0.0" + +cose-base@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-2.2.0.tgz#1c395c35b6e10bb83f9769ca8b817d614add5c01" + integrity sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g== + dependencies: + layout-base "^2.0.0" + cosmiconfig@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" @@ -3930,12 +5162,315 @@ csso@^5.0.5: resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== dependencies: - css-tree "~2.2.0" + css-tree "~2.2.0" + +csstype@^3.0.2, csstype@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +cytoscape-cose-bilkent@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz#762fa121df9930ffeb51a495d87917c570ac209b" + integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ== + dependencies: + cose-base "^1.0.0" + +cytoscape-fcose@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz#e4d6f6490df4fab58ae9cea9e5c3ab8d7472f471" + integrity sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ== + dependencies: + cose-base "^2.2.0" + +cytoscape@^3.34.0: + version "3.34.3" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.34.3.tgz#1503996ba0b59b901d86310a1f612e92dc464f51" + integrity sha512-yfYGhRcGAntq6YBD583j4n0Eg3jIxvWmZtz/5uz9UYkeIStSlMxuUja+ec5j3iBD8nv1rwaOAYMW09tBdkSeaQ== + +"d3-array@1 - 2": + version "2.12.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + +"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" + integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== + dependencies: + internmap "1 - 2" + +d3-axis@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" + integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== + +d3-brush@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" + integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "3" + d3-transition "3" + +d3-chord@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" + integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== + dependencies: + d3-path "1 - 3" + +"d3-color@1 - 3", d3-color@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-contour@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" + integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== + dependencies: + d3-array "^3.2.0" + +d3-delaunay@6: + version "6.0.4" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" + integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== + dependencies: + delaunator "5" + +"d3-dispatch@1 - 3", d3-dispatch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +"d3-drag@2 - 3", d3-drag@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +"d3-dsv@1 - 3", d3-dsv@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" + integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== + dependencies: + commander "7" + iconv-lite "0.6" + rw "1" + +"d3-ease@1 - 3", d3-ease@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + +d3-fetch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" + integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== + dependencies: + d3-dsv "1 - 3" + +d3-force@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" + integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== + dependencies: + d3-dispatch "1 - 3" + d3-quadtree "1 - 3" + d3-timer "1 - 3" + +"d3-format@1 - 3", d3-format@3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.2.tgz#01fdb46b58beb1f55b10b42ad70b6e344d5eb2ae" + integrity sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg== + +d3-geo@3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.1.tgz#6027cf51246f9b2ebd64f99e01dc7c3364033a4d" + integrity sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q== + dependencies: + d3-array "2.5.0 - 3" + +d3-hierarchy@3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" + integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== + +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +d3-path@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== + +d3-polygon@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" + integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== + +"d3-quadtree@1 - 3", d3-quadtree@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" + integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== + +d3-random@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" + integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== + +d3-sankey@^0.12.3: + version "0.12.3" + resolved "https://registry.yarnpkg.com/d3-sankey/-/d3-sankey-0.12.3.tgz#b3c268627bd72e5d80336e8de6acbfec9d15d01d" + integrity sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ== + dependencies: + d3-array "1 - 2" + d3-shape "^1.2.0" + +d3-scale-chromatic@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#34c39da298b23c20e02f1a4b239bd0f22e7f1314" + integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== + dependencies: + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" + +"d3-selection@2 - 3", d3-selection@3, d3-selection@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + +d3-shape@3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== + dependencies: + d3-path "^3.1.0" + +d3-shape@^1.2.0: + version "1.3.7" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +"d3-time-format@2 - 4", d3-time-format@4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== + dependencies: + d3-time "1 - 3" + +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== + dependencies: + d3-array "2 - 3" + +"d3-timer@1 - 3", d3-timer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + +"d3-transition@2 - 3", d3-transition@3, d3-transition@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" -csstype@^3.0.2, csstype@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== +d3-zoom@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +d3@^7.9.0: + version "7.9.0" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.9.0.tgz#579e7acb3d749caf8860bd1741ae8d371070cd5d" + integrity sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA== + dependencies: + d3-array "3" + d3-axis "3" + d3-brush "3" + d3-chord "3" + d3-color "3" + d3-contour "4" + d3-delaunay "6" + d3-dispatch "3" + d3-drag "3" + d3-dsv "3" + d3-ease "3" + d3-fetch "3" + d3-force "3" + d3-format "3" + d3-geo "3" + d3-hierarchy "3" + d3-interpolate "3" + d3-path "3" + d3-polygon "3" + d3-quadtree "3" + d3-random "3" + d3-scale "4" + d3-scale-chromatic "3" + d3-selection "3" + d3-shape "3" + d3-time "3" + d3-time-format "4" + d3-timer "3" + d3-transition "3" + d3-zoom "3" + +dagre-d3-es@7.0.14: + version "7.0.14" + resolved "https://registry.yarnpkg.com/dagre-d3-es/-/dagre-d3-es-7.0.14.tgz#1272276e26457cf3b97dac569f8f0531ec33c377" + integrity sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg== + dependencies: + d3 "^7.9.0" + lodash-es "^4.17.21" + +dayjs@^1.11.21: + version "1.11.23" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.23.tgz#b0a363506dde5f36cf5075e42ebe8115165a8c79" + integrity sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ== debounce@^1.2.1: version "1.2.1" @@ -3949,7 +5484,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.3.1, debug@^4.4.1: +debug@^4.0.0, debug@^4.1.0, debug@^4.3.1, debug@^4.4.1: version "4.4.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== @@ -3980,12 +5515,18 @@ deepmerge@^4.3.1: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -default-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== +default-browser-id@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.1.tgz#f7a7ccb8f5104bf8e0f71ba3b1ccfa5eafdb21e8" + integrity sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q== + +default-browser@^5.2.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.5.1.tgz#1790affc52680fbb11e17cab2752d69aa2a37d2c" + integrity sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw== dependencies: - execa "^5.0.0" + bundle-name "^4.1.0" + default-browser-id "^5.0.0" defer-to-connect@^2.0.1: version "2.0.1" @@ -4006,6 +5547,11 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== +define-lazy-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" + integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== + define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" @@ -4015,12 +5561,19 @@ define-properties@^1.2.1: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +delaunator@5: + version "5.1.0" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.1.0.tgz#d13271fbf3aff6753f9ea6e235557f20901046ea" + integrity sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ== + dependencies: + robust-predicates "^3.0.2" + delegate@^3.1.2: version "3.2.0" resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== -depd@2.0.0: +depd@2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== @@ -4035,23 +5588,27 @@ dequal@^2.0.0: resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== -destroy@1.2.0: +destroy@1.2.0, destroy@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== +detect-libc@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" + integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== + detect-node@^2.0.4: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -detect-port@^1.5.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.6.1.tgz#45e4073997c5f292b957cb678fb0bb8ed4250a67" - integrity sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q== +detect-port@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-2.1.0.tgz#03d72644891fa451ca5609b83107a8a0ebd03f91" + integrity sha512-epZuWb/6Q62L+nDHJc/hQAqf8pylsqgk3BpZXVBx1CDnr3nkrVNn73Uu1rXcFzkNcc+hkP3whuOg7JZYaQB65Q== dependencies: - address "^1.0.1" - debug "4" + address "^2.0.1" devlop@^1.0.0, devlop@^1.1.0: version "1.1.0" @@ -4126,6 +5683,13 @@ domhandler@^5.0.2, domhandler@^5.0.3: dependencies: domelementtype "^2.3.0" +dompurify@^3.4.12: + version "3.4.15" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.4.15.tgz#30351b34513894f428c13bddb28bff0a027ae804" + integrity sha512-EUBjM+B+lkDE41iE82DDSCfkoPGfXx8IxFxPMjNzm/Uk4xDet77rTN9wqlxlVg71kK7XGuUMv6wUxJUwwv+Xyw== + optionalDependencies: + "@types/trusted-types" "^2.0.7" + domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" @@ -4188,6 +5752,16 @@ electron-to-chromium@^1.5.218: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.221.tgz#bd98014b2a247701c4ebd713080448d539545d79" integrity sha512-/1hFJ39wkW01ogqSyYoA4goOXOtMRy6B+yvA1u42nnsEGtHzIzmk93aPISumVQeblj47JUHLC9coCjUxb1EvtQ== +electron-to-chromium@^1.5.420: + version "1.5.427" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.427.tgz#f8693d109cf116d4a6efa98bc620b9fc7f265f67" + integrity sha512-n14zb3FdsChZ2BNobqNHAJMcP3ifFv4paox2LvCrfVAQcqGiSURgbJl+PfMpHVCNFkStnNc+RRVtPBTVW5PDgw== + +elkjs@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.9.3.tgz#16711f8ceb09f1b12b99e971b138a8384a529161" + integrity sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -4213,11 +5787,6 @@ emoticon@^4.0.1: resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-4.1.0.tgz#d5a156868ee173095627a33de3f1e914c3dde79e" integrity sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ== -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - encodeurl@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" @@ -4275,6 +5844,11 @@ es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: dependencies: es-errors "^1.3.0" +es-toolkit@^1.45.1: + version "1.52.0" + resolved "https://registry.yarnpkg.com/es-toolkit/-/es-toolkit-1.52.0.tgz#71eaf1a8b18834ef77637eccbb885ba4c03cd6dd" + integrity sha512-XTNEJQh1tY1ZJVcf6ayP/2n4ZPyaHlW2FWs7xvw5ddPuhUVjLD3olQVQS7kf58JbAB48iL0uL/jerTrjtV3lDA== + esast-util-from-estree@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz#8d1cfb51ad534d2f159dc250e604f3478a79f1ad" @@ -4310,11 +5884,6 @@ escape-html@^1.0.3, escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" @@ -4333,11 +5902,6 @@ eslint-scope@5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" @@ -4449,7 +6013,7 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@5.1.1, execa@^5.0.0: +execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -4464,39 +6028,39 @@ execa@5.1.1, execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -express@^4.17.3: - version "4.21.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" - integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== +express@^4.22.1: + version "4.22.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.22.3.tgz#e8f898d3c17582b1e311dd2c5cd6d8deff84724b" + integrity sha512-Bdcs4+3qlpVlx2NRn6fgX2Ue2/gGRaPeawebgclM0ERSCqDpA+owF1fdPwjJUTAJWMTuAaxjDf+hzb0/4eKvvw== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" + body-parser "~1.20.5" + content-disposition "~0.5.4" content-type "~1.0.4" - cookie "0.7.1" - cookie-signature "1.0.6" + cookie "~0.7.1" + cookie-signature "~1.0.6" debug "2.6.9" depd "2.0.0" encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.3.1" - fresh "0.5.2" - http-errors "2.0.0" + finalhandler "~1.3.1" + fresh "~0.5.2" + http-errors "~2.0.0" merge-descriptors "1.0.3" methods "~1.1.2" - on-finished "2.4.1" + on-finished "~2.4.1" parseurl "~1.3.3" - path-to-regexp "0.1.12" + path-to-regexp "~0.1.13" proxy-addr "~2.0.7" - qs "6.13.0" + qs "~6.16.0" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.19.0" - serve-static "1.16.2" + send "~0.19.0" + serve-static "~1.16.2" setprototypeof "1.2.0" - statuses "2.0.1" + statuses "~2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -4567,13 +6131,6 @@ feed@^4.2.2: dependencies: xml-js "^1.6.11" -figures@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - file-loader@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" @@ -4589,17 +6146,17 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" - integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== +finalhandler@~1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.2.tgz#1ebc2228fc7673aac4a472c310cc05b77d852b88" + integrity sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg== dependencies: debug "2.6.9" encodeurl "~2.0.0" escape-html "~1.0.3" - on-finished "2.4.1" + on-finished "~2.4.1" parseurl "~1.3.3" - statuses "2.0.1" + statuses "~2.0.2" unpipe "~1.0.0" find-cache-dir@^4.0.0: @@ -4653,7 +6210,7 @@ fraction.js@^4.3.7: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== -fresh@0.5.2: +fresh@~0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== @@ -4667,16 +6224,6 @@ fs-extra@^11.1.1, fs-extra@^11.2.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-monkey@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.1.0.tgz#632aa15a20e71828ed56b24303363fb1414e5997" - integrity sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - fsevents@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" @@ -4745,22 +6292,24 @@ glob-parent@^6.0.1: dependencies: is-glob "^4.0.3" +glob-to-regex.js@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/glob-to-regex.js/-/glob-to-regex.js-1.3.1.tgz#2f9fe8821218b18e6dcced9bcb4413932162db4b" + integrity sha512-zhWhMRsgnOym+1txhUmYJGD6eUsbUdrZv55gCYKuJX8t2p3+M8My23PD09bEIsreGUs5pnSa/idmcfp2/IlqGg== + glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== +glob@^13.0.0, glob@^13.0.3: + version "13.0.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.6.tgz#078666566a425147ccacfbd2e332deb66a2be71d" + integrity sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw== dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" + minimatch "^10.2.2" + minipass "^7.1.3" + path-scurry "^2.0.2" global-dirs@^3.0.0: version "3.0.1" @@ -4831,16 +6380,6 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -gray-matter@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" - integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== - dependencies: - js-yaml "^3.13.1" - kind-of "^6.0.2" - section-matter "^1.0.0" - strip-bom-string "^1.0.0" - gzip-size@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" @@ -4848,6 +6387,11 @@ gzip-size@^6.0.0: dependencies: duplexer "^0.1.2" +hachure-fill@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/hachure-fill/-/hachure-fill-0.5.2.tgz#d19bc4cc8750a5962b47fb1300557a85fcf934cc" + integrity sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg== + handle-thing@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" @@ -5030,11 +6574,6 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -html-entities@^2.3.2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.6.0.tgz#7c64f1ea3b36818ccae3d3fb48b6974208e984f8" - integrity sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ== - html-escaper@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -5117,17 +6656,6 @@ http-deceiver@^1.2.7: resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" @@ -5138,15 +6666,26 @@ http-errors@~1.6.2: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" +http-errors@~2.0.0, http-errors@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b" + integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== + dependencies: + depd "~2.0.0" + inherits "~2.0.4" + setprototypeof "~1.2.0" + statuses "~2.0.2" + toidentifier "~1.0.1" + http-parser-js@>=0.5.1: version "0.5.10" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.10.tgz#b3277bd6d7ed5588e20ea73bf724fcbe44609075" integrity sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA== -http-proxy-middleware@^2.0.3: - version "2.0.9" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef" - integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== +http-proxy-middleware@^2.0.9: + version "2.0.10" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.10.tgz#b2df7b705203d7a8c269ac8450cf96b00c532f94" + integrity sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ== dependencies: "@types/http-proxy" "^1.17.8" http-proxy "^1.18.1" @@ -5176,7 +6715,19 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@0.4.24: +hyperdyperid@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz#59668d323ada92228d2a869d3e474d5a33b69e6b" + integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== + +iconv-lite@0.6: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +iconv-lite@~0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -5211,6 +6762,11 @@ import-lazy@^4.0.0: resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== +import-meta-resolve@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz#08cb85b5bd37ecc8eb1e0f670dc2767002d43734" + integrity sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg== + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -5226,24 +6782,16 @@ infima@0.2.0-alpha.45: resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.45.tgz#542aab5a249274d81679631b492973dd2c1e7466" integrity sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw== -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== +inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + ini@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" @@ -5259,6 +6807,16 @@ inline-style-parser@0.2.4: resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.4.tgz#f4af5fe72e612839fcd453d989a586566d695f22" integrity sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q== +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -5271,10 +6829,10 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -ipaddr.js@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" - integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== +ipaddr.js@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.5.0.tgz#7d4b6c39f9392fb61cf807de6e425e22c10e061f" + integrity sha512-aq+t5NAc+cS6rZQQVWC2x98CPqGtKKTMDd4Gaodv0wShnItdKg/51djkGJ1hqH+Oy0ivDftCbSLCQob8zso01w== is-alphabetical@^2.0.0: version "2.0.1" @@ -5294,6 +6852,11 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== +is-arrayish@^0.3.1: + version "0.3.4" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.4.tgz#1ee5553818511915685d33bb13d31bf854e5059d" + integrity sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA== + is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -5325,6 +6888,11 @@ is-docker@^2.0.0, is-docker@^2.1.1: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + is-extendable@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -5352,6 +6920,13 @@ is-hexadecimal@^2.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + is-installed-globally@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" @@ -5360,6 +6935,11 @@ is-installed-globally@^0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" +is-network-error@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.3.2.tgz#9460bc30f8419a4bca77114f4de88a3ee5e0c519" + integrity sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA== + is-npm@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.1.0.tgz#f70e0b6c132dfc817ac97d3badc0134945b098d3" @@ -5424,6 +7004,13 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +is-wsl@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.1.tgz#327897b26832a3eb117da6c27492d04ca132594f" + integrity sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw== + dependencies: + is-inside-container "^1.0.0" + is-yarn-global@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" @@ -5501,14 +7088,6 @@ joi@^17.9.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -5560,6 +7139,13 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +katex@^0.16.47: + version "0.16.47" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.47.tgz#0a13a42c2deb4f74e61f162d440b9165a548030f" + integrity sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg== + dependencies: + commander "^8.3.0" + keyv@^4.5.3: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" @@ -5567,7 +7153,12 @@ keyv@^4.5.3: dependencies: json-buffer "3.0.1" -kind-of@^6.0.0, kind-of@^6.0.2: +khroma@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.1.0.tgz#45f2ce94ce231a437cf5b63c2e886e6eb42bbbb1" + integrity sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw== + +kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -5584,19 +7175,103 @@ latest-version@^7.0.0: dependencies: package-json "^8.1.0" -launch-editor@^2.6.0: - version "2.11.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.11.1.tgz#61a0b7314a42fd84a6cbb564573d9e9ffcf3d72b" - integrity sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg== +launch-editor@^2.14.1: + version "2.14.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.14.1.tgz#f7e0da3f58aaea03fea01074d840b5f739ed7ddc" + integrity sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA== dependencies: picocolors "^1.1.1" - shell-quote "^1.8.3" + shell-quote "^1.8.4" + +layout-base@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-1.0.2.tgz#1291e296883c322a9dd4c5dd82063721b53e26e2" + integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg== + +layout-base@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-2.0.1.tgz#d0337913586c90f9c2c075292069f5c2da5dd285" + integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg== leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +lightningcss-android-arm64@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz#9a6841f88ae50fc83502903892b41af41bc2b907" + integrity sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg== + +lightningcss-darwin-arm64@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz#c0f2c31c0bfd19fa4dd3f18e957a1f1a152097d6" + integrity sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg== + +lightningcss-darwin-x64@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz#cb0705965acb538c6683949ce6925fb3cdf7c361" + integrity sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ== + +lightningcss-freebsd-x64@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz#763538828b26bab2680dadafcc84ee78b0eb502b" + integrity sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg== + +lightningcss-linux-arm-gnueabihf@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz#6862e3176a331aedbdec1ed352b4d7d0dd0784de" + integrity sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ== + +lightningcss-linux-arm64-gnu@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz#c6a3a2ed15141daf6bdc2628930f8e39bdf473aa" + integrity sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg== + +lightningcss-linux-arm64-musl@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz#7fa1334971fc82845f9827df6ef8a0b20914bac6" + integrity sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ== + +lightningcss-linux-x64-gnu@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz#8b927862ea8c2bbc6831a46509244b50d9936e55" + integrity sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg== + +lightningcss-linux-x64-musl@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz#0c525bb077dfd94404c059cfe42dad797e96aeaf" + integrity sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw== + +lightningcss-win32-arm64-msvc@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz#850ee1103dac989cfab50e3ac22d1a69e394e63d" + integrity sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA== + +lightningcss-win32-x64-msvc@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz#e343ae152eed3609dc6e11949d1a3bf39a1c946f" + integrity sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA== + +lightningcss@^1.27.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.33.0.tgz#c08867d71a79385c6e190214fd72fef3e5f95f0b" + integrity sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA== + dependencies: + detect-libc "^2.0.3" + optionalDependencies: + lightningcss-android-arm64 "1.33.0" + lightningcss-darwin-arm64 "1.33.0" + lightningcss-darwin-x64 "1.33.0" + lightningcss-freebsd-x64 "1.33.0" + lightningcss-linux-arm-gnueabihf "1.33.0" + lightningcss-linux-arm64-gnu "1.33.0" + lightningcss-linux-arm64-musl "1.33.0" + lightningcss-linux-x64-gnu "1.33.0" + lightningcss-linux-x64-musl "1.33.0" + lightningcss-win32-arm64-msvc "1.33.0" + lightningcss-win32-x64-msvc "1.33.0" + lilconfig@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" @@ -5628,6 +7303,16 @@ locate-path@^7.1.0: dependencies: p-locate "^6.0.0" +lodash-es@4.17.23: + version "4.17.23" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.23.tgz#58c4360fd1b5d33afc6c0bbd3d1149349b1138e0" + integrity sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg== + +lodash-es@^4.17.21: + version "4.18.1" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.18.1.tgz#b962eeb80d9d983a900bf342961fb7418ca10b1d" + integrity sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A== + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -5672,6 +7357,11 @@ lowercase-keys@^3.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== +lru-cache@^11.0.0: + version "11.5.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.5.2.tgz#00e16665c90c620fba14a3c368732a976493f760" + integrity sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -5684,18 +7374,16 @@ markdown-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-2.0.0.tgz#34bebc83e9938cae16e0e017e4a9814a8330d3c4" integrity sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q== -markdown-table@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" - integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== - dependencies: - repeat-string "^1.0.0" - markdown-table@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.4.tgz#fe44d6d410ff9d6f2ea1797a3f60aa4d2b631c2a" integrity sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw== +marked@^16.3.0: + version "16.4.2" + resolved "https://registry.yarnpkg.com/marked/-/marked-16.4.2.tgz#4959a64be6c486f0db7467ead7ce288de54290a3" + integrity sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA== + math-intrinsics@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" @@ -5934,12 +7622,25 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -memfs@^3.4.3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" - integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== - dependencies: - fs-monkey "^1.0.4" +memfs@^4.17.0, memfs@^4.43.1: + version "4.78.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.78.0.tgz#b6b6d033c88b2b666a8489a5a696fdd899aee0b0" + integrity sha512-gX14RGPP+fyNodL8g9jc5DfKtWNCronEMItOKDyZatTI3CPpMZDPtm7rAbftDqQAFovP4nzR0RO80sESSEnI4g== + dependencies: + "@jsonjoy.com/fs-core" "4.78.0" + "@jsonjoy.com/fs-fsa" "4.78.0" + "@jsonjoy.com/fs-node" "4.78.0" + "@jsonjoy.com/fs-node-builtins" "4.78.0" + "@jsonjoy.com/fs-node-to-fsa" "4.78.0" + "@jsonjoy.com/fs-node-utils" "4.78.0" + "@jsonjoy.com/fs-print" "4.78.0" + "@jsonjoy.com/fs-snapshot" "4.78.0" + "@jsonjoy.com/json-pack" "^1.11.0" + "@jsonjoy.com/util" "^1.9.0" + glob-to-regex.js "^1.3.1" + thingies "^2.5.0" + tree-dump "^1.0.3" + tslib "^2.0.0" merge-descriptors@1.0.3: version "1.0.3" @@ -5956,6 +7657,35 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +mermaid@>=11.6.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-12.0.0.tgz#3c4cdf54fd24110c988b90def857127055eb842b" + integrity sha512-/wQXC9iBxoGV8p3erbvaXs9h77VyLDBH6GdayVjj3hEcSQhFU4N1WUhUppotCEqlIxI2pRMwjwBSwTB1MfZBgQ== + dependencies: + "@braintree/sanitize-url" "^7.1.2" + "@iconify/utils" "^3.0.2" + "@mermaid-js/parser" "^2.0.0" + "@types/d3" "^7.4.3" + "@upsetjs/venn.js" "^2.0.0" + chevrotain "~11.1.2" + cytoscape "^3.34.0" + cytoscape-cose-bilkent "^4.1.0" + cytoscape-fcose "^2.2.0" + d3 "^7.9.0" + d3-sankey "^0.12.3" + dagre-d3-es "7.0.14" + dayjs "^1.11.21" + dompurify "^3.4.12" + elkjs "^0.9.3" + es-toolkit "^1.45.1" + katex "^0.16.47" + khroma "^2.1.0" + marked "^16.3.0" + roughjs "^4.6.6" + stylis "^4.3.6" + ts-dedent "^2.2.0" + uuid "^11.1.0 || ^12 || ^13 || ^14.0.0" + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -6390,7 +8120,7 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -"mime-db@>= 1.43.0 < 2": +"mime-db@>= 1.43.0 < 2", mime-db@^1.54.0: version "1.54.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== @@ -6407,13 +8137,20 @@ mime-types@2.1.18: dependencies: mime-db "~1.33.0" -mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" +mime-types@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.2.tgz#39002d4182575d5af036ffa118100f2524b2e2ab" + integrity sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A== + dependencies: + mime-db "^1.54.0" + mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -6447,18 +8184,30 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@3.1.2, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== +minimatch@3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e" + integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== dependencies: brace-expansion "^1.1.7" +minimatch@^10.2.2: + version "10.2.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.6.tgz#fd956bbe0b77241e9f15ac5dccb1c638060968ef" + integrity sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A== + dependencies: + brace-expansion "^5.0.8" + minimist@^1.2.0: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +minipass@^7.1.2, minipass@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" + integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== + mrmime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.1.tgz#bc3e87f7987853a54c9850eeb1f1078cd44adddc" @@ -6520,16 +8269,16 @@ node-emoji@^2.1.0: emojilib "^2.4.0" skin-tone "^2.0.0" -node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - node-releases@^2.0.21: version "2.0.21" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.21.tgz#f59b018bc0048044be2d4c4c04e4c8b18160894c" integrity sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw== +node-releases@^2.0.54: + version "2.0.55" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.55.tgz#c52faedb68001dcfe77495b5ed1ac5827a1788fc" + integrity sha512-mIrE/Cw9y+9Au6dS5vDKDhQza9YvG6w+ZrS6X+ZzA7yFW/soAeaups4Qzn1bL6g5FVy8WtP79+0j82oPIbqRjQ== + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -6577,7 +8326,7 @@ object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.3: +object-inspect@^1.13.3, object-inspect@^1.13.4: version "1.13.4" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== @@ -6604,7 +8353,7 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -on-finished@2.4.1: +on-finished@^2.4.1, on-finished@~2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== @@ -6616,13 +8365,6 @@ on-headers@~1.1.0: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.1.0.tgz#59da4f91c45f5f989c6e4bcedc5a3b0aed70ff65" integrity sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A== -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" @@ -6630,7 +8372,17 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@^8.0.9, open@^8.4.0: +open@^10.0.3: + version "10.2.0" + resolved "https://registry.yarnpkg.com/open/-/open-10.2.0.tgz#b9d855be007620e80b6fb05fac98141fe62db73c" + integrity sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA== + dependencies: + default-browser "^5.2.1" + define-lazy-prop "^3.0.0" + is-inside-container "^1.0.0" + wsl-utils "^0.1.0" + +open@^8.4.0: version "8.4.2" resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== @@ -6683,12 +8435,13 @@ p-queue@^6.6.2: eventemitter3 "^4.0.4" p-timeout "^3.2.0" -p-retry@^4.5.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" - integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== +p-retry@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.2.1.tgz#81828f8dc61c6ef5a800585491572cc9892703af" + integrity sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ== dependencies: - "@types/retry" "0.12.0" + "@types/retry" "0.12.2" + is-network-error "^1.0.0" retry "^0.13.1" p-timeout@^3.2.0: @@ -6698,6 +8451,11 @@ p-timeout@^3.2.0: dependencies: p-finally "^1.0.0" +package-json-from-dist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + package-json@^8.1.0: version "8.1.1" resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" @@ -6708,6 +8466,11 @@ package-json@^8.1.0: registry-url "^6.0.0" semver "^7.3.7" +package-manager-detector@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-1.8.0.tgz#70c9a2c4bd1a513dcd6cad006a9fcebec22a1253" + integrity sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A== + param-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" @@ -6779,16 +8542,16 @@ pascal-case@^3.1.2: no-case "^3.0.4" tslib "^2.0.3" +path-data-parser@0.1.0, path-data-parser@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/path-data-parser/-/path-data-parser-0.1.0.tgz#8f5ba5cc70fc7becb3dcefaea08e2659aba60b8c" + integrity sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w== + path-exists@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - path-is-inside@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" @@ -6804,10 +8567,13 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" - integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== +path-scurry@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.2.tgz#6be0d0ee02a10d9e0de7a98bae65e182c9061f85" + integrity sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg== + dependencies: + lru-cache "^11.0.0" + minipass "^7.1.2" path-to-regexp@3.3.0: version "3.3.0" @@ -6821,6 +8587,11 @@ path-to-regexp@^1.7.0: dependencies: isarray "0.0.1" +path-to-regexp@~0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.13.tgz#9b22ec16bc3ab88d05a0c7e369869421401ab17d" + integrity sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA== + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -6843,6 +8614,31 @@ pkg-dir@^7.0.0: dependencies: find-up "^6.3.0" +pkijs@^3.3.3: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pkijs/-/pkijs-3.4.0.tgz#d9164def30ff6d97be2d88966d5e36192499ca9c" + integrity sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw== + dependencies: + "@noble/hashes" "1.4.0" + asn1js "^3.0.6" + bytestreamjs "^2.0.1" + pvtsutils "^1.3.6" + pvutils "^1.1.3" + tslib "^2.8.1" + +points-on-curve@0.2.0, points-on-curve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/points-on-curve/-/points-on-curve-0.2.0.tgz#7dbb98c43791859434284761330fa893cb81b4d1" + integrity sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A== + +points-on-path@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/points-on-path/-/points-on-path-0.2.1.tgz#553202b5424c53bed37135b318858eacff85dd52" + integrity sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g== + dependencies: + path-data-parser "0.1.0" + points-on-curve "0.2.0" + postcss-attribute-case-insensitive@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz#0c4500e3bcb2141848e89382c05b5a31c23033a3" @@ -7485,12 +9281,25 @@ pupa@^3.1.0: dependencies: escape-goat "^4.0.0" -qs@6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== +pvtsutils@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" + integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== + dependencies: + tslib "^2.8.1" + +pvutils@^1.1.3, pvutils@^1.1.5: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.2.0.tgz#4b5487a9cccd52d275b0538775790a3ca982bc22" + integrity sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg== + +qs@~6.16.0: + version "6.16.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.16.0.tgz#c22c723a28a920f3aacdce8289fabd43eccb79fd" + integrity sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA== dependencies: - side-channel "^1.0.6" + es-define-property "^1.0.1" + side-channel "^1.1.1" queue-microtask@^1.2.2: version "1.2.3" @@ -7519,15 +9328,15 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== +raw-body@~2.5.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.3.tgz#11c6650ee770a7de1b494f197927de0c923822e2" + integrity sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA== dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" + bytes "~3.1.2" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + unpipe "~1.0.0" rc@1.2.8: version "1.2.8" @@ -7577,10 +9386,10 @@ react-json-view-lite@^2.3.0: resolved "https://registry.yarnpkg.com/react-json-view-lite/-/react-json-view-lite-2.5.0.tgz#c7ff011c7cc80e9900abc7aa4916c6a5c6d6c1c6" integrity sha512-tk7o7QG9oYyELWHL8xiMQ8x4WzjCzbWNyig3uexmkLb54r8jO0yH3WCWx8UZS0c49eSA4QUmG5caiRJ8fAn58g== -react-loadable-ssr-addon-v5-slorber@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz#2cdc91e8a744ffdf9e3556caabeb6e4278689883" - integrity sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A== +react-loadable-ssr-addon-v5-slorber@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.3.tgz#bb3791bf481222c63a5bc6b96ee23f68cb5614b9" + integrity sha512-GXfh9VLwB5ERaCsU6RULh7tkemeX15aNh6wuMEBtfdyMa7fFG8TXrhXlx1SoEK2Ty/l6XIkzzYIQmyaWW3JgdQ== dependencies: "@babel/runtime" "^7.10.3" @@ -7710,6 +9519,11 @@ recma-stringify@^1.0.0: unified "^11.0.0" vfile "^6.0.0" +reflect-metadata@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b" + integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== + regenerate-unicode-properties@^10.2.2: version "10.2.2" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz#aa113812ba899b630658c7623466be71e1f86f66" @@ -7875,11 +9689,6 @@ renderkid@^3.0.0: lodash "^4.17.21" strip-ansi "^6.0.1" -repeat-string@^1.0.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" @@ -7936,12 +9745,28 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== +rimraf@^6.0.1: + version "6.1.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.1.3.tgz#afbee236b3bd2be331d4e7ce4493bac1718981af" + integrity sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA== + dependencies: + glob "^13.0.3" + package-json-from-dist "^1.0.1" + +robust-predicates@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.3.tgz#1099061b3349e2c5abec6c2ab0acd440d24d4062" + integrity sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA== + +roughjs@^4.6.6: + version "4.6.6" + resolved "https://registry.yarnpkg.com/roughjs/-/roughjs-4.6.6.tgz#1059f49a5e0c80dee541a005b20cc322b222158b" + integrity sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ== dependencies: - glob "^7.1.3" + hachure-fill "^0.5.2" + path-data-parser "^0.1.0" + points-on-curve "^0.2.0" + points-on-path "^0.2.1" rtlcss@^4.1.0: version "4.3.0" @@ -7953,6 +9778,11 @@ rtlcss@^4.1.0: postcss "^8.4.21" strip-json-comments "^3.1.1" +run-applescript@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.1.0.tgz#2e9e54c4664ec3106c5b5630e249d3d6595c4911" + integrity sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -7960,6 +9790,11 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" +rw@1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -7970,7 +9805,7 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -"safer-buffer@>= 2.1.2 < 3": +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -8009,6 +9844,16 @@ schema-utils@^4.0.0, schema-utils@^4.0.1, schema-utils@^4.3.0, schema-utils@^4.3 ajv-formats "^2.1.1" ajv-keywords "^5.1.0" +schema-utils@^4.2.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.5.0.tgz#aaf8d588bd2b19511175175a5222baef648c009c" + integrity sha512-zJlMCZ0cAR5p/Y4oVpRoqioDMJcGxaXRrQ/4rP4WyR84vc5z/DolXdbvXeDpTwbtocDFr2rhPqHPErDCUtz2kA== + dependencies: + "@types/json-schema" "^7.0.15" + ajv "^8.20.0" + ajv-formats "^3.0.1" + ajv-keywords "^5.1.0" + section-matter@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" @@ -8027,13 +9872,13 @@ select@^1.1.2: resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== -selfsigned@^2.1.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" - integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== +selfsigned@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-5.5.0.tgz#4c9ab7c7c9f35f18fb6a9882c253eb0e6bd6557b" + integrity sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew== dependencies: - "@types/node-forge" "^1.3.0" - node-forge "^1" + "@peculiar/x509" "^1.14.2" + pkijs "^3.3.3" semver-diff@^4.0.0: version "4.0.0" @@ -8052,24 +9897,29 @@ semver@^7.3.5, semver@^7.3.7, semver@^7.5.4: resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== -send@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" - integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== +semver@^7.6.3: + version "7.8.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.5.tgz#39b646037dd50c14fb451e7e4cac58ed8b863f69" + integrity sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA== + +send@~0.19.0, send@~0.19.1: + version "0.19.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.2.tgz#59bc0da1b4ea7ad42736fd642b1c4294e114ff29" + integrity sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg== dependencies: debug "2.6.9" depd "2.0.0" destroy "1.2.0" - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" + fresh "~0.5.2" + http-errors "~2.0.1" mime "1.6.0" ms "2.1.3" - on-finished "2.4.1" + on-finished "~2.4.1" range-parser "~1.2.1" - statuses "2.0.1" + statuses "~2.0.2" serialize-javascript@^6.0.0, serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: version "6.0.2" @@ -8078,15 +9928,15 @@ serialize-javascript@^6.0.0, serialize-javascript@^6.0.1, serialize-javascript@^ dependencies: randombytes "^2.1.0" -serve-handler@^6.1.6: - version "6.1.6" - resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.6.tgz#50803c1d3e947cd4a341d617f8209b22bd76cfa1" - integrity sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ== +serve-handler@^6.1.7: + version "6.1.7" + resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.7.tgz#e9bb864e87ee71e8dab874cde44d146b77e3fb78" + integrity sha512-CinAq1xWb0vR3twAv9evEU8cNWkXCb9kd5ePAHUKJBkOsUpR1wt/CvGdeca7vqumL1U5cSaeVQ6zZMxiJ3yWsg== dependencies: bytes "3.0.0" content-disposition "0.5.2" mime-types "2.1.18" - minimatch "3.1.2" + minimatch "3.1.5" path-is-inside "1.0.2" path-to-regexp "3.3.0" range-parser "1.2.0" @@ -8104,15 +9954,15 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" - integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== +serve-static@~1.16.2: + version "1.16.3" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.3.tgz#a97b74d955778583f3862a4f0b841eb4d5d78cf9" + integrity sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA== dependencies: encodeurl "~2.0.0" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.19.0" + send "~0.19.1" set-function-length@^1.2.2: version "1.2.2" @@ -8131,7 +9981,7 @@ setprototypeof@1.1.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== -setprototypeof@1.2.0: +setprototypeof@1.2.0, setprototypeof@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== @@ -8148,6 +9998,35 @@ shallowequal@^1.1.0: resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== +sharp@^0.32.3, sharp@^0.33.0: + version "0.33.5" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.33.5.tgz#13e0e4130cc309d6a9497596715240b2ec0c594e" + integrity sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw== + dependencies: + color "^4.2.3" + detect-libc "^2.0.3" + semver "^7.6.3" + optionalDependencies: + "@img/sharp-darwin-arm64" "0.33.5" + "@img/sharp-darwin-x64" "0.33.5" + "@img/sharp-libvips-darwin-arm64" "1.0.4" + "@img/sharp-libvips-darwin-x64" "1.0.4" + "@img/sharp-libvips-linux-arm" "1.0.5" + "@img/sharp-libvips-linux-arm64" "1.0.4" + "@img/sharp-libvips-linux-s390x" "1.0.4" + "@img/sharp-libvips-linux-x64" "1.0.4" + "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" + "@img/sharp-libvips-linuxmusl-x64" "1.0.4" + "@img/sharp-linux-arm" "0.33.5" + "@img/sharp-linux-arm64" "0.33.5" + "@img/sharp-linux-s390x" "0.33.5" + "@img/sharp-linux-x64" "0.33.5" + "@img/sharp-linuxmusl-arm64" "0.33.5" + "@img/sharp-linuxmusl-x64" "0.33.5" + "@img/sharp-wasm32" "0.33.5" + "@img/sharp-win32-ia32" "0.33.5" + "@img/sharp-win32-x64" "0.33.5" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -8160,18 +10039,18 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz#55e40ef33cf5c689902353a3d8cd1a6725f08b4b" - integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== +shell-quote@^1.8.4: + version "1.10.0" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.10.0.tgz#482033e192e4f5c07151521ffa03400ec71b1b0f" + integrity sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA== -side-channel-list@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" - integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== +side-channel-list@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.1.tgz#c2e0b5a14a540aebee3bbc6c3f8666cc9b509127" + integrity sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w== dependencies: es-errors "^1.3.0" - object-inspect "^1.13.3" + object-inspect "^1.13.4" side-channel-map@^1.0.1: version "1.0.1" @@ -8194,14 +10073,14 @@ side-channel-weakmap@^1.0.2: object-inspect "^1.13.3" side-channel-map "^1.0.1" -side-channel@^1.0.6: - version "1.1.0" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" - integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== +side-channel@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.1.tgz#ea02c62e05dc4bea67d4442f0fb71ee192f8e0ab" + integrity sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ== dependencies: es-errors "^1.3.0" - object-inspect "^1.13.3" - side-channel-list "^1.0.0" + object-inspect "^1.13.4" + side-channel-list "^1.0.1" side-channel-map "^1.0.1" side-channel-weakmap "^1.0.2" @@ -8210,6 +10089,13 @@ signal-exit@^3.0.2, signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +simple-swizzle@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.4.tgz#a8d11a45a11600d6a1ecdff6363329e3648c3667" + integrity sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw== + dependencies: + is-arrayish "^0.3.1" + sirv@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" @@ -8329,26 +10215,21 @@ spdy@^4.0.2: select-hose "^2.0.0" spdy-transport "^3.0.0" -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - srcset@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/srcset/-/srcset-4.0.0.tgz#336816b665b14cd013ba545b6fe62357f86e65f4" integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - "statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +statuses@~2.0.1, statuses@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" + integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== + std-env@^3.7.0: version "3.9.0" resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.9.0.tgz#1a6f7243b339dca4c9fd55e1c7504c77ef23e8f1" @@ -8403,7 +10284,7 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -8464,6 +10345,11 @@ stylis@4.2.0: resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== +stylis@^4.3.6: + version "4.4.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.4.0.tgz#c5846c9345f4bfc51bd0cbd7ca35a0744f485a5d" + integrity sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA== + supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -8501,6 +10387,13 @@ svgo@^3.0.2, svgo@^3.2.0: csso "^5.0.5" picocolors "^1.0.0" +swc-loader@^0.2.6: + version "0.2.7" + resolved "https://registry.yarnpkg.com/swc-loader/-/swc-loader-0.2.7.tgz#2d1611ab314c5d8342d74aa5e5901b3fbf490de2" + integrity sha512-nwYWw3Fh9ame3Rtm7StS9SBLpHRRnYcK7bnpF3UKZmesAK0gw2/ADvlURFAINmPvKtDLzp+GBiP9yLoEjg6S9w== + dependencies: + "@swc/counter" "^0.1.3" + tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: version "2.2.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.3.tgz#4b67b635b2d97578a06a2713d2f04800c237e99b" @@ -8527,6 +10420,11 @@ terser@^5.10.0, terser@^5.15.1, terser@^5.31.1: commander "^2.20.0" source-map-support "~0.5.20" +thingies@^2.5.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/thingies/-/thingies-2.6.1.tgz#4eb28e2585a75288f1765a0b08f1dfa020357a6f" + integrity sha512-cV/CMGTK3M4MlnJ/0At6ismOw/A0EEniDNScajjz/Br3c1sqE72YD01rGpPTKwd27wAxI5Pr+6+0w8yofzFRYw== + thunky@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" @@ -8547,6 +10445,11 @@ tiny-warning@^1.0.0: resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== +tinyexec@^1.2.4: + version "1.3.1" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.3.1.tgz#16a2e3c6e23fafce72640e678e651db36145b9c6" + integrity sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA== + tinypool@^1.0.2: version "1.1.1" resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.1.1.tgz#059f2d042bd37567fbc017d3d426bdd2a2612591" @@ -8559,7 +10462,7 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toidentifier@1.0.1: +toidentifier@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== @@ -8569,6 +10472,11 @@ totalist@^3.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== +tree-dump@^1.0.3, tree-dump@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.1.0.tgz#ab29129169dc46004414f5a9d4a3c6e89f13e8a4" + integrity sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA== + trim-lines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" @@ -8579,15 +10487,27 @@ trough@^2.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== -tslib@^2.0.3, tslib@^2.6.0: +ts-dedent@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.3.0.tgz#8fac36c7902b541c154ac13a27ac467997af11f8" + integrity sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg== + +tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.4.0, tslib@^2.6.0, tslib@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +tsyringe@^4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/tsyringe/-/tsyringe-4.10.0.tgz#d0c95815d584464214060285eaaadd94aa03299c" + integrity sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw== + dependencies: + tslib "^1.9.3" type-fest@^1.0.1: version "1.4.0" @@ -8717,7 +10637,7 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@1.0.0, unpipe@~1.0.0: +unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -8730,6 +10650,14 @@ update-browserslist-db@^1.1.3: escalade "^3.2.0" picocolors "^1.1.1" +update-browserslist-db@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz#197e21fb2561fa89f8b94fad605a2b296a18993a" + integrity sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + update-notifier@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" @@ -8786,10 +10714,10 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@^11.0.0, "uuid@^11.1.0 || ^12 || ^13 || ^14.0.0", uuid@^8.3.2: + version "11.1.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.1.tgz#f6d81d2e1c65d00762e5e29b16c5d2d995e208ad" + integrity sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ== value-equal@^1.0.1: version "1.0.1" @@ -8863,52 +10791,51 @@ webpack-bundle-analyzer@^4.10.2: sirv "^2.0.3" ws "^7.3.1" -webpack-dev-middleware@^5.3.4: - version "5.3.4" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" - integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== +webpack-dev-middleware@^7.4.2: + version "7.4.6" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.6.tgz#c27229cb157842882732ee5125fa217a2c6466dc" + integrity sha512-yBWCMvIfUmuhAE8vdqUKzH0vg9kuWN0KeG4vBnqRplUFHRU7lMQjkiJWxVQzvo2BTewqhPhDlMB41rAt2jVA9A== dependencies: colorette "^2.0.10" - memfs "^3.4.3" - mime-types "^2.1.31" + memfs "^4.43.1" + mime-types "^3.0.1" + on-finished "^2.4.1" range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@^4.15.2: - version "4.15.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" - integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== - dependencies: - "@types/bonjour" "^3.5.9" - "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" - "@types/serve-index" "^1.9.1" - "@types/serve-static" "^1.13.10" - "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.5" +webpack-dev-server@^5.2.2: + version "5.2.6" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.2.6.tgz#3a5d41233cbb7504f814d19e59a59173fb8ae23d" + integrity sha512-HNLRmamRvVavZQ+avceZifmv8hmdUjg43t6MI4SqJDwFdW7RPQwH5vzGhDRZSX59SgfbeHhLnq3g+uooWo7pVw== + dependencies: + "@types/bonjour" "^3.5.13" + "@types/connect-history-api-fallback" "^1.5.4" + "@types/express" "^4.17.25" + "@types/express-serve-static-core" "^4.17.21" + "@types/serve-index" "^1.9.4" + "@types/serve-static" "^1.15.5" + "@types/sockjs" "^0.3.36" + "@types/ws" "^8.5.10" ansi-html-community "^0.0.8" - bonjour-service "^1.0.11" - chokidar "^3.5.3" + bonjour-service "^1.2.1" + chokidar "^3.6.0" colorette "^2.0.10" - compression "^1.7.4" + compression "^1.8.1" connect-history-api-fallback "^2.0.0" - default-gateway "^6.0.3" - express "^4.17.3" + express "^4.22.1" graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.0.1" - launch-editor "^2.6.0" - open "^8.0.9" - p-retry "^4.5.0" - rimraf "^3.0.2" - schema-utils "^4.0.0" - selfsigned "^2.1.1" + http-proxy-middleware "^2.0.9" + ipaddr.js "^2.1.0" + launch-editor "^2.14.1" + open "^10.0.3" + p-retry "^6.2.0" + schema-utils "^4.2.0" + selfsigned "^5.5.0" serve-index "^1.9.1" sockjs "^0.3.24" spdy "^4.0.2" - webpack-dev-middleware "^5.3.4" - ws "^8.13.0" + webpack-dev-middleware "^7.4.2" + ws "^8.18.0" webpack-merge@^5.9.0: version "5.10.0" @@ -8964,19 +10891,15 @@ webpack@^5.88.1, webpack@^5.95.0: watchpack "^2.4.1" webpack-sources "^3.3.3" -webpackbar@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-6.0.1.tgz#5ef57d3bf7ced8b19025477bc7496ea9d502076b" - integrity sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q== +webpackbar@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-7.0.0.tgz#7228d32881af2392381b6514499ddea73cdf218a" + integrity sha512-aS9soqSO2iCHgqHoCrj4LbfGQUboDCYJPSFOAchEK+9psIjNrfSWW4Y0YEz67MKURNvMmfo0ycOg9d/+OOf9/Q== dependencies: - ansi-escapes "^4.3.2" - chalk "^4.1.2" + ansis "^3.2.0" consola "^3.2.3" - figures "^3.2.0" - markdown-table "^2.0.0" pretty-time "^1.1.0" std-env "^3.7.0" - wrap-ansi "^7.0.0" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" @@ -9011,15 +10934,6 @@ wildcard@^2.0.0, wildcard@^2.0.1: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" @@ -9029,11 +10943,6 @@ wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: string-width "^5.0.1" strip-ansi "^7.0.1" -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - write-file-atomic@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" @@ -9049,10 +10958,17 @@ ws@^7.3.1: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== -ws@^8.13.0: - version "8.18.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" - integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== +ws@^8.18.0: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + +wsl-utils@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/wsl-utils/-/wsl-utils-0.1.0.tgz#8783d4df671d4d50365be2ee4c71917a0557baab" + integrity sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw== + dependencies: + is-wsl "^3.1.0" xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: version "5.1.0" From 88086d6bcada1baac3f178890a576087eba91db9 Mon Sep 17 00:00:00 2001 From: Jeffrey Aven Date: Tue, 15 Sep 2026 09:42:31 +1000 Subject: [PATCH 2/3] fix(ci): make provider.yaml service order platform-independent The generator writes providerServices in filesystem readdir order, which is sorted on Windows (NTFS) but not on Linux, so the tree generated locally and the one CI regenerates differed in the order of log_searches and logs_data_forwarding and the generation-drift gate failed. post_process.mjs now rewrites providerServices in byte order; provider.yaml regenerated under Linux (WSL) so it matches CI. Co-Authored-By: Claude Fable 5.1 --- .../src/sumologic/v00.00.00000/provider.yaml | 86 ++++++------------- provider-dev/scripts/post_process.mjs | 16 +++- 2 files changed, 40 insertions(+), 62 deletions(-) diff --git a/provider-dev/openapi/src/sumologic/v00.00.00000/provider.yaml b/provider-dev/openapi/src/sumologic/v00.00.00000/provider.yaml index 563990b..401b0b8 100644 --- a/provider-dev/openapi/src/sumologic/v00.00.00000/provider.yaml +++ b/provider-dev/openapi/src/sumologic/v00.00.00000/provider.yaml @@ -10,9 +10,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/access_keys.yaml title: Sumo Logic Access Keys API version: v00.00.00000 - description: >- - Access keys of the calling user and of the organization, their scopes, - CORS headers and secret rotation. + description: Access keys of the calling user and of the organization, their scopes, CORS headers and secret rotation. account: id: account:v00.00.00000 name: account @@ -21,9 +19,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/account.yaml title: Sumo Logic Account API version: v00.00.00000 - description: >- - Account status, owner, subdomain, plan update requests, usage reports and - usage forecasts. + description: Account status, owner, subdomain, plan update requests, usage reports and usage forecasts. apps: id: apps:v00.00.00000 name: apps @@ -32,9 +28,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/apps.yaml title: Sumo Logic Apps API version: v00.00.00000 - description: >- - The Sumo Logic app catalog (v1 and v2) - browse, install, upgrade, - uninstall apps and follow the asynchronous install jobs. + description: The Sumo Logic app catalog (v1 and v2) - browse, install, upgrade, uninstall apps and follow the asynchronous install jobs. archive: id: archive:v00.00.00000 name: archive @@ -43,9 +37,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/archive.yaml title: Sumo Logic Archive API version: v00.00.00000 - description: >- - Archive ingestion jobs that replay archived logs from an AWS S3 archive - source. + description: Archive ingestion jobs that replay archived logs from an AWS S3 archive source. budgets: id: budgets:v00.00.00000 name: budgets @@ -72,9 +64,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/connections.yaml title: Sumo Logic Connections API version: v00.00.00000 - description: >- - Webhook, ServiceNow, PagerDuty and other outbound connections used by - monitors and scheduled searches. + description: Webhook, ServiceNow, PagerDuty and other outbound connections used by monitors and scheduled searches. content: id: content:v00.00.00000 name: content @@ -83,10 +73,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/content.yaml title: Sumo Logic Content API version: v00.00.00000 - description: >- - The content library - folders (personal, global, admin recommended, - installed apps), content permissions, paths, and the asynchronous export, - import, copy, move and delete jobs. + description: The content library - folders (personal, global, admin recommended, installed apps), content permissions, paths, and the asynchronous export, import, copy, move and delete jobs. content_sync: id: content_sync:v00.00.00000 name: content_sync @@ -104,9 +91,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/dashboards.yaml title: Sumo Logic Dashboards API version: v00.00.00000 - description: >- - Dashboards (New), dashboard report schedules, report generation jobs and - legacy report migration. + description: Dashboards (New), dashboard report schedules, report generation jobs and legacy report migration. data_archiving: id: data_archiving:v00.00.00000 name: data_archiving @@ -197,17 +182,6 @@ providerServices: title: Sumo Logic Ingest Budgets API version: v00.00.00000 description: Ingest budgets (v2) and their usage reset. - logs_data_forwarding: - id: logs_data_forwarding:v00.00.00000 - name: logs_data_forwarding - preferred: true - service: - $ref: sumologic/v00.00.00000/services/logs_data_forwarding.yaml - title: Sumo Logic Logs Data Forwarding API - version: v00.00.00000 - description: >- - Log data forwarding destinations (AWS S3) and forwarding rules per - partition. log_searches: id: log_searches:v00.00.00000 name: log_searches @@ -216,9 +190,16 @@ providerServices: $ref: sumologic/v00.00.00000/services/log_searches.yaml title: Sumo Logic Log Searches API version: v00.00.00000 - description: >- - Saved and scheduled log searches, and estimated usage of a log search - across data tiers. + description: Saved and scheduled log searches, and estimated usage of a log search across data tiers. + logs_data_forwarding: + id: logs_data_forwarding:v00.00.00000 + name: logs_data_forwarding + preferred: true + service: + $ref: sumologic/v00.00.00000/services/logs_data_forwarding.yaml + title: Sumo Logic Logs Data Forwarding API + version: v00.00.00000 + description: Log data forwarding destinations (AWS S3) and forwarding rules per partition. lookup_tables: id: lookup_tables:v00.00.00000 name: lookup_tables @@ -263,9 +244,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/monitors.yaml title: Sumo Logic Monitors API version: v00.00.00000 - description: >- - Monitors and monitor folders in the monitors library - search, path, copy, - move, import, export, permissions, playbooks and usage. + description: Monitors and monitor folders in the monitors library - search, path, copy, move, import, export, permissions, playbooks and usage. muting_schedules: id: muting_schedules:v00.00.00000 name: muting_schedules @@ -319,9 +298,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/partitions.yaml title: Sumo Logic Partitions API version: v00.00.00000 - description: >- - Partitions (indexes), their retention and decommissioning, and the - partition quota. + description: Partitions (indexes), their retention and decommissioning, and the partition quota. password_policy: id: password_policy:v00.00.00000 name: password_policy @@ -339,10 +316,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/policies.yaml title: Sumo Logic Policies API version: v00.00.00000 - description: >- - Organization security and behaviour policies - audit, search audit, data - access level, data deletion, session limits, dashboard sharing, timestamp - format, OAuth CIMD and access key lifetime. + description: Organization security and behaviour policies - audit, search audit, data access level, data deletion, session limits, dashboard sharing, timestamp format, OAuth CIMD and access key lifetime. roles: id: roles:v00.00.00000 name: roles @@ -396,9 +370,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/search_jobs.yaml title: Sumo Logic Search Jobs API version: v00.00.00000 - description: >- - Search jobs (v2) - create a log search job, poll its status and page - through its messages and records. + description: Search jobs (v2) - create a log search job, poll its status and page through its messages and records. service_accounts: id: service_accounts:v00.00.00000 name: service_accounts @@ -425,9 +397,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/slos.yaml title: Sumo Logic Slos API version: v00.00.00000 - description: >- - SLOs and SLO folders in the SLO library, service level indicators and - usage. + description: SLOs and SLO folders in the SLO library, service level indicators and usage. source_templates: id: source_templates:v00.00.00000 name: source_templates @@ -445,9 +415,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/threat_intel.yaml title: Sumo Logic Threat Intel API version: v00.00.00000 - description: >- - Threat intelligence datastore, data sources, retention and indicator - ingestion. + description: Threat intelligence datastore, data sources, retention and indicator ingestion. tokens: id: tokens:v00.00.00000 name: tokens @@ -465,9 +433,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/tracing.yaml title: Sumo Logic Tracing API version: v00.00.00000 - description: >- - Traces, spans, trace and span queries, tracing metrics and the service - map. + description: Traces, spans, trace and span queries, tracing metrics and the service map. transformation_rules: id: transformation_rules:v00.00.00000 name: transformation_rules @@ -485,9 +451,7 @@ providerServices: $ref: sumologic/v00.00.00000/services/users.yaml title: Sumo Logic Users API version: v00.00.00000 - description: >- - Users and their lifecycle actions - unlock, password reset, email change, - welcome email, MFA. + description: Users and their lifecycle actions - unlock, password reset, email change, welcome email, MFA. config: auth: type: basic diff --git a/provider-dev/scripts/post_process.mjs b/provider-dev/scripts/post_process.mjs index 2424b3d..ccee89c 100644 --- a/provider-dev/scripts/post_process.mjs +++ b/provider-dev/scripts/post_process.mjs @@ -33,7 +33,13 @@ // normalize pass uses for bare arrays), with a synthesised wrapper schema // so DESCRIBE shows the column. // -// 5. Sanity: every service carries the region server template with the +// 5. Deterministic provider.yaml. The generator writes providerServices in +// filesystem readdir order, which is sorted on Windows (NTFS) but not on +// Linux, so the same build produced on the two platforms differed (the CI +// generation-drift check caught it). The services map is rewritten in +// byte order. +// +// 6. Sanity: every service carries the region server template with the // SUMOLOGIC_ENVIRONMENT x-stackQL-envVar, and every skip in the CSV is // absent from the resources. // @@ -162,4 +168,12 @@ if (errors.length > 0) { process.exit(1); } for (const [f, doc] of docs) fs.writeFileSync(path.join(servicesDir, f), yaml.dump(doc, { lineWidth: -1, noRefs: true })); + +// 5. provider.yaml with providerServices in byte order (platform-independent) +const providerYamlPath = path.join(servicesDir, '..', 'provider.yaml'); +const providerDoc = yaml.load(fs.readFileSync(providerYamlPath, 'utf8')); +const byteOrder = (a, b) => (a < b ? -1 : a > b ? 1 : 0); +providerDoc.providerServices = Object.fromEntries(Object.entries(providerDoc.providerServices || {}).sort(([a], [b]) => byteOrder(a, b))); +fs.writeFileSync(providerYamlPath, yaml.dump(providerDoc, { lineWidth: -1, noRefs: true })); +console.log(`post_process: provider.yaml providerServices sorted (${Object.keys(providerDoc.providerServices).length} services)`); console.log(`post_process: ${stats.services} services, ${stats.methods} methods; request.nativeCasing: camel on ${stats.cased} (${stats.bodyMedia} with a body mediaType), ${stats.execNoRequest} body-less EXEC methods left without a request block, ${stats.objectKeys} object key(s) added to non-GET SELECT methods, ${stats.pagination} pagination override(s), ${stats.scalarWraps || 0} scalar response wrap(s)`); From bd95a4f449f945cca2064bbee1a778b291ddfbb9 Mon Sep 17 00:00:00 2001 From: Jeffrey Aven Date: Tue, 15 Sep 2026 09:49:09 +1000 Subject: [PATCH 3/3] fix(ci): build the docs site on Node 22 The website lockfile resolves mermaid 12 (via @docusaurus/theme-mermaid), which requires Node >= 22.12, so `yarn install --frozen-lockfile` failed on the Node 20 runners of the web workflows. Both web workflows now use Node 22 (current LTS); website/package.json declares the engine and the README / CLAUDE.md note that the provider pipeline itself still runs on Node >= 20. Co-Authored-By: Claude Fable 5.1 --- .github/workflows/prod-web-deploy.yml | 2 +- .github/workflows/test-web-deploy.yml | 2 +- CLAUDE.md | 2 +- README.md | 2 +- website/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/prod-web-deploy.yml b/.github/workflows/prod-web-deploy.yml index 7b950ed..870ca87 100644 --- a/.github/workflows/prod-web-deploy.yml +++ b/.github/workflows/prod-web-deploy.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/setup-node@v7 with: - node-version: 20 + node-version: 22 cache: yarn cache-dependency-path: website/yarn.lock diff --git a/.github/workflows/test-web-deploy.yml b/.github/workflows/test-web-deploy.yml index 64df0d3..17422e2 100644 --- a/.github/workflows/test-web-deploy.yml +++ b/.github/workflows/test-web-deploy.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/setup-node@v7 with: - node-version: 20 + node-version: 22 cache: yarn cache-dependency-path: website/yarn.lock diff --git a/CLAUDE.md b/CLAUDE.md index bbd5889..f4efa1a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -16,7 +16,7 @@ Every pipeline step is a `make` target (GNU make, bash; run from WSL, Linux or m - `make mappings` - fills mappings for NEW operations only and prunes retired ones; `make mappings-rebuild` re-derives every row (deliberate renames only); `make mappings-check` reports rule drift without writing - `make test` - `test-offline` (SHOW/DESCRIBE against the file registry), `test-integration` (mock Sumo Logic API, row-level), `test-meta` (SHOW/DESCRIBE gate over every resource through a local `stackql srv`) - `make smoke-test` / `make smoke-test-live` / `make smoke-cleanup` - live suite against the local or the published provider; sources `.env` (`SUMOLOGIC_ACCESSID`, `SUMOLOGIC_ACCESSKEY`, `SUMOLOGIC_ENVIRONMENT`). Nothing it creates is billable and everything is named `stackql-smoke-*` and swept -- `make docs` / `make docs-build` / `make docs-serve` - generate `website/docs` (snake_case surface, then `website/scripts/sanitize-docs.mjs`), build, serve +- `make docs` / `make docs-build` / `make docs-serve` - generate `website/docs` (snake_case surface, then `website/scripts/sanitize-docs.mjs`), build, serve. The site needs Node >= 22.12 (`mermaid` 12 via Docusaurus 3.10); the web workflows run Node 22, the provider pipeline works on Node >= 20 - `make compare` - regenerate the README Breaking Changes section from `provider-dev/config/predecessor_methods.csv` A stackql binary is needed for the tests: `$STACKQL`, `./stackql`, or `stackql` on PATH (on this machine the WSL binary is `/home/javen/.local/bin/stackql`; `STACKQL=/home/javen/.local/bin/stackql make test`). diff --git a/README.md b/README.md index b6907ef..ab42c03 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ Every method of the previous release (267 methods across 32 services) is disposi ## Prerequisites -- Node.js >= 20, GNU make, bash (Linux, macOS or WSL) +- Node.js >= 20 for the provider pipeline, Node.js >= 22.12 for the docs site (Docusaurus 3.10 pulls in `mermaid` 12), GNU make, bash (Linux, macOS or WSL) - A `stackql` binary for testing (`$STACKQL`, `./stackql`, or on `PATH`) - [install](https://stackql.io/docs/installing-stackql) - yarn for the docs site - A Sumo Logic access key pair for the live smoke tests - Administration -> Security -> Access Keys in the console diff --git a/website/package.json b/website/package.json index 8e860a9..c5b8b57 100644 --- a/website/package.json +++ b/website/package.json @@ -69,7 +69,7 @@ ] }, "engines": { - "node": ">=20.0" + "node": ">=22.12" }, "license": "MIT" }