@turnkey/http 0.16.0 → 0.17.1

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.
@@ -549,6 +549,59 @@
549
549
  }
550
550
  }
551
551
  },
552
+ "/public/v1/submit/approve_activity": {
553
+ "post": {
554
+ "summary": "Approve Activity",
555
+ "description": "Approve an Activity",
556
+ "operationId": "PublicApiService_ApproveActivity",
557
+ "responses": {
558
+ "200": {
559
+ "description": "A successful response.",
560
+ "schema": {
561
+ "$ref": "#/definitions/v1ActivityResponse"
562
+ }
563
+ },
564
+ "403": {
565
+ "description": "Returned when the user does not have permission to access the resource.",
566
+ "schema": {}
567
+ },
568
+ "404": {
569
+ "description": "Returned when the resource does not exist.",
570
+ "schema": {
571
+ "type": "string",
572
+ "format": "string"
573
+ }
574
+ },
575
+ "default": {
576
+ "description": "An unexpected error response.",
577
+ "schema": {
578
+ "$ref": "#/definitions/rpcStatus"
579
+ }
580
+ }
581
+ },
582
+ "parameters": [
583
+ {
584
+ "name": "body",
585
+ "in": "body",
586
+ "required": true,
587
+ "schema": {
588
+ "$ref": "#/definitions/v1ApproveActivityRequest"
589
+ }
590
+ }
591
+ ],
592
+ "tags": ["Activities"],
593
+ "x-readme": {
594
+ "code-samples": [
595
+ {
596
+ "code": "turnkey request --host coordinator-beta.turnkey.io --path /public/v1/submit/approve_activity --body '{\n\t\"timestampMs\": \"'\"$(date +%s)\"'000\",\n\t\"type\": \"ACTIVITY_TYPE_APPROVE_ACTIVITY\",\n\t\"organizationId\": \"'\"$ORGANIZATION_ID\"'\",\n\t\"parameters\": {\n\t\t\"fingerprint\": \"\"\n\t}\n}'",
597
+ "install": "brew tap tkhq/tap \u0026\u0026 brew install turnkey",
598
+ "language": "curl",
599
+ "name": "Turnkey CLI"
600
+ }
601
+ ]
602
+ }
603
+ }
604
+ },
552
605
  "/public/v1/submit/create_api_keys": {
553
606
  "post": {
554
607
  "summary": "Create API Keys",
@@ -655,6 +708,59 @@
655
708
  }
656
709
  }
657
710
  },
711
+ "/public/v1/submit/create_authenticators": {
712
+ "post": {
713
+ "summary": "Create Authenticators",
714
+ "description": "Create Authenticators to authenticate requests to Turnkey",
715
+ "operationId": "PublicApiService_CreateAuthenticators",
716
+ "responses": {
717
+ "200": {
718
+ "description": "A successful response.",
719
+ "schema": {
720
+ "$ref": "#/definitions/v1ActivityResponse"
721
+ }
722
+ },
723
+ "403": {
724
+ "description": "Returned when the user does not have permission to access the resource.",
725
+ "schema": {}
726
+ },
727
+ "404": {
728
+ "description": "Returned when the resource does not exist.",
729
+ "schema": {
730
+ "type": "string",
731
+ "format": "string"
732
+ }
733
+ },
734
+ "default": {
735
+ "description": "An unexpected error response.",
736
+ "schema": {
737
+ "$ref": "#/definitions/rpcStatus"
738
+ }
739
+ }
740
+ },
741
+ "parameters": [
742
+ {
743
+ "name": "body",
744
+ "in": "body",
745
+ "required": true,
746
+ "schema": {
747
+ "$ref": "#/definitions/v1CreateAuthenticatorsRequest"
748
+ }
749
+ }
750
+ ],
751
+ "tags": ["Authenticators"],
752
+ "x-readme": {
753
+ "code-samples": [
754
+ {
755
+ "code": "turnkey request --host coordinator-beta.turnkey.io --path /public/v1/submit/create_authenticators --body '{\n\t\"type\": \"ACTIVITY_TYPE_CREATE_AUTHENTICATORS\",\n\t\"timestampMs\": \"'\"$(date +%s)\"'000\",\n\t\"organizationId\": \"'\"$ORGANIZATION_ID\"'\",\n\t\"parameters\": {\n\t\t\"userId\": \"\",\n\t\t\"authenticators\": [\n\t\t\t{\n\t\t\t\t\"authenticatorName\": \"\",\n\t\t\t\t\"userId\": \"\",\n\t\t\t\t\"challenge\": \"\",\n\t\t\t\t\"attestation\": {\n\t\t\t\t\t\"id\": \"\",\n\t\t\t\t\t\"type\": \"\",\n\t\t\t\t\t\"rawId\": \"\",\n\t\t\t\t\t\"authenticatorAttachment\": \"cross-\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t}\n}\n'",
756
+ "install": "brew tap tkhq/tap \u0026\u0026 brew install turnkey",
757
+ "language": "curl",
758
+ "name": "Turnkey CLI"
759
+ }
760
+ ]
761
+ }
762
+ }
763
+ },
658
764
  "/public/v1/submit/create_invitations": {
659
765
  "post": {
660
766
  "summary": "Create Invitations",
@@ -752,7 +858,7 @@
752
858
  "x-readme": {
753
859
  "code-samples": [
754
860
  {
755
- "code": "turnkey request --host coordinator-beta.turnkey.io --path /public/v1/submit/create_policy --body '{\n\t\"timestampMs\": \"'\"$(date +%s)\"'000\",\n\t\"type\": \"ACTIVITY_TYPE_CREATE_POLICY\",\n\t\"organizationId\": \"'\"$ORGANIZATION_ID\"'\",\n\t\"parameters\": {\n\t\t\"policyName\": \"\",\n\t\t\"selectors\": [],\n\t\t\"effect\": \"\",\n\t\t\"notes\": \"\"\n\t}\n}'",
861
+ "code": "turnkey request --host coordinator-beta.turnkey.io --path /public/v1/submit/create_policy --body '{\n\t\"timestampMs\": \"'\"$(date +%s)\"'000\",\n\t\"type\": \"ACTIVITY_TYPE_CREATE_POLICY\",\n\t\"organizationId\": \"'\"$ORGANIZATION_ID\"'\",\n\t\"parameters\": {\n\t\t\"policyName\": \"\",\n\t\t\"effect\": \"\",\n\t\t\"notes\": \"\"\n\t}\n}'",
756
862
  "install": "brew tap tkhq/tap \u0026\u0026 brew install turnkey",
757
863
  "language": "curl",
758
864
  "name": "Turnkey CLI"
@@ -1027,6 +1133,59 @@
1027
1133
  }
1028
1134
  }
1029
1135
  },
1136
+ "/public/v1/submit/reject_activity": {
1137
+ "post": {
1138
+ "summary": "Reject Activity",
1139
+ "description": "Reject an Activity",
1140
+ "operationId": "PublicApiService_RejectActivity",
1141
+ "responses": {
1142
+ "200": {
1143
+ "description": "A successful response.",
1144
+ "schema": {
1145
+ "$ref": "#/definitions/v1ActivityResponse"
1146
+ }
1147
+ },
1148
+ "403": {
1149
+ "description": "Returned when the user does not have permission to access the resource.",
1150
+ "schema": {}
1151
+ },
1152
+ "404": {
1153
+ "description": "Returned when the resource does not exist.",
1154
+ "schema": {
1155
+ "type": "string",
1156
+ "format": "string"
1157
+ }
1158
+ },
1159
+ "default": {
1160
+ "description": "An unexpected error response.",
1161
+ "schema": {
1162
+ "$ref": "#/definitions/rpcStatus"
1163
+ }
1164
+ }
1165
+ },
1166
+ "parameters": [
1167
+ {
1168
+ "name": "body",
1169
+ "in": "body",
1170
+ "required": true,
1171
+ "schema": {
1172
+ "$ref": "#/definitions/v1RejectActivityRequest"
1173
+ }
1174
+ }
1175
+ ],
1176
+ "tags": ["Activities"],
1177
+ "x-readme": {
1178
+ "code-samples": [
1179
+ {
1180
+ "code": "turnkey request --host coordinator-beta.turnkey.io --path /public/v1/submit/reject_activity --body '{\n\t\"timestampMs\": \"'\"$(date +%s)\"'000\",\n\t\"type\": \"ACTIVITY_TYPE_REJECT_ACTIVITY\",\n\t\"organizationId\": \"'\"$ORGANIZATION_ID\"'\",\n\t\"parameters\": {\n\t\t\"fingerprint\": \"\"\n\t}\n}'",
1181
+ "install": "brew tap tkhq/tap \u0026\u0026 brew install turnkey",
1182
+ "language": "curl",
1183
+ "name": "Turnkey CLI"
1184
+ }
1185
+ ]
1186
+ }
1187
+ }
1188
+ },
1030
1189
  "/public/v1/submit/sign_raw_payload": {
1031
1190
  "post": {
1032
1191
  "summary": "Sign Raw Payload",
@@ -1133,6 +1292,112 @@
1133
1292
  }
1134
1293
  }
1135
1294
  },
1295
+ "/public/v1/submit/update_private_key_tag": {
1296
+ "post": {
1297
+ "summary": "Update Private Key Tag",
1298
+ "description": "Update human-readable name or associated private keys. Note that this activity is atomic: all of the updates will succeed at once, or all of them will fail.",
1299
+ "operationId": "PublicApiService_UpdatePrivateKeyTag",
1300
+ "responses": {
1301
+ "200": {
1302
+ "description": "A successful response.",
1303
+ "schema": {
1304
+ "$ref": "#/definitions/v1ActivityResponse"
1305
+ }
1306
+ },
1307
+ "403": {
1308
+ "description": "Returned when the user does not have permission to access the resource.",
1309
+ "schema": {}
1310
+ },
1311
+ "404": {
1312
+ "description": "Returned when the resource does not exist.",
1313
+ "schema": {
1314
+ "type": "string",
1315
+ "format": "string"
1316
+ }
1317
+ },
1318
+ "default": {
1319
+ "description": "An unexpected error response.",
1320
+ "schema": {
1321
+ "$ref": "#/definitions/rpcStatus"
1322
+ }
1323
+ }
1324
+ },
1325
+ "parameters": [
1326
+ {
1327
+ "name": "body",
1328
+ "in": "body",
1329
+ "required": true,
1330
+ "schema": {
1331
+ "$ref": "#/definitions/v1UpdatePrivateKeyTagRequest"
1332
+ }
1333
+ }
1334
+ ],
1335
+ "tags": ["Private Key Tags"],
1336
+ "x-readme": {
1337
+ "code-samples": [
1338
+ {
1339
+ "code": "turnkey request --host coordinator-beta.turnkey.io --path /public/v1/submit/private_key_tags/update --body '{\n\t\"timestampMs\": \"'\"$(date +%s)\"'000\",\n\t\"type\": \"ACTIVITY_TYPE_UPDATE_PRIVATE_KEY_TAG\",\n\t\"organizationId\": \"'\"$ORGANIZATION_ID\"'\",\n\t\"parameters\": {\n\t\t\"privateKeyTagId\": \"'\"$PRIVATE_KEY_TAG_ID\"'\",\n\t\t\"privateKeyTagName\": \"\",\n\t\t\"addPrivateKeyTagIds\": \"\",\n\t\t\"removePrivateKeyTagIds\": \"\"\n\t}\n}'",
1340
+ "install": "brew tap tkhq/tap \u0026\u0026 brew install turnkey",
1341
+ "language": "curl",
1342
+ "name": "Turnkey CLI"
1343
+ }
1344
+ ]
1345
+ }
1346
+ }
1347
+ },
1348
+ "/public/v1/submit/update_user_tag": {
1349
+ "post": {
1350
+ "summary": "Update User Tag",
1351
+ "description": "Update human-readable name or associated users. Note that this activity is atomic: all of the updates will succeed at once, or all of them will fail.",
1352
+ "operationId": "PublicApiService_UpdateUserTag",
1353
+ "responses": {
1354
+ "200": {
1355
+ "description": "A successful response.",
1356
+ "schema": {
1357
+ "$ref": "#/definitions/v1ActivityResponse"
1358
+ }
1359
+ },
1360
+ "403": {
1361
+ "description": "Returned when the user does not have permission to access the resource.",
1362
+ "schema": {}
1363
+ },
1364
+ "404": {
1365
+ "description": "Returned when the resource does not exist.",
1366
+ "schema": {
1367
+ "type": "string",
1368
+ "format": "string"
1369
+ }
1370
+ },
1371
+ "default": {
1372
+ "description": "An unexpected error response.",
1373
+ "schema": {
1374
+ "$ref": "#/definitions/rpcStatus"
1375
+ }
1376
+ }
1377
+ },
1378
+ "parameters": [
1379
+ {
1380
+ "name": "body",
1381
+ "in": "body",
1382
+ "required": true,
1383
+ "schema": {
1384
+ "$ref": "#/definitions/v1UpdateUserTagRequest"
1385
+ }
1386
+ }
1387
+ ],
1388
+ "tags": ["User Tags"],
1389
+ "x-readme": {
1390
+ "code-samples": [
1391
+ {
1392
+ "code": "turnkey request --host coordinator-beta.turnkey.io --path /public/v1/submit/user_tags/update --body '{\n\t\"timestampMs\": \"'\"$(date +%s)\"'000\",\n\t\"type\": \"ACTIVITY_TYPE_UPDATE_USER_TAG\",\n\t\"organizationId\": \"'\"$ORGANIZATION_ID\"'\",\n\t\"parameters\": {\n\t\t\"userTagId\": \"'\"$USER_TAG_ID\"'\",\n\t\t\"userTagName\": \"\",\n\t\t\"addUserIds\": \"\",\n\t\t\"removeUserIds\": \"\"\n\t}\n}'",
1393
+ "install": "brew tap tkhq/tap \u0026\u0026 brew install turnkey",
1394
+ "language": "curl",
1395
+ "name": "Turnkey CLI"
1396
+ }
1397
+ ]
1398
+ }
1399
+ }
1400
+ },
1136
1401
  "/tkhq/public/v1/query/get_private_key": {
1137
1402
  "post": {
1138
1403
  "summary": "Get Private Key",
@@ -1248,7 +1513,7 @@
1248
1513
  },
1249
1514
  "externaldatav1Curve": {
1250
1515
  "type": "string",
1251
- "enum": ["CURVE_SECP256K1"],
1516
+ "enum": ["CURVE_SECP256K1", "CURVE_ED25519"],
1252
1517
  "description": "Cryptographic Curve used to generate a given Private Key."
1253
1518
  },
1254
1519
  "externaldatav1Effect": {
@@ -1307,7 +1572,7 @@
1307
1572
  },
1308
1573
  "immutableactivityv1Curve": {
1309
1574
  "type": "string",
1310
- "enum": ["CURVE_SECP256K1"],
1575
+ "enum": ["CURVE_SECP256K1", "CURVE_ED25519"],
1311
1576
  "description": "Cryptographic Curve used to generate a given Private Key."
1312
1577
  },
1313
1578
  "immutableactivityv1Effect": {
@@ -1405,6 +1670,25 @@
1405
1670
  },
1406
1671
  "required": ["invitationId", "userId", "authenticator"]
1407
1672
  },
1673
+ "v1AcceptInvitationIntentV2": {
1674
+ "type": "object",
1675
+ "properties": {
1676
+ "invitationId": {
1677
+ "type": "string",
1678
+ "description": "Unique identifier for a given Invitation object.",
1679
+ "title": "@inject_tag: validate:\"required,uuid\""
1680
+ },
1681
+ "userId": {
1682
+ "type": "string",
1683
+ "description": "Unique identifier for a given User.",
1684
+ "title": "@inject_tag: validate:\"required,uuid\""
1685
+ },
1686
+ "authenticator": {
1687
+ "$ref": "#/definitions/v1AuthenticatorParamsV2"
1688
+ }
1689
+ },
1690
+ "required": ["invitationId", "userId", "authenticator"]
1691
+ },
1408
1692
  "v1AcceptInvitationResult": {
1409
1693
  "type": "object",
1410
1694
  "properties": {
@@ -1556,7 +1840,13 @@
1556
1840
  "ACTIVITY_TYPE_CREATE_POLICY_V2",
1557
1841
  "ACTIVITY_TYPE_CREATE_POLICY_V3",
1558
1842
  "ACTIVITY_TYPE_CREATE_API_ONLY_USERS",
1559
- "ACTIVITY_TYPE_UPDATE_ROOT_QUORUM"
1843
+ "ACTIVITY_TYPE_UPDATE_ROOT_QUORUM",
1844
+ "ACTIVITY_TYPE_UPDATE_USER_TAG",
1845
+ "ACTIVITY_TYPE_UPDATE_PRIVATE_KEY_TAG",
1846
+ "ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2",
1847
+ "ACTIVITY_TYPE_CREATE_ORGANIZATION_V2",
1848
+ "ACTIVITY_TYPE_CREATE_USERS_V2",
1849
+ "ACTIVITY_TYPE_ACCEPT_INVITATION_V2"
1560
1850
  ],
1561
1851
  "description": "Type of Activity, such as Add User, or Sign Transaction."
1562
1852
  },
@@ -1648,6 +1938,60 @@
1648
1938
  },
1649
1939
  "required": ["fingerprint"]
1650
1940
  },
1941
+ "v1ApproveActivityRequest": {
1942
+ "type": "object",
1943
+ "properties": {
1944
+ "type": {
1945
+ "type": "string",
1946
+ "enum": ["ACTIVITY_TYPE_APPROVE_ACTIVITY"]
1947
+ },
1948
+ "timestampMs": {
1949
+ "type": "string",
1950
+ "description": "Timestamp (in milliseconds) of the request, used to verify liveness of user requests."
1951
+ },
1952
+ "organizationId": {
1953
+ "type": "string",
1954
+ "description": "Unique identifier for a given Organization."
1955
+ },
1956
+ "parameters": {
1957
+ "$ref": "#/definitions/v1ApproveActivityIntent"
1958
+ }
1959
+ },
1960
+ "required": ["type", "timestampMs", "organizationId", "parameters"]
1961
+ },
1962
+ "v1Attestation": {
1963
+ "type": "object",
1964
+ "properties": {
1965
+ "credentialId": {
1966
+ "type": "string",
1967
+ "description": "The cbor encoded then base64 url encoded id of the credential.",
1968
+ "title": "@inject_tag: validate:\"required,max=256\""
1969
+ },
1970
+ "clientDataJson": {
1971
+ "type": "string",
1972
+ "description": "A base64 url encoded payload containing metadata about the signing context and the challenge.",
1973
+ "title": "@inject_tag: validate:\"required\""
1974
+ },
1975
+ "attestationObject": {
1976
+ "type": "string",
1977
+ "description": "A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.",
1978
+ "title": "@inject_tag: validate:\"required\""
1979
+ },
1980
+ "transports": {
1981
+ "type": "array",
1982
+ "items": {
1983
+ "$ref": "#/definitions/immutablewebauthnv1AuthenticatorTransport"
1984
+ },
1985
+ "description": "The type of authenticator transports."
1986
+ }
1987
+ },
1988
+ "required": [
1989
+ "credentialId",
1990
+ "clientDataJson",
1991
+ "attestationObject",
1992
+ "transports"
1993
+ ]
1994
+ },
1651
1995
  "v1Authenticator": {
1652
1996
  "type": "object",
1653
1997
  "properties": {
@@ -1732,9 +2076,33 @@
1732
2076
  "x-nullable": true
1733
2077
  }
1734
2078
  },
1735
- "required": ["clientDataJson", "attestationObject"]
2079
+ "required": ["clientDataJson", "attestationObject"]
2080
+ },
2081
+ "v1AuthenticatorParams": {
2082
+ "type": "object",
2083
+ "properties": {
2084
+ "authenticatorName": {
2085
+ "type": "string",
2086
+ "description": "Human-readable name for an Authenticator.",
2087
+ "title": "@inject_tag: validate:\"required,tk_label_length,tk_label\""
2088
+ },
2089
+ "userId": {
2090
+ "type": "string",
2091
+ "description": "Unique identifier for a given User.",
2092
+ "title": "@inject_tag: validate:\"required,uuid\""
2093
+ },
2094
+ "attestation": {
2095
+ "$ref": "#/definitions/v1PublicKeyCredentialWithAttestation"
2096
+ },
2097
+ "challenge": {
2098
+ "type": "string",
2099
+ "description": "Challenge presented for authentication purposes.",
2100
+ "title": "@inject_tag: validate:\"required,max=256\""
2101
+ }
2102
+ },
2103
+ "required": ["authenticatorName", "userId", "attestation", "challenge"]
1736
2104
  },
1737
- "v1AuthenticatorParams": {
2105
+ "v1AuthenticatorParamsV2": {
1738
2106
  "type": "object",
1739
2107
  "properties": {
1740
2108
  "authenticatorName": {
@@ -1742,21 +2110,16 @@
1742
2110
  "description": "Human-readable name for an Authenticator.",
1743
2111
  "title": "@inject_tag: validate:\"required,tk_label_length,tk_label\""
1744
2112
  },
1745
- "userId": {
1746
- "type": "string",
1747
- "description": "Unique identifier for a given User.",
1748
- "title": "@inject_tag: validate:\"required,uuid\""
1749
- },
1750
- "attestation": {
1751
- "$ref": "#/definitions/v1PublicKeyCredentialWithAttestation"
1752
- },
1753
2113
  "challenge": {
1754
2114
  "type": "string",
1755
2115
  "description": "Challenge presented for authentication purposes.",
1756
2116
  "title": "@inject_tag: validate:\"required,max=256\""
2117
+ },
2118
+ "attestation": {
2119
+ "$ref": "#/definitions/v1Attestation"
1757
2120
  }
1758
2121
  },
1759
- "required": ["authenticatorName", "userId", "attestation", "challenge"]
2122
+ "required": ["authenticatorName", "challenge", "attestation"]
1760
2123
  },
1761
2124
  "v1CreateApiKeysIntent": {
1762
2125
  "type": "object",
@@ -1878,6 +2241,46 @@
1878
2241
  },
1879
2242
  "required": ["authenticators", "userId"]
1880
2243
  },
2244
+ "v1CreateAuthenticatorsIntentV2": {
2245
+ "type": "object",
2246
+ "properties": {
2247
+ "authenticators": {
2248
+ "type": "array",
2249
+ "items": {
2250
+ "$ref": "#/definitions/v1AuthenticatorParamsV2"
2251
+ },
2252
+ "description": "A list of Authenticators.",
2253
+ "title": "@inject_tag: validate:\"dive,required\""
2254
+ },
2255
+ "userId": {
2256
+ "type": "string",
2257
+ "description": "Unique identifier for a given User.",
2258
+ "title": "@inject_tag: validate:\"required,uuid\""
2259
+ }
2260
+ },
2261
+ "required": ["authenticators", "userId"]
2262
+ },
2263
+ "v1CreateAuthenticatorsRequest": {
2264
+ "type": "object",
2265
+ "properties": {
2266
+ "type": {
2267
+ "type": "string",
2268
+ "enum": ["ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2"]
2269
+ },
2270
+ "timestampMs": {
2271
+ "type": "string",
2272
+ "description": "Timestamp (in milliseconds) of the request, used to verify liveness of user requests."
2273
+ },
2274
+ "organizationId": {
2275
+ "type": "string",
2276
+ "description": "Unique identifier for a given Organization."
2277
+ },
2278
+ "parameters": {
2279
+ "$ref": "#/definitions/v1CreateAuthenticatorsIntentV2"
2280
+ }
2281
+ },
2282
+ "required": ["type", "timestampMs", "organizationId", "parameters"]
2283
+ },
1881
2284
  "v1CreateAuthenticatorsResult": {
1882
2285
  "type": "object",
1883
2286
  "properties": {
@@ -1963,6 +2366,30 @@
1963
2366
  },
1964
2367
  "required": ["organizationName", "rootEmail", "rootAuthenticator"]
1965
2368
  },
2369
+ "v1CreateOrganizationIntentV2": {
2370
+ "type": "object",
2371
+ "properties": {
2372
+ "organizationName": {
2373
+ "type": "string",
2374
+ "description": "Human-readable name for an Organization.",
2375
+ "title": "@inject_tag: validate:\"required,tk_label_length\""
2376
+ },
2377
+ "rootEmail": {
2378
+ "type": "string",
2379
+ "description": "The root user's email address.",
2380
+ "title": "@inject_tag: validate:\"required,email,tk_email\""
2381
+ },
2382
+ "rootAuthenticator": {
2383
+ "$ref": "#/definitions/v1AuthenticatorParamsV2"
2384
+ },
2385
+ "rootUserId": {
2386
+ "type": "string",
2387
+ "description": "Unique identifier for the root user object.",
2388
+ "title": "@inject_tag: validate:\"uuid\""
2389
+ }
2390
+ },
2391
+ "required": ["organizationName", "rootEmail", "rootAuthenticator"]
2392
+ },
1966
2393
  "v1CreateOrganizationResult": {
1967
2394
  "type": "object",
1968
2395
  "properties": {
@@ -2213,12 +2640,26 @@
2213
2640
  },
2214
2641
  "required": ["users"]
2215
2642
  },
2643
+ "v1CreateUsersIntentV2": {
2644
+ "type": "object",
2645
+ "properties": {
2646
+ "users": {
2647
+ "type": "array",
2648
+ "items": {
2649
+ "$ref": "#/definitions/v1UserParamsV2"
2650
+ },
2651
+ "description": "A list of Users.",
2652
+ "title": "@inject_tag: validate:\"required,dive,required\""
2653
+ }
2654
+ },
2655
+ "required": ["users"]
2656
+ },
2216
2657
  "v1CreateUsersRequest": {
2217
2658
  "type": "object",
2218
2659
  "properties": {
2219
2660
  "type": {
2220
2661
  "type": "string",
2221
- "enum": ["ACTIVITY_TYPE_CREATE_USERS"]
2662
+ "enum": ["ACTIVITY_TYPE_CREATE_USERS_V2"]
2222
2663
  },
2223
2664
  "timestampMs": {
2224
2665
  "type": "string",
@@ -2229,7 +2670,7 @@
2229
2670
  "description": "Unique identifier for a given Organization."
2230
2671
  },
2231
2672
  "parameters": {
2232
- "$ref": "#/definitions/v1CreateUsersIntent"
2673
+ "$ref": "#/definitions/v1CreateUsersIntentV2"
2233
2674
  }
2234
2675
  },
2235
2676
  "required": ["type", "timestampMs", "organizationId", "parameters"]
@@ -2343,7 +2784,7 @@
2343
2784
  "type": "string"
2344
2785
  },
2345
2786
  "description": "A list of Authenticator IDs.",
2346
- "title": "@inject_tag: validate:\"required,div,required,uuid\""
2787
+ "title": "@inject_tag: validate:\"required,dive,required,uuid\""
2347
2788
  }
2348
2789
  },
2349
2790
  "required": ["userId", "authenticatorIds"]
@@ -2617,7 +3058,7 @@
2617
3058
  "description": "Array of Activity Statuses filtering which Activities will be listed in the response."
2618
3059
  },
2619
3060
  "paginationOptions": {
2620
- "$ref": "#/definitions/v1PaginationOptions"
3061
+ "$ref": "#/definitions/v1Pagination"
2621
3062
  }
2622
3063
  },
2623
3064
  "required": ["organizationId"]
@@ -2843,9 +3284,10 @@
2843
3284
  "enum": [
2844
3285
  "HASH_FUNCTION_NO_OP",
2845
3286
  "HASH_FUNCTION_SHA256",
2846
- "HASH_FUNCTION_KECCAK256"
3287
+ "HASH_FUNCTION_KECCAK256",
3288
+ "HASH_FUNCTION_NOT_APPLICABLE"
2847
3289
  ],
2848
- "description": " - HASH_FUNCTION_UNSPECIFIED: Default value if hash function is not set explicitly\n - HASH_FUNCTION_NO_OP: No-op function. Useful if you want to pass raw bytes to sign\n - HASH_FUNCTION_SHA256: Standard SHA-256\n - HASH_FUNCTION_KECCAK256: Keccak-256 (not the same as NIST SHA-3!).\nThis is the hash function used in the Ethereum ecosystem."
3290
+ "description": " - HASH_FUNCTION_UNSPECIFIED: Default value if a hash function is not set explicitly.\n - HASH_FUNCTION_NO_OP: No-op function. Useful if you want to pass raw digests to sign (ECDSA-only)\n - HASH_FUNCTION_SHA256: Standard SHA-256. Used in the Bitcoin ecosystem.\n - HASH_FUNCTION_KECCAK256: Keccak-256 (not the same as NIST SHA-3!).\nThis is the hash function used in the Ethereum ecosystem.\n - HASH_FUNCTION_NOT_APPLICABLE: Callers must use this enum value when signing with ed25519 keys.\nThis is because, unlike ECDSA, EdDSA's API does not support signing raw digests (see RFC 8032)."
2849
3291
  },
2850
3292
  "v1Intent": {
2851
3293
  "type": "object",
@@ -2939,6 +3381,24 @@
2939
3381
  },
2940
3382
  "updateRootQuorumIntent": {
2941
3383
  "$ref": "#/definitions/v1UpdateRootQuorumIntent"
3384
+ },
3385
+ "updateUserTagIntent": {
3386
+ "$ref": "#/definitions/v1UpdateUserTagIntent"
3387
+ },
3388
+ "updatePrivateKeyTagIntent": {
3389
+ "$ref": "#/definitions/v1UpdatePrivateKeyTagIntent"
3390
+ },
3391
+ "createAuthenticatorsIntentV2": {
3392
+ "$ref": "#/definitions/v1CreateAuthenticatorsIntentV2"
3393
+ },
3394
+ "acceptInvitationIntentV2": {
3395
+ "$ref": "#/definitions/v1AcceptInvitationIntentV2"
3396
+ },
3397
+ "createOrganizationIntentV2": {
3398
+ "$ref": "#/definitions/v1CreateOrganizationIntentV2"
3399
+ },
3400
+ "createUsersIntentV2": {
3401
+ "$ref": "#/definitions/v1CreateUsersIntentV2"
2942
3402
  }
2943
3403
  },
2944
3404
  "description": "Intent object crafted by Turnkey based on the user request, used to assess the permissibility of an action.",
@@ -3125,7 +3585,7 @@
3125
3585
  },
3126
3586
  "description": "This proto definition is used in our external-facing APIs.\nIt's important to leverage annotations because they're used in our external interfaces."
3127
3587
  },
3128
- "v1PaginationOptions": {
3588
+ "v1Pagination": {
3129
3589
  "type": "object",
3130
3590
  "properties": {
3131
3591
  "limit": {
@@ -3321,6 +3781,27 @@
3321
3781
  },
3322
3782
  "required": ["fingerprint"]
3323
3783
  },
3784
+ "v1RejectActivityRequest": {
3785
+ "type": "object",
3786
+ "properties": {
3787
+ "type": {
3788
+ "type": "string",
3789
+ "enum": ["ACTIVITY_TYPE_REJECT_ACTIVITY"]
3790
+ },
3791
+ "timestampMs": {
3792
+ "type": "string",
3793
+ "description": "Timestamp (in milliseconds) of the request, used to verify liveness of user requests."
3794
+ },
3795
+ "organizationId": {
3796
+ "type": "string",
3797
+ "description": "Unique identifier for a given Organization."
3798
+ },
3799
+ "parameters": {
3800
+ "$ref": "#/definitions/v1RejectActivityIntent"
3801
+ }
3802
+ },
3803
+ "required": ["type", "timestampMs", "organizationId", "parameters"]
3804
+ },
3324
3805
  "v1Result": {
3325
3806
  "type": "object",
3326
3807
  "properties": {
@@ -3401,6 +3882,12 @@
3401
3882
  },
3402
3883
  "updateRootQuorumResult": {
3403
3884
  "$ref": "#/definitions/v1UpdateRootQuorumResult"
3885
+ },
3886
+ "updateUserTagResult": {
3887
+ "$ref": "#/definitions/v1UpdateUserTagResult"
3888
+ },
3889
+ "updatePrivateKeyTagResult": {
3890
+ "$ref": "#/definitions/v1UpdatePrivateKeyTagResult"
3404
3891
  }
3405
3892
  },
3406
3893
  "description": "Result of the intended action."
@@ -3623,6 +4110,69 @@
3623
4110
  },
3624
4111
  "required": ["seconds", "nanos"]
3625
4112
  },
4113
+ "v1UpdatePrivateKeyTagIntent": {
4114
+ "type": "object",
4115
+ "properties": {
4116
+ "privateKeyTagId": {
4117
+ "type": "string",
4118
+ "description": "Unique identifier for a given Private Key Tag.",
4119
+ "title": "@inject_tag: validate:\"uuid\""
4120
+ },
4121
+ "newPrivateKeyTagName": {
4122
+ "type": "string",
4123
+ "description": "The new, human-readable name for the tag with the given ID.",
4124
+ "title": "@inject_tag: validate:\"omitempty,tk_label,tk_label_length\""
4125
+ },
4126
+ "addPrivateKeyIds": {
4127
+ "type": "array",
4128
+ "items": {
4129
+ "type": "string"
4130
+ },
4131
+ "description": "A list of Private Keys IDs to add this tag to.",
4132
+ "title": "@inject_tag: validate:\"dive,uuid\""
4133
+ },
4134
+ "removePrivateKeyIds": {
4135
+ "type": "array",
4136
+ "items": {
4137
+ "type": "string"
4138
+ },
4139
+ "description": "A list of Private Key IDs to remove this tag from.",
4140
+ "title": "@inject_tag: validate:\"dive,uuid\""
4141
+ }
4142
+ },
4143
+ "required": ["privateKeyTagId", "addPrivateKeyIds", "removePrivateKeyIds"]
4144
+ },
4145
+ "v1UpdatePrivateKeyTagRequest": {
4146
+ "type": "object",
4147
+ "properties": {
4148
+ "type": {
4149
+ "type": "string",
4150
+ "enum": ["ACTIVITY_TYPE_UPDATE_PRIVATE_KEY_TAG"]
4151
+ },
4152
+ "timestampMs": {
4153
+ "type": "string",
4154
+ "description": "Timestamp (in milliseconds) of the request, used to verify liveness of user requests."
4155
+ },
4156
+ "organizationId": {
4157
+ "type": "string",
4158
+ "description": "Unique identifier for a given Organization."
4159
+ },
4160
+ "parameters": {
4161
+ "$ref": "#/definitions/v1UpdatePrivateKeyTagIntent"
4162
+ }
4163
+ },
4164
+ "required": ["type", "timestampMs", "organizationId", "parameters"]
4165
+ },
4166
+ "v1UpdatePrivateKeyTagResult": {
4167
+ "type": "object",
4168
+ "properties": {
4169
+ "privateKeyTagId": {
4170
+ "type": "string",
4171
+ "description": "Unique identifier for a given Private Key Tag."
4172
+ }
4173
+ },
4174
+ "required": ["privateKeyTagId"]
4175
+ },
3626
4176
  "v1UpdateRootQuorumIntent": {
3627
4177
  "type": "object",
3628
4178
  "properties": {
@@ -3646,6 +4196,69 @@
3646
4196
  "v1UpdateRootQuorumResult": {
3647
4197
  "type": "object"
3648
4198
  },
4199
+ "v1UpdateUserTagIntent": {
4200
+ "type": "object",
4201
+ "properties": {
4202
+ "userTagId": {
4203
+ "type": "string",
4204
+ "description": "Unique identifier for a given User Tag.",
4205
+ "title": "@inject_tag: validate:\"uuid\""
4206
+ },
4207
+ "newUserTagName": {
4208
+ "type": "string",
4209
+ "description": "The new, human-readable name for the tag with the given ID.",
4210
+ "title": "@inject_tag: validate:\"omitempty,tk_label,tk_label_length\""
4211
+ },
4212
+ "addUserIds": {
4213
+ "type": "array",
4214
+ "items": {
4215
+ "type": "string"
4216
+ },
4217
+ "description": "A list of User IDs to add this tag to.",
4218
+ "title": "@inject_tag: validate:\"dive,uuid\""
4219
+ },
4220
+ "removeUserIds": {
4221
+ "type": "array",
4222
+ "items": {
4223
+ "type": "string"
4224
+ },
4225
+ "description": "A list of User IDs to remove this tag from.",
4226
+ "title": "@inject_tag: validate:\"dive,uuid\""
4227
+ }
4228
+ },
4229
+ "required": ["userTagId", "addUserIds", "removeUserIds"]
4230
+ },
4231
+ "v1UpdateUserTagRequest": {
4232
+ "type": "object",
4233
+ "properties": {
4234
+ "type": {
4235
+ "type": "string",
4236
+ "enum": ["ACTIVITY_TYPE_UPDATE_USER_TAG"]
4237
+ },
4238
+ "timestampMs": {
4239
+ "type": "string",
4240
+ "description": "Timestamp (in milliseconds) of the request, used to verify liveness of user requests."
4241
+ },
4242
+ "organizationId": {
4243
+ "type": "string",
4244
+ "description": "Unique identifier for a given Organization."
4245
+ },
4246
+ "parameters": {
4247
+ "$ref": "#/definitions/v1UpdateUserTagIntent"
4248
+ }
4249
+ },
4250
+ "required": ["type", "timestampMs", "organizationId", "parameters"]
4251
+ },
4252
+ "v1UpdateUserTagResult": {
4253
+ "type": "object",
4254
+ "properties": {
4255
+ "userTagId": {
4256
+ "type": "string",
4257
+ "description": "Unique identifier for a given User Tag."
4258
+ }
4259
+ },
4260
+ "required": ["userTagId"]
4261
+ },
3649
4262
  "v1User": {
3650
4263
  "type": "object",
3651
4264
  "properties": {
@@ -3753,6 +4366,55 @@
3753
4366
  "userTags"
3754
4367
  ]
3755
4368
  },
4369
+ "v1UserParamsV2": {
4370
+ "type": "object",
4371
+ "properties": {
4372
+ "userName": {
4373
+ "type": "string",
4374
+ "description": "Human-readable name for a User.",
4375
+ "title": "@inject_tag: validate:\"required,tk_label_length,tk_label\""
4376
+ },
4377
+ "userEmail": {
4378
+ "type": "string",
4379
+ "description": "The user's email address.",
4380
+ "title": "@inject_tag: validate:\"omitempty,email,tk_email\""
4381
+ },
4382
+ "accessType": {
4383
+ "$ref": "#/definitions/immutableactivityv1AccessType"
4384
+ },
4385
+ "apiKeys": {
4386
+ "type": "array",
4387
+ "items": {
4388
+ "$ref": "#/definitions/v1ApiKeyParams"
4389
+ },
4390
+ "description": "A list of API Key parameters.",
4391
+ "title": "@inject_tag: validate:\"dive,uuid\""
4392
+ },
4393
+ "authenticators": {
4394
+ "type": "array",
4395
+ "items": {
4396
+ "$ref": "#/definitions/v1AuthenticatorParamsV2"
4397
+ },
4398
+ "description": "A list of Authenticator parameters.",
4399
+ "title": "@inject_tag: validate:\"dive\""
4400
+ },
4401
+ "userTags": {
4402
+ "type": "array",
4403
+ "items": {
4404
+ "type": "string"
4405
+ },
4406
+ "description": "A list of User Tag IDs.",
4407
+ "title": "@inject_tag: validate:\"dive,uuid\""
4408
+ }
4409
+ },
4410
+ "required": [
4411
+ "userName",
4412
+ "accessType",
4413
+ "apiKeys",
4414
+ "authenticators",
4415
+ "userTags"
4416
+ ]
4417
+ },
3756
4418
  "v1Vote": {
3757
4419
  "type": "object",
3758
4420
  "properties": {