diff --git a/entities/an/anthropic.yaml b/entities/an/anthropic.yaml new file mode 100644 index 0000000..0326f5f --- /dev/null +++ b/entities/an/anthropic.yaml @@ -0,0 +1,193 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8fpe15bvn8rdb84vmk85d + slug: anthropic + slug_aliases: [] + name: Anthropic + domains: + - value: claude.com + role: primary + valid_from: 2026-07-27T07:35:35.548Z + category: ai-ml +sources: + - source_id: source_anthropic_api_overview + url: https://platform.claude.com/docs/en/cli-sdks-libraries/overview + - source_id: source_anthropic_getting_started + url: https://platform.claude.com/docs/en/api/overview + - source_id: source_anthropic_messages_create + url: https://platform.claude.com/docs/en/api/messages/create + - source_id: source_anthropic_messages_typescript + url: https://platform.claude.com/docs/en/api/typescript/messages/create + - source_id: source_anthropic_messages_guide + url: https://platform.claude.com/docs/en/build-with-claude/working-with-messages + - source_id: source_anthropic_errors + url: https://platform.claude.com/docs/en/api/errors + - source_id: source_anthropic_rate_limits + url: https://platform.claude.com/docs/en/api/rate-limits + - source_id: source_anthropic_pricing + url: https://platform.claude.com/docs/en/about-claude/pricing + - source_id: source_anthropic_console + url: https://platform.claude.com/login?returnTo=%2Fsettings%2Fkeys + - source_id: source_anthropic_terms + url: https://www.anthropic.com/legal/commercial-terms + - source_id: source_anthropic_support + url: https://support.claude.com/en/articles/8114535-where-can-i-go-for-claude-api-support-and-assistance + - { source_id: source_anthropic_billing_checkout, url: https://support.claude.com/en/articles/8977456-how-do-i-pay-for-my-claude-api-usage } +declarations: + - declaration_id: declaration_anthropic_api_service_lifecycle + scope: + product: { key: anthropic-api, name: Anthropic API } + funnel: { key: api-service-lifecycle, name: API service lifecycle } + assessment_targets: + - target_id: service-use + name: Submit Messages API requests and receive model responses + interface_ids: [api-service] + participants: + - participant_id: anthropic + roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider] + identity: { entity_id: ent_01kyh8fpe15bvn8rdb84vmk85d } + resources: + - resource_id: api-overview + uri: https://platform.claude.com/docs/en/cli-sdks-libraries/overview + roles: [discovery, documentation, operations] + operated_by_participant_id: anthropic + standard_bindings: [] + - resource_id: service-terms + uri: https://www.anthropic.com/legal/commercial-terms + roles: [terms] + operated_by_participant_id: anthropic + standard_bindings: [] + - resource_id: pricing + uri: https://platform.claude.com/docs/en/about-claude/pricing + roles: [pricing] + operated_by_participant_id: anthropic + standard_bindings: [] + - resource_id: console-access + uri: https://platform.claude.com/login?returnTo=%2Fsettings%2Fkeys + roles: [access] + operated_by_participant_id: anthropic + standard_bindings: [] + - resource_id: authentication + uri: https://platform.claude.com/docs/en/api/overview + roles: [authentication, descriptor, documentation] + operated_by_participant_id: anthropic + standard_bindings: [] + - resource_id: messages-create + uri: https://platform.claude.com/docs/en/api/messages/create + roles: [provisioning, status, documentation] + operated_by_participant_id: anthropic + standard_bindings: [] + - resource_id: messages-create-response + uri: https://platform.claude.com/docs/en/api/typescript/messages/create + roles: [provisioning, status, documentation] + operated_by_participant_id: anthropic + standard_bindings: [] + - resource_id: messages-request-response-guide + uri: https://platform.claude.com/docs/en/build-with-claude/working-with-messages + roles: [provisioning, status, documentation] + operated_by_participant_id: anthropic + standard_bindings: [] + - resource_id: api-errors + uri: https://platform.claude.com/docs/en/api/errors + roles: [status, operations, recovery, documentation] + operated_by_participant_id: anthropic + standard_bindings: [] + - resource_id: rate-limits + uri: https://platform.claude.com/docs/en/api/rate-limits + roles: [status, operations, documentation] + operated_by_participant_id: anthropic + standard_bindings: [] + - resource_id: support + uri: https://support.claude.com/en/articles/8114535-where-can-i-go-for-claude-api-support-and-assistance + roles: [recovery, documentation] + operated_by_participant_id: anthropic + standard_bindings: [] + - { resource_id: billing-checkout, uri: https://support.claude.com/en/articles/8977456-how-do-i-pay-for-my-claude-api-usage, roles: [checkout, documentation], operated_by_participant_id: anthropic, standard_bindings: [] } + endpoints: + - { endpoint_id: registration, uri: "https://platform.claude.com/login?returnTo=%2Fsettings%2Fkeys", transport: http, roles: [registration], operated_by_participant_id: anthropic, standard_bindings: [] } + - endpoint_id: messages-api + uri: https://api.anthropic.com/v1/messages + transport: http + roles: [service] + operated_by_participant_id: anthropic + standard_bindings: [] + interfaces: + - interface_id: api-service + modality: network_api + functions: [service_operation] + endpoint_ids: [messages-api] + resource_ids: [api-overview, api-errors, rate-limits] + operated_by_participant_id: anthropic + standard_bindings: [] + - interface_id: api-authentication + modality: network_api + functions: [authentication] + endpoint_ids: [] + resource_ids: [authentication] + operated_by_participant_id: anthropic + standard_bindings: [] + relations: + - relation_id: overview-describes-api + kind: describes + from: { node_kind: resource, node_id: api-overview } + to: { node_kind: interface, node_id: api-service } + - relation_id: authentication-authenticates-api + kind: authenticates + from: { node_kind: interface, node_id: api-authentication } + to: { node_kind: interface, node_id: api-service } + - relation_id: console-precedes-authentication + kind: precedes + from: { node_kind: resource, node_id: console-access } + to: { node_kind: interface, node_id: api-authentication } + - relation_id: errors-describe-api + kind: describes + from: { node_kind: resource, node_id: api-errors } + to: { node_kind: interface, node_id: api-service } + - relation_id: messages-create-describes-api + kind: describes + from: { node_kind: resource, node_id: messages-create } + to: { node_kind: interface, node_id: api-service } + - relation_id: messages-create-response-describes-api + kind: describes + from: { node_kind: resource, node_id: messages-create-response } + to: { node_kind: interface, node_id: api-service } + - relation_id: messages-guide-describes-api + kind: describes + from: { node_kind: resource, node_id: messages-request-response-guide } + to: { node_kind: interface, node_id: api-service } + offer_relations: [] + source_bindings: + - source_binding_id: anthropic_assessment_target + source_id: source_anthropic_api_overview + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: anthropic-scope, source_id: source_anthropic_api_overview, target: { node_kind: declaration, node_id: declaration_anthropic_api_service_lifecycle }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: anthropic-participant, source_id: source_anthropic_api_overview, target: { node_kind: participant, node_id: anthropic }, field_paths: [/roles, /identity] } + - { source_binding_id: anthropic-resource-overview, source_id: source_anthropic_api_overview, target: { node_kind: resource, node_id: api-overview }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: anthropic-resource-terms, source_id: source_anthropic_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: anthropic-resource-pricing, source_id: source_anthropic_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: anthropic-resource-console, source_id: source_anthropic_console, target: { node_kind: resource, node_id: console-access }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: anthropic-endpoint-registration, source_id: source_anthropic_console, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: anthropic-resource-authentication, source_id: source_anthropic_getting_started, target: { node_kind: resource, node_id: authentication }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: anthropic-resource-messages-create, source_id: source_anthropic_messages_create, target: { node_kind: resource, node_id: messages-create }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: anthropic-resource-messages-create-response, source_id: source_anthropic_messages_typescript, target: { node_kind: resource, node_id: messages-create-response }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: anthropic-resource-messages-guide, source_id: source_anthropic_messages_guide, target: { node_kind: resource, node_id: messages-request-response-guide }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: anthropic-resource-errors, source_id: source_anthropic_errors, target: { node_kind: resource, node_id: api-errors }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: anthropic-resource-limits, source_id: source_anthropic_rate_limits, target: { node_kind: resource, node_id: rate-limits }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: anthropic-resource-support, source_id: source_anthropic_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: anthropic-endpoint-messages, source_id: source_anthropic_api_overview, target: { node_kind: endpoint, node_id: messages-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: anthropic-interface-api, source_id: source_anthropic_api_overview, target: { node_kind: interface, node_id: api-service }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: anthropic-interface-auth, source_id: source_anthropic_getting_started, target: { node_kind: interface, node_id: api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: anthropic-relation-overview, source_id: source_anthropic_api_overview, target: { node_kind: relation, node_id: overview-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: anthropic-relation-auth, source_id: source_anthropic_getting_started, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: anthropic-relation-console, source_id: source_anthropic_console, target: { node_kind: relation, node_id: console-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: anthropic-relation-errors, source_id: source_anthropic_errors, target: { node_kind: relation, node_id: errors-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: anthropic-relation-messages-create, source_id: source_anthropic_messages_create, target: { node_kind: relation, node_id: messages-create-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: anthropic-relation-messages-create-response, source_id: source_anthropic_messages_typescript, target: { node_kind: relation, node_id: messages-create-response-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: anthropic-relation-messages-guide, source_id: source_anthropic_messages_guide, target: { node_kind: relation, node_id: messages-guide-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: anthropic-resource-billing-checkout, source_id: source_anthropic_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: anthropic-exclusion-separate-eligibility, source_id: source_anthropic_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z diff --git a/entities/aw/aws.yaml b/entities/aw/aws.yaml new file mode 100644 index 0000000..c472d2c --- /dev/null +++ b/entities/aw/aws.yaml @@ -0,0 +1,362 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8fpe10b164tj935t8k5zb + slug: aws + slug_aliases: [] + name: AWS + domains: + - value: aws.amazon.com + role: primary + valid_from: 2026-07-27T07:35:36.165Z + category: hosting-infra +sources: + - source_id: source_aws_cloud_control_overview + url: https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/what-is-cloudcontrolapi.html + - source_id: source_aws_cloud_control_getting_started + url: https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/getting-started.html + - source_id: source_aws_cloud_control_resource_operations + url: https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations.html + - source_id: source_aws_cloud_control_create_api + url: https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_CreateResource.html + - source_id: source_aws_cloud_control_status_api + url: https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_GetResourceRequestStatus.html + - source_id: source_aws_cloud_control_endpoints + url: https://docs.aws.amazon.com/general/latest/gr/cloudcontrolapi.html + - source_id: source_aws_temporary_credentials + url: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html + - source_id: source_aws_sigv4 + url: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html + - source_id: source_aws_account_creation + url: https://signin.aws.amazon.com/signup?request_type=register + - source_id: source_aws_account_creation_troubleshooting + url: https://docs.aws.amazon.com/accounts/latest/reference/troubleshooting_create-account.html + - source_id: source_aws_account_getting_started + url: https://docs.aws.amazon.com/accounts/latest/reference/getting-started.html + - source_id: source_aws_pricing + url: https://aws.amazon.com/pricing/ + - source_id: source_aws_price_list_api + url: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/price-changes.html + - source_id: source_aws_service_terms + url: https://aws.amazon.com/service-terms/ + - source_id: source_aws_sign_in_recovery + url: https://docs.aws.amazon.com/signin/latest/userguide/troubleshooting-sign-in-issues.html + - { source_id: source_aws_billing_checkout, url: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-payments.html } + - source_id: source-readiness-914498557291a986d5a6b102afef10bb5c0c85d7d80c2791cb316fc2b3abf984 + url: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_create.html +declarations: + - declaration_id: declaration_aws_cloud_api_resource_management + scope: + product: + key: aws-cloud + name: AWS Cloud + funnel: + key: api-resource-management + name: API resource management + assessment_targets: + - target_id: service-use + name: Create and reconcile AWS resources through Cloud Control API + interface_ids: [cloud-control] + - target_id: cost-visibility + name: AWS Cloud cost visibility + interface_ids: [public-pricing] + participants: + - participant_id: aws + roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider] + identity: + entity_id: ent_01kyh8fpe10b164tj935t8k5zb + resources: + - resource_id: cloud-control-overview + uri: https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/what-is-cloudcontrolapi.html + roles: [discovery, documentation, operations] + operated_by_participant_id: aws + standard_bindings: [] + - resource_id: service-terms + uri: https://aws.amazon.com/service-terms/ + roles: [terms] + operated_by_participant_id: aws + standard_bindings: [] + - resource_id: pricing + uri: https://aws.amazon.com/pricing/ + roles: [pricing] + operated_by_participant_id: aws + standard_bindings: [] + - resource_id: account-creation + uri: https://signin.aws.amazon.com/signup?request_type=register + roles: [access] + operated_by_participant_id: aws + standard_bindings: [] + - resource_id: account-creation-troubleshooting + uri: https://docs.aws.amazon.com/accounts/latest/reference/troubleshooting_create-account.html + roles: [access, recovery, documentation] + operated_by_participant_id: aws + standard_bindings: [] + - resource_id: account-plan-activation + uri: https://docs.aws.amazon.com/accounts/latest/reference/getting-started.html + roles: [access, checkout, documentation] + operated_by_participant_id: aws + standard_bindings: [] + - resource_id: temporary-credentials + uri: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html + roles: [authentication, descriptor, documentation] + operated_by_participant_id: aws + standard_bindings: [] + - resource_id: request-signing + uri: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html + roles: [documentation] + operated_by_participant_id: aws + standard_bindings: [] + - resource_id: cloud-control-getting-started + uri: https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/getting-started.html + roles: [provisioning, status, documentation] + operated_by_participant_id: aws + standard_bindings: [] + - resource_id: cloud-control-resource-operations + uri: https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations.html + roles: [operations, status, documentation] + operated_by_participant_id: aws + standard_bindings: [] + - resource_id: cloud-control-create-api + uri: https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_CreateResource.html + roles: [provisioning, recovery, documentation] + operated_by_participant_id: aws + standard_bindings: [] + - resource_id: cloud-control-status-api + uri: https://docs.aws.amazon.com/cloudcontrolapi/latest/APIReference/API_GetResourceRequestStatus.html + roles: [provisioning, status, recovery, documentation] + operated_by_participant_id: aws + standard_bindings: [] + - resource_id: cloud-control-endpoints + uri: https://docs.aws.amazon.com/general/latest/gr/cloudcontrolapi.html + roles: [documentation] + operated_by_participant_id: aws + standard_bindings: [] + - resource_id: price-list-api + uri: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/price-changes.html + roles: [pricing, operations, documentation] + operated_by_participant_id: aws + standard_bindings: [] + - resource_id: sign-in-recovery + uri: https://docs.aws.amazon.com/signin/latest/userguide/troubleshooting-sign-in-issues.html + roles: [recovery, documentation] + operated_by_participant_id: aws + standard_bindings: [] + - { resource_id: billing-checkout, uri: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-payments.html, roles: [checkout, documentation], operated_by_participant_id: aws, standard_bindings: [] } + - resource_id: readiness-914498557291a986d5a6b102afef10bb5c0c85d7d80c2791cb316fc2b3abf984 + uri: https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_create.html + roles: + - access + - documentation + operated_by_participant_id: aws + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: "https://signin.aws.amazon.com/signup?request_type=register", transport: http, roles: [registration], operated_by_participant_id: aws, standard_bindings: [] } + - endpoint_id: cloud-control-api + uri: https://cloudcontrolapi.us-east-1.amazonaws.com + transport: http + roles: [service, status] + operated_by_participant_id: aws + standard_bindings: [] + - endpoint_id: security-token-service + uri: https://sts.amazonaws.com + transport: http + roles: [authorization, token] + operated_by_participant_id: aws + standard_bindings: [] + - endpoint_id: pricing-api + uri: https://api.pricing.us-east-1.amazonaws.com + transport: http + roles: [service] + operated_by_participant_id: aws + standard_bindings: [] + interfaces: + - interface_id: cloud-control + modality: network_api + functions: [service_operation] + endpoint_ids: [cloud-control-api] + resource_ids: [cloud-control-overview, cloud-control-getting-started, cloud-control-resource-operations, cloud-control-create-api, cloud-control-status-api, cloud-control-endpoints] + operated_by_participant_id: aws + standard_bindings: [] + - interface_id: workload-authentication + modality: network_api + functions: [service_operation, authentication] + endpoint_ids: [security-token-service] + resource_ids: [temporary-credentials, request-signing] + operated_by_participant_id: aws + standard_bindings: [] + - interface_id: public-pricing + modality: network_api + functions: [service_operation, commerce] + endpoint_ids: [pricing-api] + resource_ids: [pricing, price-list-api] + operated_by_participant_id: aws + standard_bindings: [] + relations: + - relation_id: cloud-control-docs-describe-interface + kind: describes + from: { node_kind: resource, node_id: cloud-control-overview } + to: { node_kind: interface, node_id: cloud-control } + - relation_id: request-signing-describes-authentication + kind: describes + from: { node_kind: resource, node_id: request-signing } + to: { node_kind: interface, node_id: workload-authentication } + - relation_id: authentication-authenticates-cloud-control + kind: authenticates + from: { node_kind: interface, node_id: workload-authentication } + to: { node_kind: interface, node_id: cloud-control } + - relation_id: account-precedes-authentication + kind: precedes + from: { node_kind: resource, node_id: account-creation } + to: { node_kind: interface, node_id: workload-authentication } + - relation_id: getting-started-precedes-resource-operations + kind: precedes + from: { node_kind: resource, node_id: cloud-control-getting-started } + to: { node_kind: resource, node_id: cloud-control-resource-operations } + - relation_id: pricing-docs-describe-interface + kind: describes + from: { node_kind: resource, node_id: price-list-api } + to: { node_kind: interface, node_id: public-pricing } + offer_relations: [] + source_bindings: + - source_binding_id: aws_cost_visibility_target + source_id: source_aws_price_list_api + target: { node_kind: assessment_target, node_id: cost-visibility } + field_paths: [/name, /interface_ids] + - source_binding_id: aws_assessment_target + source_id: source_aws_cloud_control_overview + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - source_binding_id: aws-declaration-scope + source_id: source_aws_cloud_control_overview + target: { node_kind: declaration, node_id: declaration_aws_cloud_api_resource_management } + field_paths: [/scope/product/name, /scope/funnel/name] + - source_binding_id: aws-participant + source_id: source_aws_cloud_control_overview + target: { node_kind: participant, node_id: aws } + field_paths: [/roles, /identity] + - source_binding_id: aws-resource-cloud-control-overview + source_id: source_aws_cloud_control_overview + target: { node_kind: resource, node_id: cloud-control-overview } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-resource-service-terms + source_id: source_aws_service_terms + target: { node_kind: resource, node_id: service-terms } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-resource-pricing + source_id: source_aws_pricing + target: { node_kind: resource, node_id: pricing } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-resource-account-creation + source_id: source_aws_account_creation + target: { node_kind: resource, node_id: account-creation } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-endpoint-registration + source_id: source_aws_account_creation + target: { node_kind: endpoint, node_id: registration } + field_paths: [/uri, /transport, /roles, /operated_by_participant_id] + - source_binding_id: aws-resource-account-troubleshooting + source_id: source_aws_account_creation_troubleshooting + target: { node_kind: resource, node_id: account-creation-troubleshooting } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-resource-account-plan-activation + source_id: source_aws_account_getting_started + target: { node_kind: resource, node_id: account-plan-activation } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-resource-temporary-credentials + source_id: source_aws_temporary_credentials + target: { node_kind: resource, node_id: temporary-credentials } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-resource-request-signing + source_id: source_aws_sigv4 + target: { node_kind: resource, node_id: request-signing } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-resource-getting-started + source_id: source_aws_cloud_control_getting_started + target: { node_kind: resource, node_id: cloud-control-getting-started } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-resource-operations + source_id: source_aws_cloud_control_resource_operations + target: { node_kind: resource, node_id: cloud-control-resource-operations } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-resource-create-api + source_id: source_aws_cloud_control_create_api + target: { node_kind: resource, node_id: cloud-control-create-api } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-resource-status-api + source_id: source_aws_cloud_control_status_api + target: { node_kind: resource, node_id: cloud-control-status-api } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-resource-endpoints + source_id: source_aws_cloud_control_endpoints + target: { node_kind: resource, node_id: cloud-control-endpoints } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-resource-price-list + source_id: source_aws_price_list_api + target: { node_kind: resource, node_id: price-list-api } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-resource-recovery + source_id: source_aws_sign_in_recovery + target: { node_kind: resource, node_id: sign-in-recovery } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: aws-endpoint-cloud-control + source_id: source_aws_cloud_control_endpoints + target: { node_kind: endpoint, node_id: cloud-control-api } + field_paths: [/uri, /transport, /roles, /operated_by_participant_id] + - source_binding_id: aws-endpoint-sts + source_id: source_aws_temporary_credentials + target: { node_kind: endpoint, node_id: security-token-service } + field_paths: [/uri, /transport, /roles, /operated_by_participant_id] + - source_binding_id: aws-endpoint-pricing + source_id: source_aws_price_list_api + target: { node_kind: endpoint, node_id: pricing-api } + field_paths: [/uri, /transport, /roles, /operated_by_participant_id] + - source_binding_id: aws-interface-cloud-control + source_id: source_aws_cloud_control_overview + target: { node_kind: interface, node_id: cloud-control } + field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] + - source_binding_id: aws-interface-authentication + source_id: source_aws_temporary_credentials + target: { node_kind: interface, node_id: workload-authentication } + field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] + - source_binding_id: aws-interface-pricing + source_id: source_aws_price_list_api + target: { node_kind: interface, node_id: public-pricing } + field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] + - source_binding_id: aws-relation-cloud-control-docs + source_id: source_aws_cloud_control_overview + target: { node_kind: relation, node_id: cloud-control-docs-describe-interface } + field_paths: [/kind, /from, /to] + - source_binding_id: aws-relation-signing-docs + source_id: source_aws_sigv4 + target: { node_kind: relation, node_id: request-signing-describes-authentication } + field_paths: [/kind, /from, /to] + - source_binding_id: aws-relation-authentication + source_id: source_aws_temporary_credentials + target: { node_kind: relation, node_id: authentication-authenticates-cloud-control } + field_paths: [/kind, /from, /to] + - source_binding_id: aws-relation-account-authentication + source_id: source_aws_account_creation + target: { node_kind: relation, node_id: account-precedes-authentication } + field_paths: [/kind, /from, /to] + - source_binding_id: aws-relation-provision-operations + source_id: source_aws_cloud_control_getting_started + target: { node_kind: relation, node_id: getting-started-precedes-resource-operations } + field_paths: [/kind, /from, /to] + - source_binding_id: aws-relation-pricing-docs + source_id: source_aws_price_list_api + target: { node_kind: relation, node_id: pricing-docs-describe-interface } + field_paths: [/kind, /from, /to] + - { source_binding_id: aws-resource-billing-checkout, source_id: source_aws_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: aws-exclusion-separate-eligibility, source_id: source_aws_service_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + - source_binding_id: binding-resource-914498557291a986d5a6b102afef10bb5c0c85d7d80c2791cb316fc2b3abf984 + source_id: source-readiness-914498557291a986d5a6b102afef10bb5c0c85d7d80c2791cb316fc2b3abf984 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-914498557291a986d5a6b102afef10bb5c0c85d7d80c2791cb316fc2b3abf984 + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T03:06:52.000Z diff --git a/entities/cl/cloudflare.yaml b/entities/cl/cloudflare.yaml new file mode 100644 index 0000000..e1cb77f --- /dev/null +++ b/entities/cl/cloudflare.yaml @@ -0,0 +1,215 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8jtf535570d9z2bng6j1t + slug: cloudflare + slug_aliases: [] + name: Cloudflare + domains: + - value: cloudflare.com + role: primary + valid_from: 2026-07-27T07:45:12.619Z + category: hosting-infra +sources: + - { source_id: source_cloudflare_api, url: https://developers.cloudflare.com/api/typescript/resources/workers/subresources/scripts/methods/update } + - { source_id: source_cloudflare_tokens, url: https://developers.cloudflare.com/fundamentals/api/get-started/create-token/ } + - { source_id: source_cloudflare_errors, url: https://developers.cloudflare.com/fundamentals/api/troubleshooting/ } + - { source_id: source_cloudflare_limits, url: https://developers.cloudflare.com/fundamentals/api/reference/limits/ } + - { source_id: source_cloudflare_plans, url: https://www.cloudflare.com/plans/ } + - { source_id: source_cloudflare_signup, url: https://dash.cloudflare.com/sign-up } + - { source_id: source_cloudflare_terms, url: https://www.cloudflare.com/terms/ } + - { source_id: source_cloudflare_support, url: https://developers.cloudflare.com/support/ } + - { source_id: source_cloudflare_billing_checkout, url: https://developers.cloudflare.com/billing/get-started/create-billing-profile/ } + - source_id: source-readiness-6b1ec9edf6e5bc9be8277ad21ed6b287369ef3921b9c2e9d3e880f4b575bf7c9 + url: https://developers.cloudflare.com/billing + - source_id: source-readiness-ad6794a9ae3bd4ff2735c8265a155b678454af08c375d85510b9b8fa1fe2753c + url: https://developers.cloudflare.com/fundamentals/setup/account/login + - source_id: source-readiness-bc8b49ed87d1f5f8ab2920f8fb566580b21dbc2818786704c4b560b7b364b342 + url: https://developers.cloudflare.com/workers/versions-and-deployments/index.md + - { source_id: source_cloudflare_public_dns_overview, url: https://developers.cloudflare.com/1.1.1.1/ } + - { source_id: source_cloudflare_public_dns_terms, url: https://www.cloudflare.com/policies/terms/ } + - { source_id: source_cloudflare_public_dns_doh, url: https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/make-api-requests/ } + - { source_id: source_cloudflare_public_dns_json, url: https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/make-api-requests/dns-json/ } + - { source_id: source_cloudflare_public_dns_upstream, url: https://developers.cloudflare.com/1.1.1.1/upstream-resolution/ } + - { source_id: source_cloudflare_public_dns_errors, url: https://developers.cloudflare.com/1.1.1.1/infrastructure/extended-dns-error-codes/ } +declarations: + - declaration_id: declaration_cloudflare_api_resource_management + scope: + product: { key: cloudflare-developer-platform, name: Cloudflare Developer Platform } + funnel: { key: api-resource-management, name: API resource management } + assessment_targets: + - target_id: service-use + name: Upload and manage Cloudflare Worker scripts through the API + interface_ids: [resource-api] + participants: + - { participant_id: cloudflare, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyh8jtf535570d9z2bng6j1t } } + resources: + - { resource_id: api-reference, uri: https://developers.cloudflare.com/api/typescript/resources/workers/subresources/scripts/methods/update, roles: [discovery, provisioning, operations, documentation], operated_by_participant_id: cloudflare, standard_bindings: [] } + - { resource_id: service-terms, uri: https://www.cloudflare.com/terms/, roles: [terms], operated_by_participant_id: cloudflare, standard_bindings: [] } + - { resource_id: plans, uri: https://www.cloudflare.com/plans/, roles: [pricing], operated_by_participant_id: cloudflare, standard_bindings: [] } + - { resource_id: dashboard-signup, uri: https://dash.cloudflare.com/sign-up, roles: [access], operated_by_participant_id: cloudflare, standard_bindings: [] } + - { resource_id: api-tokens, uri: https://developers.cloudflare.com/fundamentals/api/get-started/create-token/, roles: [authentication, descriptor, provisioning, documentation], operated_by_participant_id: cloudflare, standard_bindings: [] } + - { resource_id: api-errors, uri: https://developers.cloudflare.com/fundamentals/api/troubleshooting/, roles: [status, operations, recovery, documentation], operated_by_participant_id: cloudflare, standard_bindings: [] } + - { resource_id: api-limits, uri: https://developers.cloudflare.com/fundamentals/api/reference/limits/, roles: [status, operations, documentation], operated_by_participant_id: cloudflare, standard_bindings: [] } + - { resource_id: support, uri: https://developers.cloudflare.com/support/, roles: [recovery, documentation], operated_by_participant_id: cloudflare, standard_bindings: [] } + - { resource_id: billing-checkout, uri: https://developers.cloudflare.com/billing/get-started/create-billing-profile/, roles: [checkout, documentation], operated_by_participant_id: cloudflare, standard_bindings: [] } + - resource_id: readiness-6b1ec9edf6e5bc9be8277ad21ed6b287369ef3921b9c2e9d3e880f4b575bf7c9 + uri: https://developers.cloudflare.com/billing + roles: + - checkout + - documentation + operated_by_participant_id: cloudflare + standard_bindings: [] + - resource_id: readiness-ad6794a9ae3bd4ff2735c8265a155b678454af08c375d85510b9b8fa1fe2753c + uri: https://developers.cloudflare.com/fundamentals/setup/account/login + roles: + - access + - documentation + operated_by_participant_id: cloudflare + standard_bindings: [] + - resource_id: readiness-bc8b49ed87d1f5f8ab2920f8fb566580b21dbc2818786704c4b560b7b364b342 + uri: https://developers.cloudflare.com/workers/versions-and-deployments/index.md + roles: + - documentation + - provisioning + - status + operated_by_participant_id: cloudflare + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: https://dash.cloudflare.com/sign-up, transport: http, roles: [registration], operated_by_participant_id: cloudflare, standard_bindings: [] } + - { endpoint_id: cloudflare-api, uri: https://api.cloudflare.com/client/v4, transport: http, roles: [service, status], operated_by_participant_id: cloudflare, standard_bindings: [] } + interfaces: + - { interface_id: resource-api, modality: network_api, functions: [service_operation], endpoint_ids: [cloudflare-api], resource_ids: [api-reference, api-errors, api-limits], operated_by_participant_id: cloudflare, standard_bindings: [] } + - { interface_id: api-authentication, modality: network_api, functions: [authentication], endpoint_ids: [], resource_ids: [api-tokens], operated_by_participant_id: cloudflare, standard_bindings: [] } + relations: + - { relation_id: reference-describes-api, kind: describes, from: { node_kind: resource, node_id: api-reference }, to: { node_kind: interface, node_id: resource-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: api-authentication }, to: { node_kind: interface, node_id: resource-api } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: dashboard-signup }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: errors-describe-api, kind: describes, from: { node_kind: resource, node_id: api-errors }, to: { node_kind: interface, node_id: resource-api } } + - relation_id: relation-describes-225c96c782ab756fb616d37d053e0fd7f9b4f86e55f67726f3184979e08c37a3 + kind: describes + from: + node_kind: resource + node_id: readiness-bc8b49ed87d1f5f8ab2920f8fb566580b21dbc2818786704c4b560b7b364b342 + to: + node_kind: interface + node_id: resource-api + offer_relations: [] + source_bindings: + - source_binding_id: cloudflare_assessment_target + source_id: source_cloudflare_api + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: cloudflare-scope, source_id: source_cloudflare_api, target: { node_kind: declaration, node_id: declaration_cloudflare_api_resource_management }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: cloudflare-participant, source_id: source_cloudflare_api, target: { node_kind: participant, node_id: cloudflare }, field_paths: [/roles, /identity] } + - { source_binding_id: cloudflare-resource-reference, source_id: source_cloudflare_api, target: { node_kind: resource, node_id: api-reference }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: cloudflare-resource-terms, source_id: source_cloudflare_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: cloudflare-resource-plans, source_id: source_cloudflare_plans, target: { node_kind: resource, node_id: plans }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: cloudflare-resource-signup, source_id: source_cloudflare_signup, target: { node_kind: resource, node_id: dashboard-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: cloudflare-endpoint-registration, source_id: source_cloudflare_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: cloudflare-resource-tokens, source_id: source_cloudflare_tokens, target: { node_kind: resource, node_id: api-tokens }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: cloudflare-resource-errors, source_id: source_cloudflare_errors, target: { node_kind: resource, node_id: api-errors }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: cloudflare-resource-limits, source_id: source_cloudflare_limits, target: { node_kind: resource, node_id: api-limits }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: cloudflare-resource-support, source_id: source_cloudflare_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: cloudflare-endpoint-api, source_id: source_cloudflare_api, target: { node_kind: endpoint, node_id: cloudflare-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: cloudflare-interface-api, source_id: source_cloudflare_api, target: { node_kind: interface, node_id: resource-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: cloudflare-interface-auth, source_id: source_cloudflare_tokens, target: { node_kind: interface, node_id: api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: cloudflare-relation-reference, source_id: source_cloudflare_api, target: { node_kind: relation, node_id: reference-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: cloudflare-relation-auth, source_id: source_cloudflare_tokens, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: cloudflare-relation-signup, source_id: source_cloudflare_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: cloudflare-relation-errors, source_id: source_cloudflare_errors, target: { node_kind: relation, node_id: errors-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: cloudflare-resource-billing-checkout, source_id: source_cloudflare_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: cloudflare-exclusion-separate-eligibility, source_id: source_cloudflare_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + - source_binding_id: binding-resource-6b1ec9edf6e5bc9be8277ad21ed6b287369ef3921b9c2e9d3e880f4b575bf7c9 + source_id: source-readiness-6b1ec9edf6e5bc9be8277ad21ed6b287369ef3921b9c2e9d3e880f4b575bf7c9 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-6b1ec9edf6e5bc9be8277ad21ed6b287369ef3921b9c2e9d3e880f4b575bf7c9 + - source_binding_id: binding-resource-ad6794a9ae3bd4ff2735c8265a155b678454af08c375d85510b9b8fa1fe2753c + source_id: source-readiness-ad6794a9ae3bd4ff2735c8265a155b678454af08c375d85510b9b8fa1fe2753c + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-ad6794a9ae3bd4ff2735c8265a155b678454af08c375d85510b9b8fa1fe2753c + - source_binding_id: binding-resource-bc8b49ed87d1f5f8ab2920f8fb566580b21dbc2818786704c4b560b7b364b342 + source_id: source-readiness-bc8b49ed87d1f5f8ab2920f8fb566580b21dbc2818786704c4b560b7b364b342 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-bc8b49ed87d1f5f8ab2920f8fb566580b21dbc2818786704c4b560b7b364b342 + - source_binding_id: binding-relation-225c96c782ab756fb616d37d053e0fd7f9b4f86e55f67726f3184979e08c37a3 + source_id: source-readiness-bc8b49ed87d1f5f8ab2920f8fb566580b21dbc2818786704c4b560b7b364b342 + field_paths: + - /kind + - /from + - /to + target: + node_kind: relation + node_id: relation-describes-225c96c782ab756fb616d37d053e0fd7f9b4f86e55f67726f3184979e08c37a3 + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z + - declaration_id: declaration_cloudflare_public_dns_over_https + scope: + product: { key: cloudflare-public-dns, name: Cloudflare 1.1.1.1 Public DNS } + funnel: { key: dns-over-https-query, name: DNS over HTTPS query } + assessment_targets: + - target_id: service-use + name: Resolve public DNS records through DNS over HTTPS + interface_ids: [doh-api] + participants: + - { participant_id: cloudflare-public-dns, roles: [subject, operations_provider], identity: { entity_id: ent_01kyh8jtf535570d9z2bng6j1t } } + resources: + - { resource_id: public-dns-overview, uri: https://developers.cloudflare.com/1.1.1.1/, roles: [discovery, eligibility, pricing, documentation], operated_by_participant_id: cloudflare-public-dns, standard_bindings: [] } + - { resource_id: public-dns-terms, uri: https://www.cloudflare.com/policies/terms/, roles: [terms], operated_by_participant_id: cloudflare-public-dns, standard_bindings: [] } + - { resource_id: doh-reference, uri: https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/make-api-requests/, roles: [discovery, operations, status, documentation], operated_by_participant_id: cloudflare-public-dns, standard_bindings: [] } + - { resource_id: doh-json-contract, uri: https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/make-api-requests/dns-json/, roles: [operations, status, recovery, documentation], operated_by_participant_id: cloudflare-public-dns, standard_bindings: [] } + - { resource_id: upstream-resolution, uri: https://developers.cloudflare.com/1.1.1.1/upstream-resolution/, roles: [operations, status, recovery, documentation], operated_by_participant_id: cloudflare-public-dns, standard_bindings: [] } + - { resource_id: extended-errors, uri: https://developers.cloudflare.com/1.1.1.1/infrastructure/extended-dns-error-codes/, roles: [status, recovery, documentation], operated_by_participant_id: cloudflare-public-dns, standard_bindings: [] } + endpoints: + - { endpoint_id: doh-endpoint, uri: https://cloudflare-dns.com/dns-query, transport: http, roles: [service], operated_by_participant_id: cloudflare-public-dns, standard_bindings: [] } + interfaces: + - { interface_id: doh-api, modality: network_api, functions: [service_operation], endpoint_ids: [doh-endpoint], resource_ids: [doh-reference, doh-json-contract, upstream-resolution, extended-errors], operated_by_participant_id: cloudflare-public-dns, standard_bindings: [] } + relations: + - { relation_id: doh-reference-describes-api, kind: describes, from: { node_kind: resource, node_id: doh-reference }, to: { node_kind: interface, node_id: doh-api } } + - { relation_id: doh-json-describes-api, kind: describes, from: { node_kind: resource, node_id: doh-json-contract }, to: { node_kind: interface, node_id: doh-api } } + - { relation_id: upstream-describes-api, kind: describes, from: { node_kind: resource, node_id: upstream-resolution }, to: { node_kind: interface, node_id: doh-api } } + - { relation_id: errors-describe-api, kind: describes, from: { node_kind: resource, node_id: extended-errors }, to: { node_kind: interface, node_id: doh-api } } + offer_relations: [] + source_bindings: + - { source_binding_id: public-dns-scope, source_id: source_cloudflare_public_dns_overview, target: { node_kind: declaration, node_id: declaration_cloudflare_public_dns_over_https }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: public-dns-target, source_id: source_cloudflare_public_dns_doh, target: { node_kind: assessment_target, node_id: service-use }, field_paths: [/name, /interface_ids] } + - { source_binding_id: public-dns-participant, source_id: source_cloudflare_public_dns_doh, target: { node_kind: participant, node_id: cloudflare-public-dns }, field_paths: [/roles, /identity] } + - { source_binding_id: public-dns-resource-overview, source_id: source_cloudflare_public_dns_overview, target: { node_kind: resource, node_id: public-dns-overview }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: public-dns-resource-terms, source_id: source_cloudflare_public_dns_terms, target: { node_kind: resource, node_id: public-dns-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: public-dns-resource-doh, source_id: source_cloudflare_public_dns_doh, target: { node_kind: resource, node_id: doh-reference }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: public-dns-resource-json, source_id: source_cloudflare_public_dns_json, target: { node_kind: resource, node_id: doh-json-contract }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: public-dns-resource-upstream, source_id: source_cloudflare_public_dns_upstream, target: { node_kind: resource, node_id: upstream-resolution }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: public-dns-resource-errors, source_id: source_cloudflare_public_dns_errors, target: { node_kind: resource, node_id: extended-errors }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: public-dns-endpoint, source_id: source_cloudflare_public_dns_doh, target: { node_kind: endpoint, node_id: doh-endpoint }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: public-dns-interface, source_id: source_cloudflare_public_dns_doh, target: { node_kind: interface, node_id: doh-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: public-dns-relation-reference, source_id: source_cloudflare_public_dns_doh, target: { node_kind: relation, node_id: doh-reference-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: public-dns-relation-json, source_id: source_cloudflare_public_dns_json, target: { node_kind: relation, node_id: doh-json-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: public-dns-relation-upstream, source_id: source_cloudflare_public_dns_upstream, target: { node_kind: relation, node_id: upstream-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: public-dns-relation-errors, source_id: source_cloudflare_public_dns_errors, target: { node_kind: relation, node_id: errors-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: public-dns-exclusion-access, source_id: source_cloudflare_public_dns_terms, target: { node_kind: surface_exclusion, node_id: no-access-bootstrap }, field_paths: [/role, /rationale] } + - { source_binding_id: public-dns-exclusion-checkout, source_id: source_cloudflare_public_dns_terms, target: { node_kind: surface_exclusion, node_id: no-checkout-step }, field_paths: [/role, /rationale] } + - { source_binding_id: public-dns-exclusion-provisioning, source_id: source_cloudflare_public_dns_doh, target: { node_kind: surface_exclusion, node_id: no-provisioning-step }, field_paths: [/role, /rationale] } + - { source_binding_id: public-dns-exclusion-authentication, source_id: source_cloudflare_public_dns_doh, target: { node_kind: surface_exclusion, node_id: no-operation-authentication }, field_paths: [/role, /rationale] } + surface_exclusions: + - { exclusion_id: no-access-bootstrap, role: access, rationale: "The public DNS resolver is available without a subscription or Cloudflare account, so no access bootstrap applies." } + - { exclusion_id: no-checkout-step, role: checkout, rationale: "The public DNS resolver is available without a subscription or Cloudflare account, so no checkout step applies." } + - { exclusion_id: no-provisioning-step, role: provisioning, rationale: "DNS queries are submitted directly to the public endpoint, so no resource provisioning step applies." } + - { exclusion_id: no-operation-authentication, role: authentication, rationale: "Cloudflare states that no authentication is required to send requests to the DNS over HTTPS API." } + authority_intent: community + declared_at: 2026-08-18T00:00:00.000Z diff --git a/entities/da/datadog.yaml b/entities/da/datadog.yaml new file mode 100644 index 0000000..0b13678 --- /dev/null +++ b/entities/da/datadog.yaml @@ -0,0 +1,196 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8fpe2hwmmvk3eex1hq433 + slug: datadog + slug_aliases: [] + name: Datadog + domains: + - value: datadoghq.com + role: primary + valid_from: 2026-07-27T07:40:35.276Z + category: observability +sources: + - { source_id: source_datadog_api, url: https://docs.datadoghq.com/api/latest/ } + - { source_id: source_datadog_auth, url: https://docs.datadoghq.com/api/latest/authentication/ } + - { source_id: source_datadog_access_material, url: https://docs.datadoghq.com/account_management/api-app-keys.md } + - { source_id: source_datadog_monitors, url: https://docs.datadoghq.com/api/latest/monitors/create-a-monitor.md } + - { source_id: source_datadog_limits, url: https://docs.datadoghq.com/api/latest/rate-limits/ } + - { source_id: source_datadog_pricing, url: https://www.datadoghq.com/pricing/ } + - { source_id: source_datadog_signup, url: https://app.datadoghq.com/signup } + - { source_id: source_datadog_account_access, url: https://docs.datadoghq.com/getting_started/dashboards/ } + - { source_id: source_datadog_terms, url: https://www.datadoghq.com/legal/msa/ } + - { source_id: source_datadog_support, url: https://docs.datadoghq.com/help/ } + - { source_id: source_datadog_billing_checkout, url: https://docs.datadoghq.com/account_management/billing/credit_card/ } + - source_id: source-readiness-2510d2b19b16536149aac000eacc548ecb4f28562ca31c694e0b29c767ba80eb + url: https://docs.datadoghq.com/api/latest/monitors + - source_id: source-readiness-23992904c6b2ab637669394cb6ad93ffada1c2e3a32fb56e0b21bb6294ec519b + url: https://docs.datadoghq.com/account_management/users + - source_id: source-readiness-bd1ac8b328987d87bac6a0d05ad31b3da68d475268173fb9ec0102888368342a + url: https://docs.datadoghq.com/account_management/org_settings +declarations: + - declaration_id: declaration_datadog_api_monitor_operations + scope: + product: { key: datadog-api, name: Datadog API } + funnel: { key: monitor-operations, name: Monitor operations } + assessment_targets: + - target_id: service-use + name: Create and manage Datadog monitors through the API + interface_ids: [monitor-api] + participants: + - { participant_id: datadog, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyh8fpe2hwmmvk3eex1hq433 } } + resources: + - { resource_id: api-reference, uri: https://docs.datadoghq.com/api/latest/, roles: [discovery, operations, documentation], operated_by_participant_id: datadog, standard_bindings: [] } + - { resource_id: service-terms, uri: https://www.datadoghq.com/legal/msa/, roles: [terms], operated_by_participant_id: datadog, standard_bindings: [] } + - { resource_id: pricing, uri: https://www.datadoghq.com/pricing/, roles: [pricing], operated_by_participant_id: datadog, standard_bindings: [] } + - { resource_id: account-signup, uri: https://app.datadoghq.com/signup, roles: [access, documentation], operated_by_participant_id: datadog, standard_bindings: [] } + - { resource_id: account-access-guide, uri: https://docs.datadoghq.com/getting_started/dashboards/, roles: [access, documentation], operated_by_participant_id: datadog, standard_bindings: [] } + - { resource_id: authentication, uri: https://docs.datadoghq.com/api/latest/authentication/, roles: [authentication, descriptor, documentation, provisioning], operated_by_participant_id: datadog, standard_bindings: [] } + - { resource_id: access-material-delivery, uri: https://docs.datadoghq.com/account_management/api-app-keys.md, roles: [authentication, provisioning, status, documentation], operated_by_participant_id: datadog, standard_bindings: [] } + - { resource_id: monitor-operations, uri: https://docs.datadoghq.com/api/latest/monitors/create-a-monitor.md, roles: [provisioning, status, operations, documentation], operated_by_participant_id: datadog, standard_bindings: [] } + - { resource_id: rate-limits, uri: https://docs.datadoghq.com/api/latest/rate-limits/, roles: [status, operations, recovery, documentation], operated_by_participant_id: datadog, standard_bindings: [] } + - { resource_id: support, uri: https://docs.datadoghq.com/help/, roles: [recovery, documentation], operated_by_participant_id: datadog, standard_bindings: [] } + - { resource_id: billing-checkout, uri: https://docs.datadoghq.com/account_management/billing/credit_card/, roles: [checkout, documentation], operated_by_participant_id: datadog, standard_bindings: [] } + - resource_id: readiness-2510d2b19b16536149aac000eacc548ecb4f28562ca31c694e0b29c767ba80eb + uri: https://docs.datadoghq.com/api/latest/monitors + roles: + - documentation + - provisioning + operated_by_participant_id: datadog + standard_bindings: [] + - resource_id: readiness-23992904c6b2ab637669394cb6ad93ffada1c2e3a32fb56e0b21bb6294ec519b + uri: https://docs.datadoghq.com/account_management/users + roles: + - access + - documentation + operated_by_participant_id: datadog + standard_bindings: [] + - resource_id: readiness-bd1ac8b328987d87bac6a0d05ad31b3da68d475268173fb9ec0102888368342a + uri: https://docs.datadoghq.com/account_management/org_settings + roles: + - authentication + - documentation + operated_by_participant_id: datadog + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: https://app.datadoghq.com/signup, transport: http, roles: [registration], operated_by_participant_id: datadog, standard_bindings: [] } + - { endpoint_id: datadog-api, uri: https://api.datadoghq.com/api, transport: http, roles: [service, status], operated_by_participant_id: datadog, standard_bindings: [] } + interfaces: + - { interface_id: monitor-api, modality: network_api, functions: [service_operation], endpoint_ids: [datadog-api], resource_ids: [api-reference, monitor-operations, rate-limits], operated_by_participant_id: datadog, standard_bindings: [] } + - { interface_id: api-authentication, modality: network_api, functions: [authentication], endpoint_ids: [], resource_ids: [authentication], operated_by_participant_id: datadog, standard_bindings: [] } + relations: + - { relation_id: reference-describes-api, kind: describes, from: { node_kind: resource, node_id: api-reference }, to: { node_kind: interface, node_id: monitor-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: api-authentication }, to: { node_kind: interface, node_id: monitor-api } } + - { relation_id: access-material-describes-authentication, kind: describes, from: { node_kind: resource, node_id: access-material-delivery }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: account-signup }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: monitors-describe-api, kind: describes, from: { node_kind: resource, node_id: monitor-operations }, to: { node_kind: interface, node_id: monitor-api } } + - relation_id: relation-describes-8931d3e23334363abd1948f3b345243399c2f98fcc71a09a3f8b0f4f3ece96bb + kind: describes + from: + node_kind: resource + node_id: authentication + to: + node_kind: interface + node_id: api-authentication + - relation_id: relation-describes-ad4036e1186544417550bb7a7ccbb191df08d92cd7745a75fdff094439cd1265 + kind: describes + from: + node_kind: resource + node_id: readiness-2510d2b19b16536149aac000eacc548ecb4f28562ca31c694e0b29c767ba80eb + to: + node_kind: interface + node_id: monitor-api + - relation_id: relation-describes-7d6a5f1c85f0c684188bb93c9bf14a8f05020d26613eb56afee403f066c13c67 + kind: describes + from: + node_kind: resource + node_id: readiness-bd1ac8b328987d87bac6a0d05ad31b3da68d475268173fb9ec0102888368342a + to: + node_kind: interface + node_id: api-authentication + offer_relations: [] + source_bindings: + - source_binding_id: datadog_assessment_target + source_id: source_datadog_monitors + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: datadog-scope, source_id: source_datadog_monitors, target: { node_kind: declaration, node_id: declaration_datadog_api_monitor_operations }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: datadog-participant, source_id: source_datadog_api, target: { node_kind: participant, node_id: datadog }, field_paths: [/roles, /identity] } + - { source_binding_id: datadog-resource-reference, source_id: source_datadog_api, target: { node_kind: resource, node_id: api-reference }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: datadog-resource-terms, source_id: source_datadog_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: datadog-resource-pricing, source_id: source_datadog_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: datadog-resource-signup, source_id: source_datadog_signup, target: { node_kind: resource, node_id: account-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: datadog-resource-account-access, source_id: source_datadog_account_access, target: { node_kind: resource, node_id: account-access-guide }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: datadog-endpoint-registration, source_id: source_datadog_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: datadog-resource-auth, source_id: source_datadog_auth, target: { node_kind: resource, node_id: authentication }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: datadog-resource-access-material, source_id: source_datadog_access_material, target: { node_kind: resource, node_id: access-material-delivery }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: datadog-resource-monitors, source_id: source_datadog_monitors, target: { node_kind: resource, node_id: monitor-operations }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: datadog-resource-limits, source_id: source_datadog_limits, target: { node_kind: resource, node_id: rate-limits }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: datadog-resource-support, source_id: source_datadog_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: datadog-endpoint-api, source_id: source_datadog_api, target: { node_kind: endpoint, node_id: datadog-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: datadog-interface-api, source_id: source_datadog_monitors, target: { node_kind: interface, node_id: monitor-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: datadog-interface-auth, source_id: source_datadog_auth, target: { node_kind: interface, node_id: api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: datadog-relation-reference, source_id: source_datadog_api, target: { node_kind: relation, node_id: reference-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: datadog-relation-auth, source_id: source_datadog_auth, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: datadog-relation-access-material, source_id: source_datadog_access_material, target: { node_kind: relation, node_id: access-material-describes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: datadog-relation-signup, source_id: source_datadog_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: datadog-relation-monitors, source_id: source_datadog_monitors, target: { node_kind: relation, node_id: monitors-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: datadog-resource-billing-checkout, source_id: source_datadog_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: datadog-exclusion-separate-eligibility, source_id: source_datadog_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + - source_binding_id: binding-relation-8931d3e23334363abd1948f3b345243399c2f98fcc71a09a3f8b0f4f3ece96bb + source_id: source_datadog_auth + field_paths: + - /kind + - /from + - /to + target: + node_kind: relation + node_id: relation-describes-8931d3e23334363abd1948f3b345243399c2f98fcc71a09a3f8b0f4f3ece96bb + - source_binding_id: binding-resource-2510d2b19b16536149aac000eacc548ecb4f28562ca31c694e0b29c767ba80eb + source_id: source-readiness-2510d2b19b16536149aac000eacc548ecb4f28562ca31c694e0b29c767ba80eb + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-2510d2b19b16536149aac000eacc548ecb4f28562ca31c694e0b29c767ba80eb + - source_binding_id: binding-relation-ad4036e1186544417550bb7a7ccbb191df08d92cd7745a75fdff094439cd1265 + source_id: source-readiness-2510d2b19b16536149aac000eacc548ecb4f28562ca31c694e0b29c767ba80eb + field_paths: + - /kind + - /from + - /to + target: + node_kind: relation + node_id: relation-describes-ad4036e1186544417550bb7a7ccbb191df08d92cd7745a75fdff094439cd1265 + - source_binding_id: binding-resource-23992904c6b2ab637669394cb6ad93ffada1c2e3a32fb56e0b21bb6294ec519b + source_id: source-readiness-23992904c6b2ab637669394cb6ad93ffada1c2e3a32fb56e0b21bb6294ec519b + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-23992904c6b2ab637669394cb6ad93ffada1c2e3a32fb56e0b21bb6294ec519b + - source_binding_id: binding-resource-bd1ac8b328987d87bac6a0d05ad31b3da68d475268173fb9ec0102888368342a + source_id: source-readiness-bd1ac8b328987d87bac6a0d05ad31b3da68d475268173fb9ec0102888368342a + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-bd1ac8b328987d87bac6a0d05ad31b3da68d475268173fb9ec0102888368342a + - source_binding_id: binding-relation-7d6a5f1c85f0c684188bb93c9bf14a8f05020d26613eb56afee403f066c13c67 + source_id: source-readiness-bd1ac8b328987d87bac6a0d05ad31b3da68d475268173fb9ec0102888368342a + field_paths: + - /kind + - /from + - /to + target: + node_kind: relation + node_id: relation-describes-7d6a5f1c85f0c684188bb93c9bf14a8f05020d26613eb56afee403f066c13c67 + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z diff --git a/entities/di/digitalocean.yaml b/entities/di/digitalocean.yaml new file mode 100644 index 0000000..d17759e --- /dev/null +++ b/entities/di/digitalocean.yaml @@ -0,0 +1,86 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8fpe29kn3bm05h7kyqyka + slug: digitalocean + slug_aliases: [] + name: DigitalOcean + domains: + - value: digitalocean.com + role: primary + valid_from: 2026-07-27T07:40:57.443Z + category: hosting-infra +sources: + - { source_id: source_digitalocean_api, url: https://docs.digitalocean.com/reference/api/ } + - { source_id: source_digitalocean_reference, url: https://docs.digitalocean.com/reference/api/reference/public-apis/ } + - { source_id: source_digitalocean_tokens, url: https://docs.digitalocean.com/reference/api/create-personal-access-token/ } + - { source_id: source_digitalocean_droplets, url: https://docs.digitalocean.com/products/droplets/how-to/create/ } + - { source_id: source_digitalocean_account_access, url: https://docs.digitalocean.com/products/droplets/getting-started/recommended-droplet-setup/ } + - { source_id: source_digitalocean_pricing, url: https://www.digitalocean.com/pricing } + - { source_id: source_digitalocean_signup, url: https://cloud.digitalocean.com/registrations/new } + - { source_id: source_digitalocean_terms, url: https://www.digitalocean.com/legal/terms-of-service-agreement } + - { source_id: source_digitalocean_support, url: https://docs.digitalocean.com/support/ } + - { source_id: source_digitalocean_billing_checkout, url: https://docs.digitalocean.com/platform/billing/manage-payment-methods/ } +declarations: + - declaration_id: declaration_digitalocean_api_resource_management + scope: + product: { key: digitalocean-cloud, name: DigitalOcean Cloud } + funnel: { key: api-resource-management, name: API resource management } + assessment_targets: + - target_id: service-use + name: Create and manage DigitalOcean Droplets through the API + interface_ids: [resource-api] + participants: + - { participant_id: digitalocean, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyh8fpe29kn3bm05h7kyqyka } } + resources: + - { resource_id: api-overview, uri: https://docs.digitalocean.com/reference/api/, roles: [discovery, operations, documentation], operated_by_participant_id: digitalocean, standard_bindings: [] } + - { resource_id: service-terms, uri: https://www.digitalocean.com/legal/terms-of-service-agreement, roles: [terms], operated_by_participant_id: digitalocean, standard_bindings: [] } + - { resource_id: pricing, uri: https://www.digitalocean.com/pricing, roles: [pricing], operated_by_participant_id: digitalocean, standard_bindings: [] } + - { resource_id: cloud-signup, uri: https://cloud.digitalocean.com/registrations/new, roles: [access], operated_by_participant_id: digitalocean, standard_bindings: [] } + - { resource_id: account-access-guide, uri: https://docs.digitalocean.com/products/droplets/getting-started/recommended-droplet-setup/, roles: [access, documentation], operated_by_participant_id: digitalocean, standard_bindings: [] } + - { resource_id: personal-access-tokens, uri: https://docs.digitalocean.com/reference/api/create-personal-access-token/, roles: [authentication, descriptor, provisioning, documentation], operated_by_participant_id: digitalocean, standard_bindings: [] } + - { resource_id: droplet-provisioning, uri: https://docs.digitalocean.com/products/droplets/how-to/create/, roles: [provisioning, status, operations, documentation], operated_by_participant_id: digitalocean, standard_bindings: [] } + - { resource_id: api-reference, uri: https://docs.digitalocean.com/reference/api/reference/public-apis/, roles: [status, operations, recovery, documentation], operated_by_participant_id: digitalocean, standard_bindings: [] } + - { resource_id: support, uri: https://docs.digitalocean.com/support/, roles: [recovery, documentation], operated_by_participant_id: digitalocean, standard_bindings: [] } + - { resource_id: billing-checkout, uri: https://docs.digitalocean.com/platform/billing/manage-payment-methods/, roles: [checkout, documentation], operated_by_participant_id: digitalocean, standard_bindings: [] } + endpoints: + - { endpoint_id: registration, uri: https://cloud.digitalocean.com/registrations/new, transport: http, roles: [registration], operated_by_participant_id: digitalocean, standard_bindings: [] } + - { endpoint_id: digitalocean-api, uri: https://api.digitalocean.com/v2, transport: http, roles: [service, status], operated_by_participant_id: digitalocean, standard_bindings: [] } + interfaces: + - { interface_id: resource-api, modality: network_api, functions: [service_operation], endpoint_ids: [digitalocean-api], resource_ids: [api-overview, api-reference, droplet-provisioning], operated_by_participant_id: digitalocean, standard_bindings: [] } + - { interface_id: api-authentication, modality: network_api, functions: [authentication], endpoint_ids: [], resource_ids: [personal-access-tokens], operated_by_participant_id: digitalocean, standard_bindings: [] } + relations: + - { relation_id: overview-describes-api, kind: describes, from: { node_kind: resource, node_id: api-overview }, to: { node_kind: interface, node_id: resource-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: api-authentication }, to: { node_kind: interface, node_id: resource-api } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: cloud-signup }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: provisioning-describes-api, kind: describes, from: { node_kind: resource, node_id: droplet-provisioning }, to: { node_kind: interface, node_id: resource-api } } + offer_relations: [] + source_bindings: + - source_binding_id: digitalocean_assessment_target + source_id: source_digitalocean_api + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: digitalocean-scope, source_id: source_digitalocean_api, target: { node_kind: declaration, node_id: declaration_digitalocean_api_resource_management }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: digitalocean-participant, source_id: source_digitalocean_api, target: { node_kind: participant, node_id: digitalocean }, field_paths: [/roles, /identity] } + - { source_binding_id: digitalocean-resource-overview, source_id: source_digitalocean_api, target: { node_kind: resource, node_id: api-overview }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: digitalocean-resource-terms, source_id: source_digitalocean_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: digitalocean-resource-pricing, source_id: source_digitalocean_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: digitalocean-resource-signup, source_id: source_digitalocean_signup, target: { node_kind: resource, node_id: cloud-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: digitalocean-resource-account-access, source_id: source_digitalocean_account_access, target: { node_kind: resource, node_id: account-access-guide }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: digitalocean-endpoint-registration, source_id: source_digitalocean_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: digitalocean-resource-tokens, source_id: source_digitalocean_tokens, target: { node_kind: resource, node_id: personal-access-tokens }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: digitalocean-resource-droplets, source_id: source_digitalocean_droplets, target: { node_kind: resource, node_id: droplet-provisioning }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: digitalocean-resource-reference, source_id: source_digitalocean_reference, target: { node_kind: resource, node_id: api-reference }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: digitalocean-resource-support, source_id: source_digitalocean_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: digitalocean-endpoint-api, source_id: source_digitalocean_reference, target: { node_kind: endpoint, node_id: digitalocean-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: digitalocean-interface-api, source_id: source_digitalocean_api, target: { node_kind: interface, node_id: resource-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: digitalocean-interface-auth, source_id: source_digitalocean_tokens, target: { node_kind: interface, node_id: api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: digitalocean-relation-overview, source_id: source_digitalocean_api, target: { node_kind: relation, node_id: overview-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: digitalocean-relation-auth, source_id: source_digitalocean_tokens, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: digitalocean-relation-signup, source_id: source_digitalocean_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: digitalocean-relation-provisioning, source_id: source_digitalocean_droplets, target: { node_kind: relation, node_id: provisioning-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: digitalocean-resource-billing-checkout, source_id: source_digitalocean_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: digitalocean-exclusion-separate-eligibility, source_id: source_digitalocean_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z diff --git a/entities/gi/github.yaml b/entities/gi/github.yaml new file mode 100644 index 0000000..0b83b40 --- /dev/null +++ b/entities/gi/github.yaml @@ -0,0 +1,274 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8fpe3xgjjktffez1t34rn + slug: github + slug_aliases: [] + name: GitHub + domains: + - value: github.com + role: primary + valid_from: 2026-07-27T07:36:31.590Z + category: devtools-other +sources: + - { source_id: source_github_rest, url: https://docs.github.com/en/rest } + - { source_id: source_github_api_versions, url: "https://docs.github.com/en/rest/meta/meta?apiVersion=2026-03-10" } + - { source_id: source_github_auth, url: "https://docs.github.com/en/rest/authentication/authenticating-to-the-rest-api?apiVersion=2026-03-10" } + - { source_id: source_github_repositories, url: "https://docs.github.com/en/rest/repos/repos?apiVersion=2026-03-10" } + - { source_id: source_github_limits, url: https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api } + - { source_id: source_github_errors, url: https://docs.github.com/en/rest/using-the-rest-api/troubleshooting-the-rest-api } + - { source_id: source_github_pricing, url: https://github.com/pricing } + - { source_id: source_github_signup, url: https://github.com/signup } + - { source_id: source_github_terms, url: https://docs.github.com/en/site-policy/github-terms/github-terms-of-service } + - { source_id: source_github_support, url: https://support.github.com/ } + - { source_id: source_github_billing_checkout, url: https://docs.github.com/en/billing/how-tos/manage-plan-and-licenses/upgrade-plan } + - source_id: source-readiness-84f7c6a9cbd0ddb3894bfc8e8f683912f976ff3f81d9c876a991c820f941f5a4 + url: https://docs.github.com/en/get-started/start-your-journey/creating-an-account-on-github + - source_id: source-readiness-f867e853c07445bd6dd0ae50798b4fbbc4ef188327ba924a55ea9570e8b772bf + url: https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app + - source_id: source-readiness-fa223501e9d5b0e1e036c133ac492ac85e4f34ddae80c84c00750d943c5df22d + url: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation + - source_id: source-readiness-95d77362fd899c300c1f448b97f23506087073a3e419a630603bc05f3b89eb42 + url: https://docs.github.com/en/billing/concepts/impact-of-plan-changes + - { source_id: source_github_enterprise_overview, url: https://docs.github.com/en/enterprise-server@3.21/admin/overview/about-github-enterprise-server } + - { source_id: source_github_enterprise_trial, url: https://docs.github.com/en/enterprise-server@3.21/admin/overview/setting-up-a-trial-of-github-enterprise-server } + - { source_id: source_github_enterprise_billing, url: https://docs.github.com/en/enterprise-server@3.21/billing/concepts/enterprise-billing/billing-for-enterprises } + - { source_id: source_github_enterprise_combined_use, url: https://docs.github.com/en/enterprise-server@3.21/billing/concepts/enterprise-billing/combined-enterprise-use } + - { source_id: source_github_enterprise_pricing, url: https://github.com/pricing } + - { source_id: source_github_enterprise_license, url: https://docs.github.com/en/enterprise-server@3.21/billing/how-tos/manage-server-licenses/download-your-license } + - { source_id: source_github_enterprise_license_upload, url: https://docs.github.com/en/enterprise-server@3.21/billing/how-tos/manage-server-licenses/upload-new-license } + - { source_id: source_github_enterprise_rest, url: https://docs.github.com/en/enterprise-server@3.21/rest } + - { source_id: source_github_enterprise_repositories, url: https://docs.github.com/en/enterprise-server@3.21/rest/repos/repos } + - { source_id: source_github_enterprise_auth, url: https://docs.github.com/en/enterprise-server@3.21/rest/authentication/authenticating-to-the-rest-api } + - { source_id: source_github_enterprise_errors, url: https://docs.github.com/en/enterprise-server@3.21/rest/using-the-rest-api/troubleshooting-the-rest-api } + - { source_id: source_github_enterprise_limits, url: https://docs.github.com/en/enterprise-server@3.21/rest/using-the-rest-api/rate-limits-for-the-rest-api } + - { source_id: source_github_enterprise_token_lifecycle, url: https://docs.github.com/en/enterprise-server@3.21/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation } +declarations: + - declaration_id: declaration_github_rest_repository_operations + scope: + product: { key: github-rest-api, name: GitHub REST API } + funnel: { key: repository-operations, name: Repository operations } + assessment_targets: + - target_id: service-use + name: Create and manage GitHub repositories through the REST API + interface_ids: [repository-api] + participants: + - { participant_id: github, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyh8fpe3xgjjktffez1t34rn } } + resources: + - { resource_id: rest-api, uri: https://docs.github.com/en/rest, roles: [discovery, operations, documentation], operated_by_participant_id: github, standard_bindings: [] } + - { resource_id: api-versions, uri: https://api.github.com/versions, roles: [descriptor, status], operated_by_participant_id: github, standard_bindings: [] } + - { resource_id: service-terms, uri: https://docs.github.com/en/site-policy/github-terms/github-terms-of-service, roles: [terms], operated_by_participant_id: github, standard_bindings: [] } + - { resource_id: pricing, uri: https://github.com/pricing, roles: [documentation, pricing], operated_by_participant_id: github, standard_bindings: [] } + - { resource_id: account-signup, uri: https://github.com/signup, roles: [access], operated_by_participant_id: github, standard_bindings: [] } + - { resource_id: authentication, uri: "https://docs.github.com/en/rest/authentication/authenticating-to-the-rest-api?apiVersion=2026-03-10", roles: [authentication, descriptor, provisioning, documentation], operated_by_participant_id: github, standard_bindings: [] } + - { resource_id: repository-operations, uri: "https://docs.github.com/en/rest/repos/repos?apiVersion=2026-03-10", roles: [provisioning, status, operations, documentation], operated_by_participant_id: github, standard_bindings: [] } + - { resource_id: rate-limits, uri: https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api, roles: [status, operations, documentation], operated_by_participant_id: github, standard_bindings: [] } + - { resource_id: troubleshooting, uri: https://docs.github.com/en/rest/using-the-rest-api/troubleshooting-the-rest-api, roles: [status, operations, recovery, documentation], operated_by_participant_id: github, standard_bindings: [] } + - { resource_id: support, uri: https://support.github.com/, roles: [recovery, documentation], operated_by_participant_id: github, standard_bindings: [] } + - { resource_id: billing-checkout, uri: https://docs.github.com/en/billing/how-tos/manage-plan-and-licenses/upgrade-plan, roles: [checkout, documentation], operated_by_participant_id: github, standard_bindings: [] } + - resource_id: readiness-84f7c6a9cbd0ddb3894bfc8e8f683912f976ff3f81d9c876a991c820f941f5a4 + uri: https://docs.github.com/en/get-started/start-your-journey/creating-an-account-on-github + roles: + - access + - documentation + operated_by_participant_id: github + standard_bindings: [] + - resource_id: readiness-f867e853c07445bd6dd0ae50798b4fbbc4ef188327ba924a55ea9570e8b772bf + uri: https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app + roles: + - authentication + - documentation + operated_by_participant_id: github + standard_bindings: [] + - resource_id: readiness-fa223501e9d5b0e1e036c133ac492ac85e4f34ddae80c84c00750d943c5df22d + uri: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation + roles: + - authentication + - documentation + operated_by_participant_id: github + standard_bindings: [] + - resource_id: readiness-95d77362fd899c300c1f448b97f23506087073a3e419a630603bc05f3b89eb42 + uri: https://docs.github.com/en/billing/concepts/impact-of-plan-changes + roles: + - documentation + - pricing + operated_by_participant_id: github + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: https://github.com/signup, transport: http, roles: [registration], operated_by_participant_id: github, standard_bindings: [] } + - { endpoint_id: github-api, uri: https://api.github.com, transport: http, roles: [service, status], operated_by_participant_id: github, standard_bindings: [] } + interfaces: + - { interface_id: repository-api, modality: network_api, functions: [service_operation], endpoint_ids: [github-api], resource_ids: [rest-api, repository-operations, rate-limits, troubleshooting], operated_by_participant_id: github, standard_bindings: [] } + - { interface_id: api-authentication, modality: network_api, functions: [authentication], endpoint_ids: [], resource_ids: [authentication], operated_by_participant_id: github, standard_bindings: [] } + relations: + - { relation_id: rest-describes-api, kind: describes, from: { node_kind: resource, node_id: rest-api }, to: { node_kind: interface, node_id: repository-api } } + - { relation_id: api-versions-describe-api, kind: describes, from: { node_kind: resource, node_id: api-versions }, to: { node_kind: interface, node_id: repository-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: api-authentication }, to: { node_kind: interface, node_id: repository-api } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: account-signup }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: repository-docs-describe-api, kind: describes, from: { node_kind: resource, node_id: repository-operations }, to: { node_kind: interface, node_id: repository-api } } + - relation_id: relation-describes-b89359e774bb9820b9086ea0765f3845898f0e18b10eb3b73d4687dcdfa31509 + kind: describes + from: + node_kind: resource + node_id: readiness-f867e853c07445bd6dd0ae50798b4fbbc4ef188327ba924a55ea9570e8b772bf + to: + node_kind: interface + node_id: api-authentication + - relation_id: relation-describes-3bdc2359067fbad866b74feffe97cfc028acfd5b0c8af44807854b8247bd4ab1 + kind: describes + from: + node_kind: resource + node_id: readiness-fa223501e9d5b0e1e036c133ac492ac85e4f34ddae80c84c00750d943c5df22d + to: + node_kind: interface + node_id: api-authentication + offer_relations: [] + source_bindings: + - source_binding_id: github_assessment_target + source_id: source_github_repositories + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: github-scope, source_id: source_github_repositories, target: { node_kind: declaration, node_id: declaration_github_rest_repository_operations }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: github-participant, source_id: source_github_rest, target: { node_kind: participant, node_id: github }, field_paths: [/roles, /identity] } + - { source_binding_id: github-resource-rest, source_id: source_github_rest, target: { node_kind: resource, node_id: rest-api }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: github-resource-api-versions, source_id: source_github_api_versions, target: { node_kind: resource, node_id: api-versions }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: github-resource-terms, source_id: source_github_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: github-resource-pricing, source_id: source_github_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: github-resource-signup, source_id: source_github_signup, target: { node_kind: resource, node_id: account-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: github-endpoint-registration, source_id: source_github_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: github-resource-auth, source_id: source_github_auth, target: { node_kind: resource, node_id: authentication }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: github-resource-repositories, source_id: source_github_repositories, target: { node_kind: resource, node_id: repository-operations }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: github-resource-limits, source_id: source_github_limits, target: { node_kind: resource, node_id: rate-limits }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: github-resource-errors, source_id: source_github_errors, target: { node_kind: resource, node_id: troubleshooting }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: github-resource-support, source_id: source_github_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: github-endpoint-api, source_id: source_github_rest, target: { node_kind: endpoint, node_id: github-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: github-interface-api, source_id: source_github_repositories, target: { node_kind: interface, node_id: repository-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: github-interface-auth, source_id: source_github_auth, target: { node_kind: interface, node_id: api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: github-relation-rest, source_id: source_github_rest, target: { node_kind: relation, node_id: rest-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: github-relation-api-versions, source_id: source_github_api_versions, target: { node_kind: relation, node_id: api-versions-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: github-relation-auth, source_id: source_github_auth, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: github-relation-signup, source_id: source_github_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: github-relation-repositories, source_id: source_github_repositories, target: { node_kind: relation, node_id: repository-docs-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: github-resource-billing-checkout, source_id: source_github_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: github-exclusion-separate-eligibility, source_id: source_github_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + - source_binding_id: binding-resource-84f7c6a9cbd0ddb3894bfc8e8f683912f976ff3f81d9c876a991c820f941f5a4 + source_id: source-readiness-84f7c6a9cbd0ddb3894bfc8e8f683912f976ff3f81d9c876a991c820f941f5a4 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-84f7c6a9cbd0ddb3894bfc8e8f683912f976ff3f81d9c876a991c820f941f5a4 + - source_binding_id: binding-resource-f867e853c07445bd6dd0ae50798b4fbbc4ef188327ba924a55ea9570e8b772bf + source_id: source-readiness-f867e853c07445bd6dd0ae50798b4fbbc4ef188327ba924a55ea9570e8b772bf + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-f867e853c07445bd6dd0ae50798b4fbbc4ef188327ba924a55ea9570e8b772bf + - source_binding_id: binding-relation-b89359e774bb9820b9086ea0765f3845898f0e18b10eb3b73d4687dcdfa31509 + source_id: source-readiness-f867e853c07445bd6dd0ae50798b4fbbc4ef188327ba924a55ea9570e8b772bf + field_paths: + - /kind + - /from + - /to + target: + node_kind: relation + node_id: relation-describes-b89359e774bb9820b9086ea0765f3845898f0e18b10eb3b73d4687dcdfa31509 + - source_binding_id: binding-resource-fa223501e9d5b0e1e036c133ac492ac85e4f34ddae80c84c00750d943c5df22d + source_id: source-readiness-fa223501e9d5b0e1e036c133ac492ac85e4f34ddae80c84c00750d943c5df22d + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-fa223501e9d5b0e1e036c133ac492ac85e4f34ddae80c84c00750d943c5df22d + - source_binding_id: binding-relation-3bdc2359067fbad866b74feffe97cfc028acfd5b0c8af44807854b8247bd4ab1 + source_id: source-readiness-fa223501e9d5b0e1e036c133ac492ac85e4f34ddae80c84c00750d943c5df22d + field_paths: + - /kind + - /from + - /to + target: + node_kind: relation + node_id: relation-describes-3bdc2359067fbad866b74feffe97cfc028acfd5b0c8af44807854b8247bd4ab1 + - source_binding_id: binding-resource-95d77362fd899c300c1f448b97f23506087073a3e419a630603bc05f3b89eb42 + source_id: source-readiness-95d77362fd899c300c1f448b97f23506087073a3e419a630603bc05f3b89eb42 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-95d77362fd899c300c1f448b97f23506087073a3e419a630603bc05f3b89eb42 + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z + - declaration_id: declaration_github_enterprise_server_repository_operations + scope: + product: { key: github-enterprise-server-3-21, name: GitHub Enterprise Server 3.21 } + funnel: { key: repository-operations, name: Repository operations } + assessment_targets: + - target_id: service-use + name: Create and manage repositories on an authorized GitHub Enterprise Server instance through the REST API + interface_ids: [enterprise-repository-api] + participants: + - { participant_id: github-enterprise, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyh8fpe3xgjjktffez1t34rn } } + resources: + - { resource_id: enterprise-overview, uri: https://docs.github.com/en/enterprise-server@3.21/admin/overview/about-github-enterprise-server, roles: [discovery, documentation], operated_by_participant_id: github-enterprise, standard_bindings: [] } + - { resource_id: enterprise-terms, uri: https://docs.github.com/en/site-policy/github-terms/github-terms-of-service, roles: [terms], operated_by_participant_id: github-enterprise, standard_bindings: [] } + - { resource_id: enterprise-billing, uri: https://docs.github.com/en/enterprise-server@3.21/billing/concepts/enterprise-billing/billing-for-enterprises, roles: [pricing], operated_by_participant_id: github-enterprise, standard_bindings: [] } + - { resource_id: enterprise-combined-use, uri: https://docs.github.com/en/enterprise-server@3.21/billing/concepts/enterprise-billing/combined-enterprise-use, roles: [eligibility, pricing], operated_by_participant_id: github-enterprise, standard_bindings: [] } + - { resource_id: enterprise-pricing, uri: https://github.com/pricing, roles: [pricing], operated_by_participant_id: github-enterprise, standard_bindings: [] } + - { resource_id: enterprise-trial, uri: https://docs.github.com/en/enterprise-server@3.21/admin/overview/setting-up-a-trial-of-github-enterprise-server, roles: [access, documentation], operated_by_participant_id: github-enterprise, standard_bindings: [] } + - { resource_id: enterprise-license-acquisition, uri: https://docs.github.com/en/enterprise-server@3.21/billing/how-tos/manage-server-licenses/download-your-license, roles: [access, checkout, documentation], operated_by_participant_id: github-enterprise, standard_bindings: [] } + - { resource_id: enterprise-license-upload, uri: https://docs.github.com/en/enterprise-server@3.21/billing/how-tos/manage-server-licenses/upload-new-license, roles: [provisioning, status, documentation], operated_by_participant_id: github-enterprise, standard_bindings: [] } + - { resource_id: enterprise-rest, uri: https://docs.github.com/en/enterprise-server@3.21/rest, roles: [discovery, operations, documentation], operated_by_participant_id: github-enterprise, standard_bindings: [] } + - { resource_id: enterprise-repositories, uri: https://docs.github.com/en/enterprise-server@3.21/rest/repos/repos, roles: [provisioning, status, operations, documentation], operated_by_participant_id: github-enterprise, standard_bindings: [] } + - { resource_id: enterprise-authentication, uri: https://docs.github.com/en/enterprise-server@3.21/rest/authentication/authenticating-to-the-rest-api, roles: [authentication, descriptor, provisioning, documentation], operated_by_participant_id: github-enterprise, standard_bindings: [] } + - { resource_id: enterprise-errors, uri: https://docs.github.com/en/enterprise-server@3.21/rest/using-the-rest-api/troubleshooting-the-rest-api, roles: [status, operations, recovery, documentation], operated_by_participant_id: github-enterprise, standard_bindings: [] } + - { resource_id: enterprise-limits, uri: https://docs.github.com/en/enterprise-server@3.21/rest/using-the-rest-api/rate-limits-for-the-rest-api, roles: [status, operations, documentation], operated_by_participant_id: github-enterprise, standard_bindings: [] } + - { resource_id: enterprise-token-lifecycle, uri: https://docs.github.com/en/enterprise-server@3.21/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation, roles: [authentication, recovery, documentation], operated_by_participant_id: github-enterprise, standard_bindings: [] } + endpoints: [] + interfaces: + - { interface_id: enterprise-repository-api, modality: network_api, functions: [service_operation], endpoint_ids: [], resource_ids: [enterprise-rest, enterprise-repositories, enterprise-errors, enterprise-limits], operated_by_participant_id: github-enterprise, standard_bindings: [] } + - { interface_id: enterprise-api-authentication, modality: network_api, functions: [authentication], endpoint_ids: [], resource_ids: [enterprise-authentication, enterprise-token-lifecycle], operated_by_participant_id: github-enterprise, standard_bindings: [] } + relations: + - { relation_id: enterprise-rest-describes-api, kind: describes, from: { node_kind: resource, node_id: enterprise-rest }, to: { node_kind: interface, node_id: enterprise-repository-api } } + - { relation_id: enterprise-repositories-describe-api, kind: describes, from: { node_kind: resource, node_id: enterprise-repositories }, to: { node_kind: interface, node_id: enterprise-repository-api } } + - { relation_id: enterprise-authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: enterprise-api-authentication }, to: { node_kind: interface, node_id: enterprise-repository-api } } + - { relation_id: enterprise-trial-precedes-license, kind: precedes, from: { node_kind: resource, node_id: enterprise-trial }, to: { node_kind: resource, node_id: enterprise-license-upload } } + - { relation_id: enterprise-license-precedes-api, kind: precedes, from: { node_kind: resource, node_id: enterprise-license-upload }, to: { node_kind: interface, node_id: enterprise-repository-api } } + offer_relations: [] + source_bindings: + - { source_binding_id: enterprise-scope, source_id: source_github_enterprise_overview, target: { node_kind: declaration, node_id: declaration_github_enterprise_server_repository_operations }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: enterprise-target, source_id: source_github_enterprise_repositories, target: { node_kind: assessment_target, node_id: service-use }, field_paths: [/name, /interface_ids] } + - { source_binding_id: enterprise-participant, source_id: source_github_enterprise_overview, target: { node_kind: participant, node_id: github-enterprise }, field_paths: [/roles, /identity] } + - { source_binding_id: enterprise-resource-overview, source_id: source_github_enterprise_overview, target: { node_kind: resource, node_id: enterprise-overview }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: enterprise-resource-terms, source_id: source_github_terms, target: { node_kind: resource, node_id: enterprise-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: enterprise-resource-billing, source_id: source_github_enterprise_billing, target: { node_kind: resource, node_id: enterprise-billing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: enterprise-resource-combined-use, source_id: source_github_enterprise_combined_use, target: { node_kind: resource, node_id: enterprise-combined-use }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: enterprise-resource-pricing, source_id: source_github_enterprise_pricing, target: { node_kind: resource, node_id: enterprise-pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: enterprise-resource-trial, source_id: source_github_enterprise_trial, target: { node_kind: resource, node_id: enterprise-trial }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: enterprise-resource-license-acquisition, source_id: source_github_enterprise_license, target: { node_kind: resource, node_id: enterprise-license-acquisition }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: enterprise-resource-license-upload, source_id: source_github_enterprise_license_upload, target: { node_kind: resource, node_id: enterprise-license-upload }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: enterprise-resource-rest, source_id: source_github_enterprise_rest, target: { node_kind: resource, node_id: enterprise-rest }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: enterprise-resource-repositories, source_id: source_github_enterprise_repositories, target: { node_kind: resource, node_id: enterprise-repositories }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: enterprise-resource-authentication, source_id: source_github_enterprise_auth, target: { node_kind: resource, node_id: enterprise-authentication }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: enterprise-resource-errors, source_id: source_github_enterprise_errors, target: { node_kind: resource, node_id: enterprise-errors }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: enterprise-resource-limits, source_id: source_github_enterprise_limits, target: { node_kind: resource, node_id: enterprise-limits }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: enterprise-resource-token-lifecycle, source_id: source_github_enterprise_token_lifecycle, target: { node_kind: resource, node_id: enterprise-token-lifecycle }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: enterprise-interface-api, source_id: source_github_enterprise_rest, target: { node_kind: interface, node_id: enterprise-repository-api }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: enterprise-interface-authentication, source_id: source_github_enterprise_auth, target: { node_kind: interface, node_id: enterprise-api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: enterprise-relation-rest, source_id: source_github_enterprise_rest, target: { node_kind: relation, node_id: enterprise-rest-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: enterprise-relation-repositories, source_id: source_github_enterprise_repositories, target: { node_kind: relation, node_id: enterprise-repositories-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: enterprise-relation-authentication, source_id: source_github_enterprise_auth, target: { node_kind: relation, node_id: enterprise-authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: enterprise-relation-trial-license, source_id: source_github_enterprise_trial, target: { node_kind: relation, node_id: enterprise-trial-precedes-license }, field_paths: [/kind, /from, /to] } + - { source_binding_id: enterprise-relation-license-api, source_id: source_github_enterprise_license_upload, target: { node_kind: relation, node_id: enterprise-license-precedes-api }, field_paths: [/kind, /from, /to] } + surface_exclusions: [] + authority_intent: community + declared_at: 2026-08-20T06:15:00.000Z diff --git a/entities/go/google-cloud.yaml b/entities/go/google-cloud.yaml new file mode 100644 index 0000000..f0526b5 --- /dev/null +++ b/entities/go/google-cloud.yaml @@ -0,0 +1,393 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8fpe210m3jqn5xgzztgv8 + slug: google-cloud + slug_aliases: [] + name: Google Cloud + domains: + - value: cloud.google.com + role: primary + valid_from: 2026-07-27T07:35:54.326Z + category: hosting-infra +sources: + - source_id: source_google_cloud_overview + url: https://docs.cloud.google.com/docs/overview + - source_id: source_google_cloud_service_terms + url: https://cloud.google.com/terms/service-terms + - source_id: source_google_cloud_pricing + url: https://cloud.google.com/resource-manager/pricing + - source_id: source_google_cloud_account_setup + url: https://cloud.google.com/free + - source_id: source_google_resource_manager_rest + url: https://docs.cloud.google.com/resource-manager/reference/rest + - source_id: source_google_resource_manager_create + url: https://docs.cloud.google.com/resource-manager/reference/rest/v3/projects/create + - source_id: source_google_resource_manager_status + url: https://docs.cloud.google.com/resource-manager/reference/rest/v3/operations/get + - source_id: source_google_api_discovery + url: https://docs.cloud.google.com/docs/discovery/use-api + - source_id: source_google_rest_authentication + url: https://docs.cloud.google.com/docs/authentication/rest + - source_id: source_google_workload_identity + url: https://docs.cloud.google.com/iam/docs/workload-identity-federation + - source_id: source_google_billing_api + url: https://docs.cloud.google.com/billing/docs/reference/rest + - source_id: source_google_billing_development + url: https://docs.cloud.google.com/billing/docs/apis + - source_id: source_google_resource_manager_quotas + url: https://docs.cloud.google.com/resource-manager/docs/limits + - source_id: source_google_resource_manager_errors + url: https://docs.cloud.google.com/resource-manager/docs/core_errors + - source_id: source_google_cloud_support + url: https://docs.cloud.google.com/support/docs + - { source_id: source_google_cloud_billing_checkout, url: https://docs.cloud.google.com/billing/docs/how-to/payment-methods } + - source_id: source-readiness-a724fa3120826ef2ffa40e6507b02369fbbb1930da0be31b4cd064ff71f158b5 + url: https://docs.cloud.google.com/billing/docs/how-to/manage-billing-account + - source_id: source-readiness-bb14655b5e870879563fab4d990f6cd2727d9acddac03d9b966b396f433f84e9 + url: https://docs.cloud.google.com/free/docs/free-cloud-features +declarations: + - declaration_id: declaration_google_cloud_api_resource_management + scope: + product: + key: google-cloud + name: Google Cloud + funnel: + key: api-resource-management + name: API resource management + assessment_targets: + - target_id: service-use + name: Create and reconcile Google Cloud projects through the API + interface_ids: [resource-manager] + - target_id: cost-visibility + name: Google Cloud cost visibility + interface_ids: [cloud-billing] + participants: + - participant_id: google-cloud + roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider] + identity: + entity_id: ent_01kyh8fpe210m3jqn5xgzztgv8 + resources: + - resource_id: cloud-overview + uri: https://docs.cloud.google.com/docs/overview + roles: [discovery, documentation] + operated_by_participant_id: google-cloud + standard_bindings: [] + - resource_id: service-terms + uri: https://cloud.google.com/terms/service-terms + roles: [terms] + operated_by_participant_id: google-cloud + standard_bindings: [] + - resource_id: pricing + uri: https://cloud.google.com/resource-manager/pricing + roles: [pricing] + operated_by_participant_id: google-cloud + standard_bindings: [] + - resource_id: account-setup + uri: https://cloud.google.com/free + roles: [access] + operated_by_participant_id: google-cloud + standard_bindings: [] + - resource_id: resource-manager-rest + uri: https://docs.cloud.google.com/resource-manager/reference/rest + roles: [discovery, provisioning, operations, documentation] + operated_by_participant_id: google-cloud + standard_bindings: [] + - resource_id: project-create-api + uri: https://docs.cloud.google.com/resource-manager/reference/rest/v3/projects/create + roles: [provisioning, documentation] + operated_by_participant_id: google-cloud + standard_bindings: [] + - resource_id: operation-status-api + uri: https://docs.cloud.google.com/resource-manager/reference/rest/v3/operations/get + roles: [provisioning, status, recovery, documentation] + operated_by_participant_id: google-cloud + standard_bindings: [] + - resource_id: api-discovery + uri: https://docs.cloud.google.com/docs/discovery/use-api + roles: [descriptor, documentation] + operated_by_participant_id: google-cloud + standard_bindings: [] + - resource_id: rest-authentication + uri: https://docs.cloud.google.com/docs/authentication/rest + roles: [authentication, descriptor, documentation] + operated_by_participant_id: google-cloud + standard_bindings: [] + - resource_id: workload-identity + uri: https://docs.cloud.google.com/iam/docs/workload-identity-federation + roles: [authentication, descriptor, documentation] + operated_by_participant_id: google-cloud + standard_bindings: + - namespace: oauth + version: "2.0" + relation: uses + - namespace: openid-connect + version: "1.0" + relation: uses + - resource_id: billing-api-reference + uri: https://docs.cloud.google.com/billing/docs/reference/rest + roles: [pricing, operations, status, documentation] + operated_by_participant_id: google-cloud + standard_bindings: [] + - resource_id: billing-api-guide + uri: https://docs.cloud.google.com/billing/docs/apis + roles: [checkout, operations, documentation] + operated_by_participant_id: google-cloud + standard_bindings: [] + - resource_id: resource-manager-limits + uri: https://docs.cloud.google.com/resource-manager/docs/limits + roles: [operations, documentation] + operated_by_participant_id: google-cloud + standard_bindings: [] + - resource_id: resource-manager-errors + uri: https://docs.cloud.google.com/resource-manager/docs/core_errors + roles: [operations, recovery, documentation] + operated_by_participant_id: google-cloud + standard_bindings: [] + - resource_id: cloud-support + uri: https://docs.cloud.google.com/support/docs + roles: [recovery, documentation] + operated_by_participant_id: google-cloud + standard_bindings: [] + - { resource_id: billing-checkout, uri: https://docs.cloud.google.com/billing/docs/how-to/payment-methods, roles: [checkout, documentation], operated_by_participant_id: google-cloud, standard_bindings: [] } + - resource_id: readiness-a724fa3120826ef2ffa40e6507b02369fbbb1930da0be31b4cd064ff71f158b5 + uri: https://docs.cloud.google.com/billing/docs/how-to/manage-billing-account + roles: + - checkout + - documentation + operated_by_participant_id: google-cloud + standard_bindings: [] + - resource_id: readiness-bb14655b5e870879563fab4d990f6cd2727d9acddac03d9b966b396f433f84e9 + uri: https://docs.cloud.google.com/free/docs/free-cloud-features + roles: + - documentation + - eligibility + operated_by_participant_id: google-cloud + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: https://cloud.google.com/free, transport: http, roles: [registration], operated_by_participant_id: google-cloud, standard_bindings: [] } + - endpoint_id: resource-manager-api + uri: https://cloudresourcemanager.googleapis.com + transport: http + roles: [service, status] + operated_by_participant_id: google-cloud + standard_bindings: [] + - endpoint_id: oauth-token + uri: https://oauth2.googleapis.com/token + transport: http + roles: [authorization, token] + operated_by_participant_id: google-cloud + standard_bindings: + - namespace: oauth + version: "2.0" + relation: implements + - endpoint_id: cloud-billing-api + uri: https://cloudbilling.googleapis.com + transport: http + roles: [service, status] + operated_by_participant_id: google-cloud + standard_bindings: [] + interfaces: + - interface_id: resource-manager + modality: network_api + functions: [service_operation] + endpoint_ids: [resource-manager-api] + resource_ids: [resource-manager-rest, project-create-api, operation-status-api, api-discovery, resource-manager-limits, resource-manager-errors] + operated_by_participant_id: google-cloud + standard_bindings: [] + - interface_id: workload-authentication + modality: network_api + functions: [service_operation, authentication] + endpoint_ids: [oauth-token] + resource_ids: [rest-authentication, workload-identity] + operated_by_participant_id: google-cloud + standard_bindings: + - namespace: oauth + version: "2.0" + relation: uses + - namespace: openid-connect + version: "1.0" + relation: uses + - interface_id: cloud-billing + modality: network_api + functions: [service_operation, commerce] + endpoint_ids: [cloud-billing-api] + resource_ids: [pricing, billing-api-reference, billing-api-guide] + operated_by_participant_id: google-cloud + standard_bindings: [] + relations: + - relation_id: resource-manager-docs-describe-interface + kind: describes + from: { node_kind: resource, node_id: resource-manager-rest } + to: { node_kind: interface, node_id: resource-manager } + - relation_id: authentication-docs-describe-interface + kind: describes + from: { node_kind: resource, node_id: rest-authentication } + to: { node_kind: interface, node_id: workload-authentication } + - relation_id: authentication-authenticates-resource-manager + kind: authenticates + from: { node_kind: interface, node_id: workload-authentication } + to: { node_kind: interface, node_id: resource-manager } + - relation_id: account-precedes-authentication + kind: precedes + from: { node_kind: resource, node_id: account-setup } + to: { node_kind: interface, node_id: workload-authentication } + - relation_id: project-create-precedes-operation-status + kind: precedes + from: { node_kind: resource, node_id: project-create-api } + to: { node_kind: resource, node_id: operation-status-api } + - relation_id: billing-docs-describe-interface + kind: describes + from: { node_kind: resource, node_id: billing-api-reference } + to: { node_kind: interface, node_id: cloud-billing } + offer_relations: [] + source_bindings: + - source_binding_id: google_cloud_cost_visibility_target + source_id: source_google_billing_api + target: { node_kind: assessment_target, node_id: cost-visibility } + field_paths: [/name, /interface_ids] + - source_binding_id: google_cloud_assessment_target + source_id: source_google_resource_manager_rest + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - source_binding_id: google-declaration-scope + source_id: source_google_resource_manager_rest + target: { node_kind: declaration, node_id: declaration_google_cloud_api_resource_management } + field_paths: [/scope/product/name, /scope/funnel/name] + - source_binding_id: google-participant + source_id: source_google_cloud_overview + target: { node_kind: participant, node_id: google-cloud } + field_paths: [/roles, /identity] + - source_binding_id: google-resource-overview + source_id: source_google_cloud_overview + target: { node_kind: resource, node_id: cloud-overview } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: google-resource-terms + source_id: source_google_cloud_service_terms + target: { node_kind: resource, node_id: service-terms } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: google-resource-pricing + source_id: source_google_cloud_pricing + target: { node_kind: resource, node_id: pricing } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: google-resource-account + source_id: source_google_cloud_account_setup + target: { node_kind: resource, node_id: account-setup } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: google-endpoint-registration + source_id: source_google_cloud_account_setup + target: { node_kind: endpoint, node_id: registration } + field_paths: [/uri, /transport, /roles, /operated_by_participant_id] + - source_binding_id: google-resource-resource-manager + source_id: source_google_resource_manager_rest + target: { node_kind: resource, node_id: resource-manager-rest } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: google-resource-project-create + source_id: source_google_resource_manager_create + target: { node_kind: resource, node_id: project-create-api } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: google-resource-operation-status + source_id: source_google_resource_manager_status + target: { node_kind: resource, node_id: operation-status-api } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: google-resource-api-discovery + source_id: source_google_api_discovery + target: { node_kind: resource, node_id: api-discovery } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: google-resource-rest-authentication + source_id: source_google_rest_authentication + target: { node_kind: resource, node_id: rest-authentication } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: google-resource-workload-identity + source_id: source_google_workload_identity + target: { node_kind: resource, node_id: workload-identity } + field_paths: [/uri, /roles, /operated_by_participant_id, /standard_bindings] + - source_binding_id: google-resource-billing-reference + source_id: source_google_billing_api + target: { node_kind: resource, node_id: billing-api-reference } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: google-resource-billing-guide + source_id: source_google_billing_development + target: { node_kind: resource, node_id: billing-api-guide } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: google-resource-limits + source_id: source_google_resource_manager_quotas + target: { node_kind: resource, node_id: resource-manager-limits } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: google-resource-errors + source_id: source_google_resource_manager_errors + target: { node_kind: resource, node_id: resource-manager-errors } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: google-resource-support + source_id: source_google_cloud_support + target: { node_kind: resource, node_id: cloud-support } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: google-endpoint-resource-manager + source_id: source_google_resource_manager_rest + target: { node_kind: endpoint, node_id: resource-manager-api } + field_paths: [/uri, /transport, /roles, /operated_by_participant_id] + - source_binding_id: google-endpoint-oauth + source_id: source_google_rest_authentication + target: { node_kind: endpoint, node_id: oauth-token } + field_paths: [/uri, /transport, /roles, /operated_by_participant_id, /standard_bindings] + - source_binding_id: google-endpoint-billing + source_id: source_google_billing_api + target: { node_kind: endpoint, node_id: cloud-billing-api } + field_paths: [/uri, /transport, /roles, /operated_by_participant_id] + - source_binding_id: google-interface-resource-manager + source_id: source_google_resource_manager_rest + target: { node_kind: interface, node_id: resource-manager } + field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] + - source_binding_id: google-interface-authentication + source_id: source_google_workload_identity + target: { node_kind: interface, node_id: workload-authentication } + field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id, /standard_bindings] + - source_binding_id: google-interface-billing + source_id: source_google_billing_api + target: { node_kind: interface, node_id: cloud-billing } + field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] + - source_binding_id: google-relation-resource-manager-docs + source_id: source_google_resource_manager_rest + target: { node_kind: relation, node_id: resource-manager-docs-describe-interface } + field_paths: [/kind, /from, /to] + - source_binding_id: google-relation-authentication-docs + source_id: source_google_rest_authentication + target: { node_kind: relation, node_id: authentication-docs-describe-interface } + field_paths: [/kind, /from, /to] + - source_binding_id: google-relation-authentication + source_id: source_google_rest_authentication + target: { node_kind: relation, node_id: authentication-authenticates-resource-manager } + field_paths: [/kind, /from, /to] + - source_binding_id: google-relation-account-authentication + source_id: source_google_cloud_account_setup + target: { node_kind: relation, node_id: account-precedes-authentication } + field_paths: [/kind, /from, /to] + - source_binding_id: google-relation-provision-status + source_id: source_google_resource_manager_status + target: { node_kind: relation, node_id: project-create-precedes-operation-status } + field_paths: [/kind, /from, /to] + - source_binding_id: google-relation-billing-docs + source_id: source_google_billing_api + target: { node_kind: relation, node_id: billing-docs-describe-interface } + field_paths: [/kind, /from, /to] + - { source_binding_id: google-cloud-resource-billing-checkout, source_id: source_google_cloud_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - source_binding_id: binding-resource-a724fa3120826ef2ffa40e6507b02369fbbb1930da0be31b4cd064ff71f158b5 + source_id: source-readiness-a724fa3120826ef2ffa40e6507b02369fbbb1930da0be31b4cd064ff71f158b5 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-a724fa3120826ef2ffa40e6507b02369fbbb1930da0be31b4cd064ff71f158b5 + - source_binding_id: binding-resource-bb14655b5e870879563fab4d990f6cd2727d9acddac03d9b966b396f433f84e9 + source_id: source-readiness-bb14655b5e870879563fab4d990f6cd2727d9acddac03d9b966b396f433f84e9 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-bb14655b5e870879563fab4d990f6cd2727d9acddac03d9b966b396f433f84e9 + surface_exclusions: [] + authority_intent: community + declared_at: 2026-08-07T03:06:52.000Z diff --git a/entities/hu/hubspot.yaml b/entities/hu/hubspot.yaml new file mode 100644 index 0000000..55ec5a2 --- /dev/null +++ b/entities/hu/hubspot.yaml @@ -0,0 +1,180 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8fpe3new9gxd18qs3bskh + slug: hubspot + slug_aliases: [] + name: HubSpot + domains: + - value: hubspot.com + role: primary + valid_from: 2026-07-27T07:41:23.118Z + category: crm-sales +sources: + - { source_id: source_hubspot_api_overview, url: https://developers.hubspot.com/docs/api-reference/overview } + - { source_id: source_hubspot_oauth, url: https://developers.hubspot.com/docs/apps/developer-platform/build-apps/authentication/oauth/working-with-oauth } + - { source_id: source_hubspot_crm, url: https://developers.hubspot.com/docs/api-reference/legacy/crm/objects/objects/create-object } + - { source_id: source_hubspot_errors, url: https://developers.hubspot.com/docs/api-reference/error-handling } + - { source_id: source_hubspot_limits, url: https://developers.hubspot.com/docs/developer-tooling/platform/usage-guidelines } + - { source_id: source_hubspot_pricing, url: https://www.hubspot.com/pricing/crm } + - { source_id: source_hubspot_crm_commitment, url: https://www.hubspot.com/products/crm } + - { source_id: source_hubspot_signup, url: https://app.hubspot.com/signup-hubspot/crm } + - { source_id: source_hubspot_terms, url: https://legal.hubspot.com/legal-stuff } + - { source_id: source_hubspot_support, url: https://knowledge.hubspot.com/ } + - { source_id: source_hubspot_billing_checkout, url: https://knowledge.hubspot.com/account/manage-your-hubspot-subscription } + - { source_id: source_hubspot_upgrade, url: https://knowledge.hubspot.com/account-management/how-do-i-upgrade-my-hubspot-account } + - source_id: source-readiness-237735cc5ba6ecc44afc3287e10b76ffb4c73481fb6a5a1f2ca6e1fa98a8ee41 + url: https://legal.hubspot.com/developer-terms + - source_id: source-readiness-ae84fdbaa51b9b88febbd2301b4157e03f052892fed3e42d69d878696fe3944c + url: https://developers.hubspot.com/docs/api/private-apps + - source_id: source-readiness-fedf565215bcde83431a45666a9a0edc7be9032ca5dbd43956ab753094c89a09 + url: https://legal.hubspot.com/terms-of-service +declarations: + - declaration_id: declaration_hubspot_crm_api_integration_lifecycle + scope: + product: { key: hubspot-crm-api, name: HubSpot CRM API } + funnel: { key: api-integration-lifecycle, name: API integration lifecycle } + assessment_targets: + - target_id: service-use + name: Create and manage HubSpot CRM records through the API + interface_ids: [crm-api] + participants: + - { participant_id: hubspot, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyh8fpe3new9gxd18qs3bskh } } + resources: + - { resource_id: api-overview, uri: https://developers.hubspot.com/docs/api-reference/overview, roles: [discovery, operations, documentation], operated_by_participant_id: hubspot, standard_bindings: [] } + - { resource_id: service-terms, uri: https://legal.hubspot.com/legal-stuff, roles: [terms], operated_by_participant_id: hubspot, standard_bindings: [] } + - { resource_id: pricing, uri: https://www.hubspot.com/pricing/crm, roles: [pricing], operated_by_participant_id: hubspot, standard_bindings: [] } + - { resource_id: crm-commitment, uri: https://www.hubspot.com/products/crm, roles: [pricing, documentation], operated_by_participant_id: hubspot, standard_bindings: [] } + - { resource_id: crm-signup, uri: https://app.hubspot.com/signup-hubspot/crm, roles: [access], operated_by_participant_id: hubspot, standard_bindings: [] } + - { resource_id: oauth, uri: https://developers.hubspot.com/docs/apps/developer-platform/build-apps/authentication/oauth/working-with-oauth, roles: [authentication, descriptor, documentation, provisioning], operated_by_participant_id: hubspot, standard_bindings: [{ namespace: oauth, version: "2.0", relation: describes }] } + - { resource_id: crm-operations, uri: https://developers.hubspot.com/docs/api-reference/legacy/crm/objects/objects/create-object, roles: [provisioning, status, operations, documentation], operated_by_participant_id: hubspot, standard_bindings: [] } + - { resource_id: api-errors, uri: https://developers.hubspot.com/docs/api-reference/error-handling, roles: [status, operations, recovery, documentation], operated_by_participant_id: hubspot, standard_bindings: [] } + - { resource_id: api-limits, uri: https://developers.hubspot.com/docs/developer-tooling/platform/usage-guidelines, roles: [status, operations, documentation], operated_by_participant_id: hubspot, standard_bindings: [] } + - { resource_id: support, uri: https://knowledge.hubspot.com/, roles: [recovery, documentation], operated_by_participant_id: hubspot, standard_bindings: [] } + - { resource_id: billing-checkout, uri: https://knowledge.hubspot.com/account/manage-your-hubspot-subscription, roles: [checkout, documentation], operated_by_participant_id: hubspot, standard_bindings: [] } + - { resource_id: subscription-upgrade, uri: https://knowledge.hubspot.com/account-management/how-do-i-upgrade-my-hubspot-account, roles: [checkout, documentation], operated_by_participant_id: hubspot, standard_bindings: [] } + - resource_id: readiness-237735cc5ba6ecc44afc3287e10b76ffb4c73481fb6a5a1f2ca6e1fa98a8ee41 + uri: https://legal.hubspot.com/developer-terms + roles: + - documentation + - eligibility + operated_by_participant_id: hubspot + standard_bindings: [] + - resource_id: readiness-ae84fdbaa51b9b88febbd2301b4157e03f052892fed3e42d69d878696fe3944c + uri: https://developers.hubspot.com/docs/api/private-apps + roles: + - authentication + - documentation + operated_by_participant_id: hubspot + standard_bindings: [] + - resource_id: readiness-fedf565215bcde83431a45666a9a0edc7be9032ca5dbd43956ab753094c89a09 + uri: https://legal.hubspot.com/terms-of-service + roles: + - documentation + - terms + operated_by_participant_id: hubspot + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: https://app.hubspot.com/signup-hubspot/crm, transport: http, roles: [registration], operated_by_participant_id: hubspot, standard_bindings: [] } + - { endpoint_id: hubspot-api, uri: https://api.hubapi.com, transport: http, roles: [service, status], operated_by_participant_id: hubspot, standard_bindings: [] } + - { endpoint_id: oauth-token, uri: https://api.hubapi.com/oauth/v1/token, transport: http, roles: [authorization, token], operated_by_participant_id: hubspot, standard_bindings: [{ namespace: oauth, version: "2.0", relation: implements }] } + interfaces: + - { interface_id: crm-api, modality: network_api, functions: [service_operation], endpoint_ids: [hubspot-api], resource_ids: [api-overview, crm-operations, api-errors, api-limits], operated_by_participant_id: hubspot, standard_bindings: [] } + - { interface_id: integration-authentication, modality: network_api, functions: [authentication], endpoint_ids: [oauth-token], resource_ids: [oauth], operated_by_participant_id: hubspot, standard_bindings: [{ namespace: oauth, version: "2.0", relation: uses }] } + relations: + - { relation_id: overview-describes-api, kind: describes, from: { node_kind: resource, node_id: api-overview }, to: { node_kind: interface, node_id: crm-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: integration-authentication }, to: { node_kind: interface, node_id: crm-api } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: crm-signup }, to: { node_kind: interface, node_id: integration-authentication } } + - { relation_id: crm-describes-api, kind: describes, from: { node_kind: resource, node_id: crm-operations }, to: { node_kind: interface, node_id: crm-api } } + - relation_id: relation-describes-b393d1b40a6a6b010018783b7b2272f9b811ed8dc1f6da3d7422cb2cec3f8fb7 + kind: describes + from: + node_kind: resource + node_id: oauth + to: + node_kind: interface + node_id: integration-authentication + - relation_id: relation-describes-091810ae56e2e84f96a64120fd2a5ad4b8bc336eb4c3abbdcaca07a2bd23c18a + kind: describes + from: + node_kind: resource + node_id: readiness-ae84fdbaa51b9b88febbd2301b4157e03f052892fed3e42d69d878696fe3944c + to: + node_kind: interface + node_id: integration-authentication + offer_relations: [] + source_bindings: + - source_binding_id: hubspot_assessment_target + source_id: source_hubspot_api_overview + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: hubspot-scope, source_id: source_hubspot_api_overview, target: { node_kind: declaration, node_id: declaration_hubspot_crm_api_integration_lifecycle }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: hubspot-participant, source_id: source_hubspot_api_overview, target: { node_kind: participant, node_id: hubspot }, field_paths: [/roles, /identity] } + - { source_binding_id: hubspot-resource-overview, source_id: source_hubspot_api_overview, target: { node_kind: resource, node_id: api-overview }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: hubspot-resource-terms, source_id: source_hubspot_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: hubspot-resource-pricing, source_id: source_hubspot_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: hubspot-resource-crm-commitment, source_id: source_hubspot_crm_commitment, target: { node_kind: resource, node_id: crm-commitment }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: hubspot-resource-signup, source_id: source_hubspot_signup, target: { node_kind: resource, node_id: crm-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: hubspot-endpoint-registration, source_id: source_hubspot_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: hubspot-resource-oauth, source_id: source_hubspot_oauth, target: { node_kind: resource, node_id: oauth }, field_paths: [/uri, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: hubspot-resource-crm, source_id: source_hubspot_crm, target: { node_kind: resource, node_id: crm-operations }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: hubspot-resource-errors, source_id: source_hubspot_errors, target: { node_kind: resource, node_id: api-errors }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: hubspot-resource-limits, source_id: source_hubspot_limits, target: { node_kind: resource, node_id: api-limits }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: hubspot-resource-support, source_id: source_hubspot_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: hubspot-endpoint-api, source_id: source_hubspot_api_overview, target: { node_kind: endpoint, node_id: hubspot-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: hubspot-endpoint-oauth, source_id: source_hubspot_oauth, target: { node_kind: endpoint, node_id: oauth-token }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: hubspot-interface-api, source_id: source_hubspot_api_overview, target: { node_kind: interface, node_id: crm-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: hubspot-interface-auth, source_id: source_hubspot_oauth, target: { node_kind: interface, node_id: integration-authentication }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: hubspot-relation-overview, source_id: source_hubspot_api_overview, target: { node_kind: relation, node_id: overview-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: hubspot-relation-auth, source_id: source_hubspot_oauth, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: hubspot-relation-signup, source_id: source_hubspot_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: hubspot-relation-crm, source_id: source_hubspot_crm, target: { node_kind: relation, node_id: crm-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: hubspot-resource-billing-checkout, source_id: source_hubspot_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: hubspot-resource-subscription-upgrade, source_id: source_hubspot_upgrade, target: { node_kind: resource, node_id: subscription-upgrade }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - source_binding_id: binding-resource-237735cc5ba6ecc44afc3287e10b76ffb4c73481fb6a5a1f2ca6e1fa98a8ee41 + source_id: source-readiness-237735cc5ba6ecc44afc3287e10b76ffb4c73481fb6a5a1f2ca6e1fa98a8ee41 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-237735cc5ba6ecc44afc3287e10b76ffb4c73481fb6a5a1f2ca6e1fa98a8ee41 + - source_binding_id: binding-relation-b393d1b40a6a6b010018783b7b2272f9b811ed8dc1f6da3d7422cb2cec3f8fb7 + source_id: source_hubspot_oauth + field_paths: + - /kind + - /from + - /to + target: + node_kind: relation + node_id: relation-describes-b393d1b40a6a6b010018783b7b2272f9b811ed8dc1f6da3d7422cb2cec3f8fb7 + - source_binding_id: binding-resource-ae84fdbaa51b9b88febbd2301b4157e03f052892fed3e42d69d878696fe3944c + source_id: source-readiness-ae84fdbaa51b9b88febbd2301b4157e03f052892fed3e42d69d878696fe3944c + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-ae84fdbaa51b9b88febbd2301b4157e03f052892fed3e42d69d878696fe3944c + - source_binding_id: binding-relation-091810ae56e2e84f96a64120fd2a5ad4b8bc336eb4c3abbdcaca07a2bd23c18a + source_id: source-readiness-ae84fdbaa51b9b88febbd2301b4157e03f052892fed3e42d69d878696fe3944c + field_paths: + - /kind + - /from + - /to + target: + node_kind: relation + node_id: relation-describes-091810ae56e2e84f96a64120fd2a5ad4b8bc336eb4c3abbdcaca07a2bd23c18a + - source_binding_id: binding-resource-fedf565215bcde83431a45666a9a0edc7be9032ca5dbd43956ab753094c89a09 + source_id: source-readiness-fedf565215bcde83431a45666a9a0edc7be9032ca5dbd43956ab753094c89a09 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-fedf565215bcde83431a45666a9a0edc7be9032ca5dbd43956ab753094c89a09 + surface_exclusions: [] + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z diff --git a/entities/mi/microsoft.yaml b/entities/mi/microsoft.yaml new file mode 100644 index 0000000..fc7dd18 --- /dev/null +++ b/entities/mi/microsoft.yaml @@ -0,0 +1,359 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8fpe3n3yye39kmzvy410z + slug: microsoft + slug_aliases: [] + name: Microsoft + domains: + - value: microsoft.com + role: primary + valid_from: 2026-07-27T07:41:47.020Z + category: hosting-infra +sources: + - source_id: source_azure_rest_api + url: https://learn.microsoft.com/en-us/rest/api/azure/ + - source_id: source_azure_resource_manager_rest + url: https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resources-rest?tabs=azure-cli + - source_id: source_azure_resource_group_api + url: https://learn.microsoft.com/en-us/rest/api/resources/resource-groups/create-or-update?view=rest-resources-2021-04-01&tabs=HTTP + - source_id: source_azure_async_operations + url: https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/async-operations + - source_id: source_azure_resource_manager_limits + url: https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/request-limits-and-throttling + - source_id: source_azure_service_principals + url: https://learn.microsoft.com/en-us/entra/identity-platform/app-objects-and-service-principals?tabs=browser + - source_id: source_azure_client_credentials + url: https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-client-creds-grant-flow + - source_id: source_azure_account + url: https://signup.azure.com/ + - source_id: source_azure_pricing + url: https://azure.microsoft.com/en-us/pricing/ + - source_id: source_azure_retail_prices_api + url: https://learn.microsoft.com/en-us/rest/api/cost-management/retail-prices/azure-retail-prices + - source_id: source_azure_cost_management_permissions + url: https://learn.microsoft.com/en-us/azure/cost-management-billing/automate/cost-management-api-permissions + - source_id: source_azure_legal + url: https://azure.microsoft.com/en-us/support/legal/ + - source_id: source_azure_product_terms + url: https://www.microsoft.com/licensing/terms/productoffering/MicrosoftAzure/MCA + - source_id: source_azure_support + url: https://azure.microsoft.com/en-us/support/options/ + - { source_id: source_microsoft_billing_checkout, url: https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/change-credit-card } + - source_id: source-readiness-2c5e3e9374587cf94c00720160f0e60599f3d9aa340b5adf2c017bf2fc97eea2 + url: https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/create-subscription +declarations: + - declaration_id: declaration_microsoft_azure_api_resource_management + scope: + product: + key: microsoft-azure + name: Microsoft Azure + funnel: + key: api-resource-management + name: API resource management + assessment_targets: + - target_id: service-use + name: Create and reconcile Azure resource groups through the API + interface_ids: [azure-resource-manager] + - target_id: cost-visibility + name: Microsoft Azure cost visibility + interface_ids: [pricing-and-cost] + participants: + - participant_id: microsoft + roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider] + identity: + entity_id: ent_01kyh8fpe3n3yye39kmzvy410z + resources: + - resource_id: azure-rest-api + uri: https://learn.microsoft.com/en-us/rest/api/azure/ + roles: [discovery, documentation, operations] + operated_by_participant_id: microsoft + standard_bindings: [] + - resource_id: azure-legal + uri: https://azure.microsoft.com/en-us/support/legal/ + roles: [terms] + operated_by_participant_id: microsoft + standard_bindings: [] + - resource_id: azure-product-terms + uri: https://www.microsoft.com/licensing/terms/productoffering/MicrosoftAzure/MCA + roles: [eligibility, terms] + operated_by_participant_id: microsoft + standard_bindings: [] + - resource_id: azure-pricing + uri: https://azure.microsoft.com/en-us/pricing/ + roles: [pricing] + operated_by_participant_id: microsoft + standard_bindings: [] + - resource_id: azure-account + uri: https://signup.azure.com/ + roles: [access] + operated_by_participant_id: microsoft + standard_bindings: [] + - resource_id: service-principals + uri: https://learn.microsoft.com/en-us/entra/identity-platform/app-objects-and-service-principals?tabs=browser + roles: [authentication, descriptor, documentation] + operated_by_participant_id: microsoft + standard_bindings: + - namespace: oauth + version: "2.0" + relation: uses + - resource_id: client-credentials + uri: https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-client-creds-grant-flow + roles: [authentication, descriptor, documentation] + operated_by_participant_id: microsoft + standard_bindings: + - namespace: oauth + version: "2.0" + relation: implements + - resource_id: resource-manager-rest + uri: https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resources-rest?tabs=azure-cli + roles: [provisioning, operations, documentation] + operated_by_participant_id: microsoft + standard_bindings: [] + - resource_id: resource-group-api + uri: https://learn.microsoft.com/en-us/rest/api/resources/resource-groups/create-or-update?view=rest-resources-2021-04-01&tabs=HTTP + roles: [provisioning, documentation] + operated_by_participant_id: microsoft + standard_bindings: [] + - resource_id: asynchronous-operations + uri: https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/async-operations + roles: [provisioning, status, operations, recovery, documentation] + operated_by_participant_id: microsoft + standard_bindings: [] + - resource_id: resource-manager-limits + uri: https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/request-limits-and-throttling + roles: [operations, documentation] + operated_by_participant_id: microsoft + standard_bindings: [] + - resource_id: retail-prices-api + uri: https://learn.microsoft.com/en-us/rest/api/cost-management/retail-prices/azure-retail-prices + roles: [pricing, operations, documentation] + operated_by_participant_id: microsoft + standard_bindings: [] + - resource_id: cost-management-permissions + uri: https://learn.microsoft.com/en-us/azure/cost-management-billing/automate/cost-management-api-permissions + roles: [operations, status, documentation] + operated_by_participant_id: microsoft + standard_bindings: [] + - resource_id: azure-support + uri: https://azure.microsoft.com/en-us/support/options/ + roles: [recovery, documentation] + operated_by_participant_id: microsoft + standard_bindings: [] + - { resource_id: billing-checkout, uri: https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/change-credit-card, roles: [checkout, documentation], operated_by_participant_id: microsoft, standard_bindings: [] } + - resource_id: readiness-2c5e3e9374587cf94c00720160f0e60599f3d9aa340b5adf2c017bf2fc97eea2 + uri: https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/create-subscription + roles: [access, checkout, documentation] + operated_by_participant_id: microsoft + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: https://signup.azure.com/, transport: http, roles: [registration], operated_by_participant_id: microsoft, standard_bindings: [] } + - endpoint_id: azure-resource-manager + uri: https://management.azure.com + transport: http + roles: [service, status] + operated_by_participant_id: microsoft + standard_bindings: [] + - endpoint_id: entra-token + uri: https://login.microsoftonline.com/organizations/oauth2/v2.0/token + transport: http + roles: [authorization, token] + operated_by_participant_id: microsoft + standard_bindings: + - namespace: oauth + version: "2.0" + relation: implements + - endpoint_id: retail-prices + uri: https://prices.azure.com/api/retail/prices + transport: http + roles: [service] + operated_by_participant_id: microsoft + standard_bindings: [] + interfaces: + - interface_id: azure-resource-manager + modality: network_api + functions: [service_operation] + endpoint_ids: [azure-resource-manager] + resource_ids: [azure-rest-api, resource-manager-rest, resource-group-api, asynchronous-operations, resource-manager-limits] + operated_by_participant_id: microsoft + standard_bindings: [] + - interface_id: workload-authentication + modality: network_api + functions: [service_operation, authentication] + endpoint_ids: [entra-token] + resource_ids: [service-principals, client-credentials] + operated_by_participant_id: microsoft + standard_bindings: + - namespace: oauth + version: "2.0" + relation: uses + - interface_id: pricing-and-cost + modality: network_api + functions: [service_operation, commerce] + endpoint_ids: [retail-prices] + resource_ids: [azure-pricing, retail-prices-api, cost-management-permissions] + operated_by_participant_id: microsoft + standard_bindings: [] + relations: + - relation_id: resource-manager-docs-describe-interface + kind: describes + from: { node_kind: resource, node_id: resource-manager-rest } + to: { node_kind: interface, node_id: azure-resource-manager } + - relation_id: client-credentials-describe-authentication + kind: describes + from: { node_kind: resource, node_id: client-credentials } + to: { node_kind: interface, node_id: workload-authentication } + - relation_id: authentication-authenticates-resource-manager + kind: authenticates + from: { node_kind: interface, node_id: workload-authentication } + to: { node_kind: interface, node_id: azure-resource-manager } + - relation_id: account-precedes-authentication + kind: precedes + from: { node_kind: resource, node_id: azure-account } + to: { node_kind: interface, node_id: workload-authentication } + - relation_id: resource-creation-precedes-status + kind: precedes + from: { node_kind: resource, node_id: resource-group-api } + to: { node_kind: resource, node_id: asynchronous-operations } + - relation_id: pricing-docs-describe-interface + kind: describes + from: { node_kind: resource, node_id: retail-prices-api } + to: { node_kind: interface, node_id: pricing-and-cost } + offer_relations: [] + source_bindings: + - source_binding_id: microsoft_cost_visibility_target + source_id: source_azure_retail_prices_api + target: { node_kind: assessment_target, node_id: cost-visibility } + field_paths: [/name, /interface_ids] + - source_binding_id: microsoft_assessment_target + source_id: source_azure_resource_manager_rest + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - source_binding_id: microsoft-declaration-scope + source_id: source_azure_resource_manager_rest + target: { node_kind: declaration, node_id: declaration_microsoft_azure_api_resource_management } + field_paths: [/scope/product/name, /scope/funnel/name] + - source_binding_id: microsoft-participant + source_id: source_azure_rest_api + target: { node_kind: participant, node_id: microsoft } + field_paths: [/roles, /identity] + - source_binding_id: microsoft-resource-rest-api + source_id: source_azure_rest_api + target: { node_kind: resource, node_id: azure-rest-api } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-resource-legal + source_id: source_azure_legal + target: { node_kind: resource, node_id: azure-legal } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-resource-product-terms + source_id: source_azure_product_terms + target: { node_kind: resource, node_id: azure-product-terms } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-resource-pricing + source_id: source_azure_pricing + target: { node_kind: resource, node_id: azure-pricing } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-resource-account + source_id: source_azure_account + target: { node_kind: resource, node_id: azure-account } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-endpoint-registration + source_id: source_azure_account + target: { node_kind: endpoint, node_id: registration } + field_paths: [/uri, /transport, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-resource-service-principals + source_id: source_azure_service_principals + target: { node_kind: resource, node_id: service-principals } + field_paths: [/uri, /roles, /operated_by_participant_id, /standard_bindings] + - source_binding_id: microsoft-resource-client-credentials + source_id: source_azure_client_credentials + target: { node_kind: resource, node_id: client-credentials } + field_paths: [/uri, /roles, /operated_by_participant_id, /standard_bindings] + - source_binding_id: microsoft-resource-resource-manager + source_id: source_azure_resource_manager_rest + target: { node_kind: resource, node_id: resource-manager-rest } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-resource-resource-group + source_id: source_azure_resource_group_api + target: { node_kind: resource, node_id: resource-group-api } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-resource-async + source_id: source_azure_async_operations + target: { node_kind: resource, node_id: asynchronous-operations } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-resource-limits + source_id: source_azure_resource_manager_limits + target: { node_kind: resource, node_id: resource-manager-limits } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-resource-retail-prices + source_id: source_azure_retail_prices_api + target: { node_kind: resource, node_id: retail-prices-api } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-resource-cost-management + source_id: source_azure_cost_management_permissions + target: { node_kind: resource, node_id: cost-management-permissions } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-resource-support + source_id: source_azure_support + target: { node_kind: resource, node_id: azure-support } + field_paths: [/uri, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-endpoint-resource-manager + source_id: source_azure_resource_manager_rest + target: { node_kind: endpoint, node_id: azure-resource-manager } + field_paths: [/uri, /transport, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-endpoint-entra-token + source_id: source_azure_client_credentials + target: { node_kind: endpoint, node_id: entra-token } + field_paths: [/uri, /transport, /roles, /operated_by_participant_id, /standard_bindings] + - source_binding_id: microsoft-endpoint-retail-prices + source_id: source_azure_retail_prices_api + target: { node_kind: endpoint, node_id: retail-prices } + field_paths: [/uri, /transport, /roles, /operated_by_participant_id] + - source_binding_id: microsoft-interface-resource-manager + source_id: source_azure_resource_manager_rest + target: { node_kind: interface, node_id: azure-resource-manager } + field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] + - source_binding_id: microsoft-interface-authentication + source_id: source_azure_client_credentials + target: { node_kind: interface, node_id: workload-authentication } + field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id, /standard_bindings] + - source_binding_id: microsoft-interface-pricing + source_id: source_azure_retail_prices_api + target: { node_kind: interface, node_id: pricing-and-cost } + field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] + - source_binding_id: microsoft-relation-resource-manager-docs + source_id: source_azure_resource_manager_rest + target: { node_kind: relation, node_id: resource-manager-docs-describe-interface } + field_paths: [/kind, /from, /to] + - source_binding_id: microsoft-relation-authentication-docs + source_id: source_azure_client_credentials + target: { node_kind: relation, node_id: client-credentials-describe-authentication } + field_paths: [/kind, /from, /to] + - source_binding_id: microsoft-relation-authentication + source_id: source_azure_client_credentials + target: { node_kind: relation, node_id: authentication-authenticates-resource-manager } + field_paths: [/kind, /from, /to] + - source_binding_id: microsoft-relation-account-authentication + source_id: source_azure_account + target: { node_kind: relation, node_id: account-precedes-authentication } + field_paths: [/kind, /from, /to] + - source_binding_id: microsoft-relation-provision-status + source_id: source_azure_async_operations + target: { node_kind: relation, node_id: resource-creation-precedes-status } + field_paths: [/kind, /from, /to] + - source_binding_id: microsoft-relation-pricing-docs + source_id: source_azure_retail_prices_api + target: { node_kind: relation, node_id: pricing-docs-describe-interface } + field_paths: [/kind, /from, /to] + - { source_binding_id: microsoft-resource-billing-checkout, source_id: source_microsoft_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - source_binding_id: binding-resource-2c5e3e9374587cf94c00720160f0e60599f3d9aa340b5adf2c017bf2fc97eea2 + source_id: source-readiness-2c5e3e9374587cf94c00720160f0e60599f3d9aa340b5adf2c017bf2fc97eea2 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-2c5e3e9374587cf94c00720160f0e60599f3d9aa340b5adf2c017bf2fc97eea2 + surface_exclusions: [] + authority_intent: community + declared_at: 2026-08-07T03:06:52.000Z diff --git a/entities/mo/mongodb.yaml b/entities/mo/mongodb.yaml new file mode 100644 index 0000000..05c8a49 --- /dev/null +++ b/entities/mo/mongodb.yaml @@ -0,0 +1,109 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8fpe4ys74qx1k4zfcqpjv + slug: mongodb + slug_aliases: [] + name: MongoDB + domains: + - value: mongodb.com + role: primary + valid_from: 2026-07-27T07:41:47.670Z + category: databases +sources: + - { source_id: source_mongodb_atlas_api, url: https://www.mongodb.com/docs/atlas/api/atlas-admin-api-ref/ } + - { source_id: source_mongodb_auth, url: https://www.mongodb.com/docs/atlas/api/api-authentication/ } + - { source_id: source_mongodb_clusters, url: https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2 } + - { source_id: source_mongodb_cluster_create, url: https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-creategroupcluster } + - { source_id: source_mongodb_limits, url: https://www.mongodb.com/docs/atlas/api/api-rate-limit/ } + - { source_id: source_mongodb_errors, url: https://www.mongodb.com/docs/atlas/reference/api-errors/ } + - { source_id: source_mongodb_pricing, url: https://www.mongodb.com/pricing } + - { source_id: source_mongodb_signup, url: https://account.mongodb.com/account/register } + - { source_id: source_mongodb_terms, url: https://www.mongodb.com/legal/terms-and-conditions/cloud } + - { source_id: source_mongodb_support, url: https://www.mongodb.com/docs/atlas/support/ } + - { source_id: source_mongodb_billing_checkout, url: https://www.mongodb.com/docs/atlas/billing/ } + - source_id: source-readiness-a2ebb552da0020dafded21f72ec21bd8489c921b3f9fe1dc7114df92bc3852f3 + url: https://www.mongodb.com/docs/atlas/tutorial/create-atlas-account +declarations: + - declaration_id: declaration_mongodb_atlas_api_cluster_lifecycle + scope: + product: { key: mongodb-atlas-api, name: MongoDB Atlas Administration API } + funnel: { key: cluster-lifecycle, name: Cluster lifecycle } + assessment_targets: + - target_id: service-use + name: Create and manage Atlas clusters through the Administration API + interface_ids: [cluster-api] + participants: + - { participant_id: mongodb, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyh8fpe4ys74qx1k4zfcqpjv } } + resources: + - { resource_id: api-reference, uri: https://www.mongodb.com/docs/atlas/api/atlas-admin-api-ref/, roles: [discovery, operations, documentation], operated_by_participant_id: mongodb, standard_bindings: [] } + - { resource_id: service-terms, uri: https://www.mongodb.com/legal/terms-and-conditions/cloud, roles: [terms], operated_by_participant_id: mongodb, standard_bindings: [] } + - { resource_id: pricing, uri: https://www.mongodb.com/pricing, roles: [pricing], operated_by_participant_id: mongodb, standard_bindings: [] } + - { resource_id: account-signup, uri: https://account.mongodb.com/account/register, roles: [access], operated_by_participant_id: mongodb, standard_bindings: [] } + - { resource_id: authentication, uri: https://www.mongodb.com/docs/atlas/api/api-authentication/, roles: [authentication, descriptor, provisioning, documentation], operated_by_participant_id: mongodb, standard_bindings: [] } + - { resource_id: cluster-operations, uri: https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2, roles: [documentation, operations, provisioning, status], operated_by_participant_id: mongodb, standard_bindings: [] } + - { resource_id: cluster-create, uri: https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-creategroupcluster, roles: [documentation, provisioning, status], operated_by_participant_id: mongodb, standard_bindings: [] } + - { resource_id: rate-limits, uri: https://www.mongodb.com/docs/atlas/api/api-rate-limit/, roles: [status, operations, documentation], operated_by_participant_id: mongodb, standard_bindings: [] } + - { resource_id: api-errors, uri: https://www.mongodb.com/docs/atlas/reference/api-errors/, roles: [status, operations, recovery, documentation], operated_by_participant_id: mongodb, standard_bindings: [] } + - { resource_id: support, uri: https://www.mongodb.com/docs/atlas/support/, roles: [recovery, documentation], operated_by_participant_id: mongodb, standard_bindings: [] } + - { resource_id: billing-checkout, uri: https://www.mongodb.com/docs/atlas/billing/, roles: [checkout, documentation], operated_by_participant_id: mongodb, standard_bindings: [] } + - resource_id: readiness-a2ebb552da0020dafded21f72ec21bd8489c921b3f9fe1dc7114df92bc3852f3 + uri: https://www.mongodb.com/docs/atlas/tutorial/create-atlas-account + roles: + - access + - documentation + operated_by_participant_id: mongodb + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: https://account.mongodb.com/account/register, transport: http, roles: [registration], operated_by_participant_id: mongodb, standard_bindings: [] } + - { endpoint_id: atlas-api, uri: https://cloud.mongodb.com/api/atlas/v2, transport: http, roles: [service, status], operated_by_participant_id: mongodb, standard_bindings: [] } + interfaces: + - { interface_id: cluster-api, modality: network_api, functions: [service_operation], endpoint_ids: [atlas-api], resource_ids: [api-reference, cluster-operations, rate-limits, api-errors], operated_by_participant_id: mongodb, standard_bindings: [] } + - { interface_id: api-authentication, modality: network_api, functions: [authentication], endpoint_ids: [], resource_ids: [authentication], operated_by_participant_id: mongodb, standard_bindings: [] } + relations: + - { relation_id: reference-describes-api, kind: describes, from: { node_kind: resource, node_id: api-reference }, to: { node_kind: interface, node_id: cluster-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: api-authentication }, to: { node_kind: interface, node_id: cluster-api } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: account-signup }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: clusters-describe-api, kind: describes, from: { node_kind: resource, node_id: cluster-operations }, to: { node_kind: interface, node_id: cluster-api } } + - { relation_id: cluster-create-describes-api, kind: describes, from: { node_kind: resource, node_id: cluster-create }, to: { node_kind: interface, node_id: cluster-api } } + offer_relations: [] + source_bindings: + - source_binding_id: mongodb_assessment_target + source_id: source_mongodb_clusters + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: mongodb-scope, source_id: source_mongodb_clusters, target: { node_kind: declaration, node_id: declaration_mongodb_atlas_api_cluster_lifecycle }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: mongodb-participant, source_id: source_mongodb_atlas_api, target: { node_kind: participant, node_id: mongodb }, field_paths: [/roles, /identity] } + - { source_binding_id: mongodb-resource-reference, source_id: source_mongodb_atlas_api, target: { node_kind: resource, node_id: api-reference }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: mongodb-resource-terms, source_id: source_mongodb_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: mongodb-resource-pricing, source_id: source_mongodb_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: mongodb-resource-signup, source_id: source_mongodb_signup, target: { node_kind: resource, node_id: account-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: mongodb-endpoint-registration, source_id: source_mongodb_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: mongodb-resource-auth, source_id: source_mongodb_auth, target: { node_kind: resource, node_id: authentication }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: mongodb-resource-clusters, source_id: source_mongodb_clusters, target: { node_kind: resource, node_id: cluster-operations }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: mongodb-resource-cluster-create, source_id: source_mongodb_cluster_create, target: { node_kind: resource, node_id: cluster-create }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: mongodb-resource-limits, source_id: source_mongodb_limits, target: { node_kind: resource, node_id: rate-limits }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: mongodb-resource-errors, source_id: source_mongodb_errors, target: { node_kind: resource, node_id: api-errors }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: mongodb-resource-support, source_id: source_mongodb_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: mongodb-endpoint-api, source_id: source_mongodb_atlas_api, target: { node_kind: endpoint, node_id: atlas-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: mongodb-interface-api, source_id: source_mongodb_clusters, target: { node_kind: interface, node_id: cluster-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: mongodb-interface-auth, source_id: source_mongodb_auth, target: { node_kind: interface, node_id: api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: mongodb-relation-reference, source_id: source_mongodb_atlas_api, target: { node_kind: relation, node_id: reference-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: mongodb-relation-auth, source_id: source_mongodb_auth, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: mongodb-relation-signup, source_id: source_mongodb_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: mongodb-relation-clusters, source_id: source_mongodb_clusters, target: { node_kind: relation, node_id: clusters-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: mongodb-relation-cluster-create, source_id: source_mongodb_cluster_create, target: { node_kind: relation, node_id: cluster-create-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: mongodb-resource-billing-checkout, source_id: source_mongodb_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: mongodb-exclusion-separate-eligibility, source_id: source_mongodb_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + - source_binding_id: binding-resource-a2ebb552da0020dafded21f72ec21bd8489c921b3f9fe1dc7114df92bc3852f3 + source_id: source-readiness-a2ebb552da0020dafded21f72ec21bd8489c921b3f9fe1dc7114df92bc3852f3 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-a2ebb552da0020dafded21f72ec21bd8489c921b3f9fe1dc7114df92bc3852f3 + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z diff --git a/entities/ne/neon.yaml b/entities/ne/neon.yaml new file mode 100644 index 0000000..fdf7c98 --- /dev/null +++ b/entities/ne/neon.yaml @@ -0,0 +1,122 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8fpe42ws3zbxkkaybx2ea + slug: neon + slug_aliases: [] + name: Neon + domains: + - value: neon.com + role: primary + valid_from: 2026-07-27T07:37:13.262Z + category: databases +sources: + - { source_id: source_neon_api, url: https://api-docs.neon.tech/reference/getting-started-with-neon-api } + - { source_id: source_neon_api_keys, url: https://neon.com/docs/manage/api-keys } + - { source_id: source_neon_create_project, url: https://api-docs.neon.tech/reference/createproject } + - { source_id: source_neon_projects, url: https://neon.com/docs/manage/projects } + - { source_id: source_neon_branches, url: https://neon.com/docs/manage/branches } + - { source_id: source_neon_pricing, url: https://neon.com/pricing } + - { source_id: source_neon_signup, url: https://console.neon.tech/signup } + - { source_id: source_neon_terms, url: https://neon.com/terms-of-service } + - { source_id: source_neon_support, url: https://neon.com/docs/introduction/support } + - { source_id: source_neon_billing_checkout, url: https://neon.com/docs/introduction/plans } + - source_id: source-readiness-5d65e00053d275dc55701ece542bb1e203f417bf461cf87ed7aca40281604231 + url: https://neon.com/docs/manage/accounts + - source_id: source-readiness-a75ce7955cfd5f96e15192ecd4ffb6cb37ec27d3c666eca1b31e8b3466a289d8 + url: https://neon.com/docs/introduction/manage-billing +declarations: + - declaration_id: declaration_neon_api_project_database_lifecycle + scope: + product: { key: neon-api, name: Neon API } + funnel: { key: project-database-lifecycle, name: Project and database lifecycle } + assessment_targets: + - target_id: service-use + name: Create and manage Neon projects and databases through the API + interface_ids: [project-api] + participants: + - { participant_id: neon, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyh8fpe42ws3zbxkkaybx2ea } } + resources: + - { resource_id: api-reference, uri: https://api-docs.neon.tech/reference/getting-started-with-neon-api, roles: [discovery, operations, documentation], operated_by_participant_id: neon, standard_bindings: [] } + - { resource_id: service-terms, uri: https://neon.com/terms-of-service, roles: [terms], operated_by_participant_id: neon, standard_bindings: [] } + - { resource_id: pricing, uri: https://neon.com/pricing, roles: [pricing], operated_by_participant_id: neon, standard_bindings: [] } + - { resource_id: console-signup, uri: https://console.neon.tech/signup, roles: [access], operated_by_participant_id: neon, standard_bindings: [] } + - { resource_id: api-keys, uri: https://neon.com/docs/manage/api-keys, roles: [authentication, descriptor, provisioning, documentation], operated_by_participant_id: neon, standard_bindings: [] } + - { resource_id: create-project, uri: https://api-docs.neon.tech/reference/createproject, roles: [provisioning, status, operations, documentation], operated_by_participant_id: neon, standard_bindings: [] } + - { resource_id: project-operations, uri: https://neon.com/docs/manage/projects, roles: [status, operations, recovery, documentation], operated_by_participant_id: neon, standard_bindings: [] } + - { resource_id: branch-operations, uri: https://neon.com/docs/manage/branches, roles: [provisioning, status, operations, recovery, documentation], operated_by_participant_id: neon, standard_bindings: [] } + - { resource_id: support, uri: https://neon.com/docs/introduction/support, roles: [recovery, documentation], operated_by_participant_id: neon, standard_bindings: [] } + - { resource_id: billing-checkout, uri: https://neon.com/docs/introduction/plans, roles: [checkout, documentation], operated_by_participant_id: neon, standard_bindings: [] } + - resource_id: readiness-5d65e00053d275dc55701ece542bb1e203f417bf461cf87ed7aca40281604231 + uri: https://neon.com/docs/manage/accounts + roles: + - access + - documentation + operated_by_participant_id: neon + standard_bindings: [] + - resource_id: readiness-a75ce7955cfd5f96e15192ecd4ffb6cb37ec27d3c666eca1b31e8b3466a289d8 + uri: https://neon.com/docs/introduction/manage-billing + roles: + - checkout + - documentation + operated_by_participant_id: neon + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: https://console.neon.tech/signup, transport: http, roles: [registration], operated_by_participant_id: neon, standard_bindings: [] } + - { endpoint_id: neon-api, uri: https://console.neon.tech/api/v2, transport: http, roles: [service, status], operated_by_participant_id: neon, standard_bindings: [] } + interfaces: + - { interface_id: project-api, modality: network_api, functions: [service_operation], endpoint_ids: [neon-api], resource_ids: [api-reference, create-project, project-operations, branch-operations], operated_by_participant_id: neon, standard_bindings: [] } + - { interface_id: api-authentication, modality: network_api, functions: [authentication], endpoint_ids: [], resource_ids: [api-keys], operated_by_participant_id: neon, standard_bindings: [] } + relations: + - { relation_id: reference-describes-api, kind: describes, from: { node_kind: resource, node_id: api-reference }, to: { node_kind: interface, node_id: project-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: api-authentication }, to: { node_kind: interface, node_id: project-api } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: console-signup }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: projects-describe-api, kind: describes, from: { node_kind: resource, node_id: create-project }, to: { node_kind: interface, node_id: project-api } } + offer_relations: [] + source_bindings: + - source_binding_id: neon_assessment_target + source_id: source_neon_api + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: neon-scope, source_id: source_neon_api, target: { node_kind: declaration, node_id: declaration_neon_api_project_database_lifecycle }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: neon-participant, source_id: source_neon_api, target: { node_kind: participant, node_id: neon }, field_paths: [/roles, /identity] } + - { source_binding_id: neon-resource-reference, source_id: source_neon_api, target: { node_kind: resource, node_id: api-reference }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: neon-resource-terms, source_id: source_neon_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: neon-resource-pricing, source_id: source_neon_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: neon-resource-signup, source_id: source_neon_signup, target: { node_kind: resource, node_id: console-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: neon-endpoint-registration, source_id: source_neon_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: neon-resource-keys, source_id: source_neon_api_keys, target: { node_kind: resource, node_id: api-keys }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: neon-resource-create, source_id: source_neon_create_project, target: { node_kind: resource, node_id: create-project }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: neon-resource-projects, source_id: source_neon_projects, target: { node_kind: resource, node_id: project-operations }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: neon-resource-branches, source_id: source_neon_branches, target: { node_kind: resource, node_id: branch-operations }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: neon-resource-support, source_id: source_neon_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: neon-endpoint-api, source_id: source_neon_api, target: { node_kind: endpoint, node_id: neon-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: neon-interface-api, source_id: source_neon_api, target: { node_kind: interface, node_id: project-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: neon-interface-auth, source_id: source_neon_api_keys, target: { node_kind: interface, node_id: api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: neon-relation-reference, source_id: source_neon_api, target: { node_kind: relation, node_id: reference-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: neon-relation-auth, source_id: source_neon_api_keys, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: neon-relation-signup, source_id: source_neon_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: neon-relation-projects, source_id: source_neon_create_project, target: { node_kind: relation, node_id: projects-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: neon-resource-billing-checkout, source_id: source_neon_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: neon-exclusion-separate-eligibility, source_id: source_neon_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + - source_binding_id: binding-resource-5d65e00053d275dc55701ece542bb1e203f417bf461cf87ed7aca40281604231 + source_id: source-readiness-5d65e00053d275dc55701ece542bb1e203f417bf461cf87ed7aca40281604231 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-5d65e00053d275dc55701ece542bb1e203f417bf461cf87ed7aca40281604231 + - source_binding_id: binding-resource-a75ce7955cfd5f96e15192ecd4ffb6cb37ec27d3c666eca1b31e8b3466a289d8 + source_id: source-readiness-a75ce7955cfd5f96e15192ecd4ffb6cb37ec27d3c666eca1b31e8b3466a289d8 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-a75ce7955cfd5f96e15192ecd4ffb6cb37ec27d3c666eca1b31e8b3466a289d8 + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z diff --git a/entities/no/notion.yaml b/entities/no/notion.yaml new file mode 100644 index 0000000..bca2cdf --- /dev/null +++ b/entities/no/notion.yaml @@ -0,0 +1,89 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyyts97tbppvx69rh3v86sk2 + slug: notion + slug_aliases: [] + name: Notion + domains: + - value: notion.so + role: primary + valid_from: 2026-08-01T13:50:00.000Z + - value: notion.com + role: alias + valid_from: 2026-08-01T13:50:00.000Z + category: productivity +sources: + - { source_id: source_notion_overview, url: https://developers.notion.com/guides/get-started/overview } + - { source_id: source_notion_authorization, url: https://developers.notion.com/guides/get-started/authorization } + - { source_id: source_notion_quickstart, url: https://developers.notion.com/guides/get-started/quick-start } + - { source_id: source_notion_create_page, url: https://developers.notion.com/reference/post-page.md } + - { source_id: source_notion_limits, url: https://developers.notion.com/reference/request-limits } + - { source_id: source_notion_status_codes, url: https://developers.notion.com/reference/status-codes } + - { source_id: source_notion_pricing, url: https://www.notion.com/pricing } + - { source_id: source_notion_signup, url: https://app.notion.com/signup } + - { source_id: source_notion_support, url: https://www.notion.com/help/category/connections/all } + - { source_id: source_notion_billing_checkout, url: https://www.notion.com/help/upgrade-or-downgrade-your-plan } +declarations: + - declaration_id: declaration_notion_api_integration_lifecycle + scope: + product: { key: notion-api, name: Notion API } + funnel: { key: api-integration-lifecycle, name: API integration lifecycle } + assessment_targets: + - target_id: service-use + name: Create and manage workspace pages through the Notion API + interface_ids: [content-api] + participants: + - { participant_id: notion, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyyts97tbppvx69rh3v86sk2 } } + resources: + - { resource_id: api-overview, uri: https://developers.notion.com/guides/get-started/overview, roles: [discovery, eligibility, operations, documentation], operated_by_participant_id: notion, standard_bindings: [] } + - { resource_id: service-terms, uri: https://www.notion.com/help/upgrade-or-downgrade-your-plan, roles: [terms, checkout, documentation], operated_by_participant_id: notion, standard_bindings: [] } + - { resource_id: pricing, uri: https://www.notion.com/pricing, roles: [pricing], operated_by_participant_id: notion, standard_bindings: [] } + - { resource_id: workspace-signup, uri: https://app.notion.com/signup, roles: [access], operated_by_participant_id: notion, standard_bindings: [] } + - { resource_id: authorization, uri: https://developers.notion.com/guides/get-started/authorization, roles: [authentication, descriptor, provisioning, documentation], operated_by_participant_id: notion, standard_bindings: [] } + - { resource_id: quickstart, uri: https://developers.notion.com/guides/get-started/quick-start, roles: [provisioning, status, operations, documentation], operated_by_participant_id: notion, standard_bindings: [] } + - { resource_id: create-page, uri: https://developers.notion.com/reference/post-page.md, roles: [operations, documentation], operated_by_participant_id: notion, standard_bindings: [] } + - { resource_id: request-limits, uri: https://developers.notion.com/reference/request-limits, roles: [status, operations, documentation], operated_by_participant_id: notion, standard_bindings: [] } + - { resource_id: status-codes, uri: https://developers.notion.com/reference/status-codes, roles: [status, operations, recovery, documentation], operated_by_participant_id: notion, standard_bindings: [] } + - { resource_id: support, uri: https://www.notion.com/help/category/connections/all, roles: [recovery, documentation], operated_by_participant_id: notion, standard_bindings: [] } + endpoints: + - { endpoint_id: registration, uri: https://app.notion.com/signup, transport: http, roles: [registration], operated_by_participant_id: notion, standard_bindings: [] } + - { endpoint_id: notion-api, uri: https://api.notion.com/v1, transport: http, roles: [service, status], operated_by_participant_id: notion, standard_bindings: [] } + - { endpoint_id: oauth-token, uri: https://api.notion.com/v1/oauth/token, transport: http, roles: [authorization, token], operated_by_participant_id: notion, standard_bindings: [{ namespace: oauth, version: "2.0", relation: implements }] } + interfaces: + - { interface_id: content-api, modality: network_api, functions: [service_operation], endpoint_ids: [notion-api], resource_ids: [api-overview, quickstart, create-page, request-limits, status-codes], operated_by_participant_id: notion, standard_bindings: [] } + - { interface_id: integration-authentication, modality: network_api, functions: [authentication], endpoint_ids: [oauth-token], resource_ids: [authorization], operated_by_participant_id: notion, standard_bindings: [{ namespace: oauth, version: "2.0", relation: uses }] } + relations: + - { relation_id: overview-describes-api, kind: describes, from: { node_kind: resource, node_id: api-overview }, to: { node_kind: interface, node_id: content-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: integration-authentication }, to: { node_kind: interface, node_id: content-api } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: workspace-signup }, to: { node_kind: interface, node_id: integration-authentication } } + - { relation_id: status-describes-api, kind: describes, from: { node_kind: resource, node_id: status-codes }, to: { node_kind: interface, node_id: content-api } } + offer_relations: [] + source_bindings: + - source_binding_id: notion_assessment_target + source_id: source_notion_overview + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: notion-scope, source_id: source_notion_overview, target: { node_kind: declaration, node_id: declaration_notion_api_integration_lifecycle }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: notion-participant, source_id: source_notion_overview, target: { node_kind: participant, node_id: notion }, field_paths: [/roles, /identity] } + - { source_binding_id: notion-resource-overview, source_id: source_notion_overview, target: { node_kind: resource, node_id: api-overview }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: notion-resource-terms, source_id: source_notion_billing_checkout, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: notion-resource-pricing, source_id: source_notion_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: notion-resource-signup, source_id: source_notion_signup, target: { node_kind: resource, node_id: workspace-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: notion-endpoint-registration, source_id: source_notion_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: notion-resource-auth, source_id: source_notion_authorization, target: { node_kind: resource, node_id: authorization }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: notion-resource-quickstart, source_id: source_notion_quickstart, target: { node_kind: resource, node_id: quickstart }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: notion-resource-create-page, source_id: source_notion_create_page, target: { node_kind: resource, node_id: create-page }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: notion-resource-limits, source_id: source_notion_limits, target: { node_kind: resource, node_id: request-limits }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: notion-resource-status, source_id: source_notion_status_codes, target: { node_kind: resource, node_id: status-codes }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: notion-resource-support, source_id: source_notion_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: notion-endpoint-api, source_id: source_notion_overview, target: { node_kind: endpoint, node_id: notion-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: notion-endpoint-oauth, source_id: source_notion_authorization, target: { node_kind: endpoint, node_id: oauth-token }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: notion-interface-api, source_id: source_notion_create_page, target: { node_kind: interface, node_id: content-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: notion-interface-auth, source_id: source_notion_authorization, target: { node_kind: interface, node_id: integration-authentication }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: notion-relation-overview, source_id: source_notion_overview, target: { node_kind: relation, node_id: overview-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: notion-relation-auth, source_id: source_notion_authorization, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: notion-relation-signup, source_id: source_notion_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: notion-relation-status, source_id: source_notion_status_codes, target: { node_kind: relation, node_id: status-describes-api }, field_paths: [/kind, /from, /to] } + surface_exclusions: [] + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z diff --git a/entities/op/openai.yaml b/entities/op/openai.yaml new file mode 100644 index 0000000..38d7fad --- /dev/null +++ b/entities/op/openai.yaml @@ -0,0 +1,125 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8fpe4qj5yt6msnarsc8kz + slug: openai + slug_aliases: [] + name: OpenAI + domains: + - value: openai.com + role: primary + valid_from: 2026-07-27T07:37:32.708Z + category: ai-ml +sources: + - { source_id: source_openai_api_reference, url: https://developers.openai.com/api/reference/overview } + - { source_id: source_openai_quickstart, url: https://developers.openai.com/api/docs/quickstart } + - { source_id: source_openai_errors, url: https://developers.openai.com/api/docs/guides/error-codes } + - { source_id: source_openai_rate_limits, url: https://developers.openai.com/api/docs/guides/rate-limits } + - { source_id: source_openai_pricing, url: https://developers.openai.com/api/docs/pricing.md } + - { source_id: source_openai_responses, url: https://developers.openai.com/api/docs/guides/migrate-to-responses.md } + - { source_id: source_openai_signup, url: https://platform.openai.com/signup } + - { source_id: source_openai_terms, url: https://openai.com/policies/services-agreement/ } + - { source_id: source_openai_support, url: https://help.openai.com/en/collections/3675945-understanding-openai-api-billing-usage } + - { source_id: source_openai_prepaid_billing, url: https://help.openai.com/en/articles/8264644-how-can-i-set-up-prepaid-billing } + - source_id: source-readiness-b40f6dd9ecf10bde91b1d804002877ffaa0484272ccd4856be863bfdab5a5b7c + url: https://help.openai.com/en/articles/4936850-best-practices-for-api-key-safety +declarations: + - declaration_id: declaration_openai_api_service_lifecycle + scope: + product: { key: openai-api, name: OpenAI API } + funnel: { key: api-service-lifecycle, name: API service lifecycle } + assessment_targets: + - target_id: service-use + name: Submit Responses API requests and receive model output + interface_ids: [api-service] + participants: + - participant_id: openai + roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider] + identity: { entity_id: ent_01kyh8fpe4qj5yt6msnarsc8kz } + resources: + - { resource_id: api-reference, uri: https://developers.openai.com/api/reference/overview, roles: [discovery, documentation, operations], operated_by_participant_id: openai, standard_bindings: [] } + - { resource_id: service-terms, uri: https://openai.com/policies/services-agreement/, roles: [terms], operated_by_participant_id: openai, standard_bindings: [] } + - { resource_id: pricing, uri: https://developers.openai.com/api/docs/pricing.md, roles: [pricing], operated_by_participant_id: openai, standard_bindings: [] } + - { resource_id: platform-signup, uri: https://platform.openai.com/signup, roles: [access], operated_by_participant_id: openai, standard_bindings: [] } + - { resource_id: quickstart, uri: https://developers.openai.com/api/docs/quickstart, roles: [descriptor, provisioning, authentication, documentation], operated_by_participant_id: openai, standard_bindings: [] } + - { resource_id: responses-guide, uri: https://developers.openai.com/api/docs/guides/migrate-to-responses.md, roles: [provisioning, status, documentation], operated_by_participant_id: openai, standard_bindings: [] } + - { resource_id: api-errors, uri: https://developers.openai.com/api/docs/guides/error-codes, roles: [status, operations, recovery, documentation], operated_by_participant_id: openai, standard_bindings: [] } + - { resource_id: rate-limits, uri: https://developers.openai.com/api/docs/guides/rate-limits, roles: [status, operations, documentation], operated_by_participant_id: openai, standard_bindings: [] } + - { resource_id: billing-support, uri: https://help.openai.com/en/collections/3675945-understanding-openai-api-billing-usage, roles: [recovery, documentation], operated_by_participant_id: openai, standard_bindings: [] } + - { resource_id: prepaid-billing, uri: https://help.openai.com/en/articles/8264644-how-can-i-set-up-prepaid-billing, roles: [pricing, checkout, documentation], operated_by_participant_id: openai, standard_bindings: [] } + - resource_id: readiness-b40f6dd9ecf10bde91b1d804002877ffaa0484272ccd4856be863bfdab5a5b7c + uri: https://help.openai.com/en/articles/4936850-best-practices-for-api-key-safety + roles: + - authentication + - documentation + operated_by_participant_id: openai + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: https://platform.openai.com/signup, transport: http, roles: [registration], operated_by_participant_id: openai, standard_bindings: [] } + - { endpoint_id: responses-api, uri: https://api.openai.com/v1/responses, transport: http, roles: [service], operated_by_participant_id: openai, standard_bindings: [] } + interfaces: + - { interface_id: api-service, modality: network_api, functions: [service_operation], endpoint_ids: [responses-api], resource_ids: [api-reference, quickstart, responses-guide, api-errors, rate-limits], operated_by_participant_id: openai, standard_bindings: [] } + - { interface_id: api-authentication, modality: network_api, functions: [authentication], endpoint_ids: [], resource_ids: [api-reference, quickstart], operated_by_participant_id: openai, standard_bindings: [] } + relations: + - { relation_id: reference-describes-api, kind: describes, from: { node_kind: resource, node_id: api-reference }, to: { node_kind: interface, node_id: api-service } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: api-authentication }, to: { node_kind: interface, node_id: api-service } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: platform-signup }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: errors-describe-api, kind: describes, from: { node_kind: resource, node_id: api-errors }, to: { node_kind: interface, node_id: api-service } } + - { relation_id: responses-guide-describes-api, kind: describes, from: { node_kind: resource, node_id: responses-guide }, to: { node_kind: interface, node_id: api-service } } + - relation_id: relation-describes-11bdd29edd85e9d60a95b586c2db646cdf514d60dd5f2c97cbf0b2979b5fa8f6 + kind: describes + from: + node_kind: resource + node_id: readiness-b40f6dd9ecf10bde91b1d804002877ffaa0484272ccd4856be863bfdab5a5b7c + to: + node_kind: interface + node_id: api-authentication + offer_relations: [] + source_bindings: + - source_binding_id: openai_assessment_target + source_id: source_openai_api_reference + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: openai-scope, source_id: source_openai_api_reference, target: { node_kind: declaration, node_id: declaration_openai_api_service_lifecycle }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: openai-participant, source_id: source_openai_api_reference, target: { node_kind: participant, node_id: openai }, field_paths: [/roles, /identity] } + - { source_binding_id: openai-resource-reference, source_id: source_openai_api_reference, target: { node_kind: resource, node_id: api-reference }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openai-resource-terms, source_id: source_openai_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openai-resource-pricing, source_id: source_openai_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openai-resource-signup, source_id: source_openai_signup, target: { node_kind: resource, node_id: platform-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openai-endpoint-registration, source_id: source_openai_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: openai-resource-quickstart, source_id: source_openai_quickstart, target: { node_kind: resource, node_id: quickstart }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openai-resource-responses, source_id: source_openai_responses, target: { node_kind: resource, node_id: responses-guide }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openai-resource-errors, source_id: source_openai_errors, target: { node_kind: resource, node_id: api-errors }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openai-resource-limits, source_id: source_openai_rate_limits, target: { node_kind: resource, node_id: rate-limits }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openai-resource-support, source_id: source_openai_support, target: { node_kind: resource, node_id: billing-support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openai-resource-prepaid-billing, source_id: source_openai_prepaid_billing, target: { node_kind: resource, node_id: prepaid-billing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openai-endpoint-responses, source_id: source_openai_api_reference, target: { node_kind: endpoint, node_id: responses-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: openai-interface-api, source_id: source_openai_api_reference, target: { node_kind: interface, node_id: api-service }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: openai-interface-auth, source_id: source_openai_quickstart, target: { node_kind: interface, node_id: api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: openai-relation-reference, source_id: source_openai_api_reference, target: { node_kind: relation, node_id: reference-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openai-relation-auth, source_id: source_openai_quickstart, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openai-relation-signup, source_id: source_openai_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openai-relation-errors, source_id: source_openai_errors, target: { node_kind: relation, node_id: errors-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openai-relation-responses, source_id: source_openai_responses, target: { node_kind: relation, node_id: responses-guide-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openai-exclusion-separate-eligibility, source_id: source_openai_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + - source_binding_id: binding-resource-b40f6dd9ecf10bde91b1d804002877ffaa0484272ccd4856be863bfdab5a5b7c + source_id: source-readiness-b40f6dd9ecf10bde91b1d804002877ffaa0484272ccd4856be863bfdab5a5b7c + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-b40f6dd9ecf10bde91b1d804002877ffaa0484272ccd4856be863bfdab5a5b7c + - source_binding_id: binding-relation-11bdd29edd85e9d60a95b586c2db646cdf514d60dd5f2c97cbf0b2979b5fa8f6 + source_id: source-readiness-b40f6dd9ecf10bde91b1d804002877ffaa0484272ccd4856be863bfdab5a5b7c + field_paths: + - /kind + - /from + - /to + target: + node_kind: relation + node_id: relation-describes-11bdd29edd85e9d60a95b586c2db646cdf514d60dd5f2c97cbf0b2979b5fa8f6 + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z diff --git a/entities/op/openrouter.yaml b/entities/op/openrouter.yaml new file mode 100644 index 0000000..c3979f5 --- /dev/null +++ b/entities/op/openrouter.yaml @@ -0,0 +1,157 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyy6rm11txma0afjpbmd0wr7 + slug: openrouter + slug_aliases: [] + name: OpenRouter + domains: + - value: openrouter.ai + role: primary + valid_from: 2026-08-01T07:25:22.175Z + category: ai-ml +sources: + - { source_id: source_openrouter_quickstart, url: https://openrouter.ai/docs/quickstart } + - { source_id: source_openrouter_terms, url: https://openrouter.ai/terms } + - { source_id: source_openrouter_faq, url: https://openrouter.ai/docs/faq } + - { source_id: source_openrouter_signup, url: https://openrouter.ai/sign-up } + - { source_id: source_openrouter_models, url: https://openrouter.ai/docs/guides/overview/models } + - { source_id: source_openrouter_models_api, url: https://openrouter.ai/api/v1/models } + - { source_id: source_openrouter_openapi, url: https://openrouter.ai/openapi.json } + - { source_id: source_openrouter_streaming, url: https://openrouter.ai/docs/api/reference/streaming } + - { source_id: source_openrouter_tools, url: https://openrouter.ai/docs/guides/features/tool-calling } + - { source_id: source_openrouter_errors, url: https://openrouter.ai/docs/api/reference/errors-and-debugging } + - { source_id: source_openrouter_limits, url: https://openrouter.ai/docs/api/reference/limits } + - { source_id: source_openrouter_oauth, url: https://openrouter.ai/docs/guides/overview/auth/oauth } + - { source_id: source_openrouter_keys, url: https://openrouter.ai/docs/api/api-reference/api-keys/create-keys } + - { source_id: source_openrouter_credits_api, url: https://openrouter.ai/docs/api/api-reference/credits/get-credits } + - { source_id: source_openrouter_checkout, url: https://openrouter.ai/settings/credits } + - { source_id: source_openrouter_status, url: https://status.openrouter.ai/ } + - { source_id: source_openrouter_robots, url: https://openrouter.ai/robots.txt } + - { source_id: source_openrouter_llms, url: https://openrouter.ai/llms.txt } + - { source_id: source_openrouter_agents, url: https://openrouter.ai/agents.md } + - { source_id: source_openrouter_mcp, url: https://openrouter.ai/docs/guides/overview/mcp-server } +declarations: + - declaration_id: declaration_openrouter_model_access_lifecycle + scope: + product: { key: openrouter-api, name: OpenRouter API } + funnel: { key: model-access-lifecycle, name: Model access lifecycle } + assessment_targets: + - target_id: model-discovery + name: Discover currently available models, capabilities, and prices + interface_ids: [model-catalog-api, openrouter-mcp] + - target_id: model-inference + name: Submit streaming inference requests with tool calls and handle results + interface_ids: [inference-api, openrouter-mcp] + participants: + - participant_id: openrouter + roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider] + identity: { entity_id: ent_01kyy6rm11txma0afjpbmd0wr7 } + resources: + - { resource_id: quickstart, uri: https://openrouter.ai/docs/quickstart, roles: [discovery, authentication, provisioning, operations, documentation], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: service-terms, uri: https://openrouter.ai/terms, roles: [terms, eligibility], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: pricing-and-billing, uri: https://openrouter.ai/docs/faq, roles: [pricing, checkout, status, recovery, documentation], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: account-signup, uri: https://openrouter.ai/sign-up, roles: [access], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: model-catalog-guide, uri: https://openrouter.ai/docs/guides/overview/models, roles: [discovery, pricing, operations, status, documentation], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: live-model-catalog, uri: https://openrouter.ai/api/v1/models, roles: [discovery, pricing, descriptor, status], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: openapi-description, uri: https://openrouter.ai/openapi.json, roles: [discovery, authentication, descriptor, operations, status], operated_by_participant_id: openrouter, standard_bindings: [{ namespace: openapi, version: "3.1.0", relation: implements }] } + - { resource_id: streaming-guide, uri: https://openrouter.ai/docs/api/reference/streaming, roles: [operations, status, documentation], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: tool-calling-guide, uri: https://openrouter.ai/docs/guides/features/tool-calling, roles: [operations, documentation], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: error-contract, uri: https://openrouter.ai/docs/api/reference/errors-and-debugging, roles: [operations, status, recovery, documentation], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: rate-limits, uri: https://openrouter.ai/docs/api/reference/limits, roles: [operations, status, documentation], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: oauth-pkce, uri: https://openrouter.ai/docs/guides/overview/auth/oauth, roles: [access, authentication, provisioning, recovery, descriptor, documentation], operated_by_participant_id: openrouter, standard_bindings: [{ namespace: oauth, version: "2.0", relation: describes }] } + - { resource_id: api-key-management, uri: https://openrouter.ai/docs/api/api-reference/api-keys/create-keys, roles: [authentication, provisioning, recovery, status, documentation], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: credits-api, uri: https://openrouter.ai/docs/api/api-reference/credits/get-credits, roles: [pricing, operations, status, documentation], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: credit-checkout, uri: https://openrouter.ai/settings/credits, roles: [pricing, checkout], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: service-status, uri: https://status.openrouter.ai/, roles: [status, recovery], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: crawler-policy, uri: https://openrouter.ai/robots.txt, roles: [policy], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: agent-discovery-index, uri: https://openrouter.ai/llms.txt, roles: [discovery, descriptor, documentation], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: agent-setup-guide, uri: https://openrouter.ai/agents.md, roles: [discovery, authentication, provisioning, documentation], operated_by_participant_id: openrouter, standard_bindings: [] } + - { resource_id: mcp-guide, uri: https://openrouter.ai/docs/guides/overview/mcp-server, roles: [discovery, authentication, provisioning, operations, descriptor, documentation], operated_by_participant_id: openrouter, standard_bindings: [{ namespace: mcp, version: "2025-11-25", relation: describes }] } + endpoints: + - { endpoint_id: registration, uri: https://openrouter.ai/sign-up, transport: http, roles: [registration], operated_by_participant_id: openrouter, standard_bindings: [] } + - { endpoint_id: chat-completions, uri: https://openrouter.ai/api/v1/chat/completions, transport: http, roles: [service], operated_by_participant_id: openrouter, standard_bindings: [{ namespace: openapi, version: "3.1.0", relation: implements }] } + - { endpoint_id: models, uri: https://openrouter.ai/api/v1/models, transport: http, roles: [service, status], operated_by_participant_id: openrouter, standard_bindings: [{ namespace: openapi, version: "3.1.0", relation: implements }] } + - { endpoint_id: oauth-authorization, uri: https://openrouter.ai/auth, transport: http, roles: [authorization], operated_by_participant_id: openrouter, standard_bindings: [{ namespace: oauth, version: "2.0", relation: implements }] } + - { endpoint_id: oauth-key-exchange, uri: https://openrouter.ai/api/v1/auth/keys, transport: http, roles: [token], operated_by_participant_id: openrouter, standard_bindings: [{ namespace: oauth, version: "2.0", relation: implements }] } + - { endpoint_id: key-management, uri: https://openrouter.ai/api/v1/keys, transport: http, roles: [service, recovery], operated_by_participant_id: openrouter, standard_bindings: [{ namespace: openapi, version: "3.1.0", relation: implements }] } + - { endpoint_id: credit-balance, uri: https://openrouter.ai/api/v1/credits, transport: http, roles: [status], operated_by_participant_id: openrouter, standard_bindings: [{ namespace: openapi, version: "3.1.0", relation: implements }] } + - { endpoint_id: checkout, uri: https://openrouter.ai/settings/credits, transport: http, roles: [checkout], operated_by_participant_id: openrouter, standard_bindings: [] } + - { endpoint_id: mcp-server, uri: https://mcp.openrouter.ai/mcp, transport: http, roles: [service, protected_resource], operated_by_participant_id: openrouter, standard_bindings: [{ namespace: mcp, version: "2025-11-25", relation: implements }] } + interfaces: + - { interface_id: inference-api, modality: network_api, functions: [service_operation], endpoint_ids: [chat-completions], resource_ids: [quickstart, openapi-description, streaming-guide, tool-calling-guide, error-contract, rate-limits], operated_by_participant_id: openrouter, standard_bindings: [{ namespace: openapi, version: "3.1.0", relation: uses }] } + - { interface_id: model-catalog-api, modality: network_api, functions: [service_operation], endpoint_ids: [models], resource_ids: [model-catalog-guide, live-model-catalog, openapi-description], operated_by_participant_id: openrouter, standard_bindings: [{ namespace: openapi, version: "3.1.0", relation: uses }] } + - { interface_id: delegated-authentication, modality: network_api, functions: [authentication, recovery], endpoint_ids: [oauth-authorization, oauth-key-exchange, key-management], resource_ids: [oauth-pkce, api-key-management], operated_by_participant_id: openrouter, standard_bindings: [{ namespace: oauth, version: "2.0", relation: uses }] } + - { interface_id: credit-commerce, modality: web_application, functions: [commerce], endpoint_ids: [checkout], resource_ids: [pricing-and-billing, credit-checkout, credits-api], operated_by_participant_id: openrouter, standard_bindings: [] } + - { interface_id: openrouter-mcp, modality: tool_server, functions: [service_operation, authentication], endpoint_ids: [mcp-server], resource_ids: [mcp-guide, live-model-catalog, credits-api], operated_by_participant_id: openrouter, standard_bindings: [{ namespace: mcp, version: "2025-11-25", relation: uses }, { namespace: oauth, version: "2.0", relation: uses }] } + relations: + - { relation_id: quickstart-describes-inference, kind: describes, from: { node_kind: resource, node_id: quickstart }, to: { node_kind: interface, node_id: inference-api } } + - { relation_id: openapi-describes-inference, kind: describes, from: { node_kind: resource, node_id: openapi-description }, to: { node_kind: interface, node_id: inference-api } } + - { relation_id: models-describe-catalog, kind: describes, from: { node_kind: resource, node_id: live-model-catalog }, to: { node_kind: interface, node_id: model-catalog-api } } + - { relation_id: oauth-authenticates-inference, kind: authenticates, from: { node_kind: interface, node_id: delegated-authentication }, to: { node_kind: interface, node_id: inference-api } } + - { relation_id: oauth-authenticates-catalog, kind: authenticates, from: { node_kind: interface, node_id: delegated-authentication }, to: { node_kind: interface, node_id: model-catalog-api } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: account-signup }, to: { node_kind: interface, node_id: delegated-authentication } } + - { relation_id: checkout-precedes-inference, kind: precedes, from: { node_kind: interface, node_id: credit-commerce }, to: { node_kind: interface, node_id: inference-api } } + - { relation_id: errors-describe-inference, kind: describes, from: { node_kind: resource, node_id: error-contract }, to: { node_kind: interface, node_id: inference-api } } + - { relation_id: limits-describe-inference, kind: describes, from: { node_kind: resource, node_id: rate-limits }, to: { node_kind: interface, node_id: inference-api } } + - { relation_id: llms-describes-inference, kind: describes, from: { node_kind: resource, node_id: agent-discovery-index }, to: { node_kind: interface, node_id: inference-api } } + - { relation_id: mcp-guide-describes-server, kind: describes, from: { node_kind: resource, node_id: mcp-guide }, to: { node_kind: interface, node_id: openrouter-mcp } } + - { relation_id: oauth-authenticates-mcp, kind: authenticates, from: { node_kind: interface, node_id: delegated-authentication }, to: { node_kind: interface, node_id: openrouter-mcp } } + - { relation_id: mcp-alternative-inference, kind: alternative_to, from: { node_kind: interface, node_id: inference-api }, to: { node_kind: interface, node_id: openrouter-mcp } } + - { relation_id: mcp-alternative-catalog, kind: alternative_to, from: { node_kind: interface, node_id: model-catalog-api }, to: { node_kind: interface, node_id: openrouter-mcp } } + offer_relations: [] + source_bindings: + - { source_binding_id: openrouter-scope, source_id: source_openrouter_quickstart, target: { node_kind: declaration, node_id: declaration_openrouter_model_access_lifecycle }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: openrouter-target-models, source_id: source_openrouter_models, target: { node_kind: assessment_target, node_id: model-discovery }, field_paths: [/name, /interface_ids] } + - { source_binding_id: openrouter-target-inference, source_id: source_openrouter_quickstart, target: { node_kind: assessment_target, node_id: model-inference }, field_paths: [/name, /interface_ids] } + - { source_binding_id: openrouter-participant, source_id: source_openrouter_terms, target: { node_kind: participant, node_id: openrouter }, field_paths: [/roles, /identity] } + - { source_binding_id: openrouter-resource-quickstart, source_id: source_openrouter_quickstart, target: { node_kind: resource, node_id: quickstart }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-terms, source_id: source_openrouter_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-billing, source_id: source_openrouter_faq, target: { node_kind: resource, node_id: pricing-and-billing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-signup, source_id: source_openrouter_signup, target: { node_kind: resource, node_id: account-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-model-guide, source_id: source_openrouter_models, target: { node_kind: resource, node_id: model-catalog-guide }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-model-api, source_id: source_openrouter_models_api, target: { node_kind: resource, node_id: live-model-catalog }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-openapi, source_id: source_openrouter_openapi, target: { node_kind: resource, node_id: openapi-description }, field_paths: [/uri, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: openrouter-resource-streaming, source_id: source_openrouter_streaming, target: { node_kind: resource, node_id: streaming-guide }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-tools, source_id: source_openrouter_tools, target: { node_kind: resource, node_id: tool-calling-guide }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-errors, source_id: source_openrouter_errors, target: { node_kind: resource, node_id: error-contract }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-limits, source_id: source_openrouter_limits, target: { node_kind: resource, node_id: rate-limits }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-oauth, source_id: source_openrouter_oauth, target: { node_kind: resource, node_id: oauth-pkce }, field_paths: [/uri, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: openrouter-resource-keys, source_id: source_openrouter_keys, target: { node_kind: resource, node_id: api-key-management }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-credits, source_id: source_openrouter_credits_api, target: { node_kind: resource, node_id: credits-api }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-checkout, source_id: source_openrouter_checkout, target: { node_kind: resource, node_id: credit-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-status, source_id: source_openrouter_status, target: { node_kind: resource, node_id: service-status }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-robots, source_id: source_openrouter_robots, target: { node_kind: resource, node_id: crawler-policy }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-llms, source_id: source_openrouter_llms, target: { node_kind: resource, node_id: agent-discovery-index }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-agents, source_id: source_openrouter_agents, target: { node_kind: resource, node_id: agent-setup-guide }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-resource-mcp, source_id: source_openrouter_mcp, target: { node_kind: resource, node_id: mcp-guide }, field_paths: [/uri, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: openrouter-endpoint-registration, source_id: source_openrouter_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-endpoint-inference, source_id: source_openrouter_openapi, target: { node_kind: endpoint, node_id: chat-completions }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: openrouter-endpoint-models, source_id: source_openrouter_openapi, target: { node_kind: endpoint, node_id: models }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: openrouter-endpoint-oauth-authorization, source_id: source_openrouter_oauth, target: { node_kind: endpoint, node_id: oauth-authorization }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: openrouter-endpoint-oauth-token, source_id: source_openrouter_oauth, target: { node_kind: endpoint, node_id: oauth-key-exchange }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: openrouter-endpoint-keys, source_id: source_openrouter_keys, target: { node_kind: endpoint, node_id: key-management }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: openrouter-endpoint-credits, source_id: source_openrouter_credits_api, target: { node_kind: endpoint, node_id: credit-balance }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: openrouter-endpoint-checkout, source_id: source_openrouter_checkout, target: { node_kind: endpoint, node_id: checkout }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: openrouter-endpoint-mcp, source_id: source_openrouter_mcp, target: { node_kind: endpoint, node_id: mcp-server }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: openrouter-interface-inference, source_id: source_openrouter_openapi, target: { node_kind: interface, node_id: inference-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: openrouter-interface-models, source_id: source_openrouter_models_api, target: { node_kind: interface, node_id: model-catalog-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: openrouter-interface-auth, source_id: source_openrouter_oauth, target: { node_kind: interface, node_id: delegated-authentication }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: openrouter-interface-commerce, source_id: source_openrouter_faq, target: { node_kind: interface, node_id: credit-commerce }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: openrouter-interface-mcp, source_id: source_openrouter_mcp, target: { node_kind: interface, node_id: openrouter-mcp }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: openrouter-relation-quickstart, source_id: source_openrouter_quickstart, target: { node_kind: relation, node_id: quickstart-describes-inference }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openrouter-relation-openapi, source_id: source_openrouter_openapi, target: { node_kind: relation, node_id: openapi-describes-inference }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openrouter-relation-models, source_id: source_openrouter_models_api, target: { node_kind: relation, node_id: models-describe-catalog }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openrouter-relation-auth-inference, source_id: source_openrouter_oauth, target: { node_kind: relation, node_id: oauth-authenticates-inference }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openrouter-relation-auth-catalog, source_id: source_openrouter_oauth, target: { node_kind: relation, node_id: oauth-authenticates-catalog }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openrouter-relation-signup, source_id: source_openrouter_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openrouter-relation-checkout, source_id: source_openrouter_faq, target: { node_kind: relation, node_id: checkout-precedes-inference }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openrouter-relation-errors, source_id: source_openrouter_errors, target: { node_kind: relation, node_id: errors-describe-inference }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openrouter-relation-limits, source_id: source_openrouter_limits, target: { node_kind: relation, node_id: limits-describe-inference }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openrouter-relation-llms, source_id: source_openrouter_llms, target: { node_kind: relation, node_id: llms-describes-inference }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openrouter-relation-mcp-guide, source_id: source_openrouter_mcp, target: { node_kind: relation, node_id: mcp-guide-describes-server }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openrouter-relation-auth-mcp, source_id: source_openrouter_mcp, target: { node_kind: relation, node_id: oauth-authenticates-mcp }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openrouter-relation-mcp-inference, source_id: source_openrouter_mcp, target: { node_kind: relation, node_id: mcp-alternative-inference }, field_paths: [/kind, /from, /to] } + - { source_binding_id: openrouter-relation-mcp-catalog, source_id: source_openrouter_mcp, target: { node_kind: relation, node_id: mcp-alternative-catalog }, field_paths: [/kind, /from, /to] } + surface_exclusions: [] + authority_intent: community + declared_at: 2026-08-21T11:25:00.000Z diff --git a/entities/pi/pinecone.yaml b/entities/pi/pinecone.yaml new file mode 100644 index 0000000..70ad70b --- /dev/null +++ b/entities/pi/pinecone.yaml @@ -0,0 +1,139 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8fpe4a7e0sp2h5gjz9xbm + slug: pinecone + slug_aliases: [] + name: Pinecone + domains: + - value: pinecone.io + role: primary + valid_from: 2026-07-27T07:42:06.422Z + category: databases +sources: + - { source_id: source_pinecone_api, url: https://docs.pinecone.io/reference/api/introduction } + - { source_id: source_pinecone_auth, url: https://docs.pinecone.io/reference/api/authentication } + - { source_id: source_pinecone_create_index, url: https://docs.pinecone.io/reference/api/2025-04/control-plane/create_index } + - { source_id: source_pinecone_limits, url: https://docs.pinecone.io/reference/api/database-limits } + - { source_id: source_pinecone_errors, url: https://docs.pinecone.io/reference/api/errors } + - { source_id: source_pinecone_pricing, url: https://www.pinecone.io/pricing/ } + - { source_id: source_pinecone_signup, url: https://app.pinecone.io/ } + - { source_id: source_pinecone_terms, url: https://www.pinecone.io/legal/master-subscription-agreement/ } + - { source_id: source_pinecone_support, url: https://docs.pinecone.io/troubleshooting/how-to-work-with-support } + - { source_id: source_pinecone_billing_checkout, url: https://docs.pinecone.io/guides/organizations/manage-billing/change-payment-method } + - source_id: source-readiness-d071de696fe778be745100ce82afc8f60c9a2e0e1ebe9847436a528e9a96957b + url: https://docs.pinecone.io/guides/organizations/manage-service-accounts + - source_id: source-readiness-e8834e7c1bfd2395c514fd62ceeb0233b6ea73c6af2544509e27277d1cdee13d + url: https://docs.pinecone.io/guides/organizations/understanding-organizations +declarations: + - declaration_id: declaration_pinecone_api_index_lifecycle + scope: + product: { key: pinecone-database-api, name: Pinecone Database API } + funnel: { key: index-lifecycle, name: Index lifecycle } + assessment_targets: + - target_id: service-use + name: Create indexes and read and write vectors through the API + interface_ids: [index-api] + participants: + - { participant_id: pinecone, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyh8fpe4a7e0sp2h5gjz9xbm } } + resources: + - { resource_id: api-reference, uri: https://docs.pinecone.io/reference/api/introduction, roles: [discovery, operations, documentation], operated_by_participant_id: pinecone, standard_bindings: [] } + - { resource_id: service-terms, uri: https://www.pinecone.io/legal/master-subscription-agreement/, roles: [terms], operated_by_participant_id: pinecone, standard_bindings: [] } + - { resource_id: pricing, uri: https://www.pinecone.io/pricing/, roles: [pricing], operated_by_participant_id: pinecone, standard_bindings: [] } + - { resource_id: console-access, uri: https://app.pinecone.io/, roles: [access], allowed_redirect_hosts: [login.pinecone.io], operated_by_participant_id: pinecone, standard_bindings: [] } + - { resource_id: authentication, uri: https://docs.pinecone.io/reference/api/authentication, roles: [authentication, descriptor, provisioning, documentation], operated_by_participant_id: pinecone, standard_bindings: [] } + - { resource_id: create-index, uri: https://docs.pinecone.io/reference/api/2025-04/control-plane/create_index, roles: [provisioning, status, operations, documentation], operated_by_participant_id: pinecone, standard_bindings: [] } + - { resource_id: database-limits, uri: https://docs.pinecone.io/reference/api/database-limits, roles: [status, operations, documentation], operated_by_participant_id: pinecone, standard_bindings: [] } + - { resource_id: api-errors, uri: https://docs.pinecone.io/reference/api/errors, roles: [status, operations, recovery, documentation], operated_by_participant_id: pinecone, standard_bindings: [] } + - { resource_id: support, uri: https://docs.pinecone.io/troubleshooting/how-to-work-with-support, roles: [recovery, documentation], operated_by_participant_id: pinecone, standard_bindings: [] } + - { resource_id: billing-checkout, uri: https://docs.pinecone.io/guides/organizations/manage-billing/change-payment-method, roles: [checkout, documentation], operated_by_participant_id: pinecone, standard_bindings: [] } + - resource_id: readiness-d071de696fe778be745100ce82afc8f60c9a2e0e1ebe9847436a528e9a96957b + uri: https://docs.pinecone.io/guides/organizations/manage-service-accounts + roles: + - authentication + - documentation + operated_by_participant_id: pinecone + standard_bindings: [] + - resource_id: readiness-e8834e7c1bfd2395c514fd62ceeb0233b6ea73c6af2544509e27277d1cdee13d + uri: https://docs.pinecone.io/guides/organizations/understanding-organizations + roles: + - access + - documentation + operated_by_participant_id: pinecone + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: https://app.pinecone.io/, transport: http, roles: [registration], allowed_redirect_hosts: [login.pinecone.io], operated_by_participant_id: pinecone, standard_bindings: [] } + - { endpoint_id: control-plane-api, uri: https://api.pinecone.io, transport: http, roles: [service, status], operated_by_participant_id: pinecone, standard_bindings: [] } + interfaces: + - { interface_id: index-api, modality: network_api, functions: [service_operation], endpoint_ids: [control-plane-api], resource_ids: [api-reference, create-index, database-limits, api-errors], operated_by_participant_id: pinecone, standard_bindings: [] } + - { interface_id: api-authentication, modality: network_api, functions: [authentication], endpoint_ids: [], resource_ids: [authentication], operated_by_participant_id: pinecone, standard_bindings: [] } + relations: + - { relation_id: reference-describes-api, kind: describes, from: { node_kind: resource, node_id: api-reference }, to: { node_kind: interface, node_id: index-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: api-authentication }, to: { node_kind: interface, node_id: index-api } } + - { relation_id: console-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: console-access }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: create-index-describes-api, kind: describes, from: { node_kind: resource, node_id: create-index }, to: { node_kind: interface, node_id: index-api } } + - relation_id: relation-describes-55929b53f57ecd7278ff26842c4a8a886b0996c33c7f0eb4e486df1398d7f604 + kind: describes + from: + node_kind: resource + node_id: readiness-d071de696fe778be745100ce82afc8f60c9a2e0e1ebe9847436a528e9a96957b + to: + node_kind: interface + node_id: api-authentication + offer_relations: [] + source_bindings: + - source_binding_id: pinecone_assessment_target + source_id: source_pinecone_create_index + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: pinecone-scope, source_id: source_pinecone_create_index, target: { node_kind: declaration, node_id: declaration_pinecone_api_index_lifecycle }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: pinecone-participant, source_id: source_pinecone_api, target: { node_kind: participant, node_id: pinecone }, field_paths: [/roles, /identity] } + - { source_binding_id: pinecone-resource-reference, source_id: source_pinecone_api, target: { node_kind: resource, node_id: api-reference }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: pinecone-resource-terms, source_id: source_pinecone_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: pinecone-resource-pricing, source_id: source_pinecone_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: pinecone-resource-console, source_id: source_pinecone_signup, target: { node_kind: resource, node_id: console-access }, field_paths: [/uri, /roles, /allowed_redirect_hosts, /operated_by_participant_id] } + - { source_binding_id: pinecone-endpoint-registration, source_id: source_pinecone_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /allowed_redirect_hosts, /operated_by_participant_id] } + - { source_binding_id: pinecone-resource-auth, source_id: source_pinecone_auth, target: { node_kind: resource, node_id: authentication }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: pinecone-resource-create, source_id: source_pinecone_create_index, target: { node_kind: resource, node_id: create-index }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: pinecone-resource-limits, source_id: source_pinecone_limits, target: { node_kind: resource, node_id: database-limits }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: pinecone-resource-errors, source_id: source_pinecone_errors, target: { node_kind: resource, node_id: api-errors }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: pinecone-resource-support, source_id: source_pinecone_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: pinecone-endpoint-api, source_id: source_pinecone_api, target: { node_kind: endpoint, node_id: control-plane-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: pinecone-interface-api, source_id: source_pinecone_create_index, target: { node_kind: interface, node_id: index-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: pinecone-interface-auth, source_id: source_pinecone_auth, target: { node_kind: interface, node_id: api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: pinecone-relation-reference, source_id: source_pinecone_api, target: { node_kind: relation, node_id: reference-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: pinecone-relation-auth, source_id: source_pinecone_auth, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: pinecone-relation-console, source_id: source_pinecone_signup, target: { node_kind: relation, node_id: console-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: pinecone-relation-create, source_id: source_pinecone_create_index, target: { node_kind: relation, node_id: create-index-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: pinecone-resource-billing-checkout, source_id: source_pinecone_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: pinecone-exclusion-separate-eligibility, source_id: source_pinecone_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + - source_binding_id: binding-resource-d071de696fe778be745100ce82afc8f60c9a2e0e1ebe9847436a528e9a96957b + source_id: source-readiness-d071de696fe778be745100ce82afc8f60c9a2e0e1ebe9847436a528e9a96957b + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-d071de696fe778be745100ce82afc8f60c9a2e0e1ebe9847436a528e9a96957b + - source_binding_id: binding-relation-55929b53f57ecd7278ff26842c4a8a886b0996c33c7f0eb4e486df1398d7f604 + source_id: source-readiness-d071de696fe778be745100ce82afc8f60c9a2e0e1ebe9847436a528e9a96957b + field_paths: + - /kind + - /from + - /to + target: + node_kind: relation + node_id: relation-describes-55929b53f57ecd7278ff26842c4a8a886b0996c33c7f0eb4e486df1398d7f604 + - source_binding_id: binding-resource-e8834e7c1bfd2395c514fd62ceeb0233b6ea73c6af2544509e27277d1cdee13d + source_id: source-readiness-e8834e7c1bfd2395c514fd62ceeb0233b6ea73c6af2544509e27277d1cdee13d + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-e8834e7c1bfd2395c514fd62ceeb0233b6ea73c6af2544509e27277d1cdee13d + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z diff --git a/entities/re/resend.yaml b/entities/re/resend.yaml new file mode 100644 index 0000000..b73bb52 --- /dev/null +++ b/entities/re/resend.yaml @@ -0,0 +1,121 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8fpe5xfhy18q4ccs4a07n + slug: resend + slug_aliases: [] + name: Resend + domains: + - value: resend.com + role: primary + valid_from: 2026-07-27T07:43:12.688Z + category: communication +sources: + - { source_id: source_resend_api, url: https://resend.com/docs/api-reference/introduction } + - { source_id: source_resend_keys, url: https://resend.com/docs/dashboard/api-keys/introduction } + - { source_id: source_resend_send, url: https://resend.com/docs/api-reference/emails/send-email } + - { source_id: source_resend_domains, url: https://resend.com/docs/api-reference/domains/create-domain } + - { source_id: source_resend_errors, url: https://resend.com/docs/api-reference/errors } + - { source_id: source_resend_pricing, url: https://resend.com/pricing } + - { source_id: source_resend_signup, url: https://resend.com/signup } + - { source_id: source_resend_terms, url: https://resend.com/legal/terms-of-service } + - { source_id: source_resend_support, url: https://resend.com/docs/knowledge-base/introduction } + - { source_id: source_resend_billing_checkout, url: https://resend.com/docs/dashboard/settings/billing } + - source_id: source-readiness-9d5754b3e4da24415ca78fa40ecba0b3ca9ce3ef666e7063fd8d1258bdecc351 + url: https://resend.com/docs/api-reference/api-keys/create-api-key +declarations: + - declaration_id: declaration_resend_email_api_operations + scope: + product: { key: resend-email-api, name: Resend Email API } + funnel: { key: email-operations, name: Email operations } + assessment_targets: + - target_id: service-use + name: Send email through the API + interface_ids: [email-api] + participants: + - { participant_id: resend, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyh8fpe5xfhy18q4ccs4a07n } } + resources: + - { resource_id: api-reference, uri: https://resend.com/docs/api-reference/introduction, roles: [discovery, operations, documentation], operated_by_participant_id: resend, standard_bindings: [] } + - { resource_id: service-terms, uri: https://resend.com/legal/terms-of-service, roles: [terms], operated_by_participant_id: resend, standard_bindings: [] } + - { resource_id: pricing, uri: https://resend.com/pricing, roles: [checkout, documentation, pricing], operated_by_participant_id: resend, standard_bindings: [] } + - { resource_id: account-signup, uri: https://resend.com/signup, roles: [access], operated_by_participant_id: resend, standard_bindings: [] } + - { resource_id: api-keys, uri: https://resend.com/docs/dashboard/api-keys/introduction, roles: [authentication, descriptor, provisioning, documentation], operated_by_participant_id: resend, standard_bindings: [] } + - { resource_id: send-email, uri: https://resend.com/docs/api-reference/emails/send-email, roles: [provisioning, status, operations, documentation], operated_by_participant_id: resend, standard_bindings: [] } + - { resource_id: domain-provisioning, uri: https://resend.com/docs/api-reference/domains/create-domain, roles: [provisioning, status, operations, documentation], operated_by_participant_id: resend, standard_bindings: [] } + - { resource_id: api-errors, uri: https://resend.com/docs/api-reference/errors, roles: [status, operations, recovery, documentation], operated_by_participant_id: resend, standard_bindings: [] } + - { resource_id: support, uri: https://resend.com/docs/knowledge-base/introduction, roles: [recovery, documentation], operated_by_participant_id: resend, standard_bindings: [] } + - { resource_id: billing-checkout, uri: https://resend.com/docs/dashboard/settings/billing, roles: [checkout, documentation], operated_by_participant_id: resend, standard_bindings: [] } + - resource_id: readiness-9d5754b3e4da24415ca78fa40ecba0b3ca9ce3ef666e7063fd8d1258bdecc351 + uri: https://resend.com/docs/api-reference/api-keys/create-api-key + roles: + - authentication + - documentation + operated_by_participant_id: resend + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: https://resend.com/signup, transport: http, roles: [registration], operated_by_participant_id: resend, standard_bindings: [] } + - { endpoint_id: resend-api, uri: https://api.resend.com, transport: http, roles: [service, status], operated_by_participant_id: resend, standard_bindings: [] } + interfaces: + - { interface_id: email-api, modality: network_api, functions: [service_operation, events], endpoint_ids: [resend-api], resource_ids: [send-email, api-errors], operated_by_participant_id: resend, standard_bindings: [] } + - { interface_id: api-authentication, modality: network_api, functions: [authentication], endpoint_ids: [], resource_ids: [api-keys], operated_by_participant_id: resend, standard_bindings: [] } + relations: + - { relation_id: reference-describes-api, kind: describes, from: { node_kind: resource, node_id: api-reference }, to: { node_kind: interface, node_id: email-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: api-authentication }, to: { node_kind: interface, node_id: email-api } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: account-signup }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: sending-describes-api, kind: describes, from: { node_kind: resource, node_id: send-email }, to: { node_kind: interface, node_id: email-api } } + - relation_id: relation-describes-6c4d56035c5e22a92de30089f00893064e796c95327ba614484ea47b04c629c9 + kind: describes + from: + node_kind: resource + node_id: readiness-9d5754b3e4da24415ca78fa40ecba0b3ca9ce3ef666e7063fd8d1258bdecc351 + to: + node_kind: interface + node_id: api-authentication + offer_relations: [] + source_bindings: + - source_binding_id: resend_assessment_target + source_id: source_resend_send + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: resend-scope, source_id: source_resend_send, target: { node_kind: declaration, node_id: declaration_resend_email_api_operations }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: resend-participant, source_id: source_resend_api, target: { node_kind: participant, node_id: resend }, field_paths: [/roles, /identity] } + - { source_binding_id: resend-resource-reference, source_id: source_resend_api, target: { node_kind: resource, node_id: api-reference }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: resend-resource-terms, source_id: source_resend_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: resend-resource-pricing, source_id: source_resend_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: resend-resource-signup, source_id: source_resend_signup, target: { node_kind: resource, node_id: account-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: resend-endpoint-registration, source_id: source_resend_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: resend-resource-keys, source_id: source_resend_keys, target: { node_kind: resource, node_id: api-keys }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: resend-resource-send, source_id: source_resend_send, target: { node_kind: resource, node_id: send-email }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: resend-resource-domains, source_id: source_resend_domains, target: { node_kind: resource, node_id: domain-provisioning }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: resend-resource-errors, source_id: source_resend_errors, target: { node_kind: resource, node_id: api-errors }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: resend-resource-support, source_id: source_resend_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: resend-endpoint-api, source_id: source_resend_api, target: { node_kind: endpoint, node_id: resend-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: resend-interface-api, source_id: source_resend_send, target: { node_kind: interface, node_id: email-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: resend-interface-auth, source_id: source_resend_keys, target: { node_kind: interface, node_id: api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: resend-relation-reference, source_id: source_resend_api, target: { node_kind: relation, node_id: reference-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: resend-relation-auth, source_id: source_resend_keys, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: resend-relation-signup, source_id: source_resend_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: resend-relation-send, source_id: source_resend_send, target: { node_kind: relation, node_id: sending-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: resend-resource-billing-checkout, source_id: source_resend_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: resend-exclusion-separate-eligibility, source_id: source_resend_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + - source_binding_id: binding-resource-9d5754b3e4da24415ca78fa40ecba0b3ca9ce3ef666e7063fd8d1258bdecc351 + source_id: source-readiness-9d5754b3e4da24415ca78fa40ecba0b3ca9ce3ef666e7063fd8d1258bdecc351 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-9d5754b3e4da24415ca78fa40ecba0b3ca9ce3ef666e7063fd8d1258bdecc351 + - source_binding_id: binding-relation-6c4d56035c5e22a92de30089f00893064e796c95327ba614484ea47b04c629c9 + source_id: source-readiness-9d5754b3e4da24415ca78fa40ecba0b3ca9ce3ef666e7063fd8d1258bdecc351 + field_paths: + - /kind + - /from + - /to + target: + node_kind: relation + node_id: relation-describes-6c4d56035c5e22a92de30089f00893064e796c95327ba614484ea47b04c629c9 + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z diff --git a/entities/se/sentry.yaml b/entities/se/sentry.yaml new file mode 100644 index 0000000..5dddfb9 --- /dev/null +++ b/entities/se/sentry.yaml @@ -0,0 +1,96 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyxthgq3w0q894h0tadvr0cq + slug: sentry + slug_aliases: [] + name: Sentry + domains: + - value: sentry.io + role: primary + valid_from: 2026-07-31T23:18:44.534Z + category: observability +sources: + - { source_id: source_sentry_api, url: https://docs.sentry.io/api/ } + - { source_id: source_sentry_auth, url: https://docs.sentry.io/api/auth/ } + - { source_id: source_sentry_projects, url: https://docs.sentry.io/api/projects/create-a-new-project/ } + - { source_id: source_sentry_issues, url: https://docs.sentry.io/api/events/ } + - { source_id: source_sentry_permissions, url: https://docs.sentry.io/api/permissions/ } + - { source_id: source_sentry_limits, url: https://docs.sentry.io/api/ratelimits/ } + - { source_id: source_sentry_pricing, url: https://sentry.io/pricing/ } + - { source_id: source_sentry_signup, url: https://sentry.io/signup/ } + - { source_id: source_sentry_terms, url: https://sentry.io/terms/ } + - { source_id: source_sentry_support, url: https://sentry.zendesk.com/hc/en-us } + - { source_id: source_sentry_self_service_plan, url: https://www.sentry.help/en/articles/13965054-can-i-get-a-quote-for-sentry } +declarations: + - declaration_id: declaration_sentry_api_issue_operations + scope: + product: { key: sentry-web-api, name: Sentry Web API } + funnel: { key: issue-operations, name: Issue and project operations } + assessment_targets: + - target_id: service-use + name: Create projects and manage issues through the Sentry Web API + interface_ids: [issue-api] + participants: + - { participant_id: sentry, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyxthgq3w0q894h0tadvr0cq } } + resources: + - { resource_id: api-reference, uri: https://docs.sentry.io/api/, roles: [discovery, operations, documentation], operated_by_participant_id: sentry, standard_bindings: [] } + - { resource_id: service-terms, uri: https://sentry.io/terms/, roles: [terms], operated_by_participant_id: sentry, standard_bindings: [] } + - { resource_id: pricing, uri: https://sentry.io/pricing/, roles: [checkout, documentation, pricing], operated_by_participant_id: sentry, standard_bindings: [] } + - { resource_id: self-service-plan, uri: https://www.sentry.help/en/articles/13965054-can-i-get-a-quote-for-sentry, roles: [checkout, documentation], operated_by_participant_id: sentry, standard_bindings: [] } + - { resource_id: account-signup, uri: https://sentry.io/signup/, roles: [access], operated_by_participant_id: sentry, standard_bindings: [] } + - { resource_id: authentication, uri: https://docs.sentry.io/api/auth/, roles: [authentication, descriptor, provisioning, documentation], operated_by_participant_id: sentry, standard_bindings: [] } + - { resource_id: permissions, uri: https://docs.sentry.io/api/permissions/, roles: [descriptor, operations, documentation], operated_by_participant_id: sentry, standard_bindings: [] } + - { resource_id: project-provisioning, uri: https://docs.sentry.io/api/projects/create-a-new-project/, roles: [provisioning, status, operations, documentation], operated_by_participant_id: sentry, standard_bindings: [] } + - { resource_id: issue-operations, uri: https://docs.sentry.io/api/events/, roles: [status, operations, documentation], operated_by_participant_id: sentry, standard_bindings: [] } + - { resource_id: rate-limits, uri: https://docs.sentry.io/api/ratelimits/, roles: [status, operations, recovery, documentation], operated_by_participant_id: sentry, standard_bindings: [] } + - { resource_id: support, uri: https://sentry.zendesk.com/hc/en-us, roles: [recovery, documentation], operated_by_participant_id: sentry, standard_bindings: [] } + endpoints: + - { endpoint_id: registration, uri: https://sentry.io/signup/, transport: http, roles: [registration], operated_by_participant_id: sentry, standard_bindings: [] } + - { endpoint_id: sentry-api, uri: https://sentry.io/api/0, transport: http, roles: [service, status], operated_by_participant_id: sentry, standard_bindings: [] } + interfaces: + - { interface_id: issue-api, modality: network_api, functions: [service_operation], endpoint_ids: [sentry-api], resource_ids: [api-reference, permissions, project-provisioning, issue-operations, rate-limits], operated_by_participant_id: sentry, standard_bindings: [] } + - { interface_id: api-authentication, modality: network_api, functions: [authentication], endpoint_ids: [], resource_ids: [authentication], operated_by_participant_id: sentry, standard_bindings: [] } + relations: + - { relation_id: reference-describes-api, kind: describes, from: { node_kind: resource, node_id: api-reference }, to: { node_kind: interface, node_id: issue-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: api-authentication }, to: { node_kind: interface, node_id: issue-api } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: account-signup }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: projects-describe-api, kind: describes, from: { node_kind: resource, node_id: project-provisioning }, to: { node_kind: interface, node_id: issue-api } } + - { relation_id: issues-describe-api, kind: describes, from: { node_kind: resource, node_id: issue-operations }, to: { node_kind: interface, node_id: issue-api } } + offer_relations: [] + source_bindings: + - source_binding_id: sentry_assessment_target + source_id: source_sentry_projects + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - source_binding_id: sentry-assessment-target-issues + source_id: source_sentry_issues + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: sentry-scope, source_id: source_sentry_issues, target: { node_kind: declaration, node_id: declaration_sentry_api_issue_operations }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: sentry-scope-projects, source_id: source_sentry_projects, target: { node_kind: declaration, node_id: declaration_sentry_api_issue_operations }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: sentry-participant, source_id: source_sentry_api, target: { node_kind: participant, node_id: sentry }, field_paths: [/roles, /identity] } + - { source_binding_id: sentry-resource-reference, source_id: source_sentry_api, target: { node_kind: resource, node_id: api-reference }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: sentry-resource-terms, source_id: source_sentry_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: sentry-resource-pricing, source_id: source_sentry_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: sentry-resource-self-service-plan, source_id: source_sentry_self_service_plan, target: { node_kind: resource, node_id: self-service-plan }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: sentry-resource-signup, source_id: source_sentry_signup, target: { node_kind: resource, node_id: account-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: sentry-endpoint-registration, source_id: source_sentry_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: sentry-resource-auth, source_id: source_sentry_auth, target: { node_kind: resource, node_id: authentication }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: sentry-resource-permissions, source_id: source_sentry_permissions, target: { node_kind: resource, node_id: permissions }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: sentry-resource-projects, source_id: source_sentry_projects, target: { node_kind: resource, node_id: project-provisioning }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: sentry-resource-issues, source_id: source_sentry_issues, target: { node_kind: resource, node_id: issue-operations }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: sentry-resource-limits, source_id: source_sentry_limits, target: { node_kind: resource, node_id: rate-limits }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: sentry-resource-support, source_id: source_sentry_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: sentry-endpoint-api, source_id: source_sentry_api, target: { node_kind: endpoint, node_id: sentry-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: sentry-interface-api, source_id: source_sentry_issues, target: { node_kind: interface, node_id: issue-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: sentry-interface-auth, source_id: source_sentry_auth, target: { node_kind: interface, node_id: api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: sentry-relation-reference, source_id: source_sentry_api, target: { node_kind: relation, node_id: reference-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: sentry-relation-auth, source_id: source_sentry_auth, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: sentry-relation-signup, source_id: source_sentry_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: sentry-relation-projects, source_id: source_sentry_projects, target: { node_kind: relation, node_id: projects-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: sentry-relation-issues, source_id: source_sentry_issues, target: { node_kind: relation, node_id: issues-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: sentry-exclusion-separate-eligibility, source_id: source_sentry_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z diff --git a/entities/sl/slack.yaml b/entities/sl/slack.yaml new file mode 100644 index 0000000..7c7a8df --- /dev/null +++ b/entities/sl/slack.yaml @@ -0,0 +1,104 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyyts97tdz1rtzzt919cthny + slug: slack + slug_aliases: [] + name: Slack + domains: + - value: slack.com + role: primary + valid_from: 2026-08-01T13:50:00.000Z + category: communication +sources: + - { source_id: source_slack_web_api, url: https://docs.slack.dev/apis/web-api/ } + - { source_id: source_slack_auth, url: https://docs.slack.dev/authentication/ } + - { source_id: source_slack_oauth, url: https://docs.slack.dev/authentication/installing-with-oauth/ } + - { source_id: source_slack_messages, url: https://docs.slack.dev/reference/methods/chat.postMessage/ } + - { source_id: source_slack_limits, url: https://docs.slack.dev/apis/web-api/rate-limits/ } + - { source_id: source_slack_pricing, url: https://slack.com/pricing } + - { source_id: source_slack_signup, url: https://slack.com/get-started } + - { source_id: source_slack_terms, url: https://slack.com/terms-of-service } + - { source_id: source_slack_support, url: https://slack.com/help } + - { source_id: source_slack_billing_checkout, url: https://slack.com/help/articles/218915087-Manage-your-Slack-plan-and-billing-details } + - source_id: source-readiness-5cf60e6ed44cb7227b1e801c24793d749277f1ac820a2a2d1a2e3aaea9e3ae94 + url: https://slack.com/help/articles/202035138-Slack-plans-and-features +declarations: + - declaration_id: declaration_slack_web_api_workspace_operations + scope: + product: { key: slack-web-api, name: Slack Web API } + funnel: { key: workspace-app-operations, name: Workspace app operations } + assessment_targets: + - target_id: service-use + name: Install an app and post messages through the Web API + interface_ids: [workspace-api] + participants: + - { participant_id: slack, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyyts97tdz1rtzzt919cthny } } + resources: + - { resource_id: web-api, uri: https://docs.slack.dev/apis/web-api/, roles: [discovery, operations, documentation], operated_by_participant_id: slack, standard_bindings: [] } + - { resource_id: service-terms, uri: https://slack.com/terms-of-service, roles: [terms], operated_by_participant_id: slack, standard_bindings: [] } + - { resource_id: pricing, uri: https://slack.com/pricing, roles: [pricing], operated_by_participant_id: slack, standard_bindings: [] } + - { resource_id: workspace-signup, uri: https://slack.com/get-started, roles: [access], operated_by_participant_id: slack, standard_bindings: [] } + - { resource_id: authentication, uri: https://docs.slack.dev/authentication/, roles: [descriptor, documentation], operated_by_participant_id: slack, standard_bindings: [] } + - { resource_id: oauth, uri: https://docs.slack.dev/authentication/installing-with-oauth/, roles: [authentication, descriptor, provisioning, documentation], operated_by_participant_id: slack, standard_bindings: [{ namespace: oauth, version: "2.0", relation: describes }] } + - { resource_id: message-operations, uri: https://docs.slack.dev/reference/methods/chat.postMessage/, roles: [provisioning, status, operations, documentation], operated_by_participant_id: slack, standard_bindings: [] } + - { resource_id: rate-limits, uri: https://docs.slack.dev/apis/web-api/rate-limits/, roles: [status, operations, recovery, documentation], operated_by_participant_id: slack, standard_bindings: [] } + - { resource_id: support, uri: https://slack.com/help, roles: [recovery, documentation], operated_by_participant_id: slack, standard_bindings: [] } + - { resource_id: billing-checkout, uri: https://slack.com/help/articles/218915087-Manage-your-Slack-plan-and-billing-details, roles: [checkout, documentation], operated_by_participant_id: slack, standard_bindings: [] } + - resource_id: readiness-5cf60e6ed44cb7227b1e801c24793d749277f1ac820a2a2d1a2e3aaea9e3ae94 + uri: https://slack.com/help/articles/202035138-Slack-plans-and-features + roles: + - documentation + - eligibility + operated_by_participant_id: slack + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: https://slack.com/get-started, transport: http, roles: [registration], operated_by_participant_id: slack, standard_bindings: [] } + - { endpoint_id: slack-api, uri: https://slack.com/api, transport: http, roles: [service, status], operated_by_participant_id: slack, standard_bindings: [] } + - { endpoint_id: oauth-token, uri: https://slack.com/api/oauth.v2.access, transport: http, roles: [authorization, token], operated_by_participant_id: slack, standard_bindings: [{ namespace: oauth, version: "2.0", relation: implements }] } + interfaces: + - { interface_id: workspace-api, modality: network_api, functions: [service_operation, events], endpoint_ids: [slack-api], resource_ids: [web-api, message-operations, rate-limits], operated_by_participant_id: slack, standard_bindings: [] } + - { interface_id: app-authentication, modality: network_api, functions: [authentication], endpoint_ids: [oauth-token], resource_ids: [authentication, oauth], operated_by_participant_id: slack, standard_bindings: [{ namespace: oauth, version: "2.0", relation: uses }] } + relations: + - { relation_id: web-describes-api, kind: describes, from: { node_kind: resource, node_id: web-api }, to: { node_kind: interface, node_id: workspace-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: app-authentication }, to: { node_kind: interface, node_id: workspace-api } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: workspace-signup }, to: { node_kind: interface, node_id: app-authentication } } + - { relation_id: messages-describe-api, kind: describes, from: { node_kind: resource, node_id: message-operations }, to: { node_kind: interface, node_id: workspace-api } } + offer_relations: [] + source_bindings: + - source_binding_id: slack_assessment_target + source_id: source_slack_web_api + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: slack-scope, source_id: source_slack_web_api, target: { node_kind: declaration, node_id: declaration_slack_web_api_workspace_operations }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: slack-participant, source_id: source_slack_web_api, target: { node_kind: participant, node_id: slack }, field_paths: [/roles, /identity] } + - { source_binding_id: slack-resource-web, source_id: source_slack_web_api, target: { node_kind: resource, node_id: web-api }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: slack-resource-terms, source_id: source_slack_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: slack-resource-pricing, source_id: source_slack_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: slack-resource-signup, source_id: source_slack_signup, target: { node_kind: resource, node_id: workspace-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: slack-endpoint-registration, source_id: source_slack_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: slack-resource-auth, source_id: source_slack_auth, target: { node_kind: resource, node_id: authentication }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: slack-resource-oauth, source_id: source_slack_oauth, target: { node_kind: resource, node_id: oauth }, field_paths: [/uri, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: slack-resource-messages, source_id: source_slack_messages, target: { node_kind: resource, node_id: message-operations }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: slack-resource-limits, source_id: source_slack_limits, target: { node_kind: resource, node_id: rate-limits }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: slack-resource-support, source_id: source_slack_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: slack-endpoint-api, source_id: source_slack_web_api, target: { node_kind: endpoint, node_id: slack-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: slack-endpoint-oauth, source_id: source_slack_oauth, target: { node_kind: endpoint, node_id: oauth-token }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: slack-interface-api, source_id: source_slack_web_api, target: { node_kind: interface, node_id: workspace-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: slack-interface-auth, source_id: source_slack_oauth, target: { node_kind: interface, node_id: app-authentication }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id, /standard_bindings] } + - { source_binding_id: slack-relation-web, source_id: source_slack_web_api, target: { node_kind: relation, node_id: web-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: slack-relation-auth, source_id: source_slack_oauth, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: slack-relation-signup, source_id: source_slack_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: slack-relation-messages, source_id: source_slack_messages, target: { node_kind: relation, node_id: messages-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: slack-resource-billing-checkout, source_id: source_slack_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - source_binding_id: binding-resource-5cf60e6ed44cb7227b1e801c24793d749277f1ac820a2a2d1a2e3aaea9e3ae94 + source_id: source-readiness-5cf60e6ed44cb7227b1e801c24793d749277f1ac820a2a2d1a2e3aaea9e3ae94 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-5cf60e6ed44cb7227b1e801c24793d749277f1ac820a2a2d1a2e3aaea9e3ae94 + surface_exclusions: [] + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z diff --git a/entities/st/stripe.yaml b/entities/st/stripe.yaml new file mode 100644 index 0000000..2541a43 --- /dev/null +++ b/entities/st/stripe.yaml @@ -0,0 +1,93 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyygma830fqh16kvj744sk1c + slug: stripe + slug_aliases: [] + name: Stripe + domains: + - value: stripe.com + role: primary + valid_from: 2026-07-31T23:19:01.190Z + category: payments-fintech +sources: + - { source_id: source_stripe_api, url: https://docs.stripe.com/api } + - { source_id: source_stripe_authentication, url: https://docs.stripe.com/api/authentication } + - { source_id: source_stripe_keys, url: https://docs.stripe.com/keys.md } + - { source_id: source_stripe_idempotency, url: https://docs.stripe.com/api/idempotent_requests } + - { source_id: source_stripe_errors, url: https://docs.stripe.com/api/errors } + - { source_id: source_stripe_testing, url: https://docs.stripe.com/testing } + - { source_id: source_stripe_payment_intents_create, url: https://docs.stripe.com/api/payment_intents/create } + - { source_id: source_stripe_pricing, url: https://stripe.com/pricing } + - { source_id: source_stripe_signup, url: https://dashboard.stripe.com/register } + - { source_id: source_stripe_terms, url: https://stripe.com/legal/ssa } + - { source_id: source_stripe_support, url: https://support.stripe.com/ } +declarations: + - declaration_id: declaration_stripe_payments_api_lifecycle + scope: + product: { key: stripe-payments-api, name: Stripe Payments API } + funnel: { key: api-payment-lifecycle, name: API payment lifecycle } + assessment_targets: + - target_id: service-use + name: Create and reconcile payments through the Payments API + interface_ids: [payments-api] + participants: + - { participant_id: stripe, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyygma830fqh16kvj744sk1c } } + resources: + - { resource_id: api-reference, uri: https://docs.stripe.com/api, roles: [discovery, documentation, operations], operated_by_participant_id: stripe, standard_bindings: [] } + - { resource_id: service-terms, uri: https://stripe.com/legal/ssa, roles: [terms], operated_by_participant_id: stripe, standard_bindings: [] } + - { resource_id: pricing, uri: https://stripe.com/pricing, roles: [checkout, documentation, pricing], operated_by_participant_id: stripe, standard_bindings: [] } + - { resource_id: dashboard-signup, uri: https://dashboard.stripe.com/register, roles: [access], operated_by_participant_id: stripe, standard_bindings: [] } + - { resource_id: authentication, uri: https://docs.stripe.com/api/authentication, roles: [authentication, descriptor, documentation], operated_by_participant_id: stripe, standard_bindings: [] } + - { resource_id: credential-lifecycle, uri: https://docs.stripe.com/keys.md, roles: [authentication, provisioning, operations, recovery, documentation], operated_by_participant_id: stripe, standard_bindings: [] } + - { resource_id: testing, uri: https://docs.stripe.com/testing, roles: [provisioning, status, documentation], operated_by_participant_id: stripe, standard_bindings: [] } + - { resource_id: payment-intents-create, uri: https://docs.stripe.com/api/payment_intents/create, roles: [provisioning, status, documentation], operated_by_participant_id: stripe, standard_bindings: [] } + - { resource_id: idempotency, uri: https://docs.stripe.com/api/idempotent_requests, roles: [operations, recovery, documentation], operated_by_participant_id: stripe, standard_bindings: [] } + - { resource_id: api-errors, uri: https://docs.stripe.com/api/errors, roles: [status, operations, recovery, documentation], operated_by_participant_id: stripe, standard_bindings: [] } + - { resource_id: support, uri: https://support.stripe.com/, roles: [recovery, documentation], operated_by_participant_id: stripe, standard_bindings: [] } + endpoints: + - { endpoint_id: registration, uri: https://dashboard.stripe.com/register, transport: http, roles: [registration], operated_by_participant_id: stripe, standard_bindings: [] } + - { endpoint_id: stripe-api, uri: https://api.stripe.com/v1, transport: http, roles: [service, status], operated_by_participant_id: stripe, standard_bindings: [] } + interfaces: + - { interface_id: payments-api, modality: network_api, functions: [service_operation, commerce], endpoint_ids: [stripe-api], resource_ids: [api-reference, testing, idempotency, api-errors], operated_by_participant_id: stripe, standard_bindings: [] } + - { interface_id: api-authentication, modality: network_api, functions: [authentication, recovery], endpoint_ids: [], resource_ids: [authentication, credential-lifecycle], operated_by_participant_id: stripe, standard_bindings: [] } + relations: + - { relation_id: reference-describes-api, kind: describes, from: { node_kind: resource, node_id: api-reference }, to: { node_kind: interface, node_id: payments-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: api-authentication }, to: { node_kind: interface, node_id: payments-api } } + - { relation_id: credential-lifecycle-describes-authentication, kind: describes, from: { node_kind: resource, node_id: credential-lifecycle }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: dashboard-signup }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: idempotency-describes-api, kind: describes, from: { node_kind: resource, node_id: idempotency }, to: { node_kind: interface, node_id: payments-api } } + - { relation_id: payment-intents-create-describes-api, kind: describes, from: { node_kind: resource, node_id: payment-intents-create }, to: { node_kind: interface, node_id: payments-api } } + offer_relations: [] + source_bindings: + - source_binding_id: stripe_assessment_target + source_id: source_stripe_api + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: stripe-scope, source_id: source_stripe_api, target: { node_kind: declaration, node_id: declaration_stripe_payments_api_lifecycle }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: stripe-participant, source_id: source_stripe_api, target: { node_kind: participant, node_id: stripe }, field_paths: [/roles, /identity] } + - { source_binding_id: stripe-resource-reference, source_id: source_stripe_api, target: { node_kind: resource, node_id: api-reference }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: stripe-resource-terms, source_id: source_stripe_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: stripe-resource-pricing, source_id: source_stripe_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: stripe-resource-signup, source_id: source_stripe_signup, target: { node_kind: resource, node_id: dashboard-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: stripe-endpoint-registration, source_id: source_stripe_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: stripe-resource-auth, source_id: source_stripe_authentication, target: { node_kind: resource, node_id: authentication }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: stripe-resource-credential-lifecycle, source_id: source_stripe_keys, target: { node_kind: resource, node_id: credential-lifecycle }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: stripe-resource-testing, source_id: source_stripe_testing, target: { node_kind: resource, node_id: testing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: stripe-resource-payment-intents-create, source_id: source_stripe_payment_intents_create, target: { node_kind: resource, node_id: payment-intents-create }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: stripe-resource-idempotency, source_id: source_stripe_idempotency, target: { node_kind: resource, node_id: idempotency }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: stripe-resource-errors, source_id: source_stripe_errors, target: { node_kind: resource, node_id: api-errors }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: stripe-resource-support, source_id: source_stripe_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: stripe-endpoint-api, source_id: source_stripe_api, target: { node_kind: endpoint, node_id: stripe-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: stripe-interface-api, source_id: source_stripe_api, target: { node_kind: interface, node_id: payments-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: stripe-interface-auth, source_id: source_stripe_authentication, target: { node_kind: interface, node_id: api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: stripe-relation-credential-lifecycle, source_id: source_stripe_keys, target: { node_kind: relation, node_id: credential-lifecycle-describes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: stripe-relation-reference, source_id: source_stripe_api, target: { node_kind: relation, node_id: reference-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: stripe-relation-auth, source_id: source_stripe_authentication, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: stripe-relation-signup, source_id: source_stripe_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: stripe-relation-idempotency, source_id: source_stripe_idempotency, target: { node_kind: relation, node_id: idempotency-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: stripe-relation-payment-intents-create, source_id: source_stripe_payment_intents_create, target: { node_kind: relation, node_id: payment-intents-create-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: stripe-exclusion-separate-eligibility, source_id: source_stripe_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z diff --git a/entities/tw/twilio.yaml b/entities/tw/twilio.yaml new file mode 100644 index 0000000..284cb8a --- /dev/null +++ b/entities/tw/twilio.yaml @@ -0,0 +1,101 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyyts97tg62epymp01r8t62x + slug: twilio + slug_aliases: [] + name: twilio + domains: + - value: twilio.com + role: primary + valid_from: 2026-08-01T13:50:00.000Z + category: communication +sources: + - { source_id: source_twilio_api, url: https://www.twilio.com/docs/usage/api } + - { source_id: source_twilio_auth, url: https://www.twilio.com/docs/usage/requests-to-twilio } + - { source_id: source_twilio_messages, url: https://www.twilio.com/docs/messaging/api/message-resource } + - { source_id: source_twilio_status, url: https://www.twilio.com/docs/messaging/guides/track-outbound-message-status } + - { source_id: source_twilio_errors, url: https://www.twilio.com/docs/usage/twilios-response } + - { source_id: source_twilio_pricing, url: https://www.twilio.com/en-us/pricing } + - { source_id: source_twilio_signup, url: https://www.twilio.com/docs/usage/tutorials/how-to-use-your-free-trial-account } + - { source_id: source_twilio_terms, url: https://www.twilio.com/en-us/legal/tos } + - { source_id: source_twilio_support, url: https://www.twilio.com/docs/usage/troubleshooting } + - source_id: source-readiness-cfa12ce6e4f5f5ff16c4a65698f5d4c7be599bc6f54d70a6e41dcf742e0637ac + url: https://www.twilio.com/en-us/pricing/messaging +declarations: + - declaration_id: declaration_twilio_messaging_api_operations + scope: + product: { key: twilio-messaging-api, name: Twilio Messaging API } + funnel: { key: message-operations, name: Message operations } + assessment_targets: + - target_id: service-use + name: Send messages and inspect delivery state through the API + interface_ids: [messaging-api] + participants: + - { participant_id: twilio, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyyts97tg62epymp01r8t62x } } + resources: + - { resource_id: api-overview, uri: https://www.twilio.com/docs/usage/api, roles: [discovery, operations, documentation], operated_by_participant_id: twilio, standard_bindings: [] } + - { resource_id: service-terms, uri: https://www.twilio.com/en-us/legal/tos, roles: [terms], operated_by_participant_id: twilio, standard_bindings: [] } + - { resource_id: pricing, uri: https://www.twilio.com/en-us/pricing, roles: [pricing], operated_by_participant_id: twilio, standard_bindings: [] } + - { resource_id: account-signup, uri: https://www.twilio.com/docs/usage/tutorials/how-to-use-your-free-trial-account, roles: [access, checkout, documentation], operated_by_participant_id: twilio, standard_bindings: [] } + - { resource_id: authentication, uri: https://www.twilio.com/docs/usage/requests-to-twilio, roles: [authentication, descriptor, provisioning, documentation], operated_by_participant_id: twilio, standard_bindings: [] } + - { resource_id: message-operations, uri: https://www.twilio.com/docs/messaging/api/message-resource, roles: [provisioning, status, operations, documentation], operated_by_participant_id: twilio, standard_bindings: [] } + - { resource_id: delivery-status, uri: https://www.twilio.com/docs/messaging/guides/track-outbound-message-status, roles: [status, operations, recovery, documentation], operated_by_participant_id: twilio, standard_bindings: [] } + - { resource_id: api-errors, uri: https://www.twilio.com/docs/usage/twilios-response, roles: [status, operations, recovery, documentation], operated_by_participant_id: twilio, standard_bindings: [] } + - { resource_id: support, uri: https://www.twilio.com/docs/usage/troubleshooting, roles: [recovery, documentation], operated_by_participant_id: twilio, standard_bindings: [] } + - resource_id: readiness-cfa12ce6e4f5f5ff16c4a65698f5d4c7be599bc6f54d70a6e41dcf742e0637ac + uri: https://www.twilio.com/en-us/pricing/messaging + roles: + - documentation + - pricing + operated_by_participant_id: twilio + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: https://www.twilio.com/docs/usage/tutorials/how-to-use-your-free-trial-account, transport: http, roles: [registration], operated_by_participant_id: twilio, standard_bindings: [] } + - { endpoint_id: twilio-api, uri: https://api.twilio.com/2010-04-01, transport: http, roles: [service, status], operated_by_participant_id: twilio, standard_bindings: [] } + interfaces: + - { interface_id: messaging-api, modality: network_api, functions: [service_operation, events], endpoint_ids: [twilio-api], resource_ids: [api-overview, message-operations, delivery-status, api-errors], operated_by_participant_id: twilio, standard_bindings: [] } + - { interface_id: api-authentication, modality: network_api, functions: [authentication], endpoint_ids: [], resource_ids: [authentication], operated_by_participant_id: twilio, standard_bindings: [] } + relations: + - { relation_id: overview-describes-api, kind: describes, from: { node_kind: resource, node_id: api-overview }, to: { node_kind: interface, node_id: messaging-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: api-authentication }, to: { node_kind: interface, node_id: messaging-api } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: account-signup }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: messages-describe-api, kind: describes, from: { node_kind: resource, node_id: message-operations }, to: { node_kind: interface, node_id: messaging-api } } + offer_relations: [] + source_bindings: + - source_binding_id: twilio_assessment_target + source_id: source_twilio_messages + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: twilio-scope, source_id: source_twilio_messages, target: { node_kind: declaration, node_id: declaration_twilio_messaging_api_operations }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: twilio-participant, source_id: source_twilio_api, target: { node_kind: participant, node_id: twilio }, field_paths: [/roles, /identity] } + - { source_binding_id: twilio-resource-overview, source_id: source_twilio_api, target: { node_kind: resource, node_id: api-overview }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: twilio-resource-terms, source_id: source_twilio_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: twilio-resource-pricing, source_id: source_twilio_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: twilio-resource-signup, source_id: source_twilio_signup, target: { node_kind: resource, node_id: account-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: twilio-endpoint-registration, source_id: source_twilio_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: twilio-resource-auth, source_id: source_twilio_auth, target: { node_kind: resource, node_id: authentication }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: twilio-resource-messages, source_id: source_twilio_messages, target: { node_kind: resource, node_id: message-operations }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: twilio-resource-status, source_id: source_twilio_status, target: { node_kind: resource, node_id: delivery-status }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: twilio-resource-errors, source_id: source_twilio_errors, target: { node_kind: resource, node_id: api-errors }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: twilio-resource-support, source_id: source_twilio_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: twilio-endpoint-api, source_id: source_twilio_api, target: { node_kind: endpoint, node_id: twilio-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: twilio-interface-api, source_id: source_twilio_messages, target: { node_kind: interface, node_id: messaging-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: twilio-interface-auth, source_id: source_twilio_auth, target: { node_kind: interface, node_id: api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: twilio-relation-overview, source_id: source_twilio_api, target: { node_kind: relation, node_id: overview-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: twilio-relation-auth, source_id: source_twilio_auth, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: twilio-relation-signup, source_id: source_twilio_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: twilio-relation-messages, source_id: source_twilio_messages, target: { node_kind: relation, node_id: messages-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: twilio-exclusion-separate-eligibility, source_id: source_twilio_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + - source_binding_id: binding-resource-cfa12ce6e4f5f5ff16c4a65698f5d4c7be599bc6f54d70a6e41dcf742e0637ac + source_id: source-readiness-cfa12ce6e4f5f5ff16c4a65698f5d4c7be599bc6f54d70a6e41dcf742e0637ac + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-cfa12ce6e4f5f5ff16c4a65698f5d4c7be599bc6f54d70a6e41dcf742e0637ac + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z diff --git a/entities/ve/vercel.yaml b/entities/ve/vercel.yaml new file mode 100644 index 0000000..2a918b3 --- /dev/null +++ b/entities/ve/vercel.yaml @@ -0,0 +1,136 @@ +schema_version: sourcey.agent-readiness-authoring/v1alpha1 +entity: + entity_id: ent_01kyh8fpe5dk9hex187x4g03fn + slug: vercel + slug_aliases: [] + name: Vercel + domains: + - value: vercel.com + role: primary + valid_from: 2026-07-27T07:35:15.230Z + category: hosting-infra +sources: + - { source_id: source_vercel_api, url: https://vercel.com/docs/rest-api } + - { source_id: source_vercel_tokens, url: https://vercel.com/guides/how-do-i-use-a-vercel-api-access-token } + - { source_id: source_vercel_deployments, url: https://vercel.com/docs/rest-api/reference/endpoints/deployments/create-a-new-deployment } + - { source_id: source_vercel_errors, url: https://vercel.com/docs/rest-api/errors } + - { source_id: source_vercel_pricing, url: https://vercel.com/pricing } + - { source_id: source_vercel_signup, url: https://vercel.com/signup } + - { source_id: source_vercel_terms, url: https://vercel.com/legal/terms } + - { source_id: source_vercel_support, url: https://vercel.com/help } + - { source_id: source_vercel_billing_checkout, url: https://vercel.com/docs/plans/pro-plan/billing } + - source_id: source-readiness-55d5a3246b49c5978d9cd909619ea57cb2e9a92593283460fba3bdd38e64a609 + url: https://vercel.com/docs/cli/tokens + - source_id: source-readiness-54635e0ef5c0510ed84229bf9da667a7aa6eae5d7bde501e7987da45a62b4c64 + url: https://vercel.com/docs/plans/pro-plan +declarations: + - declaration_id: declaration_vercel_api_deployment_operations + scope: + product: { key: vercel-rest-api, name: Vercel REST API } + funnel: { key: deployment-operations, name: Deployment operations } + assessment_targets: + - target_id: service-use + name: Create and inspect deployments through the REST API + interface_ids: [deployment-api] + participants: + - { participant_id: vercel, roles: [subject, access_operator, identity_provider, payment_provider, provisioning_provider, operations_provider], identity: { entity_id: ent_01kyh8fpe5dk9hex187x4g03fn } } + resources: + - { resource_id: api-reference, uri: https://vercel.com/docs/rest-api, roles: [discovery, operations, documentation], operated_by_participant_id: vercel, standard_bindings: [] } + - { resource_id: service-terms, uri: https://vercel.com/legal/terms, roles: [terms], operated_by_participant_id: vercel, standard_bindings: [] } + - { resource_id: pricing, uri: https://vercel.com/pricing, roles: [pricing], operated_by_participant_id: vercel, standard_bindings: [] } + - { resource_id: account-signup, uri: https://vercel.com/signup, roles: [access], operated_by_participant_id: vercel, standard_bindings: [] } + - { resource_id: access-tokens, uri: https://vercel.com/guides/how-do-i-use-a-vercel-api-access-token, roles: [authentication, descriptor, provisioning, documentation], operated_by_participant_id: vercel, standard_bindings: [] } + - { resource_id: deployment-operations, uri: https://vercel.com/docs/rest-api/reference/endpoints/deployments/create-a-new-deployment, roles: [provisioning, status, operations, documentation], operated_by_participant_id: vercel, standard_bindings: [] } + - { resource_id: api-errors, uri: https://vercel.com/docs/rest-api/errors, roles: [status, operations, recovery, documentation], operated_by_participant_id: vercel, standard_bindings: [] } + - { resource_id: support, uri: https://vercel.com/help, roles: [recovery, documentation], operated_by_participant_id: vercel, standard_bindings: [] } + - { resource_id: billing-checkout, uri: https://vercel.com/docs/plans/pro-plan/billing, roles: [pricing, checkout, documentation], operated_by_participant_id: vercel, standard_bindings: [] } + - resource_id: readiness-55d5a3246b49c5978d9cd909619ea57cb2e9a92593283460fba3bdd38e64a609 + uri: https://vercel.com/docs/cli/tokens + roles: + - authentication + - documentation + operated_by_participant_id: vercel + standard_bindings: [] + - resource_id: readiness-54635e0ef5c0510ed84229bf9da667a7aa6eae5d7bde501e7987da45a62b4c64 + uri: https://vercel.com/docs/plans/pro-plan + roles: + - checkout + - documentation + operated_by_participant_id: vercel + standard_bindings: [] + endpoints: + - { endpoint_id: registration, uri: https://vercel.com/signup, transport: http, roles: [registration], operated_by_participant_id: vercel, standard_bindings: [] } + - { endpoint_id: vercel-api, uri: https://api.vercel.com, transport: http, roles: [service, status], operated_by_participant_id: vercel, standard_bindings: [] } + interfaces: + - { interface_id: deployment-api, modality: network_api, functions: [service_operation], endpoint_ids: [vercel-api], resource_ids: [api-reference, deployment-operations, api-errors], operated_by_participant_id: vercel, standard_bindings: [] } + - { interface_id: api-authentication, modality: network_api, functions: [authentication], endpoint_ids: [], resource_ids: [access-tokens], operated_by_participant_id: vercel, standard_bindings: [] } + relations: + - { relation_id: reference-describes-api, kind: describes, from: { node_kind: resource, node_id: api-reference }, to: { node_kind: interface, node_id: deployment-api } } + - { relation_id: authentication-authenticates-api, kind: authenticates, from: { node_kind: interface, node_id: api-authentication }, to: { node_kind: interface, node_id: deployment-api } } + - { relation_id: signup-precedes-authentication, kind: precedes, from: { node_kind: resource, node_id: account-signup }, to: { node_kind: interface, node_id: api-authentication } } + - { relation_id: deployments-describe-api, kind: describes, from: { node_kind: resource, node_id: deployment-operations }, to: { node_kind: interface, node_id: deployment-api } } + - relation_id: relation-describes-6d02ed10c0b4e2431680d2306b1792c88939522d69d3aff8487cdc71565ad520 + kind: describes + from: + node_kind: resource + node_id: readiness-55d5a3246b49c5978d9cd909619ea57cb2e9a92593283460fba3bdd38e64a609 + to: + node_kind: interface + node_id: api-authentication + offer_relations: [] + source_bindings: + - source_binding_id: vercel_assessment_target + source_id: source_vercel_deployments + target: { node_kind: assessment_target, node_id: service-use } + field_paths: [/name, /interface_ids] + - { source_binding_id: vercel-scope, source_id: source_vercel_deployments, target: { node_kind: declaration, node_id: declaration_vercel_api_deployment_operations }, field_paths: [/scope/product/name, /scope/funnel/name] } + - { source_binding_id: vercel-participant, source_id: source_vercel_api, target: { node_kind: participant, node_id: vercel }, field_paths: [/roles, /identity] } + - { source_binding_id: vercel-resource-reference, source_id: source_vercel_api, target: { node_kind: resource, node_id: api-reference }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: vercel-resource-terms, source_id: source_vercel_terms, target: { node_kind: resource, node_id: service-terms }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: vercel-resource-pricing, source_id: source_vercel_pricing, target: { node_kind: resource, node_id: pricing }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: vercel-resource-signup, source_id: source_vercel_signup, target: { node_kind: resource, node_id: account-signup }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: vercel-endpoint-registration, source_id: source_vercel_signup, target: { node_kind: endpoint, node_id: registration }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: vercel-resource-tokens, source_id: source_vercel_tokens, target: { node_kind: resource, node_id: access-tokens }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: vercel-resource-deployments, source_id: source_vercel_deployments, target: { node_kind: resource, node_id: deployment-operations }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: vercel-resource-errors, source_id: source_vercel_errors, target: { node_kind: resource, node_id: api-errors }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: vercel-resource-support, source_id: source_vercel_support, target: { node_kind: resource, node_id: support }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: vercel-endpoint-api, source_id: source_vercel_api, target: { node_kind: endpoint, node_id: vercel-api }, field_paths: [/uri, /transport, /roles, /operated_by_participant_id] } + - { source_binding_id: vercel-interface-api, source_id: source_vercel_deployments, target: { node_kind: interface, node_id: deployment-api }, field_paths: [/modality, /functions, /endpoint_ids, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: vercel-interface-auth, source_id: source_vercel_tokens, target: { node_kind: interface, node_id: api-authentication }, field_paths: [/modality, /functions, /resource_ids, /operated_by_participant_id] } + - { source_binding_id: vercel-relation-reference, source_id: source_vercel_api, target: { node_kind: relation, node_id: reference-describes-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: vercel-relation-auth, source_id: source_vercel_tokens, target: { node_kind: relation, node_id: authentication-authenticates-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: vercel-relation-signup, source_id: source_vercel_signup, target: { node_kind: relation, node_id: signup-precedes-authentication }, field_paths: [/kind, /from, /to] } + - { source_binding_id: vercel-relation-deployments, source_id: source_vercel_deployments, target: { node_kind: relation, node_id: deployments-describe-api }, field_paths: [/kind, /from, /to] } + - { source_binding_id: vercel-resource-billing-checkout, source_id: source_vercel_billing_checkout, target: { node_kind: resource, node_id: billing-checkout }, field_paths: [/uri, /roles, /operated_by_participant_id] } + - { source_binding_id: vercel-exclusion-separate-eligibility, source_id: source_vercel_terms, target: { node_kind: surface_exclusion, node_id: separate-eligibility-resource }, field_paths: [/role, /rationale] } + - source_binding_id: binding-resource-55d5a3246b49c5978d9cd909619ea57cb2e9a92593283460fba3bdd38e64a609 + source_id: source-readiness-55d5a3246b49c5978d9cd909619ea57cb2e9a92593283460fba3bdd38e64a609 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-55d5a3246b49c5978d9cd909619ea57cb2e9a92593283460fba3bdd38e64a609 + - source_binding_id: binding-relation-6d02ed10c0b4e2431680d2306b1792c88939522d69d3aff8487cdc71565ad520 + source_id: source-readiness-55d5a3246b49c5978d9cd909619ea57cb2e9a92593283460fba3bdd38e64a609 + field_paths: + - /kind + - /from + - /to + target: + node_kind: relation + node_id: relation-describes-6d02ed10c0b4e2431680d2306b1792c88939522d69d3aff8487cdc71565ad520 + - source_binding_id: binding-resource-54635e0ef5c0510ed84229bf9da667a7aa6eae5d7bde501e7987da45a62b4c64 + source_id: source-readiness-54635e0ef5c0510ed84229bf9da667a7aa6eae5d7bde501e7987da45a62b4c64 + field_paths: + - /uri + - /roles + - /operated_by_participant_id + target: + node_kind: resource + node_id: readiness-54635e0ef5c0510ed84229bf9da667a7aa6eae5d7bde501e7987da45a62b4c64 + surface_exclusions: + - { exclusion_id: separate-eligibility-resource, role: eligibility, rationale: "Applicable access conditions are published within the service terms; no separate eligibility resource is declared." } + authority_intent: community + declared_at: 2026-08-07T06:30:00.000Z