@qlever-llc/trellis 0.10.17 → 0.10.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/esm/auth/browser/portal.d.ts.map +1 -1
  2. package/esm/auth/browser/portal.js +2 -0
  3. package/esm/auth/browser.d.ts +2 -0
  4. package/esm/auth/browser.d.ts.map +1 -1
  5. package/esm/auth/browser.js +1 -0
  6. package/esm/auth/browser_recovery.d.ts +22 -0
  7. package/esm/auth/browser_recovery.d.ts.map +1 -0
  8. package/esm/auth/browser_recovery.js +238 -0
  9. package/esm/auth/mod.d.ts +2 -2
  10. package/esm/auth/mod.d.ts.map +1 -1
  11. package/esm/auth/mod.js +2 -2
  12. package/esm/auth/protocol.d.ts +362 -398
  13. package/esm/auth/protocol.d.ts.map +1 -1
  14. package/esm/auth/protocol.js +36 -33
  15. package/esm/browser.d.ts +2 -2
  16. package/esm/browser.d.ts.map +1 -1
  17. package/esm/browser.js +1 -1
  18. package/esm/client_connect.js +1 -1
  19. package/esm/generated-sdk/auth/contract.d.ts +1 -1
  20. package/esm/generated-sdk/auth/contract.d.ts.map +1 -1
  21. package/esm/generated-sdk/auth/contract.js +1236 -1079
  22. package/esm/generated-sdk/auth/schemas.d.ts +1428 -1578
  23. package/esm/generated-sdk/auth/schemas.d.ts.map +1 -1
  24. package/esm/generated-sdk/auth/schemas.js +725 -669
  25. package/esm/generated-sdk/auth/types.d.ts +239 -281
  26. package/esm/generated-sdk/auth/types.d.ts.map +1 -1
  27. package/esm/generated-sdk/auth/types.js +1 -1
  28. package/package.json +2 -2
  29. package/script/auth/browser/portal.d.ts.map +1 -1
  30. package/script/auth/browser/portal.js +2 -0
  31. package/script/auth/browser.d.ts +2 -0
  32. package/script/auth/browser.d.ts.map +1 -1
  33. package/script/auth/browser.js +4 -1
  34. package/script/auth/browser_recovery.d.ts +22 -0
  35. package/script/auth/browser_recovery.d.ts.map +1 -0
  36. package/script/auth/browser_recovery.js +242 -0
  37. package/script/auth/mod.d.ts +2 -2
  38. package/script/auth/mod.d.ts.map +1 -1
  39. package/script/auth/mod.js +17 -6
  40. package/script/auth/protocol.d.ts +362 -398
  41. package/script/auth/protocol.d.ts.map +1 -1
  42. package/script/auth/protocol.js +41 -37
  43. package/script/browser.d.ts +2 -2
  44. package/script/browser.d.ts.map +1 -1
  45. package/script/browser.js +4 -2
  46. package/script/client_connect.js +1 -1
  47. package/script/generated-sdk/auth/contract.d.ts +1 -1
  48. package/script/generated-sdk/auth/contract.d.ts.map +1 -1
  49. package/script/generated-sdk/auth/contract.js +1236 -1079
  50. package/script/generated-sdk/auth/schemas.d.ts +1428 -1578
  51. package/script/generated-sdk/auth/schemas.d.ts.map +1 -1
  52. package/script/generated-sdk/auth/schemas.js +725 -669
  53. package/script/generated-sdk/auth/types.d.ts +239 -281
  54. package/script/generated-sdk/auth/types.d.ts.map +1 -1
  55. package/script/generated-sdk/auth/types.js +1 -1
  56. package/src/auth/browser/portal.ts +1 -0
  57. package/src/auth/browser.ts +8 -0
  58. package/src/auth/browser_recovery.ts +319 -0
  59. package/src/auth/mod.ts +25 -2
  60. package/src/auth/protocol.ts +73 -37
  61. package/src/browser.ts +4 -0
  62. package/src/client_connect.ts +1 -1
  63. package/src/sdk/_generated/auth/contract.ts +1477 -1320
  64. package/src/sdk/_generated/auth/schemas.ts +919 -863
  65. package/src/sdk/_generated/auth/types.ts +242 -304
@@ -13,7 +13,7 @@ const CONTRACT_MODULE_METADATA = Symbol.for(
13
13
 
14
14
  export const CONTRACT_ID = "trellis.auth@v1" as const;
15
15
  export const CONTRACT_DIGEST =
16
- "XdqgSxkrIhWOu1ODbOk6-QHLTlI52ZP-6qhYJpIdCMc" as const;
16
+ "U-Y6P1smzJB4MeG6NdhDuZ0CTT2BWOud9iL1zIQktMM" as const;
17
17
  export const CONTRACT = {
18
18
  "capabilities": {
19
19
  "trellis.auth::device.review": {
@@ -1659,83 +1659,87 @@ export const CONTRACT = {
1659
1659
  "type": "array",
1660
1660
  },
1661
1661
  "needs": {
1662
- "items": {
1663
- "anyOf": [{
1664
- "properties": {
1665
- "contractId": { "minLength": 1, "type": "string" },
1666
- "kind": { "const": "contract", "type": "string" },
1667
- "required": { "type": "boolean" },
1662
+ "properties": {
1663
+ "capabilities": {
1664
+ "items": {
1665
+ "properties": {
1666
+ "capability": { "minLength": 1, "type": "string" },
1667
+ "required": { "type": "boolean" },
1668
+ },
1669
+ "required": ["capability", "required"],
1670
+ "type": "object",
1668
1671
  },
1669
- "required": ["kind", "contractId", "required"],
1670
- "type": "object",
1671
- }, {
1672
- "properties": {
1673
- "kind": { "const": "surface", "type": "string" },
1674
- "required": { "type": "boolean" },
1675
- "surface": {
1676
- "properties": {
1677
- "action": {
1678
- "anyOf": [
1679
- { "const": "call", "type": "string" },
1680
- { "const": "publish", "type": "string" },
1681
- { "const": "subscribe", "type": "string" },
1682
- { "const": "observe", "type": "string" },
1683
- { "const": "cancel", "type": "string" },
1684
- ],
1685
- },
1686
- "contractId": { "minLength": 1, "type": "string" },
1687
- "kind": {
1688
- "anyOf": [
1689
- { "const": "rpc", "type": "string" },
1690
- { "const": "operation", "type": "string" },
1691
- { "const": "event", "type": "string" },
1692
- { "const": "feed", "type": "string" },
1693
- ],
1694
- },
1695
- "name": { "minLength": 1, "type": "string" },
1696
- },
1697
- "required": ["contractId", "kind", "name"],
1698
- "type": "object",
1672
+ "type": "array",
1673
+ },
1674
+ "contracts": {
1675
+ "items": {
1676
+ "properties": {
1677
+ "contractId": { "minLength": 1, "type": "string" },
1678
+ "required": { "type": "boolean" },
1699
1679
  },
1680
+ "required": ["contractId", "required"],
1681
+ "type": "object",
1700
1682
  },
1701
- "required": ["kind", "surface", "required"],
1702
- "type": "object",
1703
- }, {
1704
- "properties": {
1705
- "capability": { "minLength": 1, "type": "string" },
1706
- "kind": { "const": "capability", "type": "string" },
1707
- "required": { "type": "boolean" },
1683
+ "type": "array",
1684
+ },
1685
+ "resources": {
1686
+ "items": {
1687
+ "properties": {
1688
+ "alias": { "minLength": 1, "type": "string" },
1689
+ "definition": { "type": "object" },
1690
+ "kind": {
1691
+ "anyOf": [
1692
+ { "const": "kv", "type": "string" },
1693
+ { "const": "store", "type": "string" },
1694
+ { "const": "jobs", "type": "string" },
1695
+ { "const": "event-consumer", "type": "string" },
1696
+ { "const": "transfer", "type": "string" },
1697
+ ],
1698
+ },
1699
+ "required": { "type": "boolean" },
1700
+ },
1701
+ "required": ["kind", "alias", "required"],
1702
+ "type": "object",
1708
1703
  },
1709
- "required": ["kind", "capability", "required"],
1710
- "type": "object",
1711
- }, {
1712
- "properties": {
1713
- "kind": { "const": "resource", "type": "string" },
1714
- "required": { "type": "boolean" },
1715
- "resource": {
1716
- "properties": {
1717
- "alias": { "minLength": 1, "type": "string" },
1718
- "definition": { "type": "object" },
1719
- "kind": {
1720
- "anyOf": [
1721
- { "const": "kv", "type": "string" },
1722
- { "const": "store", "type": "string" },
1723
- { "const": "jobs", "type": "string" },
1724
- { "const": "event-consumer", "type": "string" },
1725
- { "const": "transfer", "type": "string" },
1726
- ],
1727
- },
1728
- "required": { "type": "boolean" },
1704
+ "type": "array",
1705
+ },
1706
+ "surfaces": {
1707
+ "items": {
1708
+ "properties": {
1709
+ "action": {
1710
+ "anyOf": [
1711
+ { "const": "call", "type": "string" },
1712
+ { "const": "publish", "type": "string" },
1713
+ { "const": "subscribe", "type": "string" },
1714
+ { "const": "observe", "type": "string" },
1715
+ { "const": "cancel", "type": "string" },
1716
+ ],
1729
1717
  },
1730
- "required": ["kind", "alias", "required"],
1731
- "type": "object",
1718
+ "contractId": { "minLength": 1, "type": "string" },
1719
+ "kind": {
1720
+ "anyOf": [
1721
+ { "const": "rpc", "type": "string" },
1722
+ { "const": "operation", "type": "string" },
1723
+ { "const": "event", "type": "string" },
1724
+ { "const": "feed", "type": "string" },
1725
+ ],
1726
+ },
1727
+ "name": { "minLength": 1, "type": "string" },
1728
+ "required": { "type": "boolean" },
1732
1729
  },
1730
+ "required": ["contractId", "kind", "name", "required"],
1731
+ "type": "object",
1733
1732
  },
1734
- "required": ["kind", "resource", "required"],
1735
- "type": "object",
1736
- }],
1733
+ "type": "array",
1734
+ },
1737
1735
  },
1738
- "type": "array",
1736
+ "required": [
1737
+ "contracts",
1738
+ "surfaces",
1739
+ "capabilities",
1740
+ "resources",
1741
+ ],
1742
+ "type": "object",
1739
1743
  },
1740
1744
  "resources": {
1741
1745
  "items": {
@@ -1845,83 +1849,87 @@ export const CONTRACT = {
1845
1849
  "type": "array",
1846
1850
  },
1847
1851
  "needs": {
1848
- "items": {
1849
- "anyOf": [{
1850
- "properties": {
1851
- "contractId": { "minLength": 1, "type": "string" },
1852
- "kind": { "const": "contract", "type": "string" },
1853
- "required": { "type": "boolean" },
1852
+ "properties": {
1853
+ "capabilities": {
1854
+ "items": {
1855
+ "properties": {
1856
+ "capability": { "minLength": 1, "type": "string" },
1857
+ "required": { "type": "boolean" },
1858
+ },
1859
+ "required": ["capability", "required"],
1860
+ "type": "object",
1854
1861
  },
1855
- "required": ["kind", "contractId", "required"],
1856
- "type": "object",
1857
- }, {
1858
- "properties": {
1859
- "kind": { "const": "surface", "type": "string" },
1860
- "required": { "type": "boolean" },
1861
- "surface": {
1862
- "properties": {
1863
- "action": {
1864
- "anyOf": [
1865
- { "const": "call", "type": "string" },
1866
- { "const": "publish", "type": "string" },
1867
- { "const": "subscribe", "type": "string" },
1868
- { "const": "observe", "type": "string" },
1869
- { "const": "cancel", "type": "string" },
1870
- ],
1871
- },
1872
- "contractId": { "minLength": 1, "type": "string" },
1873
- "kind": {
1874
- "anyOf": [
1875
- { "const": "rpc", "type": "string" },
1876
- { "const": "operation", "type": "string" },
1877
- { "const": "event", "type": "string" },
1878
- { "const": "feed", "type": "string" },
1879
- ],
1880
- },
1881
- "name": { "minLength": 1, "type": "string" },
1882
- },
1883
- "required": ["contractId", "kind", "name"],
1884
- "type": "object",
1862
+ "type": "array",
1863
+ },
1864
+ "contracts": {
1865
+ "items": {
1866
+ "properties": {
1867
+ "contractId": { "minLength": 1, "type": "string" },
1868
+ "required": { "type": "boolean" },
1885
1869
  },
1870
+ "required": ["contractId", "required"],
1871
+ "type": "object",
1886
1872
  },
1887
- "required": ["kind", "surface", "required"],
1888
- "type": "object",
1889
- }, {
1890
- "properties": {
1891
- "capability": { "minLength": 1, "type": "string" },
1892
- "kind": { "const": "capability", "type": "string" },
1893
- "required": { "type": "boolean" },
1873
+ "type": "array",
1874
+ },
1875
+ "resources": {
1876
+ "items": {
1877
+ "properties": {
1878
+ "alias": { "minLength": 1, "type": "string" },
1879
+ "definition": { "type": "object" },
1880
+ "kind": {
1881
+ "anyOf": [
1882
+ { "const": "kv", "type": "string" },
1883
+ { "const": "store", "type": "string" },
1884
+ { "const": "jobs", "type": "string" },
1885
+ { "const": "event-consumer", "type": "string" },
1886
+ { "const": "transfer", "type": "string" },
1887
+ ],
1888
+ },
1889
+ "required": { "type": "boolean" },
1890
+ },
1891
+ "required": ["kind", "alias", "required"],
1892
+ "type": "object",
1894
1893
  },
1895
- "required": ["kind", "capability", "required"],
1896
- "type": "object",
1897
- }, {
1898
- "properties": {
1899
- "kind": { "const": "resource", "type": "string" },
1900
- "required": { "type": "boolean" },
1901
- "resource": {
1902
- "properties": {
1903
- "alias": { "minLength": 1, "type": "string" },
1904
- "definition": { "type": "object" },
1905
- "kind": {
1906
- "anyOf": [
1907
- { "const": "kv", "type": "string" },
1908
- { "const": "store", "type": "string" },
1909
- { "const": "jobs", "type": "string" },
1910
- { "const": "event-consumer", "type": "string" },
1911
- { "const": "transfer", "type": "string" },
1912
- ],
1913
- },
1914
- "required": { "type": "boolean" },
1894
+ "type": "array",
1895
+ },
1896
+ "surfaces": {
1897
+ "items": {
1898
+ "properties": {
1899
+ "action": {
1900
+ "anyOf": [
1901
+ { "const": "call", "type": "string" },
1902
+ { "const": "publish", "type": "string" },
1903
+ { "const": "subscribe", "type": "string" },
1904
+ { "const": "observe", "type": "string" },
1905
+ { "const": "cancel", "type": "string" },
1906
+ ],
1915
1907
  },
1916
- "required": ["kind", "alias", "required"],
1917
- "type": "object",
1908
+ "contractId": { "minLength": 1, "type": "string" },
1909
+ "kind": {
1910
+ "anyOf": [
1911
+ { "const": "rpc", "type": "string" },
1912
+ { "const": "operation", "type": "string" },
1913
+ { "const": "event", "type": "string" },
1914
+ { "const": "feed", "type": "string" },
1915
+ ],
1916
+ },
1917
+ "name": { "minLength": 1, "type": "string" },
1918
+ "required": { "type": "boolean" },
1918
1919
  },
1920
+ "required": ["contractId", "kind", "name", "required"],
1921
+ "type": "object",
1919
1922
  },
1920
- "required": ["kind", "resource", "required"],
1921
- "type": "object",
1922
- }],
1923
+ "type": "array",
1924
+ },
1923
1925
  },
1924
- "type": "array",
1926
+ "required": [
1927
+ "contracts",
1928
+ "surfaces",
1929
+ "capabilities",
1930
+ "resources",
1931
+ ],
1932
+ "type": "object",
1925
1933
  },
1926
1934
  "resources": {
1927
1935
  "items": {
@@ -2102,99 +2110,107 @@ export const CONTRACT = {
2102
2110
  "desiredVersion": { "minLength": 1, "type": "string" },
2103
2111
  "error": { "minLength": 1, "type": "string" },
2104
2112
  "grants": {
2105
- "items": {
2106
- "anyOf": [{
2107
- "properties": {
2108
- "capability": { "minLength": 1, "type": "string" },
2109
- "kind": { "const": "capability", "type": "string" },
2110
- },
2111
- "required": ["kind", "capability"],
2112
- "type": "object",
2113
- }, {
2114
- "properties": {
2115
- "action": {
2116
- "anyOf": [
2117
- { "const": "call", "type": "string" },
2118
- { "const": "publish", "type": "string" },
2119
- { "const": "subscribe", "type": "string" },
2120
- { "const": "observe", "type": "string" },
2121
- { "const": "cancel", "type": "string" },
2122
- ],
2123
- },
2124
- "contractId": { "minLength": 1, "type": "string" },
2125
- "kind": { "const": "surface", "type": "string" },
2126
- "name": { "minLength": 1, "type": "string" },
2127
- "surfaceKind": {
2128
- "anyOf": [
2129
- { "const": "rpc", "type": "string" },
2130
- { "const": "operation", "type": "string" },
2131
- { "const": "event", "type": "string" },
2132
- { "const": "feed", "type": "string" },
2133
- ],
2113
+ "properties": {
2114
+ "capabilities": {
2115
+ "items": {
2116
+ "properties": {
2117
+ "capability": { "minLength": 1, "type": "string" },
2134
2118
  },
2119
+ "required": ["capability"],
2120
+ "type": "object",
2135
2121
  },
2136
- "required": ["kind", "contractId", "surfaceKind", "name"],
2137
- "type": "object",
2138
- }, {
2139
- "properties": {
2140
- "direction": {
2141
- "anyOf": [{ "const": "publish", "type": "string" }, {
2142
- "const": "subscribe",
2143
- "type": "string",
2144
- }],
2145
- },
2146
- "grantSource": {
2147
- "anyOf": [
2148
- { "const": "owned-surface", "type": "string" },
2149
- { "const": "used-surface", "type": "string" },
2150
- { "const": "resource-binding", "type": "string" },
2151
- { "const": "platform-service", "type": "string" },
2152
- { "const": "transfer", "type": "string" },
2153
- ],
2154
- },
2155
- "kind": { "const": "nats", "type": "string" },
2156
- "requiredCapabilities": {
2157
- "items": { "minLength": 1, "type": "string" },
2158
- "type": "array",
2159
- },
2160
- "subject": { "minLength": 1, "type": "string" },
2161
- "surface": {
2162
- "properties": {
2163
- "action": {
2164
- "anyOf": [
2165
- { "const": "call", "type": "string" },
2166
- { "const": "publish", "type": "string" },
2167
- { "const": "subscribe", "type": "string" },
2168
- { "const": "observe", "type": "string" },
2169
- { "const": "cancel", "type": "string" },
2170
- ],
2171
- },
2172
- "contractId": { "minLength": 1, "type": "string" },
2173
- "kind": {
2174
- "anyOf": [
2175
- { "const": "rpc", "type": "string" },
2176
- { "const": "operation", "type": "string" },
2177
- { "const": "event", "type": "string" },
2178
- { "const": "feed", "type": "string" },
2179
- ],
2122
+ "type": "array",
2123
+ },
2124
+ "nats": {
2125
+ "items": {
2126
+ "properties": {
2127
+ "direction": {
2128
+ "anyOf": [{ "const": "publish", "type": "string" }, {
2129
+ "const": "subscribe",
2130
+ "type": "string",
2131
+ }],
2132
+ },
2133
+ "grantSource": {
2134
+ "anyOf": [
2135
+ { "const": "owned-surface", "type": "string" },
2136
+ { "const": "used-surface", "type": "string" },
2137
+ { "const": "resource-binding", "type": "string" },
2138
+ { "const": "platform-service", "type": "string" },
2139
+ { "const": "transfer", "type": "string" },
2140
+ ],
2141
+ },
2142
+ "requiredCapabilities": {
2143
+ "items": { "minLength": 1, "type": "string" },
2144
+ "type": "array",
2145
+ },
2146
+ "subject": { "minLength": 1, "type": "string" },
2147
+ "surface": {
2148
+ "properties": {
2149
+ "action": {
2150
+ "anyOf": [
2151
+ { "const": "call", "type": "string" },
2152
+ { "const": "publish", "type": "string" },
2153
+ { "const": "subscribe", "type": "string" },
2154
+ { "const": "observe", "type": "string" },
2155
+ { "const": "cancel", "type": "string" },
2156
+ ],
2157
+ },
2158
+ "contractId": { "minLength": 1, "type": "string" },
2159
+ "kind": {
2160
+ "anyOf": [
2161
+ { "const": "rpc", "type": "string" },
2162
+ { "const": "operation", "type": "string" },
2163
+ { "const": "event", "type": "string" },
2164
+ { "const": "feed", "type": "string" },
2165
+ ],
2166
+ },
2167
+ "name": { "minLength": 1, "type": "string" },
2180
2168
  },
2181
- "name": { "minLength": 1, "type": "string" },
2169
+ "required": ["contractId", "kind", "name"],
2170
+ "type": "object",
2182
2171
  },
2183
- "required": ["contractId", "kind", "name"],
2184
- "type": "object",
2185
2172
  },
2173
+ "required": [
2174
+ "direction",
2175
+ "subject",
2176
+ "requiredCapabilities",
2177
+ "grantSource",
2178
+ ],
2179
+ "type": "object",
2186
2180
  },
2187
- "required": [
2188
- "kind",
2189
- "direction",
2190
- "subject",
2191
- "requiredCapabilities",
2192
- "grantSource",
2193
- ],
2194
- "type": "object",
2195
- }],
2181
+ "type": "array",
2182
+ },
2183
+ "surfaces": {
2184
+ "items": {
2185
+ "properties": {
2186
+ "action": {
2187
+ "anyOf": [
2188
+ { "const": "call", "type": "string" },
2189
+ { "const": "publish", "type": "string" },
2190
+ { "const": "subscribe", "type": "string" },
2191
+ { "const": "observe", "type": "string" },
2192
+ { "const": "cancel", "type": "string" },
2193
+ ],
2194
+ },
2195
+ "contractId": { "minLength": 1, "type": "string" },
2196
+ "name": { "minLength": 1, "type": "string" },
2197
+ "surfaceKind": {
2198
+ "anyOf": [
2199
+ { "const": "rpc", "type": "string" },
2200
+ { "const": "operation", "type": "string" },
2201
+ { "const": "event", "type": "string" },
2202
+ { "const": "feed", "type": "string" },
2203
+ ],
2204
+ },
2205
+ },
2206
+ "required": ["contractId", "surfaceKind", "name"],
2207
+ "type": "object",
2208
+ },
2209
+ "type": "array",
2210
+ },
2196
2211
  },
2197
- "type": "array",
2212
+ "required": ["capabilities", "surfaces", "nats"],
2213
+ "type": "object",
2198
2214
  },
2199
2215
  "reconciledAt": {
2200
2216
  "anyOf": [{ "format": "date-time", "type": "string" }, {
@@ -2745,89 +2761,92 @@ export const CONTRACT = {
2745
2761
  "type": "array",
2746
2762
  },
2747
2763
  "needs": {
2748
- "items": {
2749
- "anyOf": [{
2750
- "properties": {
2751
- "contractId": { "minLength": 1, "type": "string" },
2752
- "kind": { "const": "contract", "type": "string" },
2753
- "required": { "type": "boolean" },
2764
+ "properties": {
2765
+ "capabilities": {
2766
+ "items": {
2767
+ "properties": {
2768
+ "capability": { "minLength": 1, "type": "string" },
2769
+ "required": { "type": "boolean" },
2770
+ },
2771
+ "required": ["capability", "required"],
2772
+ "type": "object",
2754
2773
  },
2755
- "required": ["kind", "contractId", "required"],
2756
- "type": "object",
2757
- }, {
2758
- "properties": {
2759
- "kind": { "const": "surface", "type": "string" },
2760
- "required": { "type": "boolean" },
2761
- "surface": {
2762
- "properties": {
2763
- "action": {
2764
- "anyOf": [
2765
- { "const": "call", "type": "string" },
2766
- { "const": "publish", "type": "string" },
2767
- { "const": "subscribe", "type": "string" },
2768
- { "const": "observe", "type": "string" },
2769
- { "const": "cancel", "type": "string" },
2770
- ],
2771
- },
2772
- "contractId": {
2773
- "minLength": 1,
2774
- "type": "string",
2775
- },
2776
- "kind": {
2777
- "anyOf": [
2778
- { "const": "rpc", "type": "string" },
2779
- { "const": "operation", "type": "string" },
2780
- { "const": "event", "type": "string" },
2781
- { "const": "feed", "type": "string" },
2782
- ],
2783
- },
2784
- "name": { "minLength": 1, "type": "string" },
2785
- },
2786
- "required": ["contractId", "kind", "name"],
2787
- "type": "object",
2774
+ "type": "array",
2775
+ },
2776
+ "contracts": {
2777
+ "items": {
2778
+ "properties": {
2779
+ "contractId": { "minLength": 1, "type": "string" },
2780
+ "required": { "type": "boolean" },
2788
2781
  },
2782
+ "required": ["contractId", "required"],
2783
+ "type": "object",
2789
2784
  },
2790
- "required": ["kind", "surface", "required"],
2791
- "type": "object",
2792
- }, {
2793
- "properties": {
2794
- "capability": { "minLength": 1, "type": "string" },
2795
- "kind": { "const": "capability", "type": "string" },
2796
- "required": { "type": "boolean" },
2785
+ "type": "array",
2786
+ },
2787
+ "resources": {
2788
+ "items": {
2789
+ "properties": {
2790
+ "alias": { "minLength": 1, "type": "string" },
2791
+ "definition": { "type": "object" },
2792
+ "kind": {
2793
+ "anyOf": [
2794
+ { "const": "kv", "type": "string" },
2795
+ { "const": "store", "type": "string" },
2796
+ { "const": "jobs", "type": "string" },
2797
+ { "const": "event-consumer", "type": "string" },
2798
+ { "const": "transfer", "type": "string" },
2799
+ ],
2800
+ },
2801
+ "required": { "type": "boolean" },
2802
+ },
2803
+ "required": ["kind", "alias", "required"],
2804
+ "type": "object",
2797
2805
  },
2798
- "required": ["kind", "capability", "required"],
2799
- "type": "object",
2800
- }, {
2801
- "properties": {
2802
- "kind": { "const": "resource", "type": "string" },
2803
- "required": { "type": "boolean" },
2804
- "resource": {
2805
- "properties": {
2806
- "alias": { "minLength": 1, "type": "string" },
2807
- "definition": { "type": "object" },
2808
- "kind": {
2809
- "anyOf": [
2810
- { "const": "kv", "type": "string" },
2811
- { "const": "store", "type": "string" },
2812
- { "const": "jobs", "type": "string" },
2813
- {
2814
- "const": "event-consumer",
2815
- "type": "string",
2816
- },
2817
- { "const": "transfer", "type": "string" },
2818
- ],
2819
- },
2820
- "required": { "type": "boolean" },
2806
+ "type": "array",
2807
+ },
2808
+ "surfaces": {
2809
+ "items": {
2810
+ "properties": {
2811
+ "action": {
2812
+ "anyOf": [
2813
+ { "const": "call", "type": "string" },
2814
+ { "const": "publish", "type": "string" },
2815
+ { "const": "subscribe", "type": "string" },
2816
+ { "const": "observe", "type": "string" },
2817
+ { "const": "cancel", "type": "string" },
2818
+ ],
2821
2819
  },
2822
- "required": ["kind", "alias", "required"],
2823
- "type": "object",
2820
+ "contractId": { "minLength": 1, "type": "string" },
2821
+ "kind": {
2822
+ "anyOf": [
2823
+ { "const": "rpc", "type": "string" },
2824
+ { "const": "operation", "type": "string" },
2825
+ { "const": "event", "type": "string" },
2826
+ { "const": "feed", "type": "string" },
2827
+ ],
2828
+ },
2829
+ "name": { "minLength": 1, "type": "string" },
2830
+ "required": { "type": "boolean" },
2824
2831
  },
2832
+ "required": [
2833
+ "contractId",
2834
+ "kind",
2835
+ "name",
2836
+ "required",
2837
+ ],
2838
+ "type": "object",
2825
2839
  },
2826
- "required": ["kind", "resource", "required"],
2827
- "type": "object",
2828
- }],
2840
+ "type": "array",
2841
+ },
2829
2842
  },
2830
- "type": "array",
2843
+ "required": [
2844
+ "contracts",
2845
+ "surfaces",
2846
+ "capabilities",
2847
+ "resources",
2848
+ ],
2849
+ "type": "object",
2831
2850
  },
2832
2851
  "resources": {
2833
2852
  "items": {
@@ -2992,89 +3011,92 @@ export const CONTRACT = {
2992
3011
  "type": "array",
2993
3012
  },
2994
3013
  "requestedNeeds": {
2995
- "items": {
2996
- "anyOf": [{
2997
- "properties": {
2998
- "contractId": { "minLength": 1, "type": "string" },
2999
- "kind": { "const": "contract", "type": "string" },
3000
- "required": { "type": "boolean" },
3014
+ "properties": {
3015
+ "capabilities": {
3016
+ "items": {
3017
+ "properties": {
3018
+ "capability": { "minLength": 1, "type": "string" },
3019
+ "required": { "type": "boolean" },
3020
+ },
3021
+ "required": ["capability", "required"],
3022
+ "type": "object",
3001
3023
  },
3002
- "required": ["kind", "contractId", "required"],
3003
- "type": "object",
3004
- }, {
3005
- "properties": {
3006
- "kind": { "const": "surface", "type": "string" },
3007
- "required": { "type": "boolean" },
3008
- "surface": {
3009
- "properties": {
3010
- "action": {
3011
- "anyOf": [
3012
- { "const": "call", "type": "string" },
3013
- { "const": "publish", "type": "string" },
3014
- { "const": "subscribe", "type": "string" },
3015
- { "const": "observe", "type": "string" },
3016
- { "const": "cancel", "type": "string" },
3017
- ],
3018
- },
3019
- "contractId": {
3020
- "minLength": 1,
3021
- "type": "string",
3022
- },
3023
- "kind": {
3024
- "anyOf": [
3025
- { "const": "rpc", "type": "string" },
3026
- { "const": "operation", "type": "string" },
3027
- { "const": "event", "type": "string" },
3028
- { "const": "feed", "type": "string" },
3029
- ],
3030
- },
3031
- "name": { "minLength": 1, "type": "string" },
3032
- },
3033
- "required": ["contractId", "kind", "name"],
3034
- "type": "object",
3024
+ "type": "array",
3025
+ },
3026
+ "contracts": {
3027
+ "items": {
3028
+ "properties": {
3029
+ "contractId": { "minLength": 1, "type": "string" },
3030
+ "required": { "type": "boolean" },
3035
3031
  },
3032
+ "required": ["contractId", "required"],
3033
+ "type": "object",
3036
3034
  },
3037
- "required": ["kind", "surface", "required"],
3038
- "type": "object",
3039
- }, {
3040
- "properties": {
3041
- "capability": { "minLength": 1, "type": "string" },
3042
- "kind": { "const": "capability", "type": "string" },
3043
- "required": { "type": "boolean" },
3035
+ "type": "array",
3036
+ },
3037
+ "resources": {
3038
+ "items": {
3039
+ "properties": {
3040
+ "alias": { "minLength": 1, "type": "string" },
3041
+ "definition": { "type": "object" },
3042
+ "kind": {
3043
+ "anyOf": [
3044
+ { "const": "kv", "type": "string" },
3045
+ { "const": "store", "type": "string" },
3046
+ { "const": "jobs", "type": "string" },
3047
+ { "const": "event-consumer", "type": "string" },
3048
+ { "const": "transfer", "type": "string" },
3049
+ ],
3050
+ },
3051
+ "required": { "type": "boolean" },
3052
+ },
3053
+ "required": ["kind", "alias", "required"],
3054
+ "type": "object",
3044
3055
  },
3045
- "required": ["kind", "capability", "required"],
3046
- "type": "object",
3047
- }, {
3048
- "properties": {
3049
- "kind": { "const": "resource", "type": "string" },
3050
- "required": { "type": "boolean" },
3051
- "resource": {
3052
- "properties": {
3053
- "alias": { "minLength": 1, "type": "string" },
3054
- "definition": { "type": "object" },
3055
- "kind": {
3056
- "anyOf": [
3057
- { "const": "kv", "type": "string" },
3058
- { "const": "store", "type": "string" },
3059
- { "const": "jobs", "type": "string" },
3060
- {
3061
- "const": "event-consumer",
3062
- "type": "string",
3063
- },
3064
- { "const": "transfer", "type": "string" },
3065
- ],
3066
- },
3067
- "required": { "type": "boolean" },
3056
+ "type": "array",
3057
+ },
3058
+ "surfaces": {
3059
+ "items": {
3060
+ "properties": {
3061
+ "action": {
3062
+ "anyOf": [
3063
+ { "const": "call", "type": "string" },
3064
+ { "const": "publish", "type": "string" },
3065
+ { "const": "subscribe", "type": "string" },
3066
+ { "const": "observe", "type": "string" },
3067
+ { "const": "cancel", "type": "string" },
3068
+ ],
3068
3069
  },
3069
- "required": ["kind", "alias", "required"],
3070
- "type": "object",
3070
+ "contractId": { "minLength": 1, "type": "string" },
3071
+ "kind": {
3072
+ "anyOf": [
3073
+ { "const": "rpc", "type": "string" },
3074
+ { "const": "operation", "type": "string" },
3075
+ { "const": "event", "type": "string" },
3076
+ { "const": "feed", "type": "string" },
3077
+ ],
3078
+ },
3079
+ "name": { "minLength": 1, "type": "string" },
3080
+ "required": { "type": "boolean" },
3071
3081
  },
3082
+ "required": [
3083
+ "contractId",
3084
+ "kind",
3085
+ "name",
3086
+ "required",
3087
+ ],
3088
+ "type": "object",
3072
3089
  },
3073
- "required": ["kind", "resource", "required"],
3074
- "type": "object",
3075
- }],
3090
+ "type": "array",
3091
+ },
3076
3092
  },
3077
- "type": "array",
3093
+ "required": [
3094
+ "contracts",
3095
+ "surfaces",
3096
+ "capabilities",
3097
+ "resources",
3098
+ ],
3099
+ "type": "object",
3078
3100
  },
3079
3101
  "summary": { "type": "object" },
3080
3102
  },
@@ -3176,89 +3198,92 @@ export const CONTRACT = {
3176
3198
  "type": "array",
3177
3199
  },
3178
3200
  "requestedNeeds": {
3179
- "items": {
3180
- "anyOf": [{
3181
- "properties": {
3182
- "contractId": { "minLength": 1, "type": "string" },
3183
- "kind": { "const": "contract", "type": "string" },
3184
- "required": { "type": "boolean" },
3201
+ "properties": {
3202
+ "capabilities": {
3203
+ "items": {
3204
+ "properties": {
3205
+ "capability": { "minLength": 1, "type": "string" },
3206
+ "required": { "type": "boolean" },
3207
+ },
3208
+ "required": ["capability", "required"],
3209
+ "type": "object",
3185
3210
  },
3186
- "required": ["kind", "contractId", "required"],
3187
- "type": "object",
3188
- }, {
3189
- "properties": {
3190
- "kind": { "const": "surface", "type": "string" },
3191
- "required": { "type": "boolean" },
3192
- "surface": {
3193
- "properties": {
3194
- "action": {
3195
- "anyOf": [
3196
- { "const": "call", "type": "string" },
3197
- { "const": "publish", "type": "string" },
3198
- { "const": "subscribe", "type": "string" },
3199
- { "const": "observe", "type": "string" },
3200
- { "const": "cancel", "type": "string" },
3201
- ],
3202
- },
3203
- "contractId": {
3204
- "minLength": 1,
3205
- "type": "string",
3206
- },
3207
- "kind": {
3208
- "anyOf": [
3209
- { "const": "rpc", "type": "string" },
3210
- { "const": "operation", "type": "string" },
3211
- { "const": "event", "type": "string" },
3212
- { "const": "feed", "type": "string" },
3213
- ],
3214
- },
3215
- "name": { "minLength": 1, "type": "string" },
3216
- },
3217
- "required": ["contractId", "kind", "name"],
3218
- "type": "object",
3211
+ "type": "array",
3212
+ },
3213
+ "contracts": {
3214
+ "items": {
3215
+ "properties": {
3216
+ "contractId": { "minLength": 1, "type": "string" },
3217
+ "required": { "type": "boolean" },
3219
3218
  },
3219
+ "required": ["contractId", "required"],
3220
+ "type": "object",
3220
3221
  },
3221
- "required": ["kind", "surface", "required"],
3222
- "type": "object",
3223
- }, {
3224
- "properties": {
3225
- "capability": { "minLength": 1, "type": "string" },
3226
- "kind": { "const": "capability", "type": "string" },
3227
- "required": { "type": "boolean" },
3222
+ "type": "array",
3223
+ },
3224
+ "resources": {
3225
+ "items": {
3226
+ "properties": {
3227
+ "alias": { "minLength": 1, "type": "string" },
3228
+ "definition": { "type": "object" },
3229
+ "kind": {
3230
+ "anyOf": [
3231
+ { "const": "kv", "type": "string" },
3232
+ { "const": "store", "type": "string" },
3233
+ { "const": "jobs", "type": "string" },
3234
+ { "const": "event-consumer", "type": "string" },
3235
+ { "const": "transfer", "type": "string" },
3236
+ ],
3237
+ },
3238
+ "required": { "type": "boolean" },
3239
+ },
3240
+ "required": ["kind", "alias", "required"],
3241
+ "type": "object",
3228
3242
  },
3229
- "required": ["kind", "capability", "required"],
3230
- "type": "object",
3231
- }, {
3232
- "properties": {
3233
- "kind": { "const": "resource", "type": "string" },
3234
- "required": { "type": "boolean" },
3235
- "resource": {
3236
- "properties": {
3237
- "alias": { "minLength": 1, "type": "string" },
3238
- "definition": { "type": "object" },
3239
- "kind": {
3240
- "anyOf": [
3241
- { "const": "kv", "type": "string" },
3242
- { "const": "store", "type": "string" },
3243
- { "const": "jobs", "type": "string" },
3244
- {
3245
- "const": "event-consumer",
3246
- "type": "string",
3247
- },
3248
- { "const": "transfer", "type": "string" },
3249
- ],
3250
- },
3251
- "required": { "type": "boolean" },
3243
+ "type": "array",
3244
+ },
3245
+ "surfaces": {
3246
+ "items": {
3247
+ "properties": {
3248
+ "action": {
3249
+ "anyOf": [
3250
+ { "const": "call", "type": "string" },
3251
+ { "const": "publish", "type": "string" },
3252
+ { "const": "subscribe", "type": "string" },
3253
+ { "const": "observe", "type": "string" },
3254
+ { "const": "cancel", "type": "string" },
3255
+ ],
3252
3256
  },
3253
- "required": ["kind", "alias", "required"],
3254
- "type": "object",
3257
+ "contractId": { "minLength": 1, "type": "string" },
3258
+ "kind": {
3259
+ "anyOf": [
3260
+ { "const": "rpc", "type": "string" },
3261
+ { "const": "operation", "type": "string" },
3262
+ { "const": "event", "type": "string" },
3263
+ { "const": "feed", "type": "string" },
3264
+ ],
3265
+ },
3266
+ "name": { "minLength": 1, "type": "string" },
3267
+ "required": { "type": "boolean" },
3255
3268
  },
3269
+ "required": [
3270
+ "contractId",
3271
+ "kind",
3272
+ "name",
3273
+ "required",
3274
+ ],
3275
+ "type": "object",
3256
3276
  },
3257
- "required": ["kind", "resource", "required"],
3258
- "type": "object",
3259
- }],
3277
+ "type": "array",
3278
+ },
3260
3279
  },
3261
- "type": "array",
3280
+ "required": [
3281
+ "contracts",
3282
+ "surfaces",
3283
+ "capabilities",
3284
+ "resources",
3285
+ ],
3286
+ "type": "object",
3262
3287
  },
3263
3288
  "summary": { "type": "object" },
3264
3289
  },
@@ -3374,89 +3399,92 @@ export const CONTRACT = {
3374
3399
  "type": "array",
3375
3400
  },
3376
3401
  "requestedNeeds": {
3377
- "items": {
3378
- "anyOf": [{
3379
- "properties": {
3380
- "contractId": { "minLength": 1, "type": "string" },
3381
- "kind": { "const": "contract", "type": "string" },
3382
- "required": { "type": "boolean" },
3402
+ "properties": {
3403
+ "capabilities": {
3404
+ "items": {
3405
+ "properties": {
3406
+ "capability": { "minLength": 1, "type": "string" },
3407
+ "required": { "type": "boolean" },
3408
+ },
3409
+ "required": ["capability", "required"],
3410
+ "type": "object",
3383
3411
  },
3384
- "required": ["kind", "contractId", "required"],
3385
- "type": "object",
3386
- }, {
3387
- "properties": {
3388
- "kind": { "const": "surface", "type": "string" },
3389
- "required": { "type": "boolean" },
3390
- "surface": {
3391
- "properties": {
3392
- "action": {
3393
- "anyOf": [
3394
- { "const": "call", "type": "string" },
3395
- { "const": "publish", "type": "string" },
3396
- { "const": "subscribe", "type": "string" },
3397
- { "const": "observe", "type": "string" },
3398
- { "const": "cancel", "type": "string" },
3399
- ],
3400
- },
3401
- "contractId": {
3402
- "minLength": 1,
3403
- "type": "string",
3404
- },
3405
- "kind": {
3406
- "anyOf": [
3407
- { "const": "rpc", "type": "string" },
3408
- { "const": "operation", "type": "string" },
3409
- { "const": "event", "type": "string" },
3410
- { "const": "feed", "type": "string" },
3411
- ],
3412
- },
3413
- "name": { "minLength": 1, "type": "string" },
3414
- },
3415
- "required": ["contractId", "kind", "name"],
3416
- "type": "object",
3412
+ "type": "array",
3413
+ },
3414
+ "contracts": {
3415
+ "items": {
3416
+ "properties": {
3417
+ "contractId": { "minLength": 1, "type": "string" },
3418
+ "required": { "type": "boolean" },
3417
3419
  },
3420
+ "required": ["contractId", "required"],
3421
+ "type": "object",
3418
3422
  },
3419
- "required": ["kind", "surface", "required"],
3420
- "type": "object",
3421
- }, {
3422
- "properties": {
3423
- "capability": { "minLength": 1, "type": "string" },
3424
- "kind": { "const": "capability", "type": "string" },
3425
- "required": { "type": "boolean" },
3423
+ "type": "array",
3424
+ },
3425
+ "resources": {
3426
+ "items": {
3427
+ "properties": {
3428
+ "alias": { "minLength": 1, "type": "string" },
3429
+ "definition": { "type": "object" },
3430
+ "kind": {
3431
+ "anyOf": [
3432
+ { "const": "kv", "type": "string" },
3433
+ { "const": "store", "type": "string" },
3434
+ { "const": "jobs", "type": "string" },
3435
+ { "const": "event-consumer", "type": "string" },
3436
+ { "const": "transfer", "type": "string" },
3437
+ ],
3438
+ },
3439
+ "required": { "type": "boolean" },
3440
+ },
3441
+ "required": ["kind", "alias", "required"],
3442
+ "type": "object",
3426
3443
  },
3427
- "required": ["kind", "capability", "required"],
3428
- "type": "object",
3429
- }, {
3430
- "properties": {
3431
- "kind": { "const": "resource", "type": "string" },
3432
- "required": { "type": "boolean" },
3433
- "resource": {
3434
- "properties": {
3435
- "alias": { "minLength": 1, "type": "string" },
3436
- "definition": { "type": "object" },
3437
- "kind": {
3438
- "anyOf": [
3439
- { "const": "kv", "type": "string" },
3440
- { "const": "store", "type": "string" },
3441
- { "const": "jobs", "type": "string" },
3442
- {
3443
- "const": "event-consumer",
3444
- "type": "string",
3445
- },
3446
- { "const": "transfer", "type": "string" },
3447
- ],
3448
- },
3449
- "required": { "type": "boolean" },
3444
+ "type": "array",
3445
+ },
3446
+ "surfaces": {
3447
+ "items": {
3448
+ "properties": {
3449
+ "action": {
3450
+ "anyOf": [
3451
+ { "const": "call", "type": "string" },
3452
+ { "const": "publish", "type": "string" },
3453
+ { "const": "subscribe", "type": "string" },
3454
+ { "const": "observe", "type": "string" },
3455
+ { "const": "cancel", "type": "string" },
3456
+ ],
3450
3457
  },
3451
- "required": ["kind", "alias", "required"],
3452
- "type": "object",
3458
+ "contractId": { "minLength": 1, "type": "string" },
3459
+ "kind": {
3460
+ "anyOf": [
3461
+ { "const": "rpc", "type": "string" },
3462
+ { "const": "operation", "type": "string" },
3463
+ { "const": "event", "type": "string" },
3464
+ { "const": "feed", "type": "string" },
3465
+ ],
3466
+ },
3467
+ "name": { "minLength": 1, "type": "string" },
3468
+ "required": { "type": "boolean" },
3453
3469
  },
3470
+ "required": [
3471
+ "contractId",
3472
+ "kind",
3473
+ "name",
3474
+ "required",
3475
+ ],
3476
+ "type": "object",
3454
3477
  },
3455
- "required": ["kind", "resource", "required"],
3456
- "type": "object",
3457
- }],
3478
+ "type": "array",
3479
+ },
3458
3480
  },
3459
- "type": "array",
3481
+ "required": [
3482
+ "contracts",
3483
+ "surfaces",
3484
+ "capabilities",
3485
+ "resources",
3486
+ ],
3487
+ "type": "object",
3460
3488
  },
3461
3489
  "summary": { "type": "object" },
3462
3490
  },
@@ -3558,89 +3586,92 @@ export const CONTRACT = {
3558
3586
  "type": "array",
3559
3587
  },
3560
3588
  "requestedNeeds": {
3561
- "items": {
3562
- "anyOf": [{
3563
- "properties": {
3564
- "contractId": { "minLength": 1, "type": "string" },
3565
- "kind": { "const": "contract", "type": "string" },
3566
- "required": { "type": "boolean" },
3589
+ "properties": {
3590
+ "capabilities": {
3591
+ "items": {
3592
+ "properties": {
3593
+ "capability": { "minLength": 1, "type": "string" },
3594
+ "required": { "type": "boolean" },
3595
+ },
3596
+ "required": ["capability", "required"],
3597
+ "type": "object",
3567
3598
  },
3568
- "required": ["kind", "contractId", "required"],
3569
- "type": "object",
3570
- }, {
3571
- "properties": {
3572
- "kind": { "const": "surface", "type": "string" },
3573
- "required": { "type": "boolean" },
3574
- "surface": {
3575
- "properties": {
3576
- "action": {
3577
- "anyOf": [
3578
- { "const": "call", "type": "string" },
3579
- { "const": "publish", "type": "string" },
3580
- { "const": "subscribe", "type": "string" },
3581
- { "const": "observe", "type": "string" },
3582
- { "const": "cancel", "type": "string" },
3583
- ],
3584
- },
3585
- "contractId": {
3586
- "minLength": 1,
3587
- "type": "string",
3588
- },
3589
- "kind": {
3590
- "anyOf": [
3591
- { "const": "rpc", "type": "string" },
3592
- { "const": "operation", "type": "string" },
3593
- { "const": "event", "type": "string" },
3594
- { "const": "feed", "type": "string" },
3595
- ],
3596
- },
3597
- "name": { "minLength": 1, "type": "string" },
3598
- },
3599
- "required": ["contractId", "kind", "name"],
3600
- "type": "object",
3599
+ "type": "array",
3600
+ },
3601
+ "contracts": {
3602
+ "items": {
3603
+ "properties": {
3604
+ "contractId": { "minLength": 1, "type": "string" },
3605
+ "required": { "type": "boolean" },
3601
3606
  },
3607
+ "required": ["contractId", "required"],
3608
+ "type": "object",
3602
3609
  },
3603
- "required": ["kind", "surface", "required"],
3604
- "type": "object",
3605
- }, {
3606
- "properties": {
3607
- "capability": { "minLength": 1, "type": "string" },
3608
- "kind": { "const": "capability", "type": "string" },
3609
- "required": { "type": "boolean" },
3610
+ "type": "array",
3611
+ },
3612
+ "resources": {
3613
+ "items": {
3614
+ "properties": {
3615
+ "alias": { "minLength": 1, "type": "string" },
3616
+ "definition": { "type": "object" },
3617
+ "kind": {
3618
+ "anyOf": [
3619
+ { "const": "kv", "type": "string" },
3620
+ { "const": "store", "type": "string" },
3621
+ { "const": "jobs", "type": "string" },
3622
+ { "const": "event-consumer", "type": "string" },
3623
+ { "const": "transfer", "type": "string" },
3624
+ ],
3625
+ },
3626
+ "required": { "type": "boolean" },
3627
+ },
3628
+ "required": ["kind", "alias", "required"],
3629
+ "type": "object",
3610
3630
  },
3611
- "required": ["kind", "capability", "required"],
3612
- "type": "object",
3613
- }, {
3614
- "properties": {
3615
- "kind": { "const": "resource", "type": "string" },
3616
- "required": { "type": "boolean" },
3617
- "resource": {
3618
- "properties": {
3619
- "alias": { "minLength": 1, "type": "string" },
3620
- "definition": { "type": "object" },
3621
- "kind": {
3622
- "anyOf": [
3623
- { "const": "kv", "type": "string" },
3624
- { "const": "store", "type": "string" },
3625
- { "const": "jobs", "type": "string" },
3626
- {
3627
- "const": "event-consumer",
3628
- "type": "string",
3629
- },
3630
- { "const": "transfer", "type": "string" },
3631
- ],
3632
- },
3633
- "required": { "type": "boolean" },
3631
+ "type": "array",
3632
+ },
3633
+ "surfaces": {
3634
+ "items": {
3635
+ "properties": {
3636
+ "action": {
3637
+ "anyOf": [
3638
+ { "const": "call", "type": "string" },
3639
+ { "const": "publish", "type": "string" },
3640
+ { "const": "subscribe", "type": "string" },
3641
+ { "const": "observe", "type": "string" },
3642
+ { "const": "cancel", "type": "string" },
3643
+ ],
3634
3644
  },
3635
- "required": ["kind", "alias", "required"],
3636
- "type": "object",
3645
+ "contractId": { "minLength": 1, "type": "string" },
3646
+ "kind": {
3647
+ "anyOf": [
3648
+ { "const": "rpc", "type": "string" },
3649
+ { "const": "operation", "type": "string" },
3650
+ { "const": "event", "type": "string" },
3651
+ { "const": "feed", "type": "string" },
3652
+ ],
3653
+ },
3654
+ "name": { "minLength": 1, "type": "string" },
3655
+ "required": { "type": "boolean" },
3637
3656
  },
3657
+ "required": [
3658
+ "contractId",
3659
+ "kind",
3660
+ "name",
3661
+ "required",
3662
+ ],
3663
+ "type": "object",
3638
3664
  },
3639
- "required": ["kind", "resource", "required"],
3640
- "type": "object",
3641
- }],
3665
+ "type": "array",
3666
+ },
3642
3667
  },
3643
- "type": "array",
3668
+ "required": [
3669
+ "contracts",
3670
+ "surfaces",
3671
+ "capabilities",
3672
+ "resources",
3673
+ ],
3674
+ "type": "object",
3644
3675
  },
3645
3676
  "summary": { "type": "object" },
3646
3677
  },
@@ -3787,91 +3818,106 @@ export const CONTRACT = {
3787
3818
  "type": "array",
3788
3819
  },
3789
3820
  "requestedNeeds": {
3790
- "items": {
3791
- "anyOf": [{
3792
- "properties": {
3793
- "contractId": { "minLength": 1, "type": "string" },
3794
- "kind": { "const": "contract", "type": "string" },
3795
- "required": { "type": "boolean" },
3796
- },
3797
- "required": ["kind", "contractId", "required"],
3798
- "type": "object",
3799
- }, {
3800
- "properties": {
3801
- "kind": { "const": "surface", "type": "string" },
3802
- "required": { "type": "boolean" },
3803
- "surface": {
3804
- "properties": {
3805
- "action": {
3806
- "anyOf": [
3807
- { "const": "call", "type": "string" },
3808
- { "const": "publish", "type": "string" },
3809
- { "const": "subscribe", "type": "string" },
3810
- { "const": "observe", "type": "string" },
3811
- { "const": "cancel", "type": "string" },
3812
- ],
3813
- },
3814
- "contractId": {
3815
- "minLength": 1,
3816
- "type": "string",
3817
- },
3818
- "kind": {
3819
- "anyOf": [
3820
- { "const": "rpc", "type": "string" },
3821
- { "const": "operation", "type": "string" },
3822
- { "const": "event", "type": "string" },
3823
- { "const": "feed", "type": "string" },
3824
- ],
3825
- },
3826
- "name": { "minLength": 1, "type": "string" },
3821
+ "properties": {
3822
+ "capabilities": {
3823
+ "items": {
3824
+ "properties": {
3825
+ "capability": {
3826
+ "minLength": 1,
3827
+ "type": "string",
3827
3828
  },
3828
- "required": ["contractId", "kind", "name"],
3829
- "type": "object",
3829
+ "required": { "type": "boolean" },
3830
3830
  },
3831
+ "required": ["capability", "required"],
3832
+ "type": "object",
3831
3833
  },
3832
- "required": ["kind", "surface", "required"],
3833
- "type": "object",
3834
- }, {
3835
- "properties": {
3836
- "capability": { "minLength": 1, "type": "string" },
3837
- "kind": { "const": "capability", "type": "string" },
3838
- "required": { "type": "boolean" },
3839
- },
3840
- "required": ["kind", "capability", "required"],
3841
- "type": "object",
3842
- }, {
3843
- "properties": {
3844
- "kind": { "const": "resource", "type": "string" },
3845
- "required": { "type": "boolean" },
3846
- "resource": {
3847
- "properties": {
3848
- "alias": { "minLength": 1, "type": "string" },
3849
- "definition": { "type": "object" },
3850
- "kind": {
3851
- "anyOf": [
3852
- { "const": "kv", "type": "string" },
3853
- { "const": "store", "type": "string" },
3854
- { "const": "jobs", "type": "string" },
3855
- {
3856
- "const": "event-consumer",
3857
- "type": "string",
3858
- },
3859
- { "const": "transfer", "type": "string" },
3860
- ],
3861
- },
3862
- "required": { "type": "boolean" },
3834
+ "type": "array",
3835
+ },
3836
+ "contracts": {
3837
+ "items": {
3838
+ "properties": {
3839
+ "contractId": {
3840
+ "minLength": 1,
3841
+ "type": "string",
3863
3842
  },
3864
- "required": ["kind", "alias", "required"],
3865
- "type": "object",
3843
+ "required": { "type": "boolean" },
3866
3844
  },
3845
+ "required": ["contractId", "required"],
3846
+ "type": "object",
3867
3847
  },
3868
- "required": ["kind", "resource", "required"],
3869
- "type": "object",
3870
- }],
3871
- },
3872
- "type": "array",
3873
- },
3874
- "summary": { "type": "object" },
3848
+ "type": "array",
3849
+ },
3850
+ "resources": {
3851
+ "items": {
3852
+ "properties": {
3853
+ "alias": { "minLength": 1, "type": "string" },
3854
+ "definition": { "type": "object" },
3855
+ "kind": {
3856
+ "anyOf": [
3857
+ { "const": "kv", "type": "string" },
3858
+ { "const": "store", "type": "string" },
3859
+ { "const": "jobs", "type": "string" },
3860
+ {
3861
+ "const": "event-consumer",
3862
+ "type": "string",
3863
+ },
3864
+ { "const": "transfer", "type": "string" },
3865
+ ],
3866
+ },
3867
+ "required": { "type": "boolean" },
3868
+ },
3869
+ "required": ["kind", "alias", "required"],
3870
+ "type": "object",
3871
+ },
3872
+ "type": "array",
3873
+ },
3874
+ "surfaces": {
3875
+ "items": {
3876
+ "properties": {
3877
+ "action": {
3878
+ "anyOf": [
3879
+ { "const": "call", "type": "string" },
3880
+ { "const": "publish", "type": "string" },
3881
+ { "const": "subscribe", "type": "string" },
3882
+ { "const": "observe", "type": "string" },
3883
+ { "const": "cancel", "type": "string" },
3884
+ ],
3885
+ },
3886
+ "contractId": {
3887
+ "minLength": 1,
3888
+ "type": "string",
3889
+ },
3890
+ "kind": {
3891
+ "anyOf": [
3892
+ { "const": "rpc", "type": "string" },
3893
+ { "const": "operation", "type": "string" },
3894
+ { "const": "event", "type": "string" },
3895
+ { "const": "feed", "type": "string" },
3896
+ ],
3897
+ },
3898
+ "name": { "minLength": 1, "type": "string" },
3899
+ "required": { "type": "boolean" },
3900
+ },
3901
+ "required": [
3902
+ "contractId",
3903
+ "kind",
3904
+ "name",
3905
+ "required",
3906
+ ],
3907
+ "type": "object",
3908
+ },
3909
+ "type": "array",
3910
+ },
3911
+ },
3912
+ "required": [
3913
+ "contracts",
3914
+ "surfaces",
3915
+ "capabilities",
3916
+ "resources",
3917
+ ],
3918
+ "type": "object",
3919
+ },
3920
+ "summary": { "type": "object" },
3875
3921
  },
3876
3922
  "required": [
3877
3923
  "deploymentId",
@@ -3971,89 +4017,104 @@ export const CONTRACT = {
3971
4017
  "type": "array",
3972
4018
  },
3973
4019
  "requestedNeeds": {
3974
- "items": {
3975
- "anyOf": [{
3976
- "properties": {
3977
- "contractId": { "minLength": 1, "type": "string" },
3978
- "kind": { "const": "contract", "type": "string" },
3979
- "required": { "type": "boolean" },
4020
+ "properties": {
4021
+ "capabilities": {
4022
+ "items": {
4023
+ "properties": {
4024
+ "capability": {
4025
+ "minLength": 1,
4026
+ "type": "string",
4027
+ },
4028
+ "required": { "type": "boolean" },
4029
+ },
4030
+ "required": ["capability", "required"],
4031
+ "type": "object",
3980
4032
  },
3981
- "required": ["kind", "contractId", "required"],
3982
- "type": "object",
3983
- }, {
3984
- "properties": {
3985
- "kind": { "const": "surface", "type": "string" },
3986
- "required": { "type": "boolean" },
3987
- "surface": {
3988
- "properties": {
3989
- "action": {
3990
- "anyOf": [
3991
- { "const": "call", "type": "string" },
3992
- { "const": "publish", "type": "string" },
3993
- { "const": "subscribe", "type": "string" },
3994
- { "const": "observe", "type": "string" },
3995
- { "const": "cancel", "type": "string" },
3996
- ],
3997
- },
3998
- "contractId": {
3999
- "minLength": 1,
4000
- "type": "string",
4001
- },
4002
- "kind": {
4003
- "anyOf": [
4004
- { "const": "rpc", "type": "string" },
4005
- { "const": "operation", "type": "string" },
4006
- { "const": "event", "type": "string" },
4007
- { "const": "feed", "type": "string" },
4008
- ],
4009
- },
4010
- "name": { "minLength": 1, "type": "string" },
4033
+ "type": "array",
4034
+ },
4035
+ "contracts": {
4036
+ "items": {
4037
+ "properties": {
4038
+ "contractId": {
4039
+ "minLength": 1,
4040
+ "type": "string",
4011
4041
  },
4012
- "required": ["contractId", "kind", "name"],
4013
- "type": "object",
4042
+ "required": { "type": "boolean" },
4014
4043
  },
4044
+ "required": ["contractId", "required"],
4045
+ "type": "object",
4015
4046
  },
4016
- "required": ["kind", "surface", "required"],
4017
- "type": "object",
4018
- }, {
4019
- "properties": {
4020
- "capability": { "minLength": 1, "type": "string" },
4021
- "kind": { "const": "capability", "type": "string" },
4022
- "required": { "type": "boolean" },
4047
+ "type": "array",
4048
+ },
4049
+ "resources": {
4050
+ "items": {
4051
+ "properties": {
4052
+ "alias": { "minLength": 1, "type": "string" },
4053
+ "definition": { "type": "object" },
4054
+ "kind": {
4055
+ "anyOf": [
4056
+ { "const": "kv", "type": "string" },
4057
+ { "const": "store", "type": "string" },
4058
+ { "const": "jobs", "type": "string" },
4059
+ {
4060
+ "const": "event-consumer",
4061
+ "type": "string",
4062
+ },
4063
+ { "const": "transfer", "type": "string" },
4064
+ ],
4065
+ },
4066
+ "required": { "type": "boolean" },
4067
+ },
4068
+ "required": ["kind", "alias", "required"],
4069
+ "type": "object",
4023
4070
  },
4024
- "required": ["kind", "capability", "required"],
4025
- "type": "object",
4026
- }, {
4027
- "properties": {
4028
- "kind": { "const": "resource", "type": "string" },
4029
- "required": { "type": "boolean" },
4030
- "resource": {
4031
- "properties": {
4032
- "alias": { "minLength": 1, "type": "string" },
4033
- "definition": { "type": "object" },
4034
- "kind": {
4035
- "anyOf": [
4036
- { "const": "kv", "type": "string" },
4037
- { "const": "store", "type": "string" },
4038
- { "const": "jobs", "type": "string" },
4039
- {
4040
- "const": "event-consumer",
4041
- "type": "string",
4042
- },
4043
- { "const": "transfer", "type": "string" },
4044
- ],
4045
- },
4046
- "required": { "type": "boolean" },
4071
+ "type": "array",
4072
+ },
4073
+ "surfaces": {
4074
+ "items": {
4075
+ "properties": {
4076
+ "action": {
4077
+ "anyOf": [
4078
+ { "const": "call", "type": "string" },
4079
+ { "const": "publish", "type": "string" },
4080
+ { "const": "subscribe", "type": "string" },
4081
+ { "const": "observe", "type": "string" },
4082
+ { "const": "cancel", "type": "string" },
4083
+ ],
4047
4084
  },
4048
- "required": ["kind", "alias", "required"],
4049
- "type": "object",
4085
+ "contractId": {
4086
+ "minLength": 1,
4087
+ "type": "string",
4088
+ },
4089
+ "kind": {
4090
+ "anyOf": [
4091
+ { "const": "rpc", "type": "string" },
4092
+ { "const": "operation", "type": "string" },
4093
+ { "const": "event", "type": "string" },
4094
+ { "const": "feed", "type": "string" },
4095
+ ],
4096
+ },
4097
+ "name": { "minLength": 1, "type": "string" },
4098
+ "required": { "type": "boolean" },
4050
4099
  },
4100
+ "required": [
4101
+ "contractId",
4102
+ "kind",
4103
+ "name",
4104
+ "required",
4105
+ ],
4106
+ "type": "object",
4051
4107
  },
4052
- "required": ["kind", "resource", "required"],
4053
- "type": "object",
4054
- }],
4108
+ "type": "array",
4109
+ },
4055
4110
  },
4056
- "type": "array",
4111
+ "required": [
4112
+ "contracts",
4113
+ "surfaces",
4114
+ "capabilities",
4115
+ "resources",
4116
+ ],
4117
+ "type": "object",
4057
4118
  },
4058
4119
  "summary": { "type": "object" },
4059
4120
  },
@@ -4123,83 +4184,87 @@ export const CONTRACT = {
4123
4184
  "type": "array",
4124
4185
  },
4125
4186
  "needs": {
4126
- "items": {
4127
- "anyOf": [{
4128
- "properties": {
4129
- "contractId": { "minLength": 1, "type": "string" },
4130
- "kind": { "const": "contract", "type": "string" },
4131
- "required": { "type": "boolean" },
4187
+ "properties": {
4188
+ "capabilities": {
4189
+ "items": {
4190
+ "properties": {
4191
+ "capability": { "minLength": 1, "type": "string" },
4192
+ "required": { "type": "boolean" },
4193
+ },
4194
+ "required": ["capability", "required"],
4195
+ "type": "object",
4132
4196
  },
4133
- "required": ["kind", "contractId", "required"],
4134
- "type": "object",
4135
- }, {
4136
- "properties": {
4137
- "kind": { "const": "surface", "type": "string" },
4138
- "required": { "type": "boolean" },
4139
- "surface": {
4140
- "properties": {
4141
- "action": {
4142
- "anyOf": [
4143
- { "const": "call", "type": "string" },
4144
- { "const": "publish", "type": "string" },
4145
- { "const": "subscribe", "type": "string" },
4146
- { "const": "observe", "type": "string" },
4147
- { "const": "cancel", "type": "string" },
4148
- ],
4149
- },
4150
- "contractId": { "minLength": 1, "type": "string" },
4151
- "kind": {
4152
- "anyOf": [
4153
- { "const": "rpc", "type": "string" },
4154
- { "const": "operation", "type": "string" },
4155
- { "const": "event", "type": "string" },
4156
- { "const": "feed", "type": "string" },
4157
- ],
4158
- },
4159
- "name": { "minLength": 1, "type": "string" },
4160
- },
4161
- "required": ["contractId", "kind", "name"],
4162
- "type": "object",
4197
+ "type": "array",
4198
+ },
4199
+ "contracts": {
4200
+ "items": {
4201
+ "properties": {
4202
+ "contractId": { "minLength": 1, "type": "string" },
4203
+ "required": { "type": "boolean" },
4163
4204
  },
4205
+ "required": ["contractId", "required"],
4206
+ "type": "object",
4164
4207
  },
4165
- "required": ["kind", "surface", "required"],
4166
- "type": "object",
4167
- }, {
4168
- "properties": {
4169
- "capability": { "minLength": 1, "type": "string" },
4170
- "kind": { "const": "capability", "type": "string" },
4171
- "required": { "type": "boolean" },
4208
+ "type": "array",
4209
+ },
4210
+ "resources": {
4211
+ "items": {
4212
+ "properties": {
4213
+ "alias": { "minLength": 1, "type": "string" },
4214
+ "definition": { "type": "object" },
4215
+ "kind": {
4216
+ "anyOf": [
4217
+ { "const": "kv", "type": "string" },
4218
+ { "const": "store", "type": "string" },
4219
+ { "const": "jobs", "type": "string" },
4220
+ { "const": "event-consumer", "type": "string" },
4221
+ { "const": "transfer", "type": "string" },
4222
+ ],
4223
+ },
4224
+ "required": { "type": "boolean" },
4225
+ },
4226
+ "required": ["kind", "alias", "required"],
4227
+ "type": "object",
4172
4228
  },
4173
- "required": ["kind", "capability", "required"],
4174
- "type": "object",
4175
- }, {
4176
- "properties": {
4177
- "kind": { "const": "resource", "type": "string" },
4178
- "required": { "type": "boolean" },
4179
- "resource": {
4180
- "properties": {
4181
- "alias": { "minLength": 1, "type": "string" },
4182
- "definition": { "type": "object" },
4183
- "kind": {
4184
- "anyOf": [
4185
- { "const": "kv", "type": "string" },
4186
- { "const": "store", "type": "string" },
4187
- { "const": "jobs", "type": "string" },
4188
- { "const": "event-consumer", "type": "string" },
4189
- { "const": "transfer", "type": "string" },
4190
- ],
4191
- },
4192
- "required": { "type": "boolean" },
4229
+ "type": "array",
4230
+ },
4231
+ "surfaces": {
4232
+ "items": {
4233
+ "properties": {
4234
+ "action": {
4235
+ "anyOf": [
4236
+ { "const": "call", "type": "string" },
4237
+ { "const": "publish", "type": "string" },
4238
+ { "const": "subscribe", "type": "string" },
4239
+ { "const": "observe", "type": "string" },
4240
+ { "const": "cancel", "type": "string" },
4241
+ ],
4193
4242
  },
4194
- "required": ["kind", "alias", "required"],
4195
- "type": "object",
4243
+ "contractId": { "minLength": 1, "type": "string" },
4244
+ "kind": {
4245
+ "anyOf": [
4246
+ { "const": "rpc", "type": "string" },
4247
+ { "const": "operation", "type": "string" },
4248
+ { "const": "event", "type": "string" },
4249
+ { "const": "feed", "type": "string" },
4250
+ ],
4251
+ },
4252
+ "name": { "minLength": 1, "type": "string" },
4253
+ "required": { "type": "boolean" },
4196
4254
  },
4255
+ "required": ["contractId", "kind", "name", "required"],
4256
+ "type": "object",
4197
4257
  },
4198
- "required": ["kind", "resource", "required"],
4199
- "type": "object",
4200
- }],
4258
+ "type": "array",
4259
+ },
4201
4260
  },
4202
- "type": "array",
4261
+ "required": [
4262
+ "contracts",
4263
+ "surfaces",
4264
+ "capabilities",
4265
+ "resources",
4266
+ ],
4267
+ "type": "object",
4203
4268
  },
4204
4269
  "resources": {
4205
4270
  "items": {
@@ -4285,99 +4350,107 @@ export const CONTRACT = {
4285
4350
  "desiredVersion": { "minLength": 1, "type": "string" },
4286
4351
  "error": { "minLength": 1, "type": "string" },
4287
4352
  "grants": {
4288
- "items": {
4289
- "anyOf": [{
4290
- "properties": {
4291
- "capability": { "minLength": 1, "type": "string" },
4292
- "kind": { "const": "capability", "type": "string" },
4293
- },
4294
- "required": ["kind", "capability"],
4295
- "type": "object",
4296
- }, {
4297
- "properties": {
4298
- "action": {
4299
- "anyOf": [
4300
- { "const": "call", "type": "string" },
4301
- { "const": "publish", "type": "string" },
4302
- { "const": "subscribe", "type": "string" },
4303
- { "const": "observe", "type": "string" },
4304
- { "const": "cancel", "type": "string" },
4305
- ],
4306
- },
4307
- "contractId": { "minLength": 1, "type": "string" },
4308
- "kind": { "const": "surface", "type": "string" },
4309
- "name": { "minLength": 1, "type": "string" },
4310
- "surfaceKind": {
4311
- "anyOf": [
4312
- { "const": "rpc", "type": "string" },
4313
- { "const": "operation", "type": "string" },
4314
- { "const": "event", "type": "string" },
4315
- { "const": "feed", "type": "string" },
4316
- ],
4353
+ "properties": {
4354
+ "capabilities": {
4355
+ "items": {
4356
+ "properties": {
4357
+ "capability": { "minLength": 1, "type": "string" },
4317
4358
  },
4359
+ "required": ["capability"],
4360
+ "type": "object",
4318
4361
  },
4319
- "required": ["kind", "contractId", "surfaceKind", "name"],
4320
- "type": "object",
4321
- }, {
4322
- "properties": {
4323
- "direction": {
4324
- "anyOf": [{ "const": "publish", "type": "string" }, {
4325
- "const": "subscribe",
4326
- "type": "string",
4327
- }],
4328
- },
4329
- "grantSource": {
4330
- "anyOf": [
4331
- { "const": "owned-surface", "type": "string" },
4332
- { "const": "used-surface", "type": "string" },
4333
- { "const": "resource-binding", "type": "string" },
4334
- { "const": "platform-service", "type": "string" },
4335
- { "const": "transfer", "type": "string" },
4336
- ],
4337
- },
4338
- "kind": { "const": "nats", "type": "string" },
4339
- "requiredCapabilities": {
4340
- "items": { "minLength": 1, "type": "string" },
4341
- "type": "array",
4342
- },
4343
- "subject": { "minLength": 1, "type": "string" },
4344
- "surface": {
4345
- "properties": {
4346
- "action": {
4347
- "anyOf": [
4348
- { "const": "call", "type": "string" },
4349
- { "const": "publish", "type": "string" },
4350
- { "const": "subscribe", "type": "string" },
4351
- { "const": "observe", "type": "string" },
4352
- { "const": "cancel", "type": "string" },
4353
- ],
4354
- },
4355
- "contractId": { "minLength": 1, "type": "string" },
4356
- "kind": {
4357
- "anyOf": [
4358
- { "const": "rpc", "type": "string" },
4359
- { "const": "operation", "type": "string" },
4360
- { "const": "event", "type": "string" },
4361
- { "const": "feed", "type": "string" },
4362
- ],
4362
+ "type": "array",
4363
+ },
4364
+ "nats": {
4365
+ "items": {
4366
+ "properties": {
4367
+ "direction": {
4368
+ "anyOf": [{ "const": "publish", "type": "string" }, {
4369
+ "const": "subscribe",
4370
+ "type": "string",
4371
+ }],
4372
+ },
4373
+ "grantSource": {
4374
+ "anyOf": [
4375
+ { "const": "owned-surface", "type": "string" },
4376
+ { "const": "used-surface", "type": "string" },
4377
+ { "const": "resource-binding", "type": "string" },
4378
+ { "const": "platform-service", "type": "string" },
4379
+ { "const": "transfer", "type": "string" },
4380
+ ],
4381
+ },
4382
+ "requiredCapabilities": {
4383
+ "items": { "minLength": 1, "type": "string" },
4384
+ "type": "array",
4385
+ },
4386
+ "subject": { "minLength": 1, "type": "string" },
4387
+ "surface": {
4388
+ "properties": {
4389
+ "action": {
4390
+ "anyOf": [
4391
+ { "const": "call", "type": "string" },
4392
+ { "const": "publish", "type": "string" },
4393
+ { "const": "subscribe", "type": "string" },
4394
+ { "const": "observe", "type": "string" },
4395
+ { "const": "cancel", "type": "string" },
4396
+ ],
4397
+ },
4398
+ "contractId": { "minLength": 1, "type": "string" },
4399
+ "kind": {
4400
+ "anyOf": [
4401
+ { "const": "rpc", "type": "string" },
4402
+ { "const": "operation", "type": "string" },
4403
+ { "const": "event", "type": "string" },
4404
+ { "const": "feed", "type": "string" },
4405
+ ],
4406
+ },
4407
+ "name": { "minLength": 1, "type": "string" },
4363
4408
  },
4364
- "name": { "minLength": 1, "type": "string" },
4409
+ "required": ["contractId", "kind", "name"],
4410
+ "type": "object",
4365
4411
  },
4366
- "required": ["contractId", "kind", "name"],
4367
- "type": "object",
4368
4412
  },
4413
+ "required": [
4414
+ "direction",
4415
+ "subject",
4416
+ "requiredCapabilities",
4417
+ "grantSource",
4418
+ ],
4419
+ "type": "object",
4369
4420
  },
4370
- "required": [
4371
- "kind",
4372
- "direction",
4373
- "subject",
4374
- "requiredCapabilities",
4375
- "grantSource",
4376
- ],
4377
- "type": "object",
4378
- }],
4421
+ "type": "array",
4422
+ },
4423
+ "surfaces": {
4424
+ "items": {
4425
+ "properties": {
4426
+ "action": {
4427
+ "anyOf": [
4428
+ { "const": "call", "type": "string" },
4429
+ { "const": "publish", "type": "string" },
4430
+ { "const": "subscribe", "type": "string" },
4431
+ { "const": "observe", "type": "string" },
4432
+ { "const": "cancel", "type": "string" },
4433
+ ],
4434
+ },
4435
+ "contractId": { "minLength": 1, "type": "string" },
4436
+ "name": { "minLength": 1, "type": "string" },
4437
+ "surfaceKind": {
4438
+ "anyOf": [
4439
+ { "const": "rpc", "type": "string" },
4440
+ { "const": "operation", "type": "string" },
4441
+ { "const": "event", "type": "string" },
4442
+ { "const": "feed", "type": "string" },
4443
+ ],
4444
+ },
4445
+ },
4446
+ "required": ["contractId", "surfaceKind", "name"],
4447
+ "type": "object",
4448
+ },
4449
+ "type": "array",
4450
+ },
4379
4451
  },
4380
- "type": "array",
4452
+ "required": ["capabilities", "surfaces", "nats"],
4453
+ "type": "object",
4381
4454
  },
4382
4455
  "reconciledAt": {
4383
4456
  "anyOf": [{ "format": "date-time", "type": "string" }, {
@@ -7761,83 +7834,87 @@ export const CONTRACT = {
7761
7834
  "type": "array",
7762
7835
  },
7763
7836
  "needs": {
7764
- "items": {
7765
- "anyOf": [{
7766
- "properties": {
7767
- "contractId": { "minLength": 1, "type": "string" },
7768
- "kind": { "const": "contract", "type": "string" },
7769
- "required": { "type": "boolean" },
7837
+ "properties": {
7838
+ "capabilities": {
7839
+ "items": {
7840
+ "properties": {
7841
+ "capability": { "minLength": 1, "type": "string" },
7842
+ "required": { "type": "boolean" },
7843
+ },
7844
+ "required": ["capability", "required"],
7845
+ "type": "object",
7770
7846
  },
7771
- "required": ["kind", "contractId", "required"],
7772
- "type": "object",
7773
- }, {
7774
- "properties": {
7775
- "kind": { "const": "surface", "type": "string" },
7776
- "required": { "type": "boolean" },
7777
- "surface": {
7778
- "properties": {
7779
- "action": {
7780
- "anyOf": [
7781
- { "const": "call", "type": "string" },
7782
- { "const": "publish", "type": "string" },
7783
- { "const": "subscribe", "type": "string" },
7784
- { "const": "observe", "type": "string" },
7785
- { "const": "cancel", "type": "string" },
7786
- ],
7787
- },
7788
- "contractId": { "minLength": 1, "type": "string" },
7789
- "kind": {
7790
- "anyOf": [
7791
- { "const": "rpc", "type": "string" },
7792
- { "const": "operation", "type": "string" },
7793
- { "const": "event", "type": "string" },
7794
- { "const": "feed", "type": "string" },
7795
- ],
7796
- },
7797
- "name": { "minLength": 1, "type": "string" },
7798
- },
7799
- "required": ["contractId", "kind", "name"],
7800
- "type": "object",
7847
+ "type": "array",
7848
+ },
7849
+ "contracts": {
7850
+ "items": {
7851
+ "properties": {
7852
+ "contractId": { "minLength": 1, "type": "string" },
7853
+ "required": { "type": "boolean" },
7801
7854
  },
7855
+ "required": ["contractId", "required"],
7856
+ "type": "object",
7802
7857
  },
7803
- "required": ["kind", "surface", "required"],
7804
- "type": "object",
7805
- }, {
7806
- "properties": {
7807
- "capability": { "minLength": 1, "type": "string" },
7808
- "kind": { "const": "capability", "type": "string" },
7809
- "required": { "type": "boolean" },
7858
+ "type": "array",
7859
+ },
7860
+ "resources": {
7861
+ "items": {
7862
+ "properties": {
7863
+ "alias": { "minLength": 1, "type": "string" },
7864
+ "definition": { "type": "object" },
7865
+ "kind": {
7866
+ "anyOf": [
7867
+ { "const": "kv", "type": "string" },
7868
+ { "const": "store", "type": "string" },
7869
+ { "const": "jobs", "type": "string" },
7870
+ { "const": "event-consumer", "type": "string" },
7871
+ { "const": "transfer", "type": "string" },
7872
+ ],
7873
+ },
7874
+ "required": { "type": "boolean" },
7875
+ },
7876
+ "required": ["kind", "alias", "required"],
7877
+ "type": "object",
7810
7878
  },
7811
- "required": ["kind", "capability", "required"],
7812
- "type": "object",
7813
- }, {
7814
- "properties": {
7815
- "kind": { "const": "resource", "type": "string" },
7816
- "required": { "type": "boolean" },
7817
- "resource": {
7818
- "properties": {
7819
- "alias": { "minLength": 1, "type": "string" },
7820
- "definition": { "type": "object" },
7821
- "kind": {
7822
- "anyOf": [
7823
- { "const": "kv", "type": "string" },
7824
- { "const": "store", "type": "string" },
7825
- { "const": "jobs", "type": "string" },
7826
- { "const": "event-consumer", "type": "string" },
7827
- { "const": "transfer", "type": "string" },
7828
- ],
7829
- },
7830
- "required": { "type": "boolean" },
7879
+ "type": "array",
7880
+ },
7881
+ "surfaces": {
7882
+ "items": {
7883
+ "properties": {
7884
+ "action": {
7885
+ "anyOf": [
7886
+ { "const": "call", "type": "string" },
7887
+ { "const": "publish", "type": "string" },
7888
+ { "const": "subscribe", "type": "string" },
7889
+ { "const": "observe", "type": "string" },
7890
+ { "const": "cancel", "type": "string" },
7891
+ ],
7831
7892
  },
7832
- "required": ["kind", "alias", "required"],
7833
- "type": "object",
7893
+ "contractId": { "minLength": 1, "type": "string" },
7894
+ "kind": {
7895
+ "anyOf": [
7896
+ { "const": "rpc", "type": "string" },
7897
+ { "const": "operation", "type": "string" },
7898
+ { "const": "event", "type": "string" },
7899
+ { "const": "feed", "type": "string" },
7900
+ ],
7901
+ },
7902
+ "name": { "minLength": 1, "type": "string" },
7903
+ "required": { "type": "boolean" },
7834
7904
  },
7905
+ "required": ["contractId", "kind", "name", "required"],
7906
+ "type": "object",
7835
7907
  },
7836
- "required": ["kind", "resource", "required"],
7837
- "type": "object",
7838
- }],
7908
+ "type": "array",
7909
+ },
7839
7910
  },
7840
- "type": "array",
7911
+ "required": [
7912
+ "contracts",
7913
+ "surfaces",
7914
+ "capabilities",
7915
+ "resources",
7916
+ ],
7917
+ "type": "object",
7841
7918
  },
7842
7919
  "resources": {
7843
7920
  "items": {
@@ -7917,6 +7994,22 @@ export const CONTRACT = {
7917
7994
  ],
7918
7995
  "type": "object",
7919
7996
  },
7997
+ "DeploymentAuthorityCapabilityNeed": {
7998
+ "properties": {
7999
+ "capability": { "minLength": 1, "type": "string" },
8000
+ "required": { "type": "boolean" },
8001
+ },
8002
+ "required": ["capability", "required"],
8003
+ "type": "object",
8004
+ },
8005
+ "DeploymentAuthorityContractNeed": {
8006
+ "properties": {
8007
+ "contractId": { "minLength": 1, "type": "string" },
8008
+ "required": { "type": "boolean" },
8009
+ },
8010
+ "required": ["contractId", "required"],
8011
+ "type": "object",
8012
+ },
7920
8013
  "DeploymentAuthorityGrantOverride": {
7921
8014
  "anyOf": [{
7922
8015
  "properties": {
@@ -8014,99 +8107,107 @@ export const CONTRACT = {
8014
8107
  "desiredVersion": { "minLength": 1, "type": "string" },
8015
8108
  "error": { "minLength": 1, "type": "string" },
8016
8109
  "grants": {
8017
- "items": {
8018
- "anyOf": [{
8019
- "properties": {
8020
- "capability": { "minLength": 1, "type": "string" },
8021
- "kind": { "const": "capability", "type": "string" },
8022
- },
8023
- "required": ["kind", "capability"],
8024
- "type": "object",
8025
- }, {
8026
- "properties": {
8027
- "action": {
8028
- "anyOf": [
8029
- { "const": "call", "type": "string" },
8030
- { "const": "publish", "type": "string" },
8031
- { "const": "subscribe", "type": "string" },
8032
- { "const": "observe", "type": "string" },
8033
- { "const": "cancel", "type": "string" },
8034
- ],
8035
- },
8036
- "contractId": { "minLength": 1, "type": "string" },
8037
- "kind": { "const": "surface", "type": "string" },
8038
- "name": { "minLength": 1, "type": "string" },
8039
- "surfaceKind": {
8040
- "anyOf": [
8041
- { "const": "rpc", "type": "string" },
8042
- { "const": "operation", "type": "string" },
8043
- { "const": "event", "type": "string" },
8044
- { "const": "feed", "type": "string" },
8045
- ],
8110
+ "properties": {
8111
+ "capabilities": {
8112
+ "items": {
8113
+ "properties": {
8114
+ "capability": { "minLength": 1, "type": "string" },
8046
8115
  },
8116
+ "required": ["capability"],
8117
+ "type": "object",
8047
8118
  },
8048
- "required": ["kind", "contractId", "surfaceKind", "name"],
8049
- "type": "object",
8050
- }, {
8051
- "properties": {
8052
- "direction": {
8053
- "anyOf": [{ "const": "publish", "type": "string" }, {
8054
- "const": "subscribe",
8055
- "type": "string",
8056
- }],
8057
- },
8058
- "grantSource": {
8059
- "anyOf": [
8060
- { "const": "owned-surface", "type": "string" },
8061
- { "const": "used-surface", "type": "string" },
8062
- { "const": "resource-binding", "type": "string" },
8063
- { "const": "platform-service", "type": "string" },
8064
- { "const": "transfer", "type": "string" },
8065
- ],
8066
- },
8067
- "kind": { "const": "nats", "type": "string" },
8068
- "requiredCapabilities": {
8069
- "items": { "minLength": 1, "type": "string" },
8070
- "type": "array",
8071
- },
8072
- "subject": { "minLength": 1, "type": "string" },
8073
- "surface": {
8074
- "properties": {
8075
- "action": {
8076
- "anyOf": [
8077
- { "const": "call", "type": "string" },
8078
- { "const": "publish", "type": "string" },
8079
- { "const": "subscribe", "type": "string" },
8080
- { "const": "observe", "type": "string" },
8081
- { "const": "cancel", "type": "string" },
8082
- ],
8083
- },
8084
- "contractId": { "minLength": 1, "type": "string" },
8085
- "kind": {
8086
- "anyOf": [
8087
- { "const": "rpc", "type": "string" },
8088
- { "const": "operation", "type": "string" },
8089
- { "const": "event", "type": "string" },
8090
- { "const": "feed", "type": "string" },
8091
- ],
8119
+ "type": "array",
8120
+ },
8121
+ "nats": {
8122
+ "items": {
8123
+ "properties": {
8124
+ "direction": {
8125
+ "anyOf": [{ "const": "publish", "type": "string" }, {
8126
+ "const": "subscribe",
8127
+ "type": "string",
8128
+ }],
8129
+ },
8130
+ "grantSource": {
8131
+ "anyOf": [
8132
+ { "const": "owned-surface", "type": "string" },
8133
+ { "const": "used-surface", "type": "string" },
8134
+ { "const": "resource-binding", "type": "string" },
8135
+ { "const": "platform-service", "type": "string" },
8136
+ { "const": "transfer", "type": "string" },
8137
+ ],
8138
+ },
8139
+ "requiredCapabilities": {
8140
+ "items": { "minLength": 1, "type": "string" },
8141
+ "type": "array",
8142
+ },
8143
+ "subject": { "minLength": 1, "type": "string" },
8144
+ "surface": {
8145
+ "properties": {
8146
+ "action": {
8147
+ "anyOf": [
8148
+ { "const": "call", "type": "string" },
8149
+ { "const": "publish", "type": "string" },
8150
+ { "const": "subscribe", "type": "string" },
8151
+ { "const": "observe", "type": "string" },
8152
+ { "const": "cancel", "type": "string" },
8153
+ ],
8154
+ },
8155
+ "contractId": { "minLength": 1, "type": "string" },
8156
+ "kind": {
8157
+ "anyOf": [
8158
+ { "const": "rpc", "type": "string" },
8159
+ { "const": "operation", "type": "string" },
8160
+ { "const": "event", "type": "string" },
8161
+ { "const": "feed", "type": "string" },
8162
+ ],
8163
+ },
8164
+ "name": { "minLength": 1, "type": "string" },
8092
8165
  },
8093
- "name": { "minLength": 1, "type": "string" },
8166
+ "required": ["contractId", "kind", "name"],
8167
+ "type": "object",
8094
8168
  },
8095
- "required": ["contractId", "kind", "name"],
8096
- "type": "object",
8097
8169
  },
8170
+ "required": [
8171
+ "direction",
8172
+ "subject",
8173
+ "requiredCapabilities",
8174
+ "grantSource",
8175
+ ],
8176
+ "type": "object",
8098
8177
  },
8099
- "required": [
8100
- "kind",
8101
- "direction",
8102
- "subject",
8103
- "requiredCapabilities",
8104
- "grantSource",
8105
- ],
8106
- "type": "object",
8107
- }],
8178
+ "type": "array",
8179
+ },
8180
+ "surfaces": {
8181
+ "items": {
8182
+ "properties": {
8183
+ "action": {
8184
+ "anyOf": [
8185
+ { "const": "call", "type": "string" },
8186
+ { "const": "publish", "type": "string" },
8187
+ { "const": "subscribe", "type": "string" },
8188
+ { "const": "observe", "type": "string" },
8189
+ { "const": "cancel", "type": "string" },
8190
+ ],
8191
+ },
8192
+ "contractId": { "minLength": 1, "type": "string" },
8193
+ "name": { "minLength": 1, "type": "string" },
8194
+ "surfaceKind": {
8195
+ "anyOf": [
8196
+ { "const": "rpc", "type": "string" },
8197
+ { "const": "operation", "type": "string" },
8198
+ { "const": "event", "type": "string" },
8199
+ { "const": "feed", "type": "string" },
8200
+ ],
8201
+ },
8202
+ },
8203
+ "required": ["contractId", "surfaceKind", "name"],
8204
+ "type": "object",
8205
+ },
8206
+ "type": "array",
8207
+ },
8108
8208
  },
8109
- "type": "array",
8209
+ "required": ["capabilities", "surfaces", "nats"],
8210
+ "type": "object",
8110
8211
  },
8111
8212
  "reconciledAt": {
8112
8213
  "anyOf": [{ "format": "date-time", "type": "string" }, {
@@ -8232,83 +8333,87 @@ export const CONTRACT = {
8232
8333
  "type": "array",
8233
8334
  },
8234
8335
  "requestedNeeds": {
8235
- "items": {
8236
- "anyOf": [{
8237
- "properties": {
8238
- "contractId": { "minLength": 1, "type": "string" },
8239
- "kind": { "const": "contract", "type": "string" },
8240
- "required": { "type": "boolean" },
8336
+ "properties": {
8337
+ "capabilities": {
8338
+ "items": {
8339
+ "properties": {
8340
+ "capability": { "minLength": 1, "type": "string" },
8341
+ "required": { "type": "boolean" },
8342
+ },
8343
+ "required": ["capability", "required"],
8344
+ "type": "object",
8241
8345
  },
8242
- "required": ["kind", "contractId", "required"],
8243
- "type": "object",
8244
- }, {
8245
- "properties": {
8246
- "kind": { "const": "surface", "type": "string" },
8247
- "required": { "type": "boolean" },
8248
- "surface": {
8249
- "properties": {
8250
- "action": {
8251
- "anyOf": [
8252
- { "const": "call", "type": "string" },
8253
- { "const": "publish", "type": "string" },
8254
- { "const": "subscribe", "type": "string" },
8255
- { "const": "observe", "type": "string" },
8256
- { "const": "cancel", "type": "string" },
8257
- ],
8258
- },
8259
- "contractId": { "minLength": 1, "type": "string" },
8260
- "kind": {
8261
- "anyOf": [
8262
- { "const": "rpc", "type": "string" },
8263
- { "const": "operation", "type": "string" },
8264
- { "const": "event", "type": "string" },
8265
- { "const": "feed", "type": "string" },
8266
- ],
8267
- },
8268
- "name": { "minLength": 1, "type": "string" },
8269
- },
8270
- "required": ["contractId", "kind", "name"],
8271
- "type": "object",
8346
+ "type": "array",
8347
+ },
8348
+ "contracts": {
8349
+ "items": {
8350
+ "properties": {
8351
+ "contractId": { "minLength": 1, "type": "string" },
8352
+ "required": { "type": "boolean" },
8272
8353
  },
8354
+ "required": ["contractId", "required"],
8355
+ "type": "object",
8273
8356
  },
8274
- "required": ["kind", "surface", "required"],
8275
- "type": "object",
8276
- }, {
8277
- "properties": {
8278
- "capability": { "minLength": 1, "type": "string" },
8279
- "kind": { "const": "capability", "type": "string" },
8280
- "required": { "type": "boolean" },
8357
+ "type": "array",
8358
+ },
8359
+ "resources": {
8360
+ "items": {
8361
+ "properties": {
8362
+ "alias": { "minLength": 1, "type": "string" },
8363
+ "definition": { "type": "object" },
8364
+ "kind": {
8365
+ "anyOf": [
8366
+ { "const": "kv", "type": "string" },
8367
+ { "const": "store", "type": "string" },
8368
+ { "const": "jobs", "type": "string" },
8369
+ { "const": "event-consumer", "type": "string" },
8370
+ { "const": "transfer", "type": "string" },
8371
+ ],
8372
+ },
8373
+ "required": { "type": "boolean" },
8374
+ },
8375
+ "required": ["kind", "alias", "required"],
8376
+ "type": "object",
8281
8377
  },
8282
- "required": ["kind", "capability", "required"],
8283
- "type": "object",
8284
- }, {
8285
- "properties": {
8286
- "kind": { "const": "resource", "type": "string" },
8287
- "required": { "type": "boolean" },
8288
- "resource": {
8289
- "properties": {
8290
- "alias": { "minLength": 1, "type": "string" },
8291
- "definition": { "type": "object" },
8292
- "kind": {
8293
- "anyOf": [
8294
- { "const": "kv", "type": "string" },
8295
- { "const": "store", "type": "string" },
8296
- { "const": "jobs", "type": "string" },
8297
- { "const": "event-consumer", "type": "string" },
8298
- { "const": "transfer", "type": "string" },
8299
- ],
8300
- },
8301
- "required": { "type": "boolean" },
8378
+ "type": "array",
8379
+ },
8380
+ "surfaces": {
8381
+ "items": {
8382
+ "properties": {
8383
+ "action": {
8384
+ "anyOf": [
8385
+ { "const": "call", "type": "string" },
8386
+ { "const": "publish", "type": "string" },
8387
+ { "const": "subscribe", "type": "string" },
8388
+ { "const": "observe", "type": "string" },
8389
+ { "const": "cancel", "type": "string" },
8390
+ ],
8302
8391
  },
8303
- "required": ["kind", "alias", "required"],
8304
- "type": "object",
8392
+ "contractId": { "minLength": 1, "type": "string" },
8393
+ "kind": {
8394
+ "anyOf": [
8395
+ { "const": "rpc", "type": "string" },
8396
+ { "const": "operation", "type": "string" },
8397
+ { "const": "event", "type": "string" },
8398
+ { "const": "feed", "type": "string" },
8399
+ ],
8400
+ },
8401
+ "name": { "minLength": 1, "type": "string" },
8402
+ "required": { "type": "boolean" },
8305
8403
  },
8404
+ "required": ["contractId", "kind", "name", "required"],
8405
+ "type": "object",
8306
8406
  },
8307
- "required": ["kind", "resource", "required"],
8308
- "type": "object",
8309
- }],
8407
+ "type": "array",
8408
+ },
8310
8409
  },
8311
- "type": "array",
8410
+ "required": [
8411
+ "contracts",
8412
+ "surfaces",
8413
+ "capabilities",
8414
+ "resources",
8415
+ ],
8416
+ "type": "object",
8312
8417
  },
8313
8418
  "summary": { "type": "object" },
8314
8419
  },
@@ -8347,20 +8452,53 @@ export const CONTRACT = {
8347
8452
  ],
8348
8453
  "type": "object",
8349
8454
  },
8350
- "DeploymentAuthorityNeed": {
8351
- "anyOf": [{
8352
- "properties": {
8353
- "contractId": { "minLength": 1, "type": "string" },
8354
- "kind": { "const": "contract", "type": "string" },
8355
- "required": { "type": "boolean" },
8455
+ "DeploymentAuthorityNeeds": {
8456
+ "properties": {
8457
+ "capabilities": {
8458
+ "items": {
8459
+ "properties": {
8460
+ "capability": { "minLength": 1, "type": "string" },
8461
+ "required": { "type": "boolean" },
8462
+ },
8463
+ "required": ["capability", "required"],
8464
+ "type": "object",
8465
+ },
8466
+ "type": "array",
8356
8467
  },
8357
- "required": ["kind", "contractId", "required"],
8358
- "type": "object",
8359
- }, {
8360
- "properties": {
8361
- "kind": { "const": "surface", "type": "string" },
8362
- "required": { "type": "boolean" },
8363
- "surface": {
8468
+ "contracts": {
8469
+ "items": {
8470
+ "properties": {
8471
+ "contractId": { "minLength": 1, "type": "string" },
8472
+ "required": { "type": "boolean" },
8473
+ },
8474
+ "required": ["contractId", "required"],
8475
+ "type": "object",
8476
+ },
8477
+ "type": "array",
8478
+ },
8479
+ "resources": {
8480
+ "items": {
8481
+ "properties": {
8482
+ "alias": { "minLength": 1, "type": "string" },
8483
+ "definition": { "type": "object" },
8484
+ "kind": {
8485
+ "anyOf": [
8486
+ { "const": "kv", "type": "string" },
8487
+ { "const": "store", "type": "string" },
8488
+ { "const": "jobs", "type": "string" },
8489
+ { "const": "event-consumer", "type": "string" },
8490
+ { "const": "transfer", "type": "string" },
8491
+ ],
8492
+ },
8493
+ "required": { "type": "boolean" },
8494
+ },
8495
+ "required": ["kind", "alias", "required"],
8496
+ "type": "object",
8497
+ },
8498
+ "type": "array",
8499
+ },
8500
+ "surfaces": {
8501
+ "items": {
8364
8502
  "properties": {
8365
8503
  "action": {
8366
8504
  "anyOf": [
@@ -8381,47 +8519,16 @@ export const CONTRACT = {
8381
8519
  ],
8382
8520
  },
8383
8521
  "name": { "minLength": 1, "type": "string" },
8384
- },
8385
- "required": ["contractId", "kind", "name"],
8386
- "type": "object",
8387
- },
8388
- },
8389
- "required": ["kind", "surface", "required"],
8390
- "type": "object",
8391
- }, {
8392
- "properties": {
8393
- "capability": { "minLength": 1, "type": "string" },
8394
- "kind": { "const": "capability", "type": "string" },
8395
- "required": { "type": "boolean" },
8396
- },
8397
- "required": ["kind", "capability", "required"],
8398
- "type": "object",
8399
- }, {
8400
- "properties": {
8401
- "kind": { "const": "resource", "type": "string" },
8402
- "required": { "type": "boolean" },
8403
- "resource": {
8404
- "properties": {
8405
- "alias": { "minLength": 1, "type": "string" },
8406
- "definition": { "type": "object" },
8407
- "kind": {
8408
- "anyOf": [
8409
- { "const": "kv", "type": "string" },
8410
- { "const": "store", "type": "string" },
8411
- { "const": "jobs", "type": "string" },
8412
- { "const": "event-consumer", "type": "string" },
8413
- { "const": "transfer", "type": "string" },
8414
- ],
8415
- },
8416
8522
  "required": { "type": "boolean" },
8417
8523
  },
8418
- "required": ["kind", "alias", "required"],
8524
+ "required": ["contractId", "kind", "name", "required"],
8419
8525
  "type": "object",
8420
8526
  },
8527
+ "type": "array",
8421
8528
  },
8422
- "required": ["kind", "resource", "required"],
8423
- "type": "object",
8424
- }],
8529
+ },
8530
+ "required": ["contracts", "surfaces", "capabilities", "resources"],
8531
+ "type": "object",
8425
8532
  },
8426
8533
  "DeploymentAuthorityProposal": {
8427
8534
  "properties": {
@@ -8459,83 +8566,82 @@ export const CONTRACT = {
8459
8566
  "type": "array",
8460
8567
  },
8461
8568
  "requestedNeeds": {
8462
- "items": {
8463
- "anyOf": [{
8464
- "properties": {
8465
- "contractId": { "minLength": 1, "type": "string" },
8466
- "kind": { "const": "contract", "type": "string" },
8467
- "required": { "type": "boolean" },
8569
+ "properties": {
8570
+ "capabilities": {
8571
+ "items": {
8572
+ "properties": {
8573
+ "capability": { "minLength": 1, "type": "string" },
8574
+ "required": { "type": "boolean" },
8575
+ },
8576
+ "required": ["capability", "required"],
8577
+ "type": "object",
8468
8578
  },
8469
- "required": ["kind", "contractId", "required"],
8470
- "type": "object",
8471
- }, {
8472
- "properties": {
8473
- "kind": { "const": "surface", "type": "string" },
8474
- "required": { "type": "boolean" },
8475
- "surface": {
8476
- "properties": {
8477
- "action": {
8478
- "anyOf": [
8479
- { "const": "call", "type": "string" },
8480
- { "const": "publish", "type": "string" },
8481
- { "const": "subscribe", "type": "string" },
8482
- { "const": "observe", "type": "string" },
8483
- { "const": "cancel", "type": "string" },
8484
- ],
8485
- },
8486
- "contractId": { "minLength": 1, "type": "string" },
8487
- "kind": {
8488
- "anyOf": [
8489
- { "const": "rpc", "type": "string" },
8490
- { "const": "operation", "type": "string" },
8491
- { "const": "event", "type": "string" },
8492
- { "const": "feed", "type": "string" },
8493
- ],
8494
- },
8495
- "name": { "minLength": 1, "type": "string" },
8496
- },
8497
- "required": ["contractId", "kind", "name"],
8498
- "type": "object",
8579
+ "type": "array",
8580
+ },
8581
+ "contracts": {
8582
+ "items": {
8583
+ "properties": {
8584
+ "contractId": { "minLength": 1, "type": "string" },
8585
+ "required": { "type": "boolean" },
8499
8586
  },
8587
+ "required": ["contractId", "required"],
8588
+ "type": "object",
8500
8589
  },
8501
- "required": ["kind", "surface", "required"],
8502
- "type": "object",
8503
- }, {
8504
- "properties": {
8505
- "capability": { "minLength": 1, "type": "string" },
8506
- "kind": { "const": "capability", "type": "string" },
8507
- "required": { "type": "boolean" },
8590
+ "type": "array",
8591
+ },
8592
+ "resources": {
8593
+ "items": {
8594
+ "properties": {
8595
+ "alias": { "minLength": 1, "type": "string" },
8596
+ "definition": { "type": "object" },
8597
+ "kind": {
8598
+ "anyOf": [
8599
+ { "const": "kv", "type": "string" },
8600
+ { "const": "store", "type": "string" },
8601
+ { "const": "jobs", "type": "string" },
8602
+ { "const": "event-consumer", "type": "string" },
8603
+ { "const": "transfer", "type": "string" },
8604
+ ],
8605
+ },
8606
+ "required": { "type": "boolean" },
8607
+ },
8608
+ "required": ["kind", "alias", "required"],
8609
+ "type": "object",
8508
8610
  },
8509
- "required": ["kind", "capability", "required"],
8510
- "type": "object",
8511
- }, {
8512
- "properties": {
8513
- "kind": { "const": "resource", "type": "string" },
8514
- "required": { "type": "boolean" },
8515
- "resource": {
8516
- "properties": {
8517
- "alias": { "minLength": 1, "type": "string" },
8518
- "definition": { "type": "object" },
8519
- "kind": {
8520
- "anyOf": [
8521
- { "const": "kv", "type": "string" },
8522
- { "const": "store", "type": "string" },
8523
- { "const": "jobs", "type": "string" },
8524
- { "const": "event-consumer", "type": "string" },
8525
- { "const": "transfer", "type": "string" },
8526
- ],
8527
- },
8528
- "required": { "type": "boolean" },
8611
+ "type": "array",
8612
+ },
8613
+ "surfaces": {
8614
+ "items": {
8615
+ "properties": {
8616
+ "action": {
8617
+ "anyOf": [
8618
+ { "const": "call", "type": "string" },
8619
+ { "const": "publish", "type": "string" },
8620
+ { "const": "subscribe", "type": "string" },
8621
+ { "const": "observe", "type": "string" },
8622
+ { "const": "cancel", "type": "string" },
8623
+ ],
8529
8624
  },
8530
- "required": ["kind", "alias", "required"],
8531
- "type": "object",
8625
+ "contractId": { "minLength": 1, "type": "string" },
8626
+ "kind": {
8627
+ "anyOf": [
8628
+ { "const": "rpc", "type": "string" },
8629
+ { "const": "operation", "type": "string" },
8630
+ { "const": "event", "type": "string" },
8631
+ { "const": "feed", "type": "string" },
8632
+ ],
8633
+ },
8634
+ "name": { "minLength": 1, "type": "string" },
8635
+ "required": { "type": "boolean" },
8532
8636
  },
8637
+ "required": ["contractId", "kind", "name", "required"],
8638
+ "type": "object",
8533
8639
  },
8534
- "required": ["kind", "resource", "required"],
8535
- "type": "object",
8536
- }],
8640
+ "type": "array",
8641
+ },
8537
8642
  },
8538
- "type": "array",
8643
+ "required": ["contracts", "surfaces", "capabilities", "resources"],
8644
+ "type": "object",
8539
8645
  },
8540
8646
  "summary": { "type": "object" },
8541
8647
  },
@@ -8599,6 +8705,24 @@ export const CONTRACT = {
8599
8705
  "required": ["kind", "alias", "required"],
8600
8706
  "type": "object",
8601
8707
  },
8708
+ "DeploymentAuthorityResourceNeed": {
8709
+ "properties": {
8710
+ "alias": { "minLength": 1, "type": "string" },
8711
+ "definition": { "type": "object" },
8712
+ "kind": {
8713
+ "anyOf": [
8714
+ { "const": "kv", "type": "string" },
8715
+ { "const": "store", "type": "string" },
8716
+ { "const": "jobs", "type": "string" },
8717
+ { "const": "event-consumer", "type": "string" },
8718
+ { "const": "transfer", "type": "string" },
8719
+ ],
8720
+ },
8721
+ "required": { "type": "boolean" },
8722
+ },
8723
+ "required": ["kind", "alias", "required"],
8724
+ "type": "object",
8725
+ },
8602
8726
  "DeploymentAuthoritySurface": {
8603
8727
  "properties": {
8604
8728
  "action": {
@@ -8624,6 +8748,32 @@ export const CONTRACT = {
8624
8748
  "required": ["contractId", "kind", "name"],
8625
8749
  "type": "object",
8626
8750
  },
8751
+ "DeploymentAuthoritySurfaceNeed": {
8752
+ "properties": {
8753
+ "action": {
8754
+ "anyOf": [
8755
+ { "const": "call", "type": "string" },
8756
+ { "const": "publish", "type": "string" },
8757
+ { "const": "subscribe", "type": "string" },
8758
+ { "const": "observe", "type": "string" },
8759
+ { "const": "cancel", "type": "string" },
8760
+ ],
8761
+ },
8762
+ "contractId": { "minLength": 1, "type": "string" },
8763
+ "kind": {
8764
+ "anyOf": [
8765
+ { "const": "rpc", "type": "string" },
8766
+ { "const": "operation", "type": "string" },
8767
+ { "const": "event", "type": "string" },
8768
+ { "const": "feed", "type": "string" },
8769
+ ],
8770
+ },
8771
+ "name": { "minLength": 1, "type": "string" },
8772
+ "required": { "type": "boolean" },
8773
+ },
8774
+ "required": ["contractId", "kind", "name", "required"],
8775
+ "type": "object",
8776
+ },
8627
8777
  "DeploymentAuthorityUpdate": {
8628
8778
  "properties": {
8629
8779
  "classification": { "const": "update", "type": "string" },
@@ -8685,83 +8835,87 @@ export const CONTRACT = {
8685
8835
  "type": "array",
8686
8836
  },
8687
8837
  "requestedNeeds": {
8688
- "items": {
8689
- "anyOf": [{
8690
- "properties": {
8691
- "contractId": { "minLength": 1, "type": "string" },
8692
- "kind": { "const": "contract", "type": "string" },
8693
- "required": { "type": "boolean" },
8838
+ "properties": {
8839
+ "capabilities": {
8840
+ "items": {
8841
+ "properties": {
8842
+ "capability": { "minLength": 1, "type": "string" },
8843
+ "required": { "type": "boolean" },
8844
+ },
8845
+ "required": ["capability", "required"],
8846
+ "type": "object",
8694
8847
  },
8695
- "required": ["kind", "contractId", "required"],
8696
- "type": "object",
8697
- }, {
8698
- "properties": {
8699
- "kind": { "const": "surface", "type": "string" },
8700
- "required": { "type": "boolean" },
8701
- "surface": {
8702
- "properties": {
8703
- "action": {
8704
- "anyOf": [
8705
- { "const": "call", "type": "string" },
8706
- { "const": "publish", "type": "string" },
8707
- { "const": "subscribe", "type": "string" },
8708
- { "const": "observe", "type": "string" },
8709
- { "const": "cancel", "type": "string" },
8710
- ],
8711
- },
8712
- "contractId": { "minLength": 1, "type": "string" },
8713
- "kind": {
8714
- "anyOf": [
8715
- { "const": "rpc", "type": "string" },
8716
- { "const": "operation", "type": "string" },
8717
- { "const": "event", "type": "string" },
8718
- { "const": "feed", "type": "string" },
8719
- ],
8720
- },
8721
- "name": { "minLength": 1, "type": "string" },
8722
- },
8723
- "required": ["contractId", "kind", "name"],
8724
- "type": "object",
8848
+ "type": "array",
8849
+ },
8850
+ "contracts": {
8851
+ "items": {
8852
+ "properties": {
8853
+ "contractId": { "minLength": 1, "type": "string" },
8854
+ "required": { "type": "boolean" },
8725
8855
  },
8856
+ "required": ["contractId", "required"],
8857
+ "type": "object",
8726
8858
  },
8727
- "required": ["kind", "surface", "required"],
8728
- "type": "object",
8729
- }, {
8730
- "properties": {
8731
- "capability": { "minLength": 1, "type": "string" },
8732
- "kind": { "const": "capability", "type": "string" },
8733
- "required": { "type": "boolean" },
8859
+ "type": "array",
8860
+ },
8861
+ "resources": {
8862
+ "items": {
8863
+ "properties": {
8864
+ "alias": { "minLength": 1, "type": "string" },
8865
+ "definition": { "type": "object" },
8866
+ "kind": {
8867
+ "anyOf": [
8868
+ { "const": "kv", "type": "string" },
8869
+ { "const": "store", "type": "string" },
8870
+ { "const": "jobs", "type": "string" },
8871
+ { "const": "event-consumer", "type": "string" },
8872
+ { "const": "transfer", "type": "string" },
8873
+ ],
8874
+ },
8875
+ "required": { "type": "boolean" },
8876
+ },
8877
+ "required": ["kind", "alias", "required"],
8878
+ "type": "object",
8734
8879
  },
8735
- "required": ["kind", "capability", "required"],
8736
- "type": "object",
8737
- }, {
8738
- "properties": {
8739
- "kind": { "const": "resource", "type": "string" },
8740
- "required": { "type": "boolean" },
8741
- "resource": {
8742
- "properties": {
8743
- "alias": { "minLength": 1, "type": "string" },
8744
- "definition": { "type": "object" },
8745
- "kind": {
8746
- "anyOf": [
8747
- { "const": "kv", "type": "string" },
8748
- { "const": "store", "type": "string" },
8749
- { "const": "jobs", "type": "string" },
8750
- { "const": "event-consumer", "type": "string" },
8751
- { "const": "transfer", "type": "string" },
8752
- ],
8753
- },
8754
- "required": { "type": "boolean" },
8880
+ "type": "array",
8881
+ },
8882
+ "surfaces": {
8883
+ "items": {
8884
+ "properties": {
8885
+ "action": {
8886
+ "anyOf": [
8887
+ { "const": "call", "type": "string" },
8888
+ { "const": "publish", "type": "string" },
8889
+ { "const": "subscribe", "type": "string" },
8890
+ { "const": "observe", "type": "string" },
8891
+ { "const": "cancel", "type": "string" },
8892
+ ],
8755
8893
  },
8756
- "required": ["kind", "alias", "required"],
8757
- "type": "object",
8894
+ "contractId": { "minLength": 1, "type": "string" },
8895
+ "kind": {
8896
+ "anyOf": [
8897
+ { "const": "rpc", "type": "string" },
8898
+ { "const": "operation", "type": "string" },
8899
+ { "const": "event", "type": "string" },
8900
+ { "const": "feed", "type": "string" },
8901
+ ],
8902
+ },
8903
+ "name": { "minLength": 1, "type": "string" },
8904
+ "required": { "type": "boolean" },
8758
8905
  },
8906
+ "required": ["contractId", "kind", "name", "required"],
8907
+ "type": "object",
8759
8908
  },
8760
- "required": ["kind", "resource", "required"],
8761
- "type": "object",
8762
- }],
8909
+ "type": "array",
8910
+ },
8763
8911
  },
8764
- "type": "array",
8912
+ "required": [
8913
+ "contracts",
8914
+ "surfaces",
8915
+ "capabilities",
8916
+ "resources",
8917
+ ],
8918
+ "type": "object",
8765
8919
  },
8766
8920
  "summary": { "type": "object" },
8767
8921
  },
@@ -9421,7 +9575,10 @@ export const CONTRACT = {
9421
9575
  "required": ["status", "location"],
9422
9576
  "type": "object",
9423
9577
  }, {
9424
- "properties": { "status": { "const": "expired", "type": "string" } },
9578
+ "properties": {
9579
+ "returnLocation": { "minLength": 1, "type": "string" },
9580
+ "status": { "const": "expired", "type": "string" },
9581
+ },
9425
9582
  "required": ["status"],
9426
9583
  "type": "object",
9427
9584
  }],