@rathnasgala2/schemas 3.41.0 → 3.42.0

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "package": "@rathnasgala2/schemas@3.41.0",
3
+ "package": "@rathnasgala2/schemas@3.42.0",
4
4
  "source": "package-lock.json",
5
5
  "dependencies": [
6
6
  {
@@ -4985,7 +4985,7 @@
4985
4985
  },
4986
4986
  {
4987
4987
  "contentKey": "platform.users.screen.ready.summary",
4988
- "defaultMessage": "Operators inspect paged person state, provider display snapshots, account creation, last sign-in, accessible publication count and organization plan tiers without inferred subscription or traffic data, contact a person who allows it, and manage per-person settings overrides.",
4988
+ "defaultMessage": "Operators inspect paged person state, provider display snapshots, account creation, last sign-in, accessible publication count and organization plan tiers without inferred subscription or traffic data, contact a person who allows it, manage per-person settings overrides, and grant or end a complimentary Basic or Pro plan for an organization the person owns (needs platform.billing.manage).",
4989
4989
  "description": "Summary for the platform.users screen, copied verbatim from the route's screenJob in catalog-sources/app-routes.json.",
4990
4990
  "placeholders": {},
4991
4991
  "sensitivity": "AUTHENTICATED"
@@ -11158,5 +11158,5 @@
11158
11158
  "sensitivity": "PUBLIC"
11159
11159
  }
11160
11160
  ],
11161
- "digest": "sha256:45d323bd2305f7f38412ec73c42b1922f9beb2963ebd015bb6a26af46d5e6062"
11161
+ "digest": "sha256:bc62adf9aa7d2d83718ed44d8dc52d70ba666a8a0c47dc2629597f109c17226e"
11162
11162
  }
@@ -1547,17 +1547,20 @@
1547
1547
  "screenId": "platform.users.screen",
1548
1548
  "authenticationClass": "SESSION_REQUIRED",
1549
1549
  "capabilityKeys": [
1550
+ "platform.billing.manage",
1550
1551
  "platform.settings.manage",
1551
1552
  "platform.settings.view",
1552
1553
  "platform.users.contact",
1553
1554
  "platform.users.view"
1554
1555
  ],
1555
1556
  "apiOperationIds": [
1557
+ "deletePlatformOrganizationsByOrganizationIdPlanGrant",
1556
1558
  "deletePlatformSettingsOverridesByKindByIdByKey",
1557
1559
  "getPlatformSettingsByKey",
1558
1560
  "getPlatformSettingsOverridesByKindByIdByKey",
1559
1561
  "getPlatformUsers",
1560
1562
  "postPlatformUsersByPersonIdContact",
1563
+ "putPlatformOrganizationsByOrganizationIdPlanGrant",
1561
1564
  "putPlatformSettingsOverridesByKindByIdByKey"
1562
1565
  ],
1563
1566
  "componentIds": ["ValidationSummary"],
@@ -3761,5 +3764,5 @@
3761
3764
  ]
3762
3765
  }
3763
3766
  ],
3764
- "digest": "sha256:7cbb42b552bf9e04d74c01c2abbcf50de684bcd74fc1f5f8f4f36be7b59f564f"
3767
+ "digest": "sha256:eb3d83fc68b6a118b153b5a2bfc12c863e933425823633ec6a6ea1d2541c016c"
3765
3768
  }
@@ -229,9 +229,9 @@
229
229
  "version": "2.0.0",
230
230
  "path": "openapi/openapi.yaml",
231
231
  "materialized": true,
232
- "sourceDigest": "sha256:4a900ecbc6118116001779afb71afe88fce5c97b08f8a955c54c4359f57e5d4d",
232
+ "sourceDigest": "sha256:d96aed78530af7047685d1117b7d70fdbc3f9921d99d5df311265398b8c721f2",
233
233
  "typescriptRootType": null
234
234
  }
235
235
  ],
236
- "digest": "sha256:06ab0cbc82777d1d3d0fc5bbbb170f2bd7681588dbfcfb7c59318923b4690c28"
236
+ "digest": "sha256:21940be95717586eaf7ed6afd594c6f32887ff35e305b0fe85be110956ca1b1d"
237
237
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "2.0.0",
3
3
  "sourceDesignRevision": "a53052955ceb6c1aa10c886289dc832eedfe6de0a00004df07d353ac19c4403a",
4
- "openApiDigest": "sha256:4a900ecbc6118116001779afb71afe88fce5c97b08f8a955c54c4359f57e5d4d",
4
+ "openApiDigest": "sha256:d96aed78530af7047685d1117b7d70fdbc3f9921d99d5df311265398b8c721f2",
5
5
  "operations": [
6
6
  {
7
7
  "operationId": "getInternalHealth",
@@ -2802,6 +2802,32 @@
2802
2802
  "apiKeyScope": null,
2803
2803
  "sourceFragment": "platform"
2804
2804
  },
2805
+ {
2806
+ "operationId": "deletePlatformOrganizationsByOrganizationIdPlanGrant",
2807
+ "method": "DELETE",
2808
+ "path": "/v2/platform/organizations/{organizationId}/plan-grant",
2809
+ "purpose": "remove organization plan grant",
2810
+ "capabilityKey": "platform.billing.manage",
2811
+ "conditionalCapabilityKeys": [],
2812
+ "activationGate": "MVP",
2813
+ "assuranceClass": "RECENT_AUTHENTICATION",
2814
+ "actionGrant": "none",
2815
+ "apiKeyScope": null,
2816
+ "sourceFragment": "platform"
2817
+ },
2818
+ {
2819
+ "operationId": "putPlatformOrganizationsByOrganizationIdPlanGrant",
2820
+ "method": "PUT",
2821
+ "path": "/v2/platform/organizations/{organizationId}/plan-grant",
2822
+ "purpose": "set organization plan grant",
2823
+ "capabilityKey": "platform.billing.manage",
2824
+ "conditionalCapabilityKeys": [],
2825
+ "activationGate": "MVP",
2826
+ "assuranceClass": "RECENT_AUTHENTICATION",
2827
+ "actionGrant": "none",
2828
+ "apiKeyScope": null,
2829
+ "sourceFragment": "platform"
2830
+ },
2805
2831
  {
2806
2832
  "operationId": "getPlatformOverview",
2807
2833
  "method": "GET",
@@ -3869,5 +3895,5 @@
3869
3895
  "sourceFragment": "workloads"
3870
3896
  }
3871
3897
  ],
3872
- "digest": "sha256:1e95229acb1fc8413bba7472f5bfd5be3cb571c81488df439b389f061cde022d"
3898
+ "digest": "sha256:49c66f31171f05427178f92b4562bf72f751a532ea452e7b58cdad5f405f2403"
3873
3899
  }
@@ -9098,11 +9098,21 @@ components:
9098
9098
  minLength: 1
9099
9099
  pattern: ^[a-z0-9](?:[a-z0-9.-]{0,251}[a-z0-9])?$
9100
9100
  type: string
9101
+ grantExpiresAt:
9102
+ description: "SCHEMA-3.41.0: when an operator grant ends, or null when it is open-ended or the plan is not an operator grant."
9103
+ oneOf:
9104
+ - $ref: "#/components/schemas/PortableProblemRfc3339"
9105
+ - type: "null"
9106
+ source:
9107
+ $ref: "#/components/schemas/PlanSource"
9108
+ description: "SCHEMA-3.41.0: where the plan comes from. A `source` of OPERATOR is a complimentary plan the Galascribe team granted; the App shows it as 'Complimentary Basic/Pro' (until `grantExpiresAt` when set) and keeps the upgrade action so the organization can subscribe."
9101
9109
  tier:
9102
9110
  $ref: "#/components/schemas/PlatformPlanKey"
9103
9111
  description: The plan tier.
9104
9112
  required:
9105
9113
  - tier
9114
+ - source
9115
+ - grantExpiresAt
9106
9116
  - collaborators
9107
9117
  - entitlements
9108
9118
  type: object
@@ -9488,6 +9498,45 @@ components:
9488
9498
  - label
9489
9499
  - createdAt
9490
9500
  type: object
9501
+ PlanGrant:
9502
+ additionalProperties: false
9503
+ description: "SCHEMA-3.41.0: an operator plan grant, a complimentary Basic (`PRO`) or Pro (`BUSINESS`) plan given without Stripe."
9504
+ properties:
9505
+ expiresAt:
9506
+ oneOf:
9507
+ - $ref: "#/components/schemas/PortableProblemRfc3339"
9508
+ - type: "null"
9509
+ grantedAt:
9510
+ $ref: "#/components/schemas/PortableProblemRfc3339"
9511
+ grantedBy:
9512
+ description: The operator's person id.
9513
+ format: uuid
9514
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
9515
+ type: string
9516
+ organizationId:
9517
+ format: uuid
9518
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
9519
+ type: string
9520
+ planTier:
9521
+ $ref: "#/components/schemas/PlatformPlanKey"
9522
+ description: "`PRO` or `BUSINESS`."
9523
+ reasonCode:
9524
+ $ref: "#/components/schemas/PlatformOperatorReasonCode"
9525
+ required:
9526
+ - organizationId
9527
+ - planTier
9528
+ - expiresAt
9529
+ - reasonCode
9530
+ - grantedAt
9531
+ - grantedBy
9532
+ type: object
9533
+ PlanSource:
9534
+ description: "SCHEMA-3.41.0: where an organization's plan comes from. `NONE` is Free with no subscription and no grant; `STRIPE` is a Stripe subscription; `OPERATOR` is a grant the Galascribe team made."
9535
+ enum:
9536
+ - NONE
9537
+ - STRIPE
9538
+ - OPERATOR
9539
+ type: string
9491
9540
  PlatformAbuseCaseDetail:
9492
9541
  additionalProperties: false
9493
9542
  description: Review evidence for one abuse case. Report reasons include only open reports and are sorted and distinct; reporter identities and notes are never exposed.
@@ -10408,6 +10457,11 @@ components:
10408
10457
  type:
10409
10458
  - string
10410
10459
  - "null"
10460
+ organizations:
10461
+ description: "SCHEMA-3.41.0: every organization the person owns, in name order."
10462
+ items:
10463
+ $ref: "#/components/schemas/PlatformUserOrganization"
10464
+ type: array
10411
10465
  personId:
10412
10466
  format: uuid
10413
10467
  pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
@@ -10433,9 +10487,37 @@ components:
10433
10487
  - lastSignInAt
10434
10488
  - publicationCount
10435
10489
  - planTiers
10490
+ - organizations
10436
10491
  - contactEmailOnFile
10437
10492
  - contactEmail
10438
10493
  type: object
10494
+ PlatformUserOrganization:
10495
+ additionalProperties: false
10496
+ description: "SCHEMA-3.41.0: an organization a person owns, with its plan and the active operator grant."
10497
+ properties:
10498
+ grant:
10499
+ oneOf:
10500
+ - $ref: "#/components/schemas/PlanGrant"
10501
+ - type: "null"
10502
+ name:
10503
+ maxLength: 255
10504
+ minLength: 1
10505
+ type: string
10506
+ organizationId:
10507
+ format: uuid
10508
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
10509
+ type: string
10510
+ planSource:
10511
+ $ref: "#/components/schemas/PlanSource"
10512
+ planTier:
10513
+ $ref: "#/components/schemas/PlatformPlanKey"
10514
+ required:
10515
+ - organizationId
10516
+ - name
10517
+ - planTier
10518
+ - planSource
10519
+ - grant
10520
+ type: object
10439
10521
  PlatformWebhookEvent:
10440
10522
  additionalProperties: false
10441
10523
  description: Redacted webhook inbox metadata and immutable routing coordinates. The request body and payload digest are deliberately never exposed.
@@ -21994,6 +22076,29 @@ components:
21994
22076
  required:
21995
22077
  - change
21996
22078
  type: object
22079
+ PutPlatformOrganizationsByOrganizationIdPlanGrantRequest:
22080
+ additionalProperties: false
22081
+ properties:
22082
+ expiresAt:
22083
+ description: Null for open-ended; otherwise in the future.
22084
+ oneOf:
22085
+ - $ref: "#/components/schemas/PortableProblemRfc3339"
22086
+ - type: "null"
22087
+ planTier:
22088
+ description: "`FREE` is not a grant tier; a DELETE ends the grant."
22089
+ enum:
22090
+ - PRO
22091
+ - BUSINESS
22092
+ type: string
22093
+ reasonCode:
22094
+ $ref: "#/components/schemas/PlatformOperatorReasonCode"
22095
+ required:
22096
+ - planTier
22097
+ - expiresAt
22098
+ - reasonCode
22099
+ type: object
22100
+ PutPlatformOrganizationsByOrganizationIdPlanGrantResponse:
22101
+ $ref: "#/components/schemas/PlanGrant"
21997
22102
  PutPlatformPlansByPlanKeyRequest:
21998
22103
  additionalProperties: false
21999
22104
  properties:
@@ -33753,6 +33858,8 @@ paths:
33753
33858
  galascribeHosting: true
33754
33859
  includedDomain: false
33755
33860
  galascribeAddressZone: galascribe.com
33861
+ grantExpiresAt: null
33862
+ source: STRIPE
33756
33863
  tier: PRO
33757
33864
  schema:
33758
33865
  $ref: "#/components/schemas/GetOrganizationsByOrganizationIdPlanResponse"
@@ -73575,6 +73682,498 @@ paths:
73575
73682
  - OAuthClient:DRAFT -> REVOKED
73576
73683
  x-gala-success-category: update
73577
73684
  x-gala-tenant-scope: NONE
73685
+ /v2/platform/organizations/{organizationId}/plan-grant:
73686
+ delete:
73687
+ description: |
73688
+ Operators only, with recent authentication and a browser session; API keys are refused. Ends the operator plan grant of one organization, which returns to Free unless it subscribes through Stripe. `404 RESOURCE_NOT_FOUND` when the organization does not exist or has no active grant. `409 PLAN_COLLABORATORS_PRESENT` when the organization is a collaborative Pro (`BUSINESS`) organization that still has members besides the owner. `Idempotency-Key` is the command identity.
73689
+ operationId: deletePlatformOrganizationsByOrganizationIdPlanGrant
73690
+ parameters:
73691
+ - $ref: "#/components/parameters/XCorrelationId"
73692
+ - example: 018f0000-0000-7000-8000-000000000001
73693
+ in: path
73694
+ name: organizationId
73695
+ required: true
73696
+ schema:
73697
+ format: uuid
73698
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
73699
+ type: string
73700
+ - $ref: "#/components/parameters/IdempotencyKey"
73701
+ - $ref: "#/components/parameters/XCsrfToken"
73702
+ responses:
73703
+ "204":
73704
+ description: remove organization plan grant succeeded
73705
+ headers:
73706
+ Cache-Control:
73707
+ $ref: "#/components/headers/CacheControlNoStore"
73708
+ X-Correlation-Id:
73709
+ $ref: "#/components/headers/XCorrelationId"
73710
+ "400":
73711
+ content:
73712
+ application/problem+json:
73713
+ examples:
73714
+ VALIDATION_FAILED:
73715
+ summary: VALIDATION_FAILED
73716
+ value:
73717
+ code: VALIDATION_FAILED
73718
+ correlationId: 018f0000-0000-7000-8000-000000000001
73719
+ detail: See the operation contract.
73720
+ errors: []
73721
+ retryable: false
73722
+ schemaId: urn:gala:schema:problem:2.0.0
73723
+ schemaVersion: 2.0.0
73724
+ status: 400
73725
+ title: VALIDATION_FAILED
73726
+ type: urn:gala:problem:validation-failed
73727
+ schema:
73728
+ $ref: "#/components/schemas/Problem"
73729
+ description: VALIDATION_FAILED
73730
+ headers:
73731
+ Cache-Control:
73732
+ $ref: "#/components/headers/CacheControlNoStore"
73733
+ X-Correlation-Id:
73734
+ $ref: "#/components/headers/XCorrelationId"
73735
+ x-gala-problem-codes:
73736
+ - VALIDATION_FAILED
73737
+ "401":
73738
+ content:
73739
+ application/problem+json:
73740
+ examples:
73741
+ AUTHENTICATION_REQUIRED:
73742
+ summary: AUTHENTICATION_REQUIRED
73743
+ value:
73744
+ code: AUTHENTICATION_REQUIRED
73745
+ correlationId: 018f0000-0000-7000-8000-000000000001
73746
+ detail: See the operation contract.
73747
+ errors: []
73748
+ retryable: false
73749
+ schemaId: urn:gala:schema:problem:2.0.0
73750
+ schemaVersion: 2.0.0
73751
+ status: 401
73752
+ title: AUTHENTICATION_REQUIRED
73753
+ type: urn:gala:problem:authentication-required
73754
+ REAUTH_REQUIRED:
73755
+ summary: REAUTH_REQUIRED
73756
+ value:
73757
+ code: REAUTH_REQUIRED
73758
+ correlationId: 018f0000-0000-7000-8000-000000000001
73759
+ detail: See the operation contract.
73760
+ errors: []
73761
+ retryable: false
73762
+ schemaId: urn:gala:schema:problem:2.0.0
73763
+ schemaVersion: 2.0.0
73764
+ status: 401
73765
+ title: REAUTH_REQUIRED
73766
+ type: urn:gala:problem:reauth-required
73767
+ schema:
73768
+ $ref: "#/components/schemas/Problem"
73769
+ description: AUTHENTICATION_REQUIRED, REAUTH_REQUIRED
73770
+ headers:
73771
+ Cache-Control:
73772
+ $ref: "#/components/headers/CacheControlNoStore"
73773
+ X-Correlation-Id:
73774
+ $ref: "#/components/headers/XCorrelationId"
73775
+ x-gala-problem-codes:
73776
+ - AUTHENTICATION_REQUIRED
73777
+ - REAUTH_REQUIRED
73778
+ "403":
73779
+ content:
73780
+ application/problem+json:
73781
+ examples:
73782
+ AUTHORIZATION_DENIED:
73783
+ summary: AUTHORIZATION_DENIED
73784
+ value:
73785
+ code: AUTHORIZATION_DENIED
73786
+ correlationId: 018f0000-0000-7000-8000-000000000001
73787
+ detail: See the operation contract.
73788
+ errors: []
73789
+ retryable: false
73790
+ schemaId: urn:gala:schema:problem:2.0.0
73791
+ schemaVersion: 2.0.0
73792
+ status: 403
73793
+ title: AUTHORIZATION_DENIED
73794
+ type: urn:gala:problem:authorization-denied
73795
+ schema:
73796
+ $ref: "#/components/schemas/Problem"
73797
+ description: AUTHORIZATION_DENIED
73798
+ headers:
73799
+ Cache-Control:
73800
+ $ref: "#/components/headers/CacheControlNoStore"
73801
+ X-Correlation-Id:
73802
+ $ref: "#/components/headers/XCorrelationId"
73803
+ x-gala-problem-codes:
73804
+ - AUTHORIZATION_DENIED
73805
+ "404":
73806
+ content:
73807
+ application/problem+json:
73808
+ examples:
73809
+ RESOURCE_NOT_FOUND:
73810
+ summary: RESOURCE_NOT_FOUND
73811
+ value:
73812
+ code: RESOURCE_NOT_FOUND
73813
+ correlationId: 018f0000-0000-7000-8000-000000000001
73814
+ detail: See the operation contract.
73815
+ errors: []
73816
+ retryable: false
73817
+ schemaId: urn:gala:schema:problem:2.0.0
73818
+ schemaVersion: 2.0.0
73819
+ status: 404
73820
+ title: RESOURCE_NOT_FOUND
73821
+ type: urn:gala:problem:resource-not-found
73822
+ schema:
73823
+ $ref: "#/components/schemas/Problem"
73824
+ description: RESOURCE_NOT_FOUND
73825
+ headers:
73826
+ Cache-Control:
73827
+ $ref: "#/components/headers/CacheControlNoStore"
73828
+ X-Correlation-Id:
73829
+ $ref: "#/components/headers/XCorrelationId"
73830
+ x-gala-problem-codes:
73831
+ - RESOURCE_NOT_FOUND
73832
+ "409":
73833
+ content:
73834
+ application/problem+json:
73835
+ examples:
73836
+ COMMAND_REPLAY_CONFLICT:
73837
+ summary: COMMAND_REPLAY_CONFLICT
73838
+ value:
73839
+ code: COMMAND_REPLAY_CONFLICT
73840
+ correlationId: 018f0000-0000-7000-8000-000000000001
73841
+ detail: See the operation contract.
73842
+ errors: []
73843
+ retryable: false
73844
+ schemaId: urn:gala:schema:problem:2.0.0
73845
+ schemaVersion: 2.0.0
73846
+ status: 409
73847
+ title: COMMAND_REPLAY_CONFLICT
73848
+ type: urn:gala:problem:command-replay-conflict
73849
+ PLAN_COLLABORATORS_PRESENT:
73850
+ summary: PLAN_COLLABORATORS_PRESENT
73851
+ value:
73852
+ code: PLAN_COLLABORATORS_PRESENT
73853
+ correlationId: 018f0000-0000-7000-8000-000000000001
73854
+ detail: See the operation contract.
73855
+ errors: []
73856
+ retryable: false
73857
+ schemaId: urn:gala:schema:problem:2.0.0
73858
+ schemaVersion: 2.0.0
73859
+ status: 409
73860
+ title: PLAN_COLLABORATORS_PRESENT
73861
+ type: urn:gala:problem:plan-collaborators-present
73862
+ schema:
73863
+ $ref: "#/components/schemas/Problem"
73864
+ description: COMMAND_REPLAY_CONFLICT, PLAN_COLLABORATORS_PRESENT
73865
+ headers:
73866
+ Cache-Control:
73867
+ $ref: "#/components/headers/CacheControlNoStore"
73868
+ X-Correlation-Id:
73869
+ $ref: "#/components/headers/XCorrelationId"
73870
+ x-gala-problem-codes:
73871
+ - COMMAND_REPLAY_CONFLICT
73872
+ - PLAN_COLLABORATORS_PRESENT
73873
+ security:
73874
+ - browserSession: []
73875
+ summary: remove organization plan grant
73876
+ tags:
73877
+ - platform
73878
+ x-gala-action-grant: none
73879
+ x-gala-activation-gate: MVP
73880
+ x-gala-activation-guards:
73881
+ - NONE
73882
+ x-gala-assurance-class: RECENT_AUTHENTICATION
73883
+ x-gala-capability-key: platform.billing.manage
73884
+ x-gala-concurrency: none
73885
+ x-gala-conditional-capabilities: []
73886
+ x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
73887
+ x-gala-nullability: required-and-nullable-are-explicit
73888
+ x-gala-purpose: remove organization plan grant
73889
+ x-gala-reachable-problems:
73890
+ - AUTHENTICATION_REQUIRED
73891
+ - AUTHORIZATION_DENIED
73892
+ - COMMAND_REPLAY_CONFLICT
73893
+ - PLAN_COLLABORATORS_PRESENT
73894
+ - REAUTH_REQUIRED
73895
+ - RESOURCE_NOT_FOUND
73896
+ - VALIDATION_FAILED
73897
+ x-gala-replay-identity: idempotency-key
73898
+ x-gala-state-guards:
73899
+ - NONE
73900
+ x-gala-success-category: delete
73901
+ x-gala-tenant-scope: NONE
73902
+ put:
73903
+ description: |
73904
+ Operators only, with recent authentication and a browser session; API keys are refused. Grants an organization Basic (`PRO`) or Pro (`BUSINESS`) without Stripe, until `expiresAt` or open-ended when it is null, and replaces an existing active grant (a new tier or a new end date). `expiresAt` must be in the future; `FREE` is not a grant tier, a DELETE ends the grant. `reasonCode` is a non-sensitive operator reason code recorded in the audit event. `404 RESOURCE_NOT_FOUND` for an unknown organization. `409 PLAN_SUBSCRIBED` when the organization has an active, trialing or past_due Stripe subscription. `409 PLAN_COLLABORATORS_PRESENT` when the change takes a collaborative Pro organization below Pro while it still has members besides the owner. `Idempotency-Key` is the command identity.
73905
+ operationId: putPlatformOrganizationsByOrganizationIdPlanGrant
73906
+ parameters:
73907
+ - $ref: "#/components/parameters/XCorrelationId"
73908
+ - example: 018f0000-0000-7000-8000-000000000001
73909
+ in: path
73910
+ name: organizationId
73911
+ required: true
73912
+ schema:
73913
+ format: uuid
73914
+ pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
73915
+ type: string
73916
+ - $ref: "#/components/parameters/IdempotencyKey"
73917
+ - $ref: "#/components/parameters/XCsrfToken"
73918
+ requestBody:
73919
+ content:
73920
+ application/json:
73921
+ examples:
73922
+ nominal:
73923
+ summary: Nominal valid request
73924
+ value:
73925
+ expiresAt: "2026-12-05T12:00:00.000Z"
73926
+ planTier: PRO
73927
+ reasonCode: PILOT_CREATOR
73928
+ schema:
73929
+ $ref: "#/components/schemas/PutPlatformOrganizationsByOrganizationIdPlanGrantRequest"
73930
+ required: true
73931
+ responses:
73932
+ "200":
73933
+ content:
73934
+ application/json:
73935
+ examples:
73936
+ nominal:
73937
+ summary: Nominal successful response
73938
+ value:
73939
+ expiresAt: "2026-12-05T12:00:00.000Z"
73940
+ grantedAt: "2026-11-05T12:00:00.000Z"
73941
+ grantedBy: 018f0000-0000-7000-8000-000000000001
73942
+ organizationId: 018f0000-0000-7000-8000-000000000001
73943
+ planTier: PRO
73944
+ reasonCode: PILOT_CREATOR
73945
+ schema:
73946
+ $ref: "#/components/schemas/PutPlatformOrganizationsByOrganizationIdPlanGrantResponse"
73947
+ description: set organization plan grant succeeded
73948
+ headers:
73949
+ Cache-Control:
73950
+ $ref: "#/components/headers/CacheControlNoStore"
73951
+ ETag:
73952
+ $ref: "#/components/headers/ETag"
73953
+ X-Correlation-Id:
73954
+ $ref: "#/components/headers/XCorrelationId"
73955
+ "400":
73956
+ content:
73957
+ application/problem+json:
73958
+ examples:
73959
+ REQUEST_FIELD_UNKNOWN:
73960
+ summary: REQUEST_FIELD_UNKNOWN
73961
+ value:
73962
+ code: REQUEST_FIELD_UNKNOWN
73963
+ correlationId: 018f0000-0000-7000-8000-000000000001
73964
+ detail: See the operation contract.
73965
+ errors: []
73966
+ retryable: false
73967
+ schemaId: urn:gala:schema:problem:2.0.0
73968
+ schemaVersion: 2.0.0
73969
+ status: 400
73970
+ title: REQUEST_FIELD_UNKNOWN
73971
+ type: urn:gala:problem:request-field-unknown
73972
+ VALIDATION_FAILED:
73973
+ summary: VALIDATION_FAILED
73974
+ value:
73975
+ code: VALIDATION_FAILED
73976
+ correlationId: 018f0000-0000-7000-8000-000000000001
73977
+ detail: See the operation contract.
73978
+ errors: []
73979
+ retryable: false
73980
+ schemaId: urn:gala:schema:problem:2.0.0
73981
+ schemaVersion: 2.0.0
73982
+ status: 400
73983
+ title: VALIDATION_FAILED
73984
+ type: urn:gala:problem:validation-failed
73985
+ schema:
73986
+ $ref: "#/components/schemas/Problem"
73987
+ description: REQUEST_FIELD_UNKNOWN, VALIDATION_FAILED
73988
+ headers:
73989
+ Cache-Control:
73990
+ $ref: "#/components/headers/CacheControlNoStore"
73991
+ X-Correlation-Id:
73992
+ $ref: "#/components/headers/XCorrelationId"
73993
+ x-gala-problem-codes:
73994
+ - REQUEST_FIELD_UNKNOWN
73995
+ - VALIDATION_FAILED
73996
+ "401":
73997
+ content:
73998
+ application/problem+json:
73999
+ examples:
74000
+ AUTHENTICATION_REQUIRED:
74001
+ summary: AUTHENTICATION_REQUIRED
74002
+ value:
74003
+ code: AUTHENTICATION_REQUIRED
74004
+ correlationId: 018f0000-0000-7000-8000-000000000001
74005
+ detail: See the operation contract.
74006
+ errors: []
74007
+ retryable: false
74008
+ schemaId: urn:gala:schema:problem:2.0.0
74009
+ schemaVersion: 2.0.0
74010
+ status: 401
74011
+ title: AUTHENTICATION_REQUIRED
74012
+ type: urn:gala:problem:authentication-required
74013
+ REAUTH_REQUIRED:
74014
+ summary: REAUTH_REQUIRED
74015
+ value:
74016
+ code: REAUTH_REQUIRED
74017
+ correlationId: 018f0000-0000-7000-8000-000000000001
74018
+ detail: See the operation contract.
74019
+ errors: []
74020
+ retryable: false
74021
+ schemaId: urn:gala:schema:problem:2.0.0
74022
+ schemaVersion: 2.0.0
74023
+ status: 401
74024
+ title: REAUTH_REQUIRED
74025
+ type: urn:gala:problem:reauth-required
74026
+ schema:
74027
+ $ref: "#/components/schemas/Problem"
74028
+ description: AUTHENTICATION_REQUIRED, REAUTH_REQUIRED
74029
+ headers:
74030
+ Cache-Control:
74031
+ $ref: "#/components/headers/CacheControlNoStore"
74032
+ X-Correlation-Id:
74033
+ $ref: "#/components/headers/XCorrelationId"
74034
+ x-gala-problem-codes:
74035
+ - AUTHENTICATION_REQUIRED
74036
+ - REAUTH_REQUIRED
74037
+ "403":
74038
+ content:
74039
+ application/problem+json:
74040
+ examples:
74041
+ AUTHORIZATION_DENIED:
74042
+ summary: AUTHORIZATION_DENIED
74043
+ value:
74044
+ code: AUTHORIZATION_DENIED
74045
+ correlationId: 018f0000-0000-7000-8000-000000000001
74046
+ detail: See the operation contract.
74047
+ errors: []
74048
+ retryable: false
74049
+ schemaId: urn:gala:schema:problem:2.0.0
74050
+ schemaVersion: 2.0.0
74051
+ status: 403
74052
+ title: AUTHORIZATION_DENIED
74053
+ type: urn:gala:problem:authorization-denied
74054
+ schema:
74055
+ $ref: "#/components/schemas/Problem"
74056
+ description: AUTHORIZATION_DENIED
74057
+ headers:
74058
+ Cache-Control:
74059
+ $ref: "#/components/headers/CacheControlNoStore"
74060
+ X-Correlation-Id:
74061
+ $ref: "#/components/headers/XCorrelationId"
74062
+ x-gala-problem-codes:
74063
+ - AUTHORIZATION_DENIED
74064
+ "404":
74065
+ content:
74066
+ application/problem+json:
74067
+ examples:
74068
+ RESOURCE_NOT_FOUND:
74069
+ summary: RESOURCE_NOT_FOUND
74070
+ value:
74071
+ code: RESOURCE_NOT_FOUND
74072
+ correlationId: 018f0000-0000-7000-8000-000000000001
74073
+ detail: See the operation contract.
74074
+ errors: []
74075
+ retryable: false
74076
+ schemaId: urn:gala:schema:problem:2.0.0
74077
+ schemaVersion: 2.0.0
74078
+ status: 404
74079
+ title: RESOURCE_NOT_FOUND
74080
+ type: urn:gala:problem:resource-not-found
74081
+ schema:
74082
+ $ref: "#/components/schemas/Problem"
74083
+ description: RESOURCE_NOT_FOUND
74084
+ headers:
74085
+ Cache-Control:
74086
+ $ref: "#/components/headers/CacheControlNoStore"
74087
+ X-Correlation-Id:
74088
+ $ref: "#/components/headers/XCorrelationId"
74089
+ x-gala-problem-codes:
74090
+ - RESOURCE_NOT_FOUND
74091
+ "409":
74092
+ content:
74093
+ application/problem+json:
74094
+ examples:
74095
+ COMMAND_REPLAY_CONFLICT:
74096
+ summary: COMMAND_REPLAY_CONFLICT
74097
+ value:
74098
+ code: COMMAND_REPLAY_CONFLICT
74099
+ correlationId: 018f0000-0000-7000-8000-000000000001
74100
+ detail: See the operation contract.
74101
+ errors: []
74102
+ retryable: false
74103
+ schemaId: urn:gala:schema:problem:2.0.0
74104
+ schemaVersion: 2.0.0
74105
+ status: 409
74106
+ title: COMMAND_REPLAY_CONFLICT
74107
+ type: urn:gala:problem:command-replay-conflict
74108
+ PLAN_COLLABORATORS_PRESENT:
74109
+ summary: PLAN_COLLABORATORS_PRESENT
74110
+ value:
74111
+ code: PLAN_COLLABORATORS_PRESENT
74112
+ correlationId: 018f0000-0000-7000-8000-000000000001
74113
+ detail: See the operation contract.
74114
+ errors: []
74115
+ retryable: false
74116
+ schemaId: urn:gala:schema:problem:2.0.0
74117
+ schemaVersion: 2.0.0
74118
+ status: 409
74119
+ title: PLAN_COLLABORATORS_PRESENT
74120
+ type: urn:gala:problem:plan-collaborators-present
74121
+ PLAN_SUBSCRIBED:
74122
+ summary: PLAN_SUBSCRIBED
74123
+ value:
74124
+ code: PLAN_SUBSCRIBED
74125
+ correlationId: 018f0000-0000-7000-8000-000000000001
74126
+ detail: See the operation contract.
74127
+ errors: []
74128
+ retryable: false
74129
+ schemaId: urn:gala:schema:problem:2.0.0
74130
+ schemaVersion: 2.0.0
74131
+ status: 409
74132
+ title: PLAN_SUBSCRIBED
74133
+ type: urn:gala:problem:plan-subscribed
74134
+ schema:
74135
+ $ref: "#/components/schemas/Problem"
74136
+ description: COMMAND_REPLAY_CONFLICT, PLAN_COLLABORATORS_PRESENT, PLAN_SUBSCRIBED
74137
+ headers:
74138
+ Cache-Control:
74139
+ $ref: "#/components/headers/CacheControlNoStore"
74140
+ X-Correlation-Id:
74141
+ $ref: "#/components/headers/XCorrelationId"
74142
+ x-gala-problem-codes:
74143
+ - COMMAND_REPLAY_CONFLICT
74144
+ - PLAN_COLLABORATORS_PRESENT
74145
+ - PLAN_SUBSCRIBED
74146
+ security:
74147
+ - browserSession: []
74148
+ summary: set organization plan grant
74149
+ tags:
74150
+ - platform
74151
+ x-gala-action-grant: none
74152
+ x-gala-activation-gate: MVP
74153
+ x-gala-activation-guards:
74154
+ - NONE
74155
+ x-gala-assurance-class: RECENT_AUTHENTICATION
74156
+ x-gala-capability-key: platform.billing.manage
74157
+ x-gala-concurrency: none
74158
+ x-gala-conditional-capabilities: []
74159
+ x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
74160
+ x-gala-nullability: required-and-nullable-are-explicit
74161
+ x-gala-purpose: set organization plan grant
74162
+ x-gala-reachable-problems:
74163
+ - AUTHENTICATION_REQUIRED
74164
+ - AUTHORIZATION_DENIED
74165
+ - COMMAND_REPLAY_CONFLICT
74166
+ - PLAN_COLLABORATORS_PRESENT
74167
+ - PLAN_SUBSCRIBED
74168
+ - REAUTH_REQUIRED
74169
+ - REQUEST_FIELD_UNKNOWN
74170
+ - RESOURCE_NOT_FOUND
74171
+ - VALIDATION_FAILED
74172
+ x-gala-replay-identity: idempotency-key
74173
+ x-gala-state-guards:
74174
+ - NONE
74175
+ x-gala-success-category: update
74176
+ x-gala-tenant-scope: NONE
73578
74177
  /v2/platform/overview:
73579
74178
  get:
73580
74179
  description: |
@@ -75254,6 +75853,12 @@ paths:
75254
75853
  displayName: Ada Reader
75255
75854
  lastSignInAt: "2026-10-10T11:30:00.000Z"
75256
75855
  login: ada-reader
75856
+ organizations:
75857
+ - grant: null
75858
+ name: Ada Reader
75859
+ organizationId: 018f0000-0000-7000-8000-000000000001
75860
+ planSource: STRIPE
75861
+ planTier: PRO
75257
75862
  personId: 018f0000-0000-7000-8000-000000000001
75258
75863
  planTiers:
75259
75864
  - FREE
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rathnasgala2/schemas",
3
- "version": "3.41.0",
3
+ "version": "3.42.0",
4
4
  "description": "Executable JSON Schema and OpenAPI contracts for Galascribe",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
package/sbom.cdx.json CHANGED
@@ -97,8 +97,8 @@
97
97
  "type": "library",
98
98
  "name": "schemas",
99
99
  "group": "@rathnasgala2",
100
- "version": "3.41.0",
101
- "bom-ref": "@rathnasgala2/schemas@3.41.0",
100
+ "version": "3.42.0",
101
+ "bom-ref": "@rathnasgala2/schemas@3.42.0",
102
102
  "description": "Executable JSON Schema and OpenAPI contracts for Galascribe",
103
103
  "licenses": [
104
104
  {
@@ -108,7 +108,7 @@
108
108
  }
109
109
  }
110
110
  ],
111
- "purl": "pkg:npm/%40rathnasgala2/schemas@3.41.0?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Frathnasgala2%2Fschema.git",
111
+ "purl": "pkg:npm/%40rathnasgala2/schemas@3.42.0?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Frathnasgala2%2Fschema.git",
112
112
  "externalReferences": [
113
113
  {
114
114
  "url": "https://github.com/rathnasgala2/schema/issues",
@@ -153,7 +153,7 @@
153
153
  "type": "library",
154
154
  "name": "ajv-formats",
155
155
  "version": "3.0.1",
156
- "bom-ref": "@rathnasgala2/schemas@3.41.0|ajv-formats@3.0.1",
156
+ "bom-ref": "@rathnasgala2/schemas@3.42.0|ajv-formats@3.0.1",
157
157
  "licenses": [
158
158
  {
159
159
  "license": {
@@ -187,7 +187,7 @@
187
187
  "type": "library",
188
188
  "name": "ajv",
189
189
  "version": "8.20.0",
190
- "bom-ref": "@rathnasgala2/schemas@3.41.0|ajv@8.20.0",
190
+ "bom-ref": "@rathnasgala2/schemas@3.42.0|ajv@8.20.0",
191
191
  "licenses": [
192
192
  {
193
193
  "license": {
@@ -221,7 +221,7 @@
221
221
  "type": "library",
222
222
  "name": "fast-deep-equal",
223
223
  "version": "3.1.3",
224
- "bom-ref": "@rathnasgala2/schemas@3.41.0|fast-deep-equal@3.1.3",
224
+ "bom-ref": "@rathnasgala2/schemas@3.42.0|fast-deep-equal@3.1.3",
225
225
  "licenses": [
226
226
  {
227
227
  "license": {
@@ -255,7 +255,7 @@
255
255
  "type": "library",
256
256
  "name": "fast-uri",
257
257
  "version": "3.1.8",
258
- "bom-ref": "@rathnasgala2/schemas@3.41.0|fast-uri@3.1.8",
258
+ "bom-ref": "@rathnasgala2/schemas@3.42.0|fast-uri@3.1.8",
259
259
  "licenses": [
260
260
  {
261
261
  "license": {
@@ -289,7 +289,7 @@
289
289
  "type": "library",
290
290
  "name": "json-schema-traverse",
291
291
  "version": "1.0.0",
292
- "bom-ref": "@rathnasgala2/schemas@3.41.0|json-schema-traverse@1.0.0",
292
+ "bom-ref": "@rathnasgala2/schemas@3.42.0|json-schema-traverse@1.0.0",
293
293
  "licenses": [
294
294
  {
295
295
  "license": {
@@ -323,7 +323,7 @@
323
323
  "type": "library",
324
324
  "name": "require-from-string",
325
325
  "version": "2.0.2",
326
- "bom-ref": "@rathnasgala2/schemas@3.41.0|require-from-string@2.0.2",
326
+ "bom-ref": "@rathnasgala2/schemas@3.42.0|require-from-string@2.0.2",
327
327
  "licenses": [
328
328
  {
329
329
  "license": {
@@ -1064,10 +1064,10 @@
1064
1064
  ],
1065
1065
  "dependencies": [
1066
1066
  {
1067
- "ref": "@rathnasgala2/schemas@3.41.0",
1067
+ "ref": "@rathnasgala2/schemas@3.42.0",
1068
1068
  "dependsOn": [
1069
- "@rathnasgala2/schemas@3.41.0|ajv-formats@3.0.1",
1070
- "@rathnasgala2/schemas@3.41.0|ajv@8.20.0",
1069
+ "@rathnasgala2/schemas@3.42.0|ajv-formats@3.0.1",
1070
+ "@rathnasgala2/schemas@3.42.0|ajv@8.20.0",
1071
1071
  "pkg:npm/semver@7.8.5",
1072
1072
  "urn:gala:source-data:iana-ipv4-special-registry",
1073
1073
  "urn:gala:source-data:iana-ipv6-special-registry",
@@ -1089,31 +1089,31 @@
1089
1089
  ]
1090
1090
  },
1091
1091
  {
1092
- "ref": "@rathnasgala2/schemas@3.41.0|ajv-formats@3.0.1",
1092
+ "ref": "@rathnasgala2/schemas@3.42.0|ajv-formats@3.0.1",
1093
1093
  "dependsOn": [
1094
- "@rathnasgala2/schemas@3.41.0|ajv@8.20.0"
1094
+ "@rathnasgala2/schemas@3.42.0|ajv@8.20.0"
1095
1095
  ]
1096
1096
  },
1097
1097
  {
1098
- "ref": "@rathnasgala2/schemas@3.41.0|ajv@8.20.0",
1098
+ "ref": "@rathnasgala2/schemas@3.42.0|ajv@8.20.0",
1099
1099
  "dependsOn": [
1100
- "@rathnasgala2/schemas@3.41.0|fast-deep-equal@3.1.3",
1101
- "@rathnasgala2/schemas@3.41.0|fast-uri@3.1.8",
1102
- "@rathnasgala2/schemas@3.41.0|json-schema-traverse@1.0.0",
1103
- "@rathnasgala2/schemas@3.41.0|require-from-string@2.0.2"
1100
+ "@rathnasgala2/schemas@3.42.0|fast-deep-equal@3.1.3",
1101
+ "@rathnasgala2/schemas@3.42.0|fast-uri@3.1.8",
1102
+ "@rathnasgala2/schemas@3.42.0|json-schema-traverse@1.0.0",
1103
+ "@rathnasgala2/schemas@3.42.0|require-from-string@2.0.2"
1104
1104
  ]
1105
1105
  },
1106
1106
  {
1107
- "ref": "@rathnasgala2/schemas@3.41.0|fast-deep-equal@3.1.3"
1107
+ "ref": "@rathnasgala2/schemas@3.42.0|fast-deep-equal@3.1.3"
1108
1108
  },
1109
1109
  {
1110
- "ref": "@rathnasgala2/schemas@3.41.0|fast-uri@3.1.8"
1110
+ "ref": "@rathnasgala2/schemas@3.42.0|fast-uri@3.1.8"
1111
1111
  },
1112
1112
  {
1113
- "ref": "@rathnasgala2/schemas@3.41.0|json-schema-traverse@1.0.0"
1113
+ "ref": "@rathnasgala2/schemas@3.42.0|json-schema-traverse@1.0.0"
1114
1114
  },
1115
1115
  {
1116
- "ref": "@rathnasgala2/schemas@3.41.0|require-from-string@2.0.2"
1116
+ "ref": "@rathnasgala2/schemas@3.42.0|require-from-string@2.0.2"
1117
1117
  },
1118
1118
  {
1119
1119
  "ref": "pkg:npm/semver@7.8.5"