{
  "api_contract": "sourcey.catalog-api/v1",
  "release_id": "sha256:1042b2f7b6130b564b0059e00560960c50db2d7578dfa5178d401e5d14d9b11f",
  "artifact_sha256": "sha256:a695609a4d6872bd447e3125d912e7f84e605d0f064df0b08e62a9f24d9d2e80",
  "data": {
    "revision_contract": "sourcey.agent-readiness-revision/v1alpha1",
    "agent_readiness_profile_id": "arp_01kzd4bb9sf13ma4xaxb73d82x",
    "entity_id": "ent_01kyh8fpe3n3yye39kmzvy410z",
    "scope": {
      "product": {
        "key": "microsoft-azure",
        "name": "Microsoft Azure"
      },
      "funnel": {
        "key": "api-resource-management",
        "name": "API resource management"
      }
    },
    "catalog_binding": {
      "base_release_id": "sha256:5082ec07047a2324648f569d234cc64342ce2707b2f3d77fde8fc06af517cee6",
      "entity_revision_digest": "sha256:a569131c2422a72436aea7d8dfa1b846f87a3500dbc533c3ea06bfd806a27e2f"
    },
    "declaration_revision_digest": "sha256:c5c043c02b26ff97986a0aefff37f0324219b23d533452c7b1f31b579a5a1302",
    "declaration": {
      "declaration_id": "declaration_microsoft_azure_api_resource_management",
      "provenance": {
        "repository": "sourcey/agent-ready-services",
        "commit": "00f00edd170194cc1cf3081b97b218474537ffdb",
        "path": "vendors/mi/microsoft.yaml",
        "git_blob_oid": "d2e0559f3cf99e5dd6a850ae7654b190b8d87c2c",
        "blob_digest": "sha256:54df2856e404efca5c9675a989be3cb26c4ac570e88e77d1ffc4c9d59e558119"
      },
      "status": "community_declared"
    },
    "lifecycle": "active",
    "effective_from": "2026-08-08T02:06:59.926Z",
    "signals": [
      {
        "stage": "evaluate",
        "signal_code": "decidable_eligibility",
        "value": "yes",
        "observed_at": "2026-08-07T03:37:38.015Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "azure-legal"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Azure public legal documentation explicitly sets forth criteria and agreements governing subscription eligibility, purchase terms, and service usage."
      },
      {
        "stage": "evaluate",
        "signal_code": "machine_discovery",
        "value": "yes",
        "observed_at": "2026-08-07T03:37:08.383Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "azure-rest-api"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Azure REST API reference documentation defines machine-discoverable REST endpoints and request/response specifications for service management."
      },
      {
        "stage": "evaluate",
        "signal_code": "readable_pricing",
        "value": "yes",
        "observed_at": "2026-08-07T03:37:16.558Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "azure-pricing"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Azure provides explicit, machine-readable pricing breakdown links and cost details by product."
      },
      {
        "stage": "evaluate",
        "signal_code": "structured_terms",
        "value": "partial",
        "observed_at": "2026-08-07T03:37:38.015Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "azure-legal"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "negative_coverage": {
          "kind": "complete-response-inspection",
          "scope": "exact-resource",
          "covered_surfaces": [
            {
              "node_kind": "resource",
              "node_id": "azure-legal"
            }
          ]
        },
        "note": "Azure terms of service and legal agreements are available in stable web HTML documentation across linked pages."
      },
      {
        "stage": "sign_up",
        "signal_code": "captcha_free",
        "value": "unknown",
        "observed_at": "2026-08-07T23:30:04.791Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "azure-account"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "The retained page metadata and content do not provide evidence on whether a CAPTCHA was encountered or absent during signup."
      },
      {
        "stage": "sign_up",
        "signal_code": "machine_operable_form",
        "value": "unknown",
        "observed_at": "2026-08-07T23:30:04.791Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "azure-account"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "The available captured content for the signup page contains only generic page titles and does not demonstrate machine-operable form controls."
      },
      {
        "stage": "sign_up",
        "signal_code": "phone_verification_free",
        "value": "unknown",
        "observed_at": "2026-08-07T23:30:04.791Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "azure-account"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Retained evidence from the signup page is insufficient to determine whether phone or SMS verification is required."
      },
      {
        "stage": "sign_up",
        "signal_code": "stable_entrypoint",
        "value": "yes",
        "observed_at": "2026-08-07T23:30:10.712Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "azure-account"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "A stable HTTP entrypoint for Azure sign up is available and returns the sign up page context."
      },
      {
        "stage": "sign_up",
        "signal_code": "supported_identity_flow",
        "value": "yes",
        "observed_at": "2026-08-07T23:30:15.982Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "service-principals"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Microsoft Entra ID documents scoped, revocable machine identity support via service principal objects and managed identities, including consent and permission boundaries."
      },
      {
        "stage": "pay",
        "signal_code": "explicit_price",
        "value": "yes",
        "observed_at": "2026-08-07T03:37:16.558Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "azure-pricing"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Azure pricing provides explicit pay-as-you-go pricing information and cost details across products prior to commitment."
      },
      {
        "stage": "pay",
        "signal_code": "machine_operable_checkout",
        "value": "unknown",
        "observed_at": "2026-08-07T23:30:04.791Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "azure-account"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Retained evidence shows the Azure sign-up page load but does not establish a complete machine-operable checkout process."
      },
      {
        "stage": "pay",
        "signal_code": "sales_intervention_free",
        "value": "unknown",
        "observed_at": "2026-08-07T23:30:04.791Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "azure-account"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "The retained sign-up page evidence does not provide enough detail to verify if sales intervention is required during sign-up."
      },
      {
        "stage": "pay",
        "signal_code": "supported_payment_rail",
        "value": "unknown",
        "observed_at": "2026-08-07T23:30:04.791Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "azure-account"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Supported payment rails cannot be established from the minimal account sign-up title evidence provided."
      },
      {
        "stage": "provision",
        "signal_code": "automatic_activation",
        "value": "yes",
        "observed_at": "2026-08-07T23:30:09.337Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "resource-manager-rest"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Azure Resource Manager REST API enables resource deployment directly via HTTP PUT requests with Bearer access tokens without manual intervention."
      },
      {
        "stage": "provision",
        "signal_code": "bounded_delay",
        "value": "yes",
        "observed_at": "2026-08-07T03:37:55.515Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "asynchronous-operations"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Asynchronous operations return explicit wait intervals in the Retry-After response header to schedule status checks."
      },
      {
        "stage": "provision",
        "signal_code": "credential_delivery",
        "value": "yes",
        "observed_at": "2026-08-07T23:30:15.982Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "service-principals"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Service principals and workload identities are created automatically upon app registration or programmatically via Microsoft Graph, Azure CLI, or PowerShell."
      },
      {
        "stage": "provision",
        "signal_code": "machine_readable_status",
        "value": "yes",
        "observed_at": "2026-08-07T03:37:55.515Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "asynchronous-operations"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Asynchronous Resource Manager operations expose machine-readable statuses such as InProgress, Running, Succeeded, Failed, or Canceled along with provisioningState values."
      },
      {
        "stage": "operate",
        "signal_code": "api_tool_access",
        "value": "yes",
        "observed_at": "2026-08-07T03:37:08.383Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "azure-rest-api"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Azure REST APIs provide documented HTTP methods and endpoints for managing Azure resources."
      },
      {
        "stage": "operate",
        "signal_code": "delegated_recovery",
        "value": "partial",
        "observed_at": "2026-08-07T03:37:47.185Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "azure-support"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "negative_coverage": {
          "kind": "complete-response-inspection",
          "scope": "exact-resource",
          "covered_surfaces": [
            {
              "node_kind": "resource",
              "node_id": "azure-support"
            }
          ]
        },
        "note": "Azure support options offer incident resolution and support requests, but recovery and escalation pathways rely on human support plans and manual interaction."
      },
      {
        "stage": "operate",
        "signal_code": "documented_limits_errors",
        "value": "yes",
        "observed_at": "2026-08-07T03:37:55.515Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "asynchronous-operations"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Azure Resource Manager documents async operation status tracking, Retry-After headers, and structured error payloads."
      },
      {
        "stage": "operate",
        "signal_code": "usable_authentication",
        "value": "yes",
        "observed_at": "2026-08-07T23:29:55.320Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "service-principals"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Microsoft Entra ID service principals and managed identities provide documented non-interactive machine authentication for Azure resources."
      }
    ],
    "revision_digest": "sha256:62a34d48bda1936910a64cddc8ad25775e9f8976611d12fc065461207a9ea977"
  }
}
