gatewaysdk 0.3.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gatewaysdk/__init__.py +540 -0
- gatewaysdk/adapter/__init__.py +15 -0
- gatewaysdk/adapter/base.py +94 -0
- gatewaysdk/adapter/messages.py +270 -0
- gatewaysdk/adapter/triplet.py +1026 -0
- gatewaysdk/algorithm/__init__.py +39 -0
- gatewaysdk/algorithm/apo/__init__.py +5 -0
- gatewaysdk/algorithm/apo/apo.py +898 -0
- gatewaysdk/algorithm/apo/prompts/apply_edit_variant01.poml +22 -0
- gatewaysdk/algorithm/apo/prompts/apply_edit_variant02.poml +18 -0
- gatewaysdk/algorithm/apo/prompts/text_gradient_variant01.poml +18 -0
- gatewaysdk/algorithm/apo/prompts/text_gradient_variant02.poml +16 -0
- gatewaysdk/algorithm/apo/prompts/text_gradient_variant03.poml +107 -0
- gatewaysdk/algorithm/base.py +262 -0
- gatewaysdk/algorithm/decorator.py +264 -0
- gatewaysdk/algorithm/evals/__init__.py +7 -0
- gatewaysdk/algorithm/evals/evals.py +217 -0
- gatewaysdk/algorithm/fast.py +250 -0
- gatewaysdk/algorithm/gepa/__init__.py +61 -0
- gatewaysdk/algorithm/gepa/adapter.py +495 -0
- gatewaysdk/algorithm/gepa/gepa.py +570 -0
- gatewaysdk/algorithm/gepa/lib/__init__.py +18 -0
- gatewaysdk/algorithm/gepa/lib/adapters/README.md +12 -0
- gatewaysdk/algorithm/gepa/lib/adapters/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/README.md +341 -0
- gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/__init__.py +1 -0
- gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/anymaths_adapter.py +174 -0
- gatewaysdk/algorithm/gepa/lib/adapters/anymaths_adapter/requirements.txt +1 -0
- gatewaysdk/algorithm/gepa/lib/adapters/default_adapter/README.md +0 -0
- gatewaysdk/algorithm/gepa/lib/adapters/default_adapter/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/adapters/default_adapter/default_adapter.py +209 -0
- gatewaysdk/algorithm/gepa/lib/adapters/dspy_adapter/README.md +7 -0
- gatewaysdk/algorithm/gepa/lib/adapters/dspy_adapter/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/adapters/dspy_adapter/dspy_adapter.py +307 -0
- gatewaysdk/algorithm/gepa/lib/adapters/dspy_full_program_adapter/README.md +99 -0
- gatewaysdk/algorithm/gepa/lib/adapters/dspy_full_program_adapter/dspy_program_proposal_signature.py +137 -0
- gatewaysdk/algorithm/gepa/lib/adapters/dspy_full_program_adapter/full_program_adapter.py +268 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/GEPA_RAG.md +621 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/__init__.py +56 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/evaluation_metrics.py +226 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/generic_rag_adapter.py +496 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/rag_pipeline.py +238 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_store_interface.py +212 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/__init__.py +2 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/chroma_store.py +196 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/lancedb_store.py +422 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/milvus_store.py +409 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/qdrant_store.py +368 -0
- gatewaysdk/algorithm/gepa/lib/adapters/generic_rag_adapter/vector_stores/weaviate_store.py +418 -0
- gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/README.md +552 -0
- gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/__init__.py +37 -0
- gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/mcp_adapter.py +699 -0
- gatewaysdk/algorithm/gepa/lib/adapters/mcp_adapter/mcp_client.py +364 -0
- gatewaysdk/algorithm/gepa/lib/adapters/terminal_bench_adapter/README.md +9 -0
- gatewaysdk/algorithm/gepa/lib/adapters/terminal_bench_adapter/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/adapters/terminal_bench_adapter/terminal_bench_adapter.py +217 -0
- gatewaysdk/algorithm/gepa/lib/api.py +382 -0
- gatewaysdk/algorithm/gepa/lib/core/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/core/adapter.py +180 -0
- gatewaysdk/algorithm/gepa/lib/core/data_loader.py +74 -0
- gatewaysdk/algorithm/gepa/lib/core/engine.py +379 -0
- gatewaysdk/algorithm/gepa/lib/core/result.py +233 -0
- gatewaysdk/algorithm/gepa/lib/core/state.py +636 -0
- gatewaysdk/algorithm/gepa/lib/examples/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/examples/aime.py +24 -0
- gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/eval_default.py +111 -0
- gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/prompt-templates/instruction_prompt.txt +9 -0
- gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/prompt-templates/optimal_prompt.txt +24 -0
- gatewaysdk/algorithm/gepa/lib/examples/anymaths-bench/train_anymaths.py +177 -0
- gatewaysdk/algorithm/gepa/lib/examples/dspy_full_program_evolution/arc_agi.ipynb +25705 -0
- gatewaysdk/algorithm/gepa/lib/examples/dspy_full_program_evolution/example.ipynb +348 -0
- gatewaysdk/algorithm/gepa/lib/examples/mcp_adapter/__init__.py +4 -0
- gatewaysdk/algorithm/gepa/lib/examples/mcp_adapter/mcp_optimization_example.py +456 -0
- gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/RAG_GUIDE.md +613 -0
- gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/__init__.py +9 -0
- gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/rag_optimization.py +820 -0
- gatewaysdk/algorithm/gepa/lib/examples/rag_adapter/requirements-rag.txt +29 -0
- gatewaysdk/algorithm/gepa/lib/examples/terminal-bench/prompt-templates/instruction_prompt.txt +16 -0
- gatewaysdk/algorithm/gepa/lib/examples/terminal-bench/prompt-templates/terminus.txt +9 -0
- gatewaysdk/algorithm/gepa/lib/examples/terminal-bench/train_terminus.py +161 -0
- gatewaysdk/algorithm/gepa/lib/gepa_utils.py +117 -0
- gatewaysdk/algorithm/gepa/lib/logging/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/logging/experiment_tracker.py +187 -0
- gatewaysdk/algorithm/gepa/lib/logging/logger.py +75 -0
- gatewaysdk/algorithm/gepa/lib/logging/utils.py +103 -0
- gatewaysdk/algorithm/gepa/lib/proposer/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/proposer/base.py +31 -0
- gatewaysdk/algorithm/gepa/lib/proposer/merge.py +357 -0
- gatewaysdk/algorithm/gepa/lib/proposer/reflective_mutation/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/proposer/reflective_mutation/base.py +49 -0
- gatewaysdk/algorithm/gepa/lib/proposer/reflective_mutation/reflective_mutation.py +176 -0
- gatewaysdk/algorithm/gepa/lib/py.typed +0 -0
- gatewaysdk/algorithm/gepa/lib/strategies/__init__.py +0 -0
- gatewaysdk/algorithm/gepa/lib/strategies/batch_sampler.py +77 -0
- gatewaysdk/algorithm/gepa/lib/strategies/candidate_selector.py +50 -0
- gatewaysdk/algorithm/gepa/lib/strategies/component_selector.py +36 -0
- gatewaysdk/algorithm/gepa/lib/strategies/eval_policy.py +64 -0
- gatewaysdk/algorithm/gepa/lib/strategies/instruction_proposal.py +126 -0
- gatewaysdk/algorithm/gepa/lib/utils/__init__.py +10 -0
- gatewaysdk/algorithm/gepa/lib/utils/stop_condition.py +196 -0
- gatewaysdk/algorithm/gepa/tracing.py +105 -0
- gatewaysdk/algorithm/utils.py +177 -0
- gatewaysdk/algorithm/verl/__init__.py +5 -0
- gatewaysdk/algorithm/verl/interface.py +202 -0
- gatewaysdk/automations.py +111 -0
- gatewaysdk/benchmark_hub/README.md +88 -0
- gatewaysdk/benchmark_hub/__init__.py +119 -0
- gatewaysdk/benchmark_hub/_archive.py +189 -0
- gatewaysdk/benchmark_hub/_tar.py +6 -0
- gatewaysdk/benchmark_hub/client.py +992 -0
- gatewaysdk/benchmark_hub/dispatch_shard.py +34 -0
- gatewaysdk/benchmark_hub/eval_config.py +20 -0
- gatewaysdk/benchmark_hub/evals.py +351 -0
- gatewaysdk/benchmark_hub/harbor_adapter.py +673 -0
- gatewaysdk/benchmark_hub/path_utils.py +81 -0
- gatewaysdk/benchmark_hub/save_utils.py +101 -0
- gatewaysdk/benchmark_hub/verifiers_adapter.py +327 -0
- gatewaysdk/benchmark_hub/versioning.py +72 -0
- gatewaysdk/build.py +515 -0
- gatewaysdk/cli/__init__.py +58 -0
- gatewaysdk/cli/agent_runner.py +132 -0
- gatewaysdk/cli/http_client.py +115 -0
- gatewaysdk/cli/platform.py +4086 -0
- gatewaysdk/cli/prometheus.py +115 -0
- gatewaysdk/cli/release_gate.py +215 -0
- gatewaysdk/cli/store.py +131 -0
- gatewaysdk/cli/vllm.py +29 -0
- gatewaysdk/client.py +406 -0
- gatewaysdk/config.py +348 -0
- gatewaysdk/connectors/__init__.py +25 -0
- gatewaysdk/connectors/client.py +203 -0
- gatewaysdk/connectors/skill.py +25 -0
- gatewaysdk/connectors/template.py +106 -0
- gatewaysdk/context.py +606 -0
- gatewaysdk/emitter/__init__.py +43 -0
- gatewaysdk/emitter/annotation.py +370 -0
- gatewaysdk/emitter/exception.py +54 -0
- gatewaysdk/emitter/message.py +61 -0
- gatewaysdk/emitter/object.py +117 -0
- gatewaysdk/emitter/reward.py +320 -0
- gatewaysdk/env_var.py +156 -0
- gatewaysdk/environment/__init__.py +108 -0
- gatewaysdk/environment/_bundle.py +281 -0
- gatewaysdk/environment/_harbor.py +276 -0
- gatewaysdk/environment/_materialize.py +97 -0
- gatewaysdk/environment/_tar.py +33 -0
- gatewaysdk/environment/_world.py +346 -0
- gatewaysdk/environment/core.py +527 -0
- gatewaysdk/environment/errors.py +58 -0
- gatewaysdk/environment/runtime.py +150 -0
- gatewaysdk/environment/schema/__init__.py +35 -0
- gatewaysdk/environment/schema/__main__.py +225 -0
- gatewaysdk/environment/schema/_slack_fidelity.py +116 -0
- gatewaysdk/environment/schema/_slack_scenario.py +183 -0
- gatewaysdk/environment/schema/api.py +1628 -0
- gatewaysdk/environment/schema/batch.py +755 -0
- gatewaysdk/environment/schema/compiler.py +615 -0
- gatewaysdk/environment/schema/conform.py +428 -0
- gatewaysdk/environment/schema/connector.py +777 -0
- gatewaysdk/environment/schema/connectors/apple-business-manager/handlers.py +17 -0
- gatewaysdk/environment/schema/connectors/apple-business-manager/parity.json +28 -0
- gatewaysdk/environment/schema/connectors/apple-business-manager/provenance.json +233 -0
- gatewaysdk/environment/schema/connectors/apple-business-manager/scope.toml +112 -0
- gatewaysdk/environment/schema/connectors/apple-business-manager/world.json +1380 -0
- gatewaysdk/environment/schema/connectors/base.json +28 -0
- gatewaysdk/environment/schema/connectors/custom/handlers.py +18 -0
- gatewaysdk/environment/schema/connectors/custom/world.json +123 -0
- gatewaysdk/environment/schema/connectors/github/handlers.py +81 -0
- gatewaysdk/environment/schema/connectors/github/parity.json +37 -0
- gatewaysdk/environment/schema/connectors/github/provenance.json +134 -0
- gatewaysdk/environment/schema/connectors/github/scope.toml +158 -0
- gatewaysdk/environment/schema/connectors/github/world.json +5869 -0
- gatewaysdk/environment/schema/connectors/google-calendar/handlers.py +23 -0
- gatewaysdk/environment/schema/connectors/google-calendar/world.json +209 -0
- gatewaysdk/environment/schema/connectors/google-drive/handlers.py +18 -0
- gatewaysdk/environment/schema/connectors/google-drive/world.json +286 -0
- gatewaysdk/environment/schema/connectors/jamf/handlers.py +34 -0
- gatewaysdk/environment/schema/connectors/jamf/parity.json +49 -0
- gatewaysdk/environment/schema/connectors/jamf/provenance.json +181 -0
- gatewaysdk/environment/schema/connectors/jamf/scope.toml +128 -0
- gatewaysdk/environment/schema/connectors/jamf/world.json +2218 -0
- gatewaysdk/environment/schema/connectors/jira/handlers.py +28 -0
- gatewaysdk/environment/schema/connectors/jira/world.json +389 -0
- gatewaysdk/environment/schema/connectors/kandji/handlers.py +38 -0
- gatewaysdk/environment/schema/connectors/kandji/parity.json +29 -0
- gatewaysdk/environment/schema/connectors/kandji/provenance.json +152 -0
- gatewaysdk/environment/schema/connectors/kandji/scope.toml +120 -0
- gatewaysdk/environment/schema/connectors/kandji/world.json +765 -0
- gatewaysdk/environment/schema/connectors/linear/handlers.py +20 -0
- gatewaysdk/environment/schema/connectors/linear/world.json +363 -0
- gatewaysdk/environment/schema/connectors/microsoft-teams/fidelity.json +45 -0
- gatewaysdk/environment/schema/connectors/microsoft-teams/handlers.py +1 -0
- gatewaysdk/environment/schema/connectors/microsoft-teams/provenance.json +851 -0
- gatewaysdk/environment/schema/connectors/microsoft-teams/scope.md +231 -0
- gatewaysdk/environment/schema/connectors/microsoft-teams/teams-types.json +1710 -0
- gatewaysdk/environment/schema/connectors/microsoft-teams/world.json +858 -0
- gatewaysdk/environment/schema/connectors/netsuite/handlers.py +32 -0
- gatewaysdk/environment/schema/connectors/netsuite/parity.json +50 -0
- gatewaysdk/environment/schema/connectors/netsuite/provenance.json +137 -0
- gatewaysdk/environment/schema/connectors/netsuite/scope.toml +78 -0
- gatewaysdk/environment/schema/connectors/netsuite/world.json +16243 -0
- gatewaysdk/environment/schema/connectors/salesforce/handlers.py +806 -0
- gatewaysdk/environment/schema/connectors/salesforce/parity.json +46 -0
- gatewaysdk/environment/schema/connectors/salesforce/provenance.json +143 -0
- gatewaysdk/environment/schema/connectors/salesforce/scope.toml +174 -0
- gatewaysdk/environment/schema/connectors/salesforce/world.json +4695 -0
- gatewaysdk/environment/schema/connectors/slack/MODEL.md +236 -0
- gatewaysdk/environment/schema/connectors/slack/capabilities.json +1039 -0
- gatewaysdk/environment/schema/connectors/slack/handlers.py +762 -0
- gatewaysdk/environment/schema/connectors/slack/parity.json +65 -0
- gatewaysdk/environment/schema/connectors/slack/provenance.json +294 -0
- gatewaysdk/environment/schema/connectors/slack/scope.toml +44 -0
- gatewaysdk/environment/schema/connectors/slack/world.json +4993 -0
- gatewaysdk/environment/schema/connectors/workday/handlers.py +75 -0
- gatewaysdk/environment/schema/connectors/workday/parity.json +36 -0
- gatewaysdk/environment/schema/connectors/workday/provenance.json +179 -0
- gatewaysdk/environment/schema/connectors/workday/scope.toml +180 -0
- gatewaysdk/environment/schema/connectors/workday/world.json +806 -0
- gatewaysdk/environment/schema/data.py +593 -0
- gatewaysdk/environment/schema/extract.py +263 -0
- gatewaysdk/environment/schema/host.py +2437 -0
- gatewaysdk/environment/schema/host_surfaces.py +275 -0
- gatewaysdk/environment/schema/platform.py +1272 -0
- gatewaysdk/environment/schema/scaffold.py +250 -0
- gatewaysdk/environment/schema/skill.py +118 -0
- gatewaysdk/environment/schema/skills/agents/connector-template-author.md +202 -0
- gatewaysdk/environment/schema/skills/connector-schema-authoring/CONNECTORS.md +331 -0
- gatewaysdk/environment/schema/skills/connector-schema-authoring/CONVENTIONS.md +100 -0
- gatewaysdk/environment/schema/skills/connector-schema-authoring/SKILL.md +313 -0
- gatewaysdk/environment/schema/skills/world-data-ingestion/ROWS.md +223 -0
- gatewaysdk/environment/schema/skills/world-data-ingestion/SKILL.md +293 -0
- gatewaysdk/environment/schema/skills/worlds-getting-started/SKILL.md +390 -0
- gatewaysdk/environment/schema/slack.py +757 -0
- gatewaysdk/environment/schema/snapshot.py +479 -0
- gatewaysdk/environment/schema/store.py +904 -0
- gatewaysdk/environment/schema/tasks.py +525 -0
- gatewaysdk/environment/schema/tools_world.py +322 -0
- gatewaysdk/environment/schema/validation.py +577 -0
- gatewaysdk/environment/schema/worker.py +78 -0
- gatewaysdk/environment/schema/workers.py +500 -0
- gatewaysdk/environment/schema/world_tests.py +336 -0
- gatewaysdk/environments/__init__.py +24 -0
- gatewaysdk/environments/client.py +486 -0
- gatewaysdk/environments/types.py +318 -0
- gatewaysdk/execution/__init__.py +15 -0
- gatewaysdk/execution/base.py +64 -0
- gatewaysdk/execution/client_server.py +443 -0
- gatewaysdk/execution/events.py +69 -0
- gatewaysdk/execution/inter_process.py +16 -0
- gatewaysdk/execution/shared_memory.py +282 -0
- gatewaysdk/experiments/__init__.py +90 -0
- gatewaysdk/experiments/assignment.py +177 -0
- gatewaysdk/experiments/client.py +877 -0
- gatewaysdk/experiments/exposure.py +222 -0
- gatewaysdk/experiments/types.py +81 -0
- gatewaysdk/importers/__init__.py +49 -0
- gatewaysdk/importers/_normalize.py +91 -0
- gatewaysdk/importers/builder.py +173 -0
- gatewaysdk/importers/client.py +95 -0
- gatewaysdk/importers/langsmith.py +196 -0
- gatewaysdk/importers/recipes.py +249 -0
- gatewaysdk/instrumentation/__init__.py +300 -0
- gatewaysdk/instrumentation/agentops.py +314 -0
- gatewaysdk/instrumentation/agentops_langchain.py +45 -0
- gatewaysdk/instrumentation/base.py +119 -0
- gatewaysdk/instrumentation/litellm.py +83 -0
- gatewaysdk/instrumentation/registry.py +273 -0
- gatewaysdk/instrumentation/vllm.py +81 -0
- gatewaysdk/instrumentation/weave.py +500 -0
- gatewaysdk/integrations/__init__.py +15 -0
- gatewaysdk/integrations/gateway/__init__.py +11 -0
- gatewaysdk/integrations/gateway/client.py +171 -0
- gatewaysdk/integrations/tool_access.py +549 -0
- gatewaysdk/litagent/__init__.py +11 -0
- gatewaysdk/litagent/decorator.py +536 -0
- gatewaysdk/litagent/litagent.py +252 -0
- gatewaysdk/llm_proxy.py +1742 -0
- gatewaysdk/logging.py +370 -0
- gatewaysdk/memory.py +278 -0
- gatewaysdk/personas.py +186 -0
- gatewaysdk/platform/__init__.py +17 -0
- gatewaysdk/platform/builder.py +221 -0
- gatewaysdk/platform/compatibility.py +67 -0
- gatewaysdk/platform/manifest.py +185 -0
- gatewaysdk/platform/orchestrator.py +901 -0
- gatewaysdk/platform/registry.py +122 -0
- gatewaysdk/platform/worker.py +864 -0
- gatewaysdk/replay/__init__.py +1032 -0
- gatewaysdk/replay/pytest.py +56 -0
- gatewaysdk/reward.py +7 -0
- gatewaysdk/run.py +1781 -0
- gatewaysdk/runner/__init__.py +11 -0
- gatewaysdk/runner/agent.py +878 -0
- gatewaysdk/runner/base.py +182 -0
- gatewaysdk/runner/legacy.py +309 -0
- gatewaysdk/security.py +700 -0
- gatewaysdk/semconv.py +170 -0
- gatewaysdk/server.py +399 -0
- gatewaysdk/sessions.py +282 -0
- gatewaysdk/store/__init__.py +45 -0
- gatewaysdk/store/base.py +908 -0
- gatewaysdk/store/client_server.py +2093 -0
- gatewaysdk/store/collection/__init__.py +30 -0
- gatewaysdk/store/collection/base.py +587 -0
- gatewaysdk/store/collection/memory.py +970 -0
- gatewaysdk/store/collection/mongo.py +1412 -0
- gatewaysdk/store/collection_based.py +1823 -0
- gatewaysdk/store/gateway.py +983 -0
- gatewaysdk/store/gateway_listener.py +465 -0
- gatewaysdk/store/listener.py +58 -0
- gatewaysdk/store/memory.py +396 -0
- gatewaysdk/store/mongo.py +165 -0
- gatewaysdk/store/redis_stream.py +517 -0
- gatewaysdk/store/sqlite.py +3 -0
- gatewaysdk/store/threading.py +370 -0
- gatewaysdk/store/utils.py +142 -0
- gatewaysdk/tracer/__init__.py +14 -0
- gatewaysdk/tracer/base.py +286 -0
- gatewaysdk/tracer/dummy.py +106 -0
- gatewaysdk/tracer/otel.py +559 -0
- gatewaysdk/tracing/__init__.py +110 -0
- gatewaysdk/tracing/api.py +808 -0
- gatewaysdk/tracing/attributes.py +9 -0
- gatewaysdk/tracing/context.py +272 -0
- gatewaysdk/tracing/exporters/__init__.py +10 -0
- gatewaysdk/tracing/exporters/gateway.py +228 -0
- gatewaysdk/tracing/identity.py +288 -0
- gatewaysdk/tracing/init.py +620 -0
- gatewaysdk/tracing/instrumentors/__init__.py +15 -0
- gatewaysdk/tracing/instrumentors/claude_agent_sdk.py +766 -0
- gatewaysdk/tracing/instrumentors/instrumentation_principles.md +294 -0
- gatewaysdk/tracing/instrumentors/registry.py +352 -0
- gatewaysdk/tracing/mapping.py +729 -0
- gatewaysdk/tracing/processors.py +393 -0
- gatewaysdk/tracing/push.py +617 -0
- gatewaysdk/tracing/push_models.py +247 -0
- gatewaysdk/tracing/semconv.py +294 -0
- gatewaysdk/tracing/span_builder.py +356 -0
- gatewaysdk/trainer/__init__.py +6 -0
- gatewaysdk/trainer/init_utils.py +263 -0
- gatewaysdk/trainer/legacy.py +359 -0
- gatewaysdk/trainer/registry.py +12 -0
- gatewaysdk/trainer/trainer.py +638 -0
- gatewaysdk/types/__init__.py +63 -0
- gatewaysdk/types/core.py +556 -0
- gatewaysdk/types/resources.py +204 -0
- gatewaysdk/types/tracer.py +515 -0
- gatewaysdk/types/tracing.py +162 -0
- gatewaysdk/users.py +251 -0
- gatewaysdk/utils/__init__.py +1 -0
- gatewaysdk/utils/id.py +18 -0
- gatewaysdk/utils/metrics.py +1025 -0
- gatewaysdk/utils/otel.py +550 -0
- gatewaysdk/utils/otlp.py +556 -0
- gatewaysdk/utils/redact.py +22 -0
- gatewaysdk/utils/server_launcher.py +1045 -0
- gatewaysdk/utils/system_snapshot.py +90 -0
- gatewaysdk/verl/__init__.py +8 -0
- gatewaysdk/verl/__main__.py +6 -0
- gatewaysdk/verl/async_server.py +46 -0
- gatewaysdk/verl/config.yaml +27 -0
- gatewaysdk/verl/daemon.py +1154 -0
- gatewaysdk/verl/dataset.py +44 -0
- gatewaysdk/verl/entrypoint.py +248 -0
- gatewaysdk/verl/trainer.py +549 -0
- gatewaysdk/world_browser.py +748 -0
- gatewaysdk/world_data.py +453 -0
- gatewaysdk/world_sessions.py +978 -0
- gatewaysdk/world_tasks.py +285 -0
- gatewaysdk/world_tools.py +115 -0
- gatewaysdk/worlds.py +639 -0
- gatewaysdk-0.3.2.dist-info/METADATA +236 -0
- gatewaysdk-0.3.2.dist-info/RECORD +376 -0
- gatewaysdk-0.3.2.dist-info/WHEEL +4 -0
- gatewaysdk-0.3.2.dist-info/entry_points.txt +5 -0
- gatewaysdk-0.3.2.dist-info/licenses/LICENSE +19 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""Read-only tools over Apple Business Manager organization devices.
|
|
2
|
+
|
|
3
|
+
The depth template intentionally ships no production-write mimic because Apple
|
|
4
|
+
offers no sandbox; all broad entities are available through ``gateway_env.store``.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from gateway_env import store, tool
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@tool(name="list_org_devices")
|
|
11
|
+
def list_org_devices():
|
|
12
|
+
return store.list("abm_org_devices")
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@tool(name="get_org_device")
|
|
16
|
+
def get_org_device(id):
|
|
17
|
+
return store.get("abm_org_devices", {"id": id})
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"connector": "apple-business-manager",
|
|
4
|
+
"status": "subset",
|
|
5
|
+
"world_tools": ["get_org_device", "list_org_devices"],
|
|
6
|
+
"registration": {
|
|
7
|
+
"mode": "schema_only",
|
|
8
|
+
"provider": "none",
|
|
9
|
+
"managed_tool_allowlist": []
|
|
10
|
+
},
|
|
11
|
+
"surfaces": [
|
|
12
|
+
{
|
|
13
|
+
"name": "Apple Business Manager API",
|
|
14
|
+
"kind": "official_api",
|
|
15
|
+
"auth": "OAuth 2 client credentials with ES256 client assertion",
|
|
16
|
+
"manifest_validation": "documentation_only",
|
|
17
|
+
"supported_world_tools": ["get_org_device", "list_org_devices"],
|
|
18
|
+
"limitations": [
|
|
19
|
+
"No first-party MCP server or static MCP manifest was identified.",
|
|
20
|
+
"Gateway does not yet implement organization API-account and private-key authentication.",
|
|
21
|
+
"The world returns entities rather than JSON:API transport envelopes."
|
|
22
|
+
],
|
|
23
|
+
"evidence": [
|
|
24
|
+
"https://developer.apple.com/documentation/applebusinessmanagerapi"
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
{
|
|
2
|
+
"connector": "apple-business-manager",
|
|
3
|
+
"shape": "base",
|
|
4
|
+
"label": "subset",
|
|
5
|
+
"generated_at": "2026-09-06T22:27:40Z",
|
|
6
|
+
"authored_by": "connector-template-author; hand-authored from pinned Apple DocC JSON because no importer exists",
|
|
7
|
+
"source": {
|
|
8
|
+
"kind": "docs",
|
|
9
|
+
"format": "vendor-docc-json",
|
|
10
|
+
"url": "https://developer.apple.com/documentation/applebusinessapi",
|
|
11
|
+
"version": "Apple Business API 2.4 (2026-08-26 changelog)",
|
|
12
|
+
"sha256": "2db67973e8a5661fd1ad114edafa7e07b09c1daf066bfffe0b5515fd2546c9e7",
|
|
13
|
+
"retrieved_at": "2026-09-06T21:25:00Z",
|
|
14
|
+
"note": "Apple publishes no downloadable OAS URL. These are the machine-readable vendor documents rendered by developer.apple.com.",
|
|
15
|
+
"documents": [
|
|
16
|
+
{
|
|
17
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi.json",
|
|
18
|
+
"sha256": "2db67973e8a5661fd1ad114edafa7e07b09c1daf066bfffe0b5515fd2546c9e7"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/apple-school-and-business-manager-api/apple-school-manager-and-apple-business-api-changelog.json",
|
|
22
|
+
"sha256": "ec880e21e4c019d4220fcefdc7e5f01812f36a0fb87221fa1bb371750efa51e9"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/orgdevice/attributes-data.dictionary.json",
|
|
26
|
+
"sha256": "7906c33a8d312663f8952ff68a2f1197f70a00e7858c00d2ee6c0f8d7f489ce8"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/orgdevice/relationships-data.dictionary.json",
|
|
30
|
+
"sha256": "9cdb50cfce67a7e4301d65da74f173c1972220be1d9e268103b34c5f2f6b3508"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/applecarecoverage/attributes-data.dictionary.json",
|
|
34
|
+
"sha256": "0884aa17689f0fcbc01e06c157548ce1c3f9e44dda4827ddcf5c28a9aa161323"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/applecarecoveragestatus.json",
|
|
38
|
+
"sha256": "b807e0798eb817c7e5e9a674c706f691d8077574ea1608efed7562f0c1a96300"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/applecarecoveragepaymenttype.json",
|
|
42
|
+
"sha256": "11ce37a44d56ac5cbb2f12869cb709e074b39e41dc03b0de1db9771bf45403ee"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/get-all-applecare-coverage-for-an-orgdevice.json",
|
|
46
|
+
"sha256": "db97e44de0055908a1128ccb2cb68737941455ea5b33ec80ae3e41cc59622c37"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/mdmdevice/attributes-data.dictionary.json",
|
|
50
|
+
"sha256": "02685ac7842bfcd047dcfd26d36bfbd30392b4c49c146efaa31b6562d1e0b4e3"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/mdmdevicedetail/attributes-data.dictionary.json",
|
|
54
|
+
"sha256": "47ecd2aefa8982acce6ec8eac4bb1cd1f1a5acda984f9440456b4fa058bab18b"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/get-apple-mdm-enrolled-devices.json",
|
|
58
|
+
"sha256": "7727008e4ab577ff3c0ad28d77ed63d9342b3a2077bb3d5d6ce01812d2bafa6e"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/get-the-details-for-apple-mdm-enrolled-device.json",
|
|
62
|
+
"sha256": "a422e0da6499ce7d8ce96f3a5e72ff461f317b8daada127b368a000775530682"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/deviceerasestatus.json",
|
|
66
|
+
"sha256": "ea0fffd8fe4bf36c86d1b94195deaec0421a167952950aae9e4eee05cce79242"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/devicelockstatus.json",
|
|
70
|
+
"sha256": "9033edb204fe440a35fb51cd2c34be8a3e3f55380352c0503e251e4862dfbe45"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/lostmodestatus.json",
|
|
74
|
+
"sha256": "1f10f04522ca6152ff105c20884aff614c0025e2ec56cb5159b7ad60827572c0"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/mdmserver/attributes-data.dictionary.json",
|
|
78
|
+
"sha256": "8afa43350224afc3050c32aa476780ac85056fd83927e95a5334fa1dae32cc3b"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/mdmserverstatus.json",
|
|
82
|
+
"sha256": "bb764715e852054c444e0f592892aa8c6cfd42f4176ee698ce7de0a4023b4b70"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/mdmserverproductfamily.json",
|
|
86
|
+
"sha256": "e68adf180c1f3519aeec2218fe3af6b4a10a543f74a11ce36e6cb5f3dd905c2b"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/orgdeviceactivity/attributes-data.dictionary.json",
|
|
90
|
+
"sha256": "903caf5ffa61222fac512ce1dc3318582f354bae130fe650a670fa7e05601f3a"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/orgdeviceactivitycreaterequest/data-data.dictionary/relationships-data.dictionary.json",
|
|
94
|
+
"sha256": "b851d9a2092e576fdd845609ce526973c00f5585a487348bb29340309aa93af3"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/user/attributes-data.dictionary.json",
|
|
98
|
+
"sha256": "e4c7c293f2feca6f90215107455c47ac18267fbbc5204b8a4aa7ead695075811"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/userstatus.json",
|
|
102
|
+
"sha256": "e4d6518e1483b6679704aef2f36e3eb95910e1893e0b69ccfff8daf696ecae9a"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/userphonenumbertype.json",
|
|
106
|
+
"sha256": "aeb450659fb72dc801ccec89deba8a992d3f35475dd60fa20b746cf5041b6786"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/usergroup/attributes-data.dictionary.json",
|
|
110
|
+
"sha256": "31911d11ebc15acc19ef013ba854208826288921c82624c6592f6cb3638d263d"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/usergroup/relationships-data.dictionary.json",
|
|
114
|
+
"sha256": "67d0903c57c3a74578fda8908739f22d45fbf2b010562b3cedca20bd6a510d00"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/usergrouptype.json",
|
|
118
|
+
"sha256": "229b19f93d1156802700f0d8889ebb92e3829fdc583513c35450d8c5e7d067ba"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/usergroupstatus.json",
|
|
122
|
+
"sha256": "b0e73af8716135940c5d7601adadca7301966012c4cc1e4dcb55ad996bf58ad4"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/organizationalunit/attributes-data.dictionary.json",
|
|
126
|
+
"sha256": "8202c6ef66f257c859d9e00fcb7b46f2105c21cfcab0d1e2542edde925dac718"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/organizationalunit/relationships-data.dictionary.json",
|
|
130
|
+
"sha256": "2aa6636ff60e7e6e9016e5086b8b7bb29673d6bee0d3f674e179843949f40e7e"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/blueprint/attributes-data.dictionary.json",
|
|
134
|
+
"sha256": "bd2714aacc986e03532fcf9e803ac4ad4463f8bcdf1ebb43459e43d9ece8e948"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/blueprint/relationships-data.dictionary.json",
|
|
138
|
+
"sha256": "808b014c3c1248e88302bb2d653706d26ff9e4b68b4e889a0083f2e685dc393f"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/blueprintstatus.json",
|
|
142
|
+
"sha256": "2e09f0580b50dc7ad6213fb2b721835989e32dff46e71de365c60d2f22a3e61e"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/configurationcommon.json",
|
|
146
|
+
"sha256": "0e968f28bd1f9b873d11e3c1b945290c96054e3ff5f3004c15a01c8780b6ad35"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/configurationcustomsetting.json",
|
|
150
|
+
"sha256": "542674dc488da67dcc10ac65d490fd86793271b935fe603765f5ab4cf004ec6c"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/customsettingsvalues.json",
|
|
154
|
+
"sha256": "5936a5ccba1feda237981d5a0f15ce9b2c226354b30f78be5460321a9fa36bdd"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/configurationtype.json",
|
|
158
|
+
"sha256": "0d4873fc9a854a754377e3f35676110c82ed77ef4447d86a397a98a476fee32f"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/configurationplatform.json",
|
|
162
|
+
"sha256": "e29b4fcd8c85162b968f20a7a8e84c26a1108f0d7d088330517bde30570ab349"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/get-configurations.json",
|
|
166
|
+
"sha256": "082b2435861c2adf99b43dd8bd9f07fdb1b333f3038b902562ad0e680fa6d848"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"url": "https://developer.apple.com/tutorials/data/documentation/applebusinessapi/get-configuration-information.json",
|
|
170
|
+
"sha256": "b014d53e90179739b3b0114339452d1ebd9337f52cbb8da728312ae5cd80c0e8"
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
"world_hash": "e82af371927662648c6e9854aed422becdb72b46c886e4cb755b31f6ed1672bb",
|
|
175
|
+
"scope_hash": "c33a06e32ecb6d06f18e6f4b61b4e98e92540ca11f265a841968f4b650b3406f",
|
|
176
|
+
"coverage": {
|
|
177
|
+
"entities": 18,
|
|
178
|
+
"recursive_fields": 159,
|
|
179
|
+
"areas": [
|
|
180
|
+
"organization devices",
|
|
181
|
+
"AppleCare coverage",
|
|
182
|
+
"Apple MDM enrolled-device summary and detail reads",
|
|
183
|
+
"device management services and assignment",
|
|
184
|
+
"organization-device activities and device linkage",
|
|
185
|
+
"users",
|
|
186
|
+
"user groups and membership",
|
|
187
|
+
"organizational units and membership",
|
|
188
|
+
"blueprints",
|
|
189
|
+
"configurations",
|
|
190
|
+
"blueprint configuration/device/user/user-group linkages"
|
|
191
|
+
],
|
|
192
|
+
"excluded": [
|
|
193
|
+
"apps and packages",
|
|
194
|
+
"blueprint app/package linkages",
|
|
195
|
+
"audit events",
|
|
196
|
+
"write request bodies and behavior",
|
|
197
|
+
"JSON:API transport envelopes"
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
"label_reasons": [
|
|
201
|
+
"The model is a broad read-only subset, not the full API: apps, packages, audit-event variants, and write behavior are excluded.",
|
|
202
|
+
"Apple has no developer sandbox. No tenant round trip or golden replay ran; both are skipped, not passed.",
|
|
203
|
+
"Nested scalar relationships are enforced where they resolve to one target. Array traversal and vendor-unasserted uniqueness remain outside this contract."
|
|
204
|
+
],
|
|
205
|
+
"fidelity_decisions": [
|
|
206
|
+
"Resource id and type retain Apple requiredness; attributes remains optional so sparse fieldset responses validate.",
|
|
207
|
+
"MdmDevice and MdmDeviceDetail are two read forms for the same endpoint ID and use union-properties/intersection-required; both declared type literals validate.",
|
|
208
|
+
"ConfigurationCommon and ConfigurationCustomSetting fields share nested attributes. customSettingsValues accepts null collection form or the documented detail object; attributes.type is required only when attributes is present.",
|
|
209
|
+
"Only DocC possibleValues/allowedValues blocks become enums. Prose-only lists for organization-device, MDM-server type, and activity statuses remain open strings.",
|
|
210
|
+
"AppleCare nullable example values are nullable rather than merely optional.",
|
|
211
|
+
"Linkage endpoint context is represented with snake_case containment IDs; all vendor-owned fields retain casing and nesting.",
|
|
212
|
+
"The prior assignedDateTime field and write handler were removed: Apple linkage responses declare no timestamp, and the former value was invented from activity creation time."
|
|
213
|
+
],
|
|
214
|
+
"fields_excluded": [
|
|
215
|
+
"OrgDevice.Attributes.eid: peripheral identifier outside this subset.",
|
|
216
|
+
"OrgDevice.Attributes.purchaseSourceId/purchaseSourceUid: the schema dictionary and GET example disagree; accepting only either spelling would reject another vendor-declared read form."
|
|
217
|
+
],
|
|
218
|
+
"compiler_limitations": [
|
|
219
|
+
"Nested enrolledUserId and user-group ouId relationships are enforced without flattening. User roleOuList[].ouId remains unenforced because paths do not traverse arrays; serialNumber and serverName uniqueness is not asserted without vendor evidence.",
|
|
220
|
+
"MdmDevice and MdmDeviceDetail resource type correlation with their respective attribute subsets cannot be expressed as a keyed entity union; the union accepts the vendor properties and both declared discriminators."
|
|
221
|
+
],
|
|
222
|
+
"checks": {
|
|
223
|
+
"schema_compile": "passed on /home/ubuntu/apple-business-manager-connector-verify; domain hash 0e874cb3cb01192e9bf7070c6779fc1a9ab8ef49cbdd30a2c419ec5f47a00109",
|
|
224
|
+
"schema_check": "passed on /home/ubuntu/apple-business-manager-connector-verify; domain hash 0e874cb3cb01192e9bf7070c6779fc1a9ab8ef49cbdd30a2c419ec5f47a00109",
|
|
225
|
+
"tenant_round_trip": "skipped: no sandbox",
|
|
226
|
+
"golden_replay": "skipped: no syntheticized capture"
|
|
227
|
+
},
|
|
228
|
+
"data": {
|
|
229
|
+
"synthetic": true,
|
|
230
|
+
"vendor_or_customer_data": "none",
|
|
231
|
+
"fixtures": "none: connector template layout does not support fixture data"
|
|
232
|
+
}
|
|
233
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Apple Business Manager base read-only subset, reconstructed from Apple Business API 2.4 DocC JSON.
|
|
2
|
+
|
|
3
|
+
[source]
|
|
4
|
+
kind = "docs"
|
|
5
|
+
api = "Apple Business API"
|
|
6
|
+
version = "2.4"
|
|
7
|
+
base_url = "https://api-business.apple.com/v1"
|
|
8
|
+
machine_readable = "vendor-docc-json"
|
|
9
|
+
|
|
10
|
+
[coverage]
|
|
11
|
+
label = "subset"
|
|
12
|
+
entity_count = 18
|
|
13
|
+
recursive_field_count = 159
|
|
14
|
+
round_trip = "skipped: Apple provides no developer sandbox; our ABM organization is production"
|
|
15
|
+
golden_replay = "skipped: no syntheticized tenant capture is available"
|
|
16
|
+
|
|
17
|
+
[allowlist]
|
|
18
|
+
abm_org_devices = "OrgDevice, with nested attributes"
|
|
19
|
+
abm_applecare_coverages = "AppleCareCoverage scoped by org device"
|
|
20
|
+
abm_mdm_devices = "union-properties/intersection-required model of MdmDevice and MdmDeviceDetail reads"
|
|
21
|
+
abm_mdm_servers = "MdmServer"
|
|
22
|
+
abm_device_assignments = "OrgDevice assignedServer linkage"
|
|
23
|
+
abm_activities = "OrgDeviceActivity read resource"
|
|
24
|
+
abm_activity_devices = "OrgDeviceActivity create-request devices linkage"
|
|
25
|
+
abm_users = "User, including nested roleOuList and phoneNumbers"
|
|
26
|
+
abm_user_groups = "UserGroup"
|
|
27
|
+
abm_user_group_memberships = "UserGroup users linkage"
|
|
28
|
+
abm_organizational_units = "OrganizationalUnit"
|
|
29
|
+
abm_organizational_unit_memberships = "OrganizationalUnit users linkage"
|
|
30
|
+
abm_blueprints = "Blueprint"
|
|
31
|
+
abm_configurations = "ConfigurationCommon plus ConfigurationCustomSetting read forms"
|
|
32
|
+
abm_blueprint_configurations = "Blueprint configurations linkage"
|
|
33
|
+
abm_blueprint_devices = "Blueprint orgDevices linkage"
|
|
34
|
+
abm_blueprint_users = "Blueprint users linkage"
|
|
35
|
+
abm_blueprint_user_groups = "Blueprint userGroups linkage"
|
|
36
|
+
|
|
37
|
+
[keys]
|
|
38
|
+
abm_org_devices = ["id"]
|
|
39
|
+
abm_applecare_coverages = ["org_device_id", "id"]
|
|
40
|
+
abm_mdm_devices = ["id"]
|
|
41
|
+
abm_mdm_servers = ["id"]
|
|
42
|
+
abm_device_assignments = ["device_id", "mdm_server_id"]
|
|
43
|
+
abm_activities = ["id"]
|
|
44
|
+
abm_activity_devices = ["activity_id", "device_id"]
|
|
45
|
+
abm_users = ["id"]
|
|
46
|
+
abm_user_groups = ["id"]
|
|
47
|
+
abm_user_group_memberships = ["user_group_id", "user_id"]
|
|
48
|
+
abm_organizational_units = ["id"]
|
|
49
|
+
abm_organizational_unit_memberships = ["organizational_unit_id", "user_id"]
|
|
50
|
+
abm_blueprints = ["id"]
|
|
51
|
+
abm_configurations = ["id"]
|
|
52
|
+
abm_blueprint_configurations = ["blueprint_id", "configuration_id"]
|
|
53
|
+
abm_blueprint_devices = ["blueprint_id", "device_id"]
|
|
54
|
+
abm_blueprint_users = ["blueprint_id", "user_id"]
|
|
55
|
+
abm_blueprint_user_groups = ["blueprint_id", "user_group_id"]
|
|
56
|
+
|
|
57
|
+
[requiredness]
|
|
58
|
+
resource_roots = "Only id and type are required, matching Apple's declarations and sparse-fieldset reads."
|
|
59
|
+
attributes = "Nested attributes sections are optional. Configuration attributes requires type only when the whole section is present."
|
|
60
|
+
linkages = "Endpoint containment IDs and linkage IDs are required because they form the linkage fact."
|
|
61
|
+
|
|
62
|
+
[relationships]
|
|
63
|
+
represented = [
|
|
64
|
+
"AppleCareCoverage -> OrgDevice endpoint containment",
|
|
65
|
+
"OrgDevice -> MdmServer assignedServer",
|
|
66
|
+
"OrgDeviceActivity -> OrgDevice devices",
|
|
67
|
+
"MdmDevice.attributes.enrolledUserId -> User",
|
|
68
|
+
"UserGroup.attributes.ouId -> OrganizationalUnit",
|
|
69
|
+
"UserGroup -> User memberships",
|
|
70
|
+
"OrganizationalUnit -> User memberships",
|
|
71
|
+
"Blueprint -> Configuration, OrgDevice, User, and UserGroup linkages",
|
|
72
|
+
]
|
|
73
|
+
nested_not_enforced = [
|
|
74
|
+
"User.attributes.roleOuList[].ouId -> abm_organizational_units",
|
|
75
|
+
]
|
|
76
|
+
|
|
77
|
+
[compiler_limitations]
|
|
78
|
+
nested_relationships = "Nested scalar paths are supported and enrolledUserId/ouId are enforced. roleOuList[].ouId remains unenforced because relationship paths do not traverse arrays."
|
|
79
|
+
nested_uniqueness = "Nested scalar uniqueness is supported, but serialNumber and serverName are not declared unique by the pinned DocC schemas and are therefore not asserted."
|
|
80
|
+
mdm_read_forms = "MdmDevice and MdmDeviceDetail share one entity keyed by endpoint ID; the schema uses the union of properties and intersection of required fields, with both declared resource type values."
|
|
81
|
+
configuration_read_forms = "Collection reads return customSettingsValues as null; detail reads may return the nested object. Both validate."
|
|
82
|
+
|
|
83
|
+
[excluded]
|
|
84
|
+
App = "Content metadata is outside this identity/device/configuration subset; consequently blueprint app linkage is excluded."
|
|
85
|
+
Package = "Package metadata is outside this subset; consequently blueprint package linkage is excluded."
|
|
86
|
+
AuditEvent = "The large polymorphic audit-event family is a separate event model and is not represented as state."
|
|
87
|
+
BlueprintApps = "Target App entity is excluded; no unresolved relationship is fabricated."
|
|
88
|
+
BlueprintPackages = "Target Package entity is excluded; no unresolved relationship is fabricated."
|
|
89
|
+
transport = "JSON:API links, meta, paging, and response envelopes are transport rather than persisted entities."
|
|
90
|
+
write_requests = "Create/update request bodies and side effects are excluded from this read-only subset; vendor writes are real production writes without a sandbox."
|
|
91
|
+
|
|
92
|
+
[fields_excluded]
|
|
93
|
+
"OrgDevice.Attributes.eid" = "Peripheral cellular identifier omitted from this subset; IMEI and MEID remain represented."
|
|
94
|
+
"OrgDevice.Attributes.purchaseSourceId" = "Apple's declared dictionary says purchaseSourceId while its own GET example emits purchaseSourceUid. Neither spelling is accepted until vendor evidence resolves the conflict; accepting one would reject the other legal read form."
|
|
95
|
+
"*.links" = "JSON:API transport."
|
|
96
|
+
"*.meta" = "JSON:API paging transport."
|
|
97
|
+
|
|
98
|
+
[enum_policy]
|
|
99
|
+
declared = "Closed enums come only from DocC possibleValues or allowedValues blocks."
|
|
100
|
+
open_strings = ["OrgDevice.productFamily", "OrgDevice.status", "OrgDevice.purchaseSourceType", "MdmServer.serverType", "OrgDeviceActivity.status", "OrgDeviceActivity.subStatus"]
|
|
101
|
+
reason = "Apple lists these values only in prose, so closing them would over-constrain future legal vendor values."
|
|
102
|
+
|
|
103
|
+
[sandbox]
|
|
104
|
+
available = false
|
|
105
|
+
tenant_requirement = "A consenting Apple Business Manager production organization with real Apple devices is required for round-trip evidence."
|
|
106
|
+
seed_policy = "Do not seed: Apple exposes writes, but they affect production and Apple provides no developer sandbox."
|
|
107
|
+
customer_data = "none committed"
|
|
108
|
+
|
|
109
|
+
[tools]
|
|
110
|
+
mode = "read-only"
|
|
111
|
+
served = ["list_org_devices", "get_org_device"]
|
|
112
|
+
write_tools = "none: assign_devices was removed because its prior flattened request shape and invented assignedDateTime were not vendor-faithful"
|