@rathnasgala2/schemas 3.28.0 → 3.30.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.
- package/THIRD_PARTY_LICENSES.json +1 -1
- package/docs/catalogs/schema-inventory.json +2 -2
- package/openapi/http-catalog.json +171 -2
- package/openapi/openapi.yaml +3612 -105
- package/package.json +1 -1
- package/sbom.cdx.json +23 -23
package/openapi/openapi.yaml
CHANGED
|
@@ -13,6 +13,14 @@ components:
|
|
|
13
13
|
pattern: ^no-store$
|
|
14
14
|
type: string
|
|
15
15
|
x-gala-const: no-store
|
|
16
|
+
CacheControlPrivateNoCache:
|
|
17
|
+
description: "SCHEMA-3.29.0: `private, no-cache` -- a browser may store the body but must revalidate it (`If-None-Match`) before every use. Used by reads that carry a strong `ETag` and answer `304`."
|
|
18
|
+
required: true
|
|
19
|
+
schema:
|
|
20
|
+
enum:
|
|
21
|
+
- private, no-cache
|
|
22
|
+
- no-cache, private
|
|
23
|
+
type: string
|
|
16
24
|
ContentDispositionAttachment:
|
|
17
25
|
description: "The archive is a download: `attachment` with its file name."
|
|
18
26
|
required: true
|
|
@@ -621,6 +629,93 @@ components:
|
|
|
621
629
|
- description
|
|
622
630
|
- group
|
|
623
631
|
type: object
|
|
632
|
+
AssistanceRequest:
|
|
633
|
+
additionalProperties: false
|
|
634
|
+
description: "SCHEMA-3.30.0: a request the site made to the Galascribe team."
|
|
635
|
+
properties:
|
|
636
|
+
closedAt:
|
|
637
|
+
$ref: "#/components/schemas/PortableProblemRfc3339"
|
|
638
|
+
description: When an operator closed the request. Absent while it is `OPEN`.
|
|
639
|
+
createdAt:
|
|
640
|
+
$ref: "#/components/schemas/PortableProblemRfc3339"
|
|
641
|
+
domainName:
|
|
642
|
+
description: The domain the request is about (`DOMAIN_REGISTRATION`, `DOMAIN_MOVE`). Absent for other kinds.
|
|
643
|
+
maxLength: 253
|
|
644
|
+
minLength: 1
|
|
645
|
+
pattern: ^[a-z0-9](?:[a-z0-9.-]{0,251}[a-z0-9])?$
|
|
646
|
+
type: string
|
|
647
|
+
findingCodes:
|
|
648
|
+
description: The hosting-check findings the request is about (`GALASCRIBE_HOSTING`). Absent for other kinds.
|
|
649
|
+
items:
|
|
650
|
+
$ref: "#/components/schemas/HostingFindingCode"
|
|
651
|
+
maxItems: 8
|
|
652
|
+
type: array
|
|
653
|
+
uniqueItems: true
|
|
654
|
+
kind:
|
|
655
|
+
$ref: "#/components/schemas/AssistanceRequestKind"
|
|
656
|
+
requestId:
|
|
657
|
+
format: uuid
|
|
658
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
659
|
+
type: string
|
|
660
|
+
state:
|
|
661
|
+
$ref: "#/components/schemas/AssistanceRequestState"
|
|
662
|
+
required:
|
|
663
|
+
- requestId
|
|
664
|
+
- kind
|
|
665
|
+
- state
|
|
666
|
+
- createdAt
|
|
667
|
+
type: object
|
|
668
|
+
AssistanceRequestCreate:
|
|
669
|
+
additionalProperties: false
|
|
670
|
+
description: "SCHEMA-3.30.0: a request for help with a site."
|
|
671
|
+
properties:
|
|
672
|
+
domainName:
|
|
673
|
+
description: The domain the request is about (`DOMAIN_REGISTRATION`, `DOMAIN_MOVE`). Absent for other kinds.
|
|
674
|
+
maxLength: 253
|
|
675
|
+
minLength: 1
|
|
676
|
+
pattern: ^[a-z0-9](?:[a-z0-9.-]{0,251}[a-z0-9])?$
|
|
677
|
+
type: string
|
|
678
|
+
findingCodes:
|
|
679
|
+
description: The hosting-check findings the request is about (`GALASCRIBE_HOSTING`). Absent for other kinds.
|
|
680
|
+
items:
|
|
681
|
+
$ref: "#/components/schemas/HostingFindingCode"
|
|
682
|
+
maxItems: 8
|
|
683
|
+
type: array
|
|
684
|
+
uniqueItems: true
|
|
685
|
+
kind:
|
|
686
|
+
$ref: "#/components/schemas/AssistanceRequestKind"
|
|
687
|
+
note:
|
|
688
|
+
description: Anything the person wants the Galascribe team to know.
|
|
689
|
+
maxLength: 1000
|
|
690
|
+
type: string
|
|
691
|
+
required:
|
|
692
|
+
- kind
|
|
693
|
+
type: object
|
|
694
|
+
AssistanceRequestKind:
|
|
695
|
+
description: "`GALASCRIBE_HOSTING`: host what GitHub Pages does not allow. `DOMAIN_REGISTRATION`: register the included domain by hand. `DOMAIN_MOVE`: move a registered domain to the author's own account."
|
|
696
|
+
enum:
|
|
697
|
+
- GALASCRIBE_HOSTING
|
|
698
|
+
- DOMAIN_REGISTRATION
|
|
699
|
+
- DOMAIN_MOVE
|
|
700
|
+
type: string
|
|
701
|
+
AssistanceRequestList:
|
|
702
|
+
additionalProperties: false
|
|
703
|
+
properties:
|
|
704
|
+
items:
|
|
705
|
+
items:
|
|
706
|
+
$ref: "#/components/schemas/AssistanceRequest"
|
|
707
|
+
maxItems: 100
|
|
708
|
+
minItems: 0
|
|
709
|
+
type: array
|
|
710
|
+
required:
|
|
711
|
+
- items
|
|
712
|
+
type: object
|
|
713
|
+
AssistanceRequestState:
|
|
714
|
+
description: "`OPEN`: waiting for the Galascribe team. `CLOSED`: an operator finished it."
|
|
715
|
+
enum:
|
|
716
|
+
- OPEN
|
|
717
|
+
- CLOSED
|
|
718
|
+
type: string
|
|
624
719
|
AudienceAuthor:
|
|
625
720
|
additionalProperties: false
|
|
626
721
|
description: "SCHEMA-3.23.0: an author of a site as the site names it in `gala/publication.json`. `id` is the author's stable id; follows are keyed by (publication, author id)."
|
|
@@ -1491,6 +1586,12 @@ components:
|
|
|
1491
1586
|
date. `deleteDate` (SCHEMA-3.25.1, optional and nullable) is the
|
|
1492
1587
|
header's scheduled-removal date.
|
|
1493
1588
|
properties:
|
|
1589
|
+
authorIds:
|
|
1590
|
+
description: "SCHEMA-3.29.0: the header's `authors` (stable ids, header order), so a card can show a byline without reading the document; absent when the header names none."
|
|
1591
|
+
items:
|
|
1592
|
+
$ref: "#/components/schemas/PortableContentFrontmatterStableId"
|
|
1593
|
+
maxItems: 32
|
|
1594
|
+
type: array
|
|
1494
1595
|
contentId:
|
|
1495
1596
|
$ref: "#/components/schemas/PortableContentFrontmatterStableId"
|
|
1496
1597
|
createdAt:
|
|
@@ -1504,6 +1605,9 @@ components:
|
|
|
1504
1605
|
description: "SCHEMA-3.28.0: the post's front-matter description, so the Posts list can show an excerpt without reading each document; absent when the header carries none."
|
|
1505
1606
|
maxLength: 320
|
|
1506
1607
|
type: string
|
|
1608
|
+
heroPath:
|
|
1609
|
+
$ref: "#/components/schemas/PortableContentFrontmatterRepoRelativePath"
|
|
1610
|
+
description: "SCHEMA-3.29.0: the repository path of the header's `hero` image, for a card thumbnail; absent when the header carries no hero."
|
|
1507
1611
|
language:
|
|
1508
1612
|
$ref: "#/components/schemas/PortableContentFrontmatterBcp47"
|
|
1509
1613
|
publishAfter:
|
|
@@ -1517,6 +1621,12 @@ components:
|
|
|
1517
1621
|
$ref: "#/components/schemas/PortableContentFrontmatterSlug"
|
|
1518
1622
|
status:
|
|
1519
1623
|
$ref: "#/components/schemas/ContentItemStatus"
|
|
1624
|
+
tags:
|
|
1625
|
+
description: "SCHEMA-3.29.0: the header's `tags`, so a card can show them; absent when the header carries none."
|
|
1626
|
+
items:
|
|
1627
|
+
$ref: "#/components/schemas/PortableContentFrontmatterPlainLabel"
|
|
1628
|
+
maxItems: 32
|
|
1629
|
+
type: array
|
|
1520
1630
|
title:
|
|
1521
1631
|
$ref: "#/components/schemas/PortableContentFrontmatterPlainText"
|
|
1522
1632
|
x-gala-graphemeLength:
|
|
@@ -1574,6 +1684,41 @@ components:
|
|
|
1574
1684
|
- HEADER_INVALID
|
|
1575
1685
|
- TOO_LARGE
|
|
1576
1686
|
type: string
|
|
1687
|
+
ContentPreviewContext:
|
|
1688
|
+
additionalProperties: false
|
|
1689
|
+
description: |
|
|
1690
|
+
SCHEMA-3.29.0. The repository facts a draft preview needs besides the
|
|
1691
|
+
post, all read at `revision`. Every member is best-effort: a file that
|
|
1692
|
+
is absent, unreadable, over 256 KiB or invalid against its schema is
|
|
1693
|
+
`null` (`navigation`, `publication`) or left out of `authors`, and
|
|
1694
|
+
never fails the read. `authors` holds the author files the
|
|
1695
|
+
publication document declares, in the order it declares them, at most
|
|
1696
|
+
200.
|
|
1697
|
+
properties:
|
|
1698
|
+
authors:
|
|
1699
|
+
items:
|
|
1700
|
+
$ref: "#/components/schemas/PortableAuthorDocument"
|
|
1701
|
+
maxItems: 200
|
|
1702
|
+
type: array
|
|
1703
|
+
navigation:
|
|
1704
|
+
description: The `gala/navigation.json` document, validated against its schema; `null` when the file is absent or invalid.
|
|
1705
|
+
oneOf:
|
|
1706
|
+
- $ref: "#/components/schemas/PortableNavigationDocument"
|
|
1707
|
+
- type: "null"
|
|
1708
|
+
publication:
|
|
1709
|
+
description: The `gala/publication.json` document, validated against its schema; `null` when the file is absent or invalid.
|
|
1710
|
+
oneOf:
|
|
1711
|
+
- $ref: "#/components/schemas/PortablePublicationDocument"
|
|
1712
|
+
- type: "null"
|
|
1713
|
+
revision:
|
|
1714
|
+
pattern: ^(?:sha1:[0-9a-f]{40}|sha256:[0-9a-f]{64})$
|
|
1715
|
+
type: string
|
|
1716
|
+
required:
|
|
1717
|
+
- revision
|
|
1718
|
+
- navigation
|
|
1719
|
+
- publication
|
|
1720
|
+
- authors
|
|
1721
|
+
type: object
|
|
1577
1722
|
ContentPublicationAuthorSummary:
|
|
1578
1723
|
additionalProperties: false
|
|
1579
1724
|
properties:
|
|
@@ -2231,6 +2376,24 @@ components:
|
|
|
2231
2376
|
type: string
|
|
2232
2377
|
expiresAt:
|
|
2233
2378
|
$ref: "#/components/schemas/PortableProblemRfc3339"
|
|
2379
|
+
galascribeManaged:
|
|
2380
|
+
additionalProperties: false
|
|
2381
|
+
description: |
|
|
2382
|
+
SCHEMA-3.30.0. Present when Galascribe owns the DNS records of this
|
|
2383
|
+
domain, so the person is never asked to add records and a client
|
|
2384
|
+
shows the steps as "Galascribe is setting this up". Absent for a
|
|
2385
|
+
domain the person brought. `GALASCRIBE_ADDRESS`: a free
|
|
2386
|
+
`name.galascribe.com` address (Basic and Pro). `INCLUDED_DOMAIN`: the
|
|
2387
|
+
domain registered for the organization with its plan (Pro).
|
|
2388
|
+
properties:
|
|
2389
|
+
kind:
|
|
2390
|
+
enum:
|
|
2391
|
+
- GALASCRIBE_ADDRESS
|
|
2392
|
+
- INCLUDED_DOMAIN
|
|
2393
|
+
type: string
|
|
2394
|
+
required:
|
|
2395
|
+
- kind
|
|
2396
|
+
type: object
|
|
2234
2397
|
hostname:
|
|
2235
2398
|
description: Lower-case ASCII (IDNA) hostname.
|
|
2236
2399
|
maxLength: 253
|
|
@@ -2427,6 +2590,182 @@ components:
|
|
|
2427
2590
|
- code
|
|
2428
2591
|
- detail
|
|
2429
2592
|
type: object
|
|
2593
|
+
DomainRegistrant:
|
|
2594
|
+
additionalProperties: false
|
|
2595
|
+
description: The person or business that will own the domain. Sent to the registrar and never stored, logged or returned by Galascribe (write-only).
|
|
2596
|
+
properties:
|
|
2597
|
+
address:
|
|
2598
|
+
$ref: "#/components/schemas/DomainRegistrationAddress"
|
|
2599
|
+
email:
|
|
2600
|
+
format: email
|
|
2601
|
+
maxLength: 254
|
|
2602
|
+
minLength: 3
|
|
2603
|
+
type: string
|
|
2604
|
+
name:
|
|
2605
|
+
maxLength: 200
|
|
2606
|
+
minLength: 1
|
|
2607
|
+
type: string
|
|
2608
|
+
organization:
|
|
2609
|
+
description: The business name, when the owner is a business.
|
|
2610
|
+
maxLength: 200
|
|
2611
|
+
minLength: 1
|
|
2612
|
+
type: string
|
|
2613
|
+
phone:
|
|
2614
|
+
description: Country code and number in the form `+1.5555555555`.
|
|
2615
|
+
pattern: ^\+[0-9]{1,3}\.[0-9]{4,14}$
|
|
2616
|
+
type: string
|
|
2617
|
+
required:
|
|
2618
|
+
- name
|
|
2619
|
+
- email
|
|
2620
|
+
- phone
|
|
2621
|
+
- address
|
|
2622
|
+
type: object
|
|
2623
|
+
DomainRegistration:
|
|
2624
|
+
additionalProperties: false
|
|
2625
|
+
description: "SCHEMA-3.30.0: the registration of an included domain. The registrant is never part of it."
|
|
2626
|
+
properties:
|
|
2627
|
+
createdAt:
|
|
2628
|
+
$ref: "#/components/schemas/PortableProblemRfc3339"
|
|
2629
|
+
domainId:
|
|
2630
|
+
description: The domain binding once the site uses the domain (`ATTACHED`).
|
|
2631
|
+
format: uuid
|
|
2632
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
2633
|
+
type: string
|
|
2634
|
+
domainName:
|
|
2635
|
+
maxLength: 253
|
|
2636
|
+
minLength: 1
|
|
2637
|
+
pattern: ^[a-z0-9](?:[a-z0-9.-]{0,251}[a-z0-9])?$
|
|
2638
|
+
type: string
|
|
2639
|
+
failure:
|
|
2640
|
+
additionalProperties: false
|
|
2641
|
+
description: Present for `FAILED` and `ACTION_REQUIRED`.
|
|
2642
|
+
properties:
|
|
2643
|
+
code:
|
|
2644
|
+
description: A short machine-readable reason.
|
|
2645
|
+
maxLength: 100
|
|
2646
|
+
minLength: 1
|
|
2647
|
+
type: string
|
|
2648
|
+
detail:
|
|
2649
|
+
description: A plain sentence for the person.
|
|
2650
|
+
maxLength: 500
|
|
2651
|
+
minLength: 1
|
|
2652
|
+
type: string
|
|
2653
|
+
required:
|
|
2654
|
+
- code
|
|
2655
|
+
- detail
|
|
2656
|
+
type: object
|
|
2657
|
+
registrationId:
|
|
2658
|
+
format: uuid
|
|
2659
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
2660
|
+
type: string
|
|
2661
|
+
state:
|
|
2662
|
+
$ref: "#/components/schemas/DomainRegistrationState"
|
|
2663
|
+
updatedAt:
|
|
2664
|
+
$ref: "#/components/schemas/PortableProblemRfc3339"
|
|
2665
|
+
required:
|
|
2666
|
+
- registrationId
|
|
2667
|
+
- domainName
|
|
2668
|
+
- state
|
|
2669
|
+
- createdAt
|
|
2670
|
+
- updatedAt
|
|
2671
|
+
type: object
|
|
2672
|
+
DomainRegistrationAddress:
|
|
2673
|
+
additionalProperties: false
|
|
2674
|
+
properties:
|
|
2675
|
+
city:
|
|
2676
|
+
maxLength: 100
|
|
2677
|
+
minLength: 1
|
|
2678
|
+
type: string
|
|
2679
|
+
countryCode:
|
|
2680
|
+
description: ISO 3166-1 alpha-2, upper case.
|
|
2681
|
+
pattern: ^[A-Z]{2}$
|
|
2682
|
+
type: string
|
|
2683
|
+
postalCode:
|
|
2684
|
+
maxLength: 20
|
|
2685
|
+
minLength: 1
|
|
2686
|
+
type: string
|
|
2687
|
+
region:
|
|
2688
|
+
description: State or province (the region), when the country has them.
|
|
2689
|
+
maxLength: 100
|
|
2690
|
+
minLength: 1
|
|
2691
|
+
type: string
|
|
2692
|
+
street:
|
|
2693
|
+
maxLength: 200
|
|
2694
|
+
minLength: 1
|
|
2695
|
+
type: string
|
|
2696
|
+
required:
|
|
2697
|
+
- street
|
|
2698
|
+
- city
|
|
2699
|
+
- postalCode
|
|
2700
|
+
- countryCode
|
|
2701
|
+
type: object
|
|
2702
|
+
DomainRegistrationCheck:
|
|
2703
|
+
additionalProperties: false
|
|
2704
|
+
description: "SCHEMA-3.30.0: whether a name can be registered as the included domain. It carries no price: the domain is included in the plan."
|
|
2705
|
+
properties:
|
|
2706
|
+
name:
|
|
2707
|
+
description: The name that was checked, as Galascribe read it.
|
|
2708
|
+
maxLength: 253
|
|
2709
|
+
minLength: 1
|
|
2710
|
+
type: string
|
|
2711
|
+
reason:
|
|
2712
|
+
$ref: "#/components/schemas/DomainRegistrationCheckReason"
|
|
2713
|
+
description: Why the name cannot be registered. Absent when `registrable` is true.
|
|
2714
|
+
registrable:
|
|
2715
|
+
type: boolean
|
|
2716
|
+
required:
|
|
2717
|
+
- name
|
|
2718
|
+
- registrable
|
|
2719
|
+
type: object
|
|
2720
|
+
DomainRegistrationCheckReason:
|
|
2721
|
+
description: "`UNAVAILABLE`: already registered. `EXTENSION_NOT_SUPPORTED`: Galascribe cannot register that ending. `PREMIUM`: a premium name. `OVER_PRICE_CAP`: the first-year price is above what the included domain covers. `INVALID_NAME`: not a usable domain name. `PLAN_REQUIRED`: the plan has no included domain. `ALREADY_USED`: the organization already used its included domain. `NOT_CONFIGURED`: registration is not set up on this deployment."
|
|
2722
|
+
enum:
|
|
2723
|
+
- UNAVAILABLE
|
|
2724
|
+
- EXTENSION_NOT_SUPPORTED
|
|
2725
|
+
- PREMIUM
|
|
2726
|
+
- OVER_PRICE_CAP
|
|
2727
|
+
- INVALID_NAME
|
|
2728
|
+
- PLAN_REQUIRED
|
|
2729
|
+
- ALREADY_USED
|
|
2730
|
+
- NOT_CONFIGURED
|
|
2731
|
+
type: string
|
|
2732
|
+
DomainRegistrationCreate:
|
|
2733
|
+
additionalProperties: false
|
|
2734
|
+
description: "SCHEMA-3.30.0: register the included domain."
|
|
2735
|
+
properties:
|
|
2736
|
+
domainName:
|
|
2737
|
+
description: The domain to register, for example `mayawrites.com`.
|
|
2738
|
+
maxLength: 253
|
|
2739
|
+
minLength: 1
|
|
2740
|
+
type: string
|
|
2741
|
+
registrant:
|
|
2742
|
+
$ref: "#/components/schemas/DomainRegistrant"
|
|
2743
|
+
required:
|
|
2744
|
+
- domainName
|
|
2745
|
+
- registrant
|
|
2746
|
+
type: object
|
|
2747
|
+
DomainRegistrationList:
|
|
2748
|
+
additionalProperties: false
|
|
2749
|
+
properties:
|
|
2750
|
+
items:
|
|
2751
|
+
items:
|
|
2752
|
+
$ref: "#/components/schemas/DomainRegistration"
|
|
2753
|
+
maxItems: 20
|
|
2754
|
+
minItems: 0
|
|
2755
|
+
type: array
|
|
2756
|
+
required:
|
|
2757
|
+
- items
|
|
2758
|
+
type: object
|
|
2759
|
+
DomainRegistrationState:
|
|
2760
|
+
description: "`REQUESTED`: accepted, not started. `REGISTERING`: the registrar is registering the name. `ACTION_REQUIRED`: the registrar needs something Galascribe cannot do alone; the person may ask for help. `REGISTERED`: the name is bought and the site does not use it yet. `ATTACHED`: the site uses it; `domainId` names the binding. `FAILED`: registration did not happen; `failure` says why."
|
|
2761
|
+
enum:
|
|
2762
|
+
- REQUESTED
|
|
2763
|
+
- REGISTERING
|
|
2764
|
+
- ACTION_REQUIRED
|
|
2765
|
+
- REGISTERED
|
|
2766
|
+
- ATTACHED
|
|
2767
|
+
- FAILED
|
|
2768
|
+
type: string
|
|
2430
2769
|
DomainRouting:
|
|
2431
2770
|
additionalProperties: false
|
|
2432
2771
|
properties:
|
|
@@ -2560,6 +2899,42 @@ components:
|
|
|
2560
2899
|
- displayName
|
|
2561
2900
|
- followedAt
|
|
2562
2901
|
type: object
|
|
2902
|
+
GalascribeAddressCheck:
|
|
2903
|
+
additionalProperties: false
|
|
2904
|
+
description: "SCHEMA-3.30.0: whether a label can become the site's Galascribe address."
|
|
2905
|
+
properties:
|
|
2906
|
+
available:
|
|
2907
|
+
type: boolean
|
|
2908
|
+
hostname:
|
|
2909
|
+
description: The full address, when the label is well formed.
|
|
2910
|
+
maxLength: 253
|
|
2911
|
+
minLength: 1
|
|
2912
|
+
pattern: ^[a-z0-9](?:[a-z0-9.-]{0,251}[a-z0-9])?$
|
|
2913
|
+
type: string
|
|
2914
|
+
label:
|
|
2915
|
+
$ref: "#/components/schemas/GalascribeAddressLabel"
|
|
2916
|
+
reason:
|
|
2917
|
+
$ref: "#/components/schemas/GalascribeAddressReason"
|
|
2918
|
+
description: Why the label cannot be used. Absent when `available` is true.
|
|
2919
|
+
required:
|
|
2920
|
+
- label
|
|
2921
|
+
- available
|
|
2922
|
+
type: object
|
|
2923
|
+
GalascribeAddressLabel:
|
|
2924
|
+
description: "The part before `.galascribe.com`: 3 to 63 lowercase letters, digits and hyphens, not starting or ending with a hyphen. A label that is not usable is answered by the check as `INVALID`."
|
|
2925
|
+
maxLength: 63
|
|
2926
|
+
minLength: 1
|
|
2927
|
+
type: string
|
|
2928
|
+
GalascribeAddressReason:
|
|
2929
|
+
description: "`INVALID`: not a usable label. `RESERVED`: a name Galascribe keeps for itself. `TAKEN`: another site has it or something already exists at that name. `PLAN_REQUIRED`: the plan has no Galascribe address. `NOT_CONFIGURED`: not set up on this deployment. `ALREADY_HAS_DOMAIN`: the site already has a domain that is not detached."
|
|
2930
|
+
enum:
|
|
2931
|
+
- INVALID
|
|
2932
|
+
- RESERVED
|
|
2933
|
+
- TAKEN
|
|
2934
|
+
- PLAN_REQUIRED
|
|
2935
|
+
- NOT_CONFIGURED
|
|
2936
|
+
- ALREADY_HAS_DOMAIN
|
|
2937
|
+
type: string
|
|
2563
2938
|
GetClaimsByTokenResponse:
|
|
2564
2939
|
additionalProperties: false
|
|
2565
2940
|
properties:
|
|
@@ -3040,6 +3415,8 @@ components:
|
|
|
3040
3415
|
- items
|
|
3041
3416
|
- hasMore
|
|
3042
3417
|
type: object
|
|
3418
|
+
GetOrganizationsByOrganizationIdPlanResponse:
|
|
3419
|
+
$ref: "#/components/schemas/OrganizationPlan"
|
|
3043
3420
|
GetOrganizationsByOrganizationIdPublicationImportsByImportIdResponse:
|
|
3044
3421
|
allOf:
|
|
3045
3422
|
- $ref: "#/components/schemas/PublicationImport"
|
|
@@ -3193,6 +3570,8 @@ components:
|
|
|
3193
3570
|
- catalog
|
|
3194
3571
|
- openChange
|
|
3195
3572
|
type: object
|
|
3573
|
+
GetOrganizationsByOrganizationIdPublicationsByPublicationIdAssistanceRequestsResponse:
|
|
3574
|
+
$ref: "#/components/schemas/AssistanceRequestList"
|
|
3196
3575
|
GetOrganizationsByOrganizationIdPublicationsByPublicationIdContactFormSettingsResponse:
|
|
3197
3576
|
$ref: "#/components/schemas/ContactFormSettings"
|
|
3198
3577
|
GetOrganizationsByOrganizationIdPublicationsByPublicationIdContactMessagesResponse:
|
|
@@ -3250,6 +3629,8 @@ components:
|
|
|
3250
3629
|
- body
|
|
3251
3630
|
- digest
|
|
3252
3631
|
type: object
|
|
3632
|
+
GetOrganizationsByOrganizationIdPublicationsByPublicationIdContentPreviewContextResponse:
|
|
3633
|
+
$ref: "#/components/schemas/ContentPreviewContext"
|
|
3253
3634
|
GetOrganizationsByOrganizationIdPublicationsByPublicationIdContentResponse:
|
|
3254
3635
|
additionalProperties: false
|
|
3255
3636
|
allOf:
|
|
@@ -3553,6 +3934,10 @@ components:
|
|
|
3553
3934
|
- version
|
|
3554
3935
|
- state
|
|
3555
3936
|
type: object
|
|
3937
|
+
GetOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrationsByRegistrationIdResponse:
|
|
3938
|
+
$ref: "#/components/schemas/DomainRegistration"
|
|
3939
|
+
GetOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrationsResponse:
|
|
3940
|
+
$ref: "#/components/schemas/DomainRegistrationList"
|
|
3556
3941
|
GetOrganizationsByOrganizationIdPublicationsByPublicationIdDomainsByDomainIdDnsConnectionsByConnectionIdResponse:
|
|
3557
3942
|
allOf:
|
|
3558
3943
|
- $ref: "#/components/schemas/DnsConnection"
|
|
@@ -4146,6 +4531,8 @@ components:
|
|
|
4146
4531
|
type: object
|
|
4147
4532
|
GetOrganizationsByOrganizationIdPublicationsByPublicationIdSharingSettingsResponse:
|
|
4148
4533
|
$ref: "#/components/schemas/SharingSettings"
|
|
4534
|
+
GetOrganizationsByOrganizationIdPublicationsByPublicationIdSiteHostingCheckResponse:
|
|
4535
|
+
$ref: "#/components/schemas/SiteHostingCheck"
|
|
4149
4536
|
GetOrganizationsByOrganizationIdPublicationsByPublicationIdSiteResponse:
|
|
4150
4537
|
additionalProperties: false
|
|
4151
4538
|
allOf:
|
|
@@ -4491,6 +4878,8 @@ components:
|
|
|
4491
4878
|
required:
|
|
4492
4879
|
- items
|
|
4493
4880
|
type: object
|
|
4881
|
+
GetPlatformAssistanceRequestsResponse:
|
|
4882
|
+
$ref: "#/components/schemas/PlatformAssistanceRequestPage"
|
|
4494
4883
|
GetPlatformAuditEventsResponse:
|
|
4495
4884
|
additionalProperties: false
|
|
4496
4885
|
allOf:
|
|
@@ -5786,6 +6175,103 @@ components:
|
|
|
5786
6175
|
- reasonCode
|
|
5787
6176
|
- retryable
|
|
5788
6177
|
type: object
|
|
6178
|
+
HostingFinding:
|
|
6179
|
+
additionalProperties: false
|
|
6180
|
+
description: "SCHEMA-3.30.0: one thing the hosting check found. There is at most one finding per `code`."
|
|
6181
|
+
properties:
|
|
6182
|
+
bytes:
|
|
6183
|
+
description: "The measured size in bytes for a size finding: the total for the site and media findings, the largest file for the file findings."
|
|
6184
|
+
format: int64
|
|
6185
|
+
minimum: 0
|
|
6186
|
+
type: integer
|
|
6187
|
+
code:
|
|
6188
|
+
$ref: "#/components/schemas/HostingFindingCode"
|
|
6189
|
+
items:
|
|
6190
|
+
description: Up to 20 of the files or pages concerned, largest or first found first. `pathCount` is the full number.
|
|
6191
|
+
items:
|
|
6192
|
+
$ref: "#/components/schemas/HostingFindingItem"
|
|
6193
|
+
maxItems: 20
|
|
6194
|
+
type: array
|
|
6195
|
+
limitBytes:
|
|
6196
|
+
description: The threshold in bytes the finding is measured against, for a size finding.
|
|
6197
|
+
format: int64
|
|
6198
|
+
minimum: 0
|
|
6199
|
+
type: integer
|
|
6200
|
+
pathCount:
|
|
6201
|
+
description: How many files or pages the finding concerns in all.
|
|
6202
|
+
format: int64
|
|
6203
|
+
minimum: 0
|
|
6204
|
+
type: integer
|
|
6205
|
+
severity:
|
|
6206
|
+
$ref: "#/components/schemas/HostingFindingSeverity"
|
|
6207
|
+
signals:
|
|
6208
|
+
description: What made a `COMMERCE_PAGE` or `SENSITIVE_FORM` finding fire. Absent for other codes.
|
|
6209
|
+
items:
|
|
6210
|
+
$ref: "#/components/schemas/HostingFindingSignal"
|
|
6211
|
+
maxItems: 5
|
|
6212
|
+
type: array
|
|
6213
|
+
uniqueItems: true
|
|
6214
|
+
required:
|
|
6215
|
+
- code
|
|
6216
|
+
- severity
|
|
6217
|
+
- items
|
|
6218
|
+
- pathCount
|
|
6219
|
+
type: object
|
|
6220
|
+
HostingFindingCode:
|
|
6221
|
+
description: "`SITE_OVER_SIZE_LIMIT`: the published files add up to 1 GiB or more, the most GitHub Pages serves. `SITE_NEAR_SIZE_LIMIT`: they add up to 800 MiB or more. `FILE_OVER_SIZE_LIMIT`: one file is 100 MiB or more, which GitHub refuses. `LARGE_FILE`: one file is 50 MiB or more, which GitHub warns about. `DIRECTORY_TOO_LARGE`: one folder holds more than 3,000 entries. `HEAVY_MEDIA`: images, audio, video and PDFs together are 500 MiB or more. `COMMERCE_PAGE`: a page links to a checkout and uses shop words, or is named like a shop, and GitHub does not allow sites that are mainly for selling. `SENSITIVE_FORM`: a page has a password or card-number field, and GitHub does not allow sending passwords or card numbers."
|
|
6222
|
+
enum:
|
|
6223
|
+
- SITE_OVER_SIZE_LIMIT
|
|
6224
|
+
- SITE_NEAR_SIZE_LIMIT
|
|
6225
|
+
- FILE_OVER_SIZE_LIMIT
|
|
6226
|
+
- LARGE_FILE
|
|
6227
|
+
- DIRECTORY_TOO_LARGE
|
|
6228
|
+
- HEAVY_MEDIA
|
|
6229
|
+
- COMMERCE_PAGE
|
|
6230
|
+
- SENSITIVE_FORM
|
|
6231
|
+
type: string
|
|
6232
|
+
HostingFindingItem:
|
|
6233
|
+
additionalProperties: false
|
|
6234
|
+
description: One file or page a finding is about.
|
|
6235
|
+
properties:
|
|
6236
|
+
bytes:
|
|
6237
|
+
description: The file size in bytes, for size findings.
|
|
6238
|
+
format: int64
|
|
6239
|
+
minimum: 0
|
|
6240
|
+
type: integer
|
|
6241
|
+
path:
|
|
6242
|
+
description: The path in the site's repository.
|
|
6243
|
+
maxLength: 1024
|
|
6244
|
+
minLength: 1
|
|
6245
|
+
type: string
|
|
6246
|
+
title:
|
|
6247
|
+
description: The page's title, when it has one.
|
|
6248
|
+
maxLength: 300
|
|
6249
|
+
minLength: 1
|
|
6250
|
+
type: string
|
|
6251
|
+
required:
|
|
6252
|
+
- path
|
|
6253
|
+
type: object
|
|
6254
|
+
HostingFindingSeverity:
|
|
6255
|
+
description: "`LIMIT`: GitHub will refuse the deploy or stop serving the site. `WARNING`: a risk that does not stop publishing."
|
|
6256
|
+
enum:
|
|
6257
|
+
- LIMIT
|
|
6258
|
+
- WARNING
|
|
6259
|
+
type: string
|
|
6260
|
+
HostingFindingSignal:
|
|
6261
|
+
description: 'What made a `COMMERCE_PAGE` or `SENSITIVE_FORM` finding fire. `CHECKOUT_LINK`: a link to a known checkout or payment host. `SHOP_WORDS`: words such as "add to cart" or "buy now". `SHOP_ADDRESS`: a page address or title such as shop, store, cart or checkout. `PASSWORD_FIELD`: a password input in raw HTML. `CARD_FIELD`: a card-number or security-code input in raw HTML.'
|
|
6262
|
+
enum:
|
|
6263
|
+
- CHECKOUT_LINK
|
|
6264
|
+
- SHOP_WORDS
|
|
6265
|
+
- SHOP_ADDRESS
|
|
6266
|
+
- PASSWORD_FIELD
|
|
6267
|
+
- CARD_FIELD
|
|
6268
|
+
type: string
|
|
6269
|
+
HostingOffer:
|
|
6270
|
+
description: "`UPGRADE`: the Free plan can move to a paid plan, which includes Galascribe hosting. `REQUEST_GALASCRIBE_HOSTING`: a paid plan can ask Galascribe to host what GitHub does not allow."
|
|
6271
|
+
enum:
|
|
6272
|
+
- UPGRADE
|
|
6273
|
+
- REQUEST_GALASCRIBE_HOSTING
|
|
6274
|
+
type: string
|
|
5789
6275
|
IncomingOwnerTransfer:
|
|
5790
6276
|
additionalProperties: false
|
|
5791
6277
|
description: A pending ownership transfer addressed to the caller. `consequenceDigest` is what `:accept` quotes back.
|
|
@@ -7813,11 +8299,67 @@ components:
|
|
|
7813
8299
|
- startedAt
|
|
7814
8300
|
type: object
|
|
7815
8301
|
OrganizationKind:
|
|
7816
|
-
description: "`SINGLE`: a personal
|
|
8302
|
+
description: "`SINGLE`: a personal organization with one owner and no other members. It becomes `COLLABORATIVE` with its first invitation, on any plan (SCHEMA-3.30.0). `COLLABORATIVE`: an organization with members, roles and custom roles (SCHEMA-3.3.0)."
|
|
7817
8303
|
enum:
|
|
7818
8304
|
- SINGLE
|
|
7819
8305
|
- COLLABORATIVE
|
|
7820
8306
|
type: string
|
|
8307
|
+
OrganizationPlan:
|
|
8308
|
+
additionalProperties: false
|
|
8309
|
+
description: "SCHEMA-3.30.0: an organization's plan as the App needs it. `tier` is the API tier (`FREE`, `PRO`, `BUSINESS`); the plans are named Free, Basic and Pro in billing and in the App, so `PRO` is Basic and `BUSINESS` is Pro."
|
|
8310
|
+
properties:
|
|
8311
|
+
collaborators:
|
|
8312
|
+
additionalProperties: false
|
|
8313
|
+
description: How many people besides the owners the plan lets the organization have.
|
|
8314
|
+
properties:
|
|
8315
|
+
limit:
|
|
8316
|
+
description: The most collaborators the plan allows, or null when the plan has no limit.
|
|
8317
|
+
format: int64
|
|
8318
|
+
minimum: 0
|
|
8319
|
+
type:
|
|
8320
|
+
- integer
|
|
8321
|
+
- "null"
|
|
8322
|
+
used:
|
|
8323
|
+
description: Active members other than owners plus invitations still `PENDING`. An invitation counts from the moment it is sent.
|
|
8324
|
+
format: int64
|
|
8325
|
+
minimum: 0
|
|
8326
|
+
type: integer
|
|
8327
|
+
required:
|
|
8328
|
+
- limit
|
|
8329
|
+
- used
|
|
8330
|
+
type: object
|
|
8331
|
+
entitlements:
|
|
8332
|
+
additionalProperties: false
|
|
8333
|
+
description: What the plan includes. A client hides what is false and offers the upgrade.
|
|
8334
|
+
properties:
|
|
8335
|
+
galascribeAddress:
|
|
8336
|
+
description: A free `name.galascribe.com` address for a site (Basic and Pro).
|
|
8337
|
+
type: boolean
|
|
8338
|
+
galascribeHosting:
|
|
8339
|
+
description: Galascribe can host what GitHub Pages does not allow, on request (Basic and Pro).
|
|
8340
|
+
type: boolean
|
|
8341
|
+
includedDomain:
|
|
8342
|
+
description: One domain registered for the organization at no charge (Pro).
|
|
8343
|
+
type: boolean
|
|
8344
|
+
required:
|
|
8345
|
+
- galascribeAddress
|
|
8346
|
+
- includedDomain
|
|
8347
|
+
- galascribeHosting
|
|
8348
|
+
type: object
|
|
8349
|
+
galascribeAddressZone:
|
|
8350
|
+
description: The zone Galascribe addresses are created in, for example `galascribe.com`. Absent when Galascribe addresses are not configured on this deployment; a client then hides the option.
|
|
8351
|
+
maxLength: 253
|
|
8352
|
+
minLength: 1
|
|
8353
|
+
pattern: ^[a-z0-9](?:[a-z0-9.-]{0,251}[a-z0-9])?$
|
|
8354
|
+
type: string
|
|
8355
|
+
tier:
|
|
8356
|
+
$ref: "#/components/schemas/PlatformPlanKey"
|
|
8357
|
+
description: The plan tier.
|
|
8358
|
+
required:
|
|
8359
|
+
- tier
|
|
8360
|
+
- collaborators
|
|
8361
|
+
- entitlements
|
|
8362
|
+
type: object
|
|
7821
8363
|
OrganizationState:
|
|
7822
8364
|
enum:
|
|
7823
8365
|
- PROVISIONING
|
|
@@ -8404,6 +8946,114 @@ components:
|
|
|
8404
8946
|
- content:write
|
|
8405
8947
|
- publish
|
|
8406
8948
|
type: string
|
|
8949
|
+
PlatformAssistanceRequest:
|
|
8950
|
+
additionalProperties: false
|
|
8951
|
+
description: "SCHEMA-3.30.0: an assistance request with the organization and site it came from, for the platform operator."
|
|
8952
|
+
properties:
|
|
8953
|
+
closedAt:
|
|
8954
|
+
$ref: "#/components/schemas/PortableProblemRfc3339"
|
|
8955
|
+
description: When an operator closed the request. Absent while it is `OPEN`.
|
|
8956
|
+
createdAt:
|
|
8957
|
+
$ref: "#/components/schemas/PortableProblemRfc3339"
|
|
8958
|
+
domainName:
|
|
8959
|
+
description: The domain the request is about (`DOMAIN_REGISTRATION`, `DOMAIN_MOVE`). Absent for other kinds.
|
|
8960
|
+
maxLength: 253
|
|
8961
|
+
minLength: 1
|
|
8962
|
+
pattern: ^[a-z0-9](?:[a-z0-9.-]{0,251}[a-z0-9])?$
|
|
8963
|
+
type: string
|
|
8964
|
+
findingCodes:
|
|
8965
|
+
description: The hosting-check findings the request is about (`GALASCRIBE_HOSTING`). Absent for other kinds.
|
|
8966
|
+
items:
|
|
8967
|
+
$ref: "#/components/schemas/HostingFindingCode"
|
|
8968
|
+
maxItems: 8
|
|
8969
|
+
type: array
|
|
8970
|
+
uniqueItems: true
|
|
8971
|
+
kind:
|
|
8972
|
+
$ref: "#/components/schemas/AssistanceRequestKind"
|
|
8973
|
+
note:
|
|
8974
|
+
description: The person's note.
|
|
8975
|
+
maxLength: 1000
|
|
8976
|
+
type: string
|
|
8977
|
+
organizationId:
|
|
8978
|
+
format: uuid
|
|
8979
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
8980
|
+
type: string
|
|
8981
|
+
organizationName:
|
|
8982
|
+
maxLength: 200
|
|
8983
|
+
minLength: 1
|
|
8984
|
+
type: string
|
|
8985
|
+
publicationId:
|
|
8986
|
+
format: uuid
|
|
8987
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
8988
|
+
type: string
|
|
8989
|
+
publicationName:
|
|
8990
|
+
maxLength: 200
|
|
8991
|
+
minLength: 1
|
|
8992
|
+
type: string
|
|
8993
|
+
requestId:
|
|
8994
|
+
format: uuid
|
|
8995
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
8996
|
+
type: string
|
|
8997
|
+
requestedByLogin:
|
|
8998
|
+
description: The GitHub login of the person who asked.
|
|
8999
|
+
maxLength: 100
|
|
9000
|
+
minLength: 1
|
|
9001
|
+
type: string
|
|
9002
|
+
state:
|
|
9003
|
+
$ref: "#/components/schemas/AssistanceRequestState"
|
|
9004
|
+
required:
|
|
9005
|
+
- requestId
|
|
9006
|
+
- kind
|
|
9007
|
+
- state
|
|
9008
|
+
- createdAt
|
|
9009
|
+
- organizationId
|
|
9010
|
+
- organizationName
|
|
9011
|
+
- publicationId
|
|
9012
|
+
- publicationName
|
|
9013
|
+
- requestedByLogin
|
|
9014
|
+
type: object
|
|
9015
|
+
PlatformAssistanceRequestPage:
|
|
9016
|
+
additionalProperties: false
|
|
9017
|
+
allOf:
|
|
9018
|
+
- else:
|
|
9019
|
+
properties:
|
|
9020
|
+
nextCursor:
|
|
9021
|
+
type: "null"
|
|
9022
|
+
if:
|
|
9023
|
+
properties:
|
|
9024
|
+
hasMore:
|
|
9025
|
+
not:
|
|
9026
|
+
enum:
|
|
9027
|
+
- false
|
|
9028
|
+
type: boolean
|
|
9029
|
+
x-gala-const: true
|
|
9030
|
+
required:
|
|
9031
|
+
- hasMore
|
|
9032
|
+
then:
|
|
9033
|
+
properties:
|
|
9034
|
+
nextCursor:
|
|
9035
|
+
type: string
|
|
9036
|
+
required:
|
|
9037
|
+
- nextCursor
|
|
9038
|
+
properties:
|
|
9039
|
+
hasMore:
|
|
9040
|
+
type: boolean
|
|
9041
|
+
items:
|
|
9042
|
+
items:
|
|
9043
|
+
$ref: "#/components/schemas/PlatformAssistanceRequest"
|
|
9044
|
+
maxItems: 100
|
|
9045
|
+
type: array
|
|
9046
|
+
nextCursor:
|
|
9047
|
+
description: Opaque cursor for the next page. Present and non-null exactly when `hasMore` is true; absent or null when `hasMore` is false.
|
|
9048
|
+
maxLength: 2048
|
|
9049
|
+
minLength: 1
|
|
9050
|
+
type:
|
|
9051
|
+
- string
|
|
9052
|
+
- "null"
|
|
9053
|
+
required:
|
|
9054
|
+
- items
|
|
9055
|
+
- hasMore
|
|
9056
|
+
type: object
|
|
8407
9057
|
PlatformAuditEvent:
|
|
8408
9058
|
additionalProperties: false
|
|
8409
9059
|
description: "One audit event, redacted: identifiers and codes only, never request bodies or secrets."
|
|
@@ -8709,6 +9359,11 @@ components:
|
|
|
8709
9359
|
PlatformPlan:
|
|
8710
9360
|
additionalProperties: false
|
|
8711
9361
|
properties:
|
|
9362
|
+
collaboratorLimit:
|
|
9363
|
+
description: "SCHEMA-3.30.0, the collaborators (active members other than owners plus pending invitations) one organization on this plan may have; a further invitation is `409 PLAN_REQUIRED`. 0 means no limit. Defaults: FREE 1, PRO and BUSINESS no limit."
|
|
9364
|
+
format: int64
|
|
9365
|
+
minimum: 0
|
|
9366
|
+
type: integer
|
|
8712
9367
|
contactForm:
|
|
8713
9368
|
description: "SCHEMA-3.23.0, whether sites on this plan may turn on the contact form. A site on a plan without it sees the form locked, and enabling it is `409 PLAN_REQUIRED`. Defaults of the first release: FREE 50 and no contact form, PRO 500 and a contact form, BUSINESS 2000 and a contact form."
|
|
8714
9369
|
type: boolean
|
|
@@ -8732,6 +9387,7 @@ components:
|
|
|
8732
9387
|
- newsletterSubscriberLimit
|
|
8733
9388
|
- contactForm
|
|
8734
9389
|
- listen
|
|
9390
|
+
- collaboratorLimit
|
|
8735
9391
|
type: object
|
|
8736
9392
|
PlatformPlanCapacityRelease:
|
|
8737
9393
|
additionalProperties: false
|
|
@@ -9146,10 +9802,175 @@ components:
|
|
|
9146
9802
|
type: object
|
|
9147
9803
|
required: []
|
|
9148
9804
|
type: object
|
|
9805
|
+
PortableAuthorBcp47:
|
|
9806
|
+
description: Structurally valid canonical BCP-47 language tag.
|
|
9807
|
+
format: gala-bcp47
|
|
9808
|
+
maxLength: 255
|
|
9809
|
+
minLength: 1
|
|
9810
|
+
pattern: ^[A-Za-z0-9-]+$
|
|
9811
|
+
type: string
|
|
9812
|
+
x-gala-utf8ByteLength:
|
|
9813
|
+
maximum: 255
|
|
9814
|
+
minimum: 1
|
|
9815
|
+
PortableAuthorDocument:
|
|
9816
|
+
additionalProperties: false
|
|
9817
|
+
properties:
|
|
9818
|
+
avatarRef:
|
|
9819
|
+
$ref: "#/components/schemas/PortableAuthorRepoRelativePath"
|
|
9820
|
+
biography:
|
|
9821
|
+
$ref: "#/components/schemas/PortableAuthorPlainText"
|
|
9822
|
+
x-gala-graphemeLength:
|
|
9823
|
+
maximum: 2000
|
|
9824
|
+
minimum: 0
|
|
9825
|
+
displayName:
|
|
9826
|
+
$ref: "#/components/schemas/PortableAuthorPlainText"
|
|
9827
|
+
x-gala-graphemeLength:
|
|
9828
|
+
maximum: 120
|
|
9829
|
+
minimum: 1
|
|
9830
|
+
extensions:
|
|
9831
|
+
$ref: "#/components/schemas/PortableAuthorExtensionMap"
|
|
9832
|
+
id:
|
|
9833
|
+
$ref: "#/components/schemas/PortableAuthorStableId"
|
|
9834
|
+
links:
|
|
9835
|
+
items:
|
|
9836
|
+
$ref: "#/components/schemas/PortableAuthorSocialLink"
|
|
9837
|
+
maxItems: 32
|
|
9838
|
+
minItems: 0
|
|
9839
|
+
type: array
|
|
9840
|
+
localized:
|
|
9841
|
+
items:
|
|
9842
|
+
$ref: "#/components/schemas/PortableAuthorLocalizedAuthor"
|
|
9843
|
+
maxItems: 32
|
|
9844
|
+
minItems: 0
|
|
9845
|
+
type: array
|
|
9846
|
+
pronouns:
|
|
9847
|
+
$ref: "#/components/schemas/PortableAuthorPlainText"
|
|
9848
|
+
x-gala-graphemeLength:
|
|
9849
|
+
maximum: 80
|
|
9850
|
+
minimum: 1
|
|
9851
|
+
schemaId:
|
|
9852
|
+
pattern: ^urn:gala:schema:author:2\.0\.0$
|
|
9853
|
+
type: string
|
|
9854
|
+
x-gala-const: urn:gala:schema:author:2.0.0
|
|
9855
|
+
schemaVersion:
|
|
9856
|
+
pattern: ^2\.0\.0$
|
|
9857
|
+
type: string
|
|
9858
|
+
x-gala-const: 2.0.0
|
|
9859
|
+
required:
|
|
9860
|
+
- schemaId
|
|
9861
|
+
- schemaVersion
|
|
9862
|
+
- id
|
|
9863
|
+
- displayName
|
|
9864
|
+
- biography
|
|
9865
|
+
- links
|
|
9866
|
+
- localized
|
|
9867
|
+
- extensions
|
|
9868
|
+
title: Gala author contract
|
|
9869
|
+
type: object
|
|
9870
|
+
PortableAuthorExtensionKey:
|
|
9871
|
+
description: Reverse-DNS extension namespace that cannot shadow a core key.
|
|
9872
|
+
format: gala-extension-key
|
|
9873
|
+
type: string
|
|
9874
|
+
PortableAuthorExtensionMap:
|
|
9875
|
+
additionalProperties:
|
|
9876
|
+
x-gala-maxCanonicalBytes: 16384
|
|
9877
|
+
maxProperties: 32
|
|
9878
|
+
propertyNames:
|
|
9879
|
+
$ref: "#/components/schemas/PortableAuthorExtensionKey"
|
|
9880
|
+
type: object
|
|
9881
|
+
x-gala-maxCanonicalBytes: 131072
|
|
9882
|
+
PortableAuthorLocalizedAuthor:
|
|
9883
|
+
additionalProperties: false
|
|
9884
|
+
properties:
|
|
9885
|
+
biography:
|
|
9886
|
+
$ref: "#/components/schemas/PortableAuthorPlainText"
|
|
9887
|
+
x-gala-graphemeLength:
|
|
9888
|
+
maximum: 2000
|
|
9889
|
+
minimum: 0
|
|
9890
|
+
displayName:
|
|
9891
|
+
$ref: "#/components/schemas/PortableAuthorPlainText"
|
|
9892
|
+
x-gala-graphemeLength:
|
|
9893
|
+
maximum: 120
|
|
9894
|
+
minimum: 1
|
|
9895
|
+
language:
|
|
9896
|
+
$ref: "#/components/schemas/PortableAuthorBcp47"
|
|
9897
|
+
required:
|
|
9898
|
+
- language
|
|
9899
|
+
- displayName
|
|
9900
|
+
- biography
|
|
9901
|
+
type: object
|
|
9902
|
+
PortableAuthorPlainLabel:
|
|
9903
|
+
description: Normalized Unicode plain text without markup, controls, or bidi overrides.
|
|
9904
|
+
format: gala-plain-label
|
|
9905
|
+
type: string
|
|
9906
|
+
x-gala-graphemeLength:
|
|
9907
|
+
maximum: 80
|
|
9908
|
+
minimum: 1
|
|
9149
9909
|
PortableAuthorPlainText:
|
|
9150
9910
|
description: NFC Unicode text without disallowed C0/C1 controls or bidi override/isolate controls.
|
|
9151
9911
|
format: gala-plain-text
|
|
9152
9912
|
type: string
|
|
9913
|
+
PortableAuthorRepoRelativePath:
|
|
9914
|
+
description: NFC UTF-8 repository-relative path using slash separators, with no leading slash, dot segment, NUL, backslash, or percent-decoded traversal.
|
|
9915
|
+
format: gala-repository-relative-path
|
|
9916
|
+
maxLength: 512
|
|
9917
|
+
minLength: 1
|
|
9918
|
+
pattern: ^(?!/)(?!.*\\)(?!.*\u0000).+$
|
|
9919
|
+
type: string
|
|
9920
|
+
x-gala-utf8ByteLength:
|
|
9921
|
+
maximum: 512
|
|
9922
|
+
PortableAuthorSocialLink:
|
|
9923
|
+
additionalProperties: false
|
|
9924
|
+
allOf:
|
|
9925
|
+
- else:
|
|
9926
|
+
properties:
|
|
9927
|
+
uri:
|
|
9928
|
+
$ref: "#/components/schemas/PortableAuthorUrlHttps"
|
|
9929
|
+
if:
|
|
9930
|
+
properties:
|
|
9931
|
+
type:
|
|
9932
|
+
pattern: ^email$
|
|
9933
|
+
type: string
|
|
9934
|
+
x-gala-const: email
|
|
9935
|
+
required:
|
|
9936
|
+
- type
|
|
9937
|
+
then:
|
|
9938
|
+
properties:
|
|
9939
|
+
uri:
|
|
9940
|
+
format: uri
|
|
9941
|
+
pattern: "^mailto:"
|
|
9942
|
+
type: string
|
|
9943
|
+
properties:
|
|
9944
|
+
label:
|
|
9945
|
+
$ref: "#/components/schemas/PortableAuthorPlainLabel"
|
|
9946
|
+
type:
|
|
9947
|
+
enum:
|
|
9948
|
+
- website
|
|
9949
|
+
- email
|
|
9950
|
+
- github
|
|
9951
|
+
- linkedin
|
|
9952
|
+
- mastodon
|
|
9953
|
+
- bluesky
|
|
9954
|
+
- x
|
|
9955
|
+
- youtube
|
|
9956
|
+
- other
|
|
9957
|
+
uri:
|
|
9958
|
+
maxLength: 2048
|
|
9959
|
+
minLength: 1
|
|
9960
|
+
type: string
|
|
9961
|
+
required:
|
|
9962
|
+
- type
|
|
9963
|
+
- uri
|
|
9964
|
+
type: object
|
|
9965
|
+
PortableAuthorStableId:
|
|
9966
|
+
description: Lowercase canonical UUIDv7. Once published, it is immutable; its time ordering conveys neither chronology nor authority.
|
|
9967
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
9968
|
+
type: string
|
|
9969
|
+
PortableAuthorUrlHttps:
|
|
9970
|
+
description: Absolute HTTPS URL without embedded credentials.
|
|
9971
|
+
format: uri
|
|
9972
|
+
pattern: ^https://(?![^/?#]*@)
|
|
9973
|
+
type: string
|
|
9153
9974
|
PortableContentFrontmatterBcp47:
|
|
9154
9975
|
description: Structurally valid canonical BCP-47 language tag.
|
|
9155
9976
|
format: gala-bcp47
|
|
@@ -15009,6 +15830,159 @@ components:
|
|
|
15009
15830
|
- kind
|
|
15010
15831
|
- token
|
|
15011
15832
|
type: object
|
|
15833
|
+
PortableNavigationCanonicalRoute:
|
|
15834
|
+
description: Absolute normalized route with no query, fragment, dot segment, double slash, or non-normalized percent encoding.
|
|
15835
|
+
format: gala-canonical-route
|
|
15836
|
+
minLength: 1
|
|
15837
|
+
pattern: ^/(?!/)(?!.*//)(?!.*[?#]).*$
|
|
15838
|
+
type: string
|
|
15839
|
+
PortableNavigationDocument:
|
|
15840
|
+
$comment: The navigation graph validator rejects duplicate normalized internal routes within each collection.
|
|
15841
|
+
additionalProperties: false
|
|
15842
|
+
properties:
|
|
15843
|
+
extensions:
|
|
15844
|
+
$ref: "#/components/schemas/PortableNavigationExtensionMap"
|
|
15845
|
+
footerItems:
|
|
15846
|
+
items:
|
|
15847
|
+
$ref: "#/components/schemas/PortableNavigationNavigationItem"
|
|
15848
|
+
maxItems: 50
|
|
15849
|
+
minItems: 0
|
|
15850
|
+
type: array
|
|
15851
|
+
items:
|
|
15852
|
+
items:
|
|
15853
|
+
$ref: "#/components/schemas/PortableNavigationNavigationItem"
|
|
15854
|
+
maxItems: 100
|
|
15855
|
+
minItems: 0
|
|
15856
|
+
type: array
|
|
15857
|
+
schemaId:
|
|
15858
|
+
pattern: ^urn:gala:schema:navigation:2\.0\.0$
|
|
15859
|
+
type: string
|
|
15860
|
+
x-gala-const: urn:gala:schema:navigation:2.0.0
|
|
15861
|
+
schemaVersion:
|
|
15862
|
+
pattern: ^2\.0\.0$
|
|
15863
|
+
type: string
|
|
15864
|
+
x-gala-const: 2.0.0
|
|
15865
|
+
required:
|
|
15866
|
+
- schemaId
|
|
15867
|
+
- schemaVersion
|
|
15868
|
+
- items
|
|
15869
|
+
- footerItems
|
|
15870
|
+
- extensions
|
|
15871
|
+
title: Gala navigation contract
|
|
15872
|
+
type: object
|
|
15873
|
+
PortableNavigationExtensionKey:
|
|
15874
|
+
description: Reverse-DNS extension namespace that cannot shadow a core key.
|
|
15875
|
+
format: gala-extension-key
|
|
15876
|
+
type: string
|
|
15877
|
+
PortableNavigationExtensionMap:
|
|
15878
|
+
additionalProperties:
|
|
15879
|
+
x-gala-maxCanonicalBytes: 16384
|
|
15880
|
+
maxProperties: 32
|
|
15881
|
+
propertyNames:
|
|
15882
|
+
$ref: "#/components/schemas/PortableNavigationExtensionKey"
|
|
15883
|
+
type: object
|
|
15884
|
+
x-gala-maxCanonicalBytes: 131072
|
|
15885
|
+
PortableNavigationNavigationItem:
|
|
15886
|
+
additionalProperties: false
|
|
15887
|
+
allOf:
|
|
15888
|
+
- else:
|
|
15889
|
+
not:
|
|
15890
|
+
required:
|
|
15891
|
+
- route
|
|
15892
|
+
required:
|
|
15893
|
+
- url
|
|
15894
|
+
if:
|
|
15895
|
+
properties:
|
|
15896
|
+
type:
|
|
15897
|
+
pattern: ^internal$
|
|
15898
|
+
type: string
|
|
15899
|
+
x-gala-const: internal
|
|
15900
|
+
required:
|
|
15901
|
+
- type
|
|
15902
|
+
then:
|
|
15903
|
+
not:
|
|
15904
|
+
required:
|
|
15905
|
+
- url
|
|
15906
|
+
required:
|
|
15907
|
+
- route
|
|
15908
|
+
properties:
|
|
15909
|
+
children:
|
|
15910
|
+
items:
|
|
15911
|
+
$ref: "#/components/schemas/PortableNavigationNavigationLeaf"
|
|
15912
|
+
maxItems: 20
|
|
15913
|
+
minItems: 0
|
|
15914
|
+
type: array
|
|
15915
|
+
label:
|
|
15916
|
+
$ref: "#/components/schemas/PortableNavigationPlainLabel"
|
|
15917
|
+
route:
|
|
15918
|
+
$ref: "#/components/schemas/PortableNavigationCanonicalRoute"
|
|
15919
|
+
type:
|
|
15920
|
+
enum:
|
|
15921
|
+
- internal
|
|
15922
|
+
- external
|
|
15923
|
+
url:
|
|
15924
|
+
$ref: "#/components/schemas/PortableNavigationUrlHttps"
|
|
15925
|
+
required:
|
|
15926
|
+
- type
|
|
15927
|
+
- label
|
|
15928
|
+
- children
|
|
15929
|
+
type: object
|
|
15930
|
+
PortableNavigationNavigationLeaf:
|
|
15931
|
+
additionalProperties: false
|
|
15932
|
+
allOf:
|
|
15933
|
+
- else:
|
|
15934
|
+
not:
|
|
15935
|
+
required:
|
|
15936
|
+
- route
|
|
15937
|
+
required:
|
|
15938
|
+
- url
|
|
15939
|
+
if:
|
|
15940
|
+
properties:
|
|
15941
|
+
type:
|
|
15942
|
+
pattern: ^internal$
|
|
15943
|
+
type: string
|
|
15944
|
+
x-gala-const: internal
|
|
15945
|
+
required:
|
|
15946
|
+
- type
|
|
15947
|
+
then:
|
|
15948
|
+
not:
|
|
15949
|
+
required:
|
|
15950
|
+
- url
|
|
15951
|
+
required:
|
|
15952
|
+
- route
|
|
15953
|
+
properties:
|
|
15954
|
+
children:
|
|
15955
|
+
maxItems: 0
|
|
15956
|
+
minItems: 0
|
|
15957
|
+
type: array
|
|
15958
|
+
x-gala-const: []
|
|
15959
|
+
label:
|
|
15960
|
+
$ref: "#/components/schemas/PortableNavigationPlainLabel"
|
|
15961
|
+
route:
|
|
15962
|
+
$ref: "#/components/schemas/PortableNavigationCanonicalRoute"
|
|
15963
|
+
type:
|
|
15964
|
+
enum:
|
|
15965
|
+
- internal
|
|
15966
|
+
- external
|
|
15967
|
+
url:
|
|
15968
|
+
$ref: "#/components/schemas/PortableNavigationUrlHttps"
|
|
15969
|
+
required:
|
|
15970
|
+
- type
|
|
15971
|
+
- label
|
|
15972
|
+
- children
|
|
15973
|
+
type: object
|
|
15974
|
+
PortableNavigationPlainLabel:
|
|
15975
|
+
description: Normalized Unicode plain text without markup, controls, or bidi overrides.
|
|
15976
|
+
format: gala-plain-label
|
|
15977
|
+
type: string
|
|
15978
|
+
x-gala-graphemeLength:
|
|
15979
|
+
maximum: 80
|
|
15980
|
+
minimum: 1
|
|
15981
|
+
PortableNavigationUrlHttps:
|
|
15982
|
+
description: Absolute HTTPS URL without embedded credentials.
|
|
15983
|
+
format: uri
|
|
15984
|
+
pattern: ^https://(?![^/?#]*@)
|
|
15985
|
+
type: string
|
|
15012
15986
|
PortableProblemCanonicalRoute:
|
|
15013
15987
|
description: Absolute normalized route with no query, fragment, dot segment, double slash, or non-normalized percent encoding.
|
|
15014
15988
|
format: gala-canonical-route
|
|
@@ -15216,6 +16190,33 @@ components:
|
|
|
15216
16190
|
x-gala-utf8ByteLength:
|
|
15217
16191
|
maximum: 255
|
|
15218
16192
|
minimum: 1
|
|
16193
|
+
PortablePublicationCanonicalRoute:
|
|
16194
|
+
description: Absolute normalized route with no query, fragment, dot segment, double slash, or non-normalized percent encoding.
|
|
16195
|
+
format: gala-canonical-route
|
|
16196
|
+
minLength: 1
|
|
16197
|
+
pattern: ^/(?!/)(?!.*//)(?!.*[?#]).*$
|
|
16198
|
+
type: string
|
|
16199
|
+
PortablePublicationContactForm:
|
|
16200
|
+
additionalProperties: false
|
|
16201
|
+
description: "SCHEMA-3.22.0: the site's contact form. `enabled` turns the form on, and the template renders the `/contact/` page only when it is true. `fields.website` and `fields.phone` add the optional Website and Phone inputs; name, email and message are always present. The intro text is not a member: it is the optional document `gala/theme-pages/contact.md`, and the template shows a default intro when it is absent. An absent `contactForm` means no form. The API, not the schema, limits the form to the Pro and Business plans."
|
|
16202
|
+
properties:
|
|
16203
|
+
enabled:
|
|
16204
|
+
type: boolean
|
|
16205
|
+
fields:
|
|
16206
|
+
additionalProperties: false
|
|
16207
|
+
properties:
|
|
16208
|
+
phone:
|
|
16209
|
+
type: boolean
|
|
16210
|
+
website:
|
|
16211
|
+
type: boolean
|
|
16212
|
+
required:
|
|
16213
|
+
- website
|
|
16214
|
+
- phone
|
|
16215
|
+
type: object
|
|
16216
|
+
required:
|
|
16217
|
+
- enabled
|
|
16218
|
+
- fields
|
|
16219
|
+
type: object
|
|
15219
16220
|
PortablePublicationCrawlers:
|
|
15220
16221
|
additionalProperties: false
|
|
15221
16222
|
properties:
|
|
@@ -15226,6 +16227,134 @@ components:
|
|
|
15226
16227
|
required:
|
|
15227
16228
|
- ai
|
|
15228
16229
|
type: object
|
|
16230
|
+
PortablePublicationDocument:
|
|
16231
|
+
additionalProperties: false
|
|
16232
|
+
properties:
|
|
16233
|
+
aiRights:
|
|
16234
|
+
$ref: "#/components/schemas/PortablePublicationAiRights"
|
|
16235
|
+
authors:
|
|
16236
|
+
items:
|
|
16237
|
+
$ref: "#/components/schemas/PortablePublicationRepoRelativePath"
|
|
16238
|
+
maxItems: 32
|
|
16239
|
+
minItems: 1
|
|
16240
|
+
type: array
|
|
16241
|
+
canonicalBase:
|
|
16242
|
+
$ref: "#/components/schemas/PortablePublicationUrlHttps"
|
|
16243
|
+
contactForm:
|
|
16244
|
+
$ref: "#/components/schemas/PortablePublicationContactForm"
|
|
16245
|
+
contactRef:
|
|
16246
|
+
$ref: "#/components/schemas/PortablePublicationRepoRelativePath"
|
|
16247
|
+
crawlers:
|
|
16248
|
+
$ref: "#/components/schemas/PortablePublicationCrawlers"
|
|
16249
|
+
defaultImageRef:
|
|
16250
|
+
$ref: "#/components/schemas/PortablePublicationRepoRelativePath"
|
|
16251
|
+
defaultLanguage:
|
|
16252
|
+
$ref: "#/components/schemas/PortablePublicationBcp47"
|
|
16253
|
+
description:
|
|
16254
|
+
$ref: "#/components/schemas/PortablePublicationPlainText"
|
|
16255
|
+
x-gala-graphemeLength:
|
|
16256
|
+
maximum: 500
|
|
16257
|
+
minimum: 1
|
|
16258
|
+
extensions:
|
|
16259
|
+
$ref: "#/components/schemas/PortablePublicationExtensionMap"
|
|
16260
|
+
footerCard:
|
|
16261
|
+
$ref: "#/components/schemas/PortablePublicationFooterCard"
|
|
16262
|
+
id:
|
|
16263
|
+
$ref: "#/components/schemas/PortablePublicationStableId"
|
|
16264
|
+
listen:
|
|
16265
|
+
$ref: "#/components/schemas/PortablePublicationListen"
|
|
16266
|
+
listing:
|
|
16267
|
+
$ref: "#/components/schemas/PortablePublicationListing"
|
|
16268
|
+
newsletter:
|
|
16269
|
+
$ref: "#/components/schemas/PortablePublicationNewsletter"
|
|
16270
|
+
performance:
|
|
16271
|
+
$ref: "#/components/schemas/PortablePublicationPerformance"
|
|
16272
|
+
policies:
|
|
16273
|
+
$ref: "#/components/schemas/PortablePublicationPublicationPolicies"
|
|
16274
|
+
profile:
|
|
16275
|
+
$ref: "#/components/schemas/PortablePublicationPublicationProfile"
|
|
16276
|
+
schemaId:
|
|
16277
|
+
pattern: ^urn:gala:schema:publication:2\.0\.0$
|
|
16278
|
+
type: string
|
|
16279
|
+
x-gala-const: urn:gala:schema:publication:2.0.0
|
|
16280
|
+
schemaVersion:
|
|
16281
|
+
pattern: ^2\.0\.0$
|
|
16282
|
+
type: string
|
|
16283
|
+
x-gala-const: 2.0.0
|
|
16284
|
+
sharing:
|
|
16285
|
+
$ref: "#/components/schemas/PortablePublicationSharing"
|
|
16286
|
+
slug:
|
|
16287
|
+
$ref: "#/components/schemas/PortablePublicationSlug"
|
|
16288
|
+
socialLinks:
|
|
16289
|
+
items:
|
|
16290
|
+
$ref: "#/components/schemas/PortablePublicationSocialLink"
|
|
16291
|
+
maxItems: 32
|
|
16292
|
+
minItems: 0
|
|
16293
|
+
type: array
|
|
16294
|
+
title:
|
|
16295
|
+
$ref: "#/components/schemas/PortablePublicationPlainText"
|
|
16296
|
+
x-gala-graphemeLength:
|
|
16297
|
+
maximum: 200
|
|
16298
|
+
minimum: 1
|
|
16299
|
+
required:
|
|
16300
|
+
- schemaId
|
|
16301
|
+
- schemaVersion
|
|
16302
|
+
- id
|
|
16303
|
+
- slug
|
|
16304
|
+
- title
|
|
16305
|
+
- description
|
|
16306
|
+
- canonicalBase
|
|
16307
|
+
- defaultLanguage
|
|
16308
|
+
- authors
|
|
16309
|
+
- socialLinks
|
|
16310
|
+
- extensions
|
|
16311
|
+
title: Gala publication contract
|
|
16312
|
+
type: object
|
|
16313
|
+
PortablePublicationExtensionKey:
|
|
16314
|
+
description: Reverse-DNS extension namespace that cannot shadow a core key.
|
|
16315
|
+
format: gala-extension-key
|
|
16316
|
+
type: string
|
|
16317
|
+
PortablePublicationExtensionMap:
|
|
16318
|
+
additionalProperties:
|
|
16319
|
+
x-gala-maxCanonicalBytes: 16384
|
|
16320
|
+
maxProperties: 32
|
|
16321
|
+
propertyNames:
|
|
16322
|
+
$ref: "#/components/schemas/PortablePublicationExtensionKey"
|
|
16323
|
+
type: object
|
|
16324
|
+
x-gala-maxCanonicalBytes: 131072
|
|
16325
|
+
PortablePublicationFooterCard:
|
|
16326
|
+
additionalProperties: false
|
|
16327
|
+
properties:
|
|
16328
|
+
authorIds:
|
|
16329
|
+
items:
|
|
16330
|
+
$ref: "#/components/schemas/PortablePublicationStableId"
|
|
16331
|
+
maxItems: 32
|
|
16332
|
+
minItems: 1
|
|
16333
|
+
type: array
|
|
16334
|
+
body:
|
|
16335
|
+
$ref: "#/components/schemas/PortablePublicationRepoRelativePath"
|
|
16336
|
+
enabled:
|
|
16337
|
+
type: boolean
|
|
16338
|
+
heading:
|
|
16339
|
+
$ref: "#/components/schemas/PortablePublicationPlainText"
|
|
16340
|
+
x-gala-graphemeLength:
|
|
16341
|
+
maximum: 120
|
|
16342
|
+
minimum: 1
|
|
16343
|
+
required:
|
|
16344
|
+
- enabled
|
|
16345
|
+
- heading
|
|
16346
|
+
- body
|
|
16347
|
+
- authorIds
|
|
16348
|
+
type: object
|
|
16349
|
+
PortablePublicationListen:
|
|
16350
|
+
additionalProperties: false
|
|
16351
|
+
description: "SCHEMA-3.26.0: the site's Listen setting. `enabled: true` offers the audio version of the posts that have one: the template adds a Listen button to the top bar, a small invitation on each post with audio and a playlist on the home page, and ships its script only while at least one published article carries a `listen` member. An absent `listen` means off. The API, not the schema, limits turning it on to the Pro and Business plans."
|
|
16352
|
+
properties:
|
|
16353
|
+
enabled:
|
|
16354
|
+
type: boolean
|
|
16355
|
+
required:
|
|
16356
|
+
- enabled
|
|
16357
|
+
type: object
|
|
15229
16358
|
PortablePublicationListing:
|
|
15230
16359
|
additionalProperties: false
|
|
15231
16360
|
description: "SCHEMA-3.25.0: listing settings. `pageSize` is the number of posts on each listing page (1 to 50); an absent member means 10."
|
|
@@ -15236,6 +16365,59 @@ components:
|
|
|
15236
16365
|
type: integer
|
|
15237
16366
|
required: []
|
|
15238
16367
|
type: object
|
|
16368
|
+
PortablePublicationNewsletter:
|
|
16369
|
+
description: "SCHEMA-3.22.0: the newsletter panel. Link mode (`mode` absent or `link`) sends readers to the author's own newsletter at `url`; Galascribe mode (`mode: \"galascribe\"`) collects and mails subscribers itself. An absent `newsletter` member means the panel is off."
|
|
16370
|
+
oneOf:
|
|
16371
|
+
- additionalProperties: false
|
|
16372
|
+
description: "Link mode: the panel links to an external newsletter. `mode` is optional and `link` when present, so a 3.21 publication still validates."
|
|
16373
|
+
properties:
|
|
16374
|
+
mode:
|
|
16375
|
+
pattern: ^link$
|
|
16376
|
+
type: string
|
|
16377
|
+
x-gala-const: link
|
|
16378
|
+
text:
|
|
16379
|
+
$ref: "#/components/schemas/PortablePublicationPlainText"
|
|
16380
|
+
x-gala-graphemeLength:
|
|
16381
|
+
maximum: 300
|
|
16382
|
+
minimum: 1
|
|
16383
|
+
title:
|
|
16384
|
+
$ref: "#/components/schemas/PortablePublicationPlainLabel"
|
|
16385
|
+
url:
|
|
16386
|
+
$ref: "#/components/schemas/PortablePublicationUrlHttps"
|
|
16387
|
+
required:
|
|
16388
|
+
- url
|
|
16389
|
+
- title
|
|
16390
|
+
- text
|
|
16391
|
+
type: object
|
|
16392
|
+
- additionalProperties: false
|
|
16393
|
+
description: "Galascribe mode: the panel is an email field and a Subscribe button. `title` and `text` are the panel heading and sentence; there is no `url`. The API refuses to turn this mode on until the site owner has a postal address in their Account."
|
|
16394
|
+
properties:
|
|
16395
|
+
emailContent:
|
|
16396
|
+
description: "`card` mails the post title, description, image and a Read the post button; the template renders no email fragment. `full` mails the whole post: for each published post the template renders an email-safe HTML fragment at `/_gala/email/<content id>.html` (`<content id>` is the post's front-matter `id`; absolute URLs and inline-safe markup only; `noindex`; absent from the sitemap, the feeds, the search index and the llms files), which the API fetches after the generation is certified live."
|
|
16397
|
+
enum:
|
|
16398
|
+
- card
|
|
16399
|
+
- full
|
|
16400
|
+
mode:
|
|
16401
|
+
pattern: ^galascribe$
|
|
16402
|
+
type: string
|
|
16403
|
+
x-gala-const: galascribe
|
|
16404
|
+
replyToOwner:
|
|
16405
|
+
description: When true, subscribers' replies go to the site owner's contact email; when false the emails carry no Reply-To.
|
|
16406
|
+
type: boolean
|
|
16407
|
+
text:
|
|
16408
|
+
$ref: "#/components/schemas/PortablePublicationPlainText"
|
|
16409
|
+
x-gala-graphemeLength:
|
|
16410
|
+
maximum: 300
|
|
16411
|
+
minimum: 1
|
|
16412
|
+
title:
|
|
16413
|
+
$ref: "#/components/schemas/PortablePublicationPlainLabel"
|
|
16414
|
+
required:
|
|
16415
|
+
- mode
|
|
16416
|
+
- title
|
|
16417
|
+
- text
|
|
16418
|
+
- emailContent
|
|
16419
|
+
- replyToOwner
|
|
16420
|
+
type: object
|
|
15239
16421
|
PortablePublicationPerformance:
|
|
15240
16422
|
additionalProperties: false
|
|
15241
16423
|
description: "SCHEMA-3.25.0: size budgets in bytes, each at least 1024 and optional. `htmlBytes` bounds a page's HTML, `cssBytes` and `jsBytes` bound the sum of the same-origin stylesheets and scripts a page links. A page over budget is reported; a budget never fails a build."
|
|
@@ -15267,6 +16449,43 @@ components:
|
|
|
15267
16449
|
description: NFC Unicode text without disallowed C0/C1 controls or bidi override/isolate controls.
|
|
15268
16450
|
format: gala-plain-text
|
|
15269
16451
|
type: string
|
|
16452
|
+
PortablePublicationPolicyPage:
|
|
16453
|
+
additionalProperties: false
|
|
16454
|
+
properties:
|
|
16455
|
+
body:
|
|
16456
|
+
$ref: "#/components/schemas/PortablePublicationRepoRelativePath"
|
|
16457
|
+
pattern: ^.+\.md$
|
|
16458
|
+
title:
|
|
16459
|
+
$ref: "#/components/schemas/PortablePublicationPlainText"
|
|
16460
|
+
x-gala-graphemeLength:
|
|
16461
|
+
maximum: 80
|
|
16462
|
+
minimum: 1
|
|
16463
|
+
required:
|
|
16464
|
+
- title
|
|
16465
|
+
- body
|
|
16466
|
+
type: object
|
|
16467
|
+
PortablePublicationPublicationPolicies:
|
|
16468
|
+
additionalProperties: false
|
|
16469
|
+
properties:
|
|
16470
|
+
privacy:
|
|
16471
|
+
$ref: "#/components/schemas/PortablePublicationPolicyPage"
|
|
16472
|
+
terms:
|
|
16473
|
+
$ref: "#/components/schemas/PortablePublicationPolicyPage"
|
|
16474
|
+
required:
|
|
16475
|
+
- terms
|
|
16476
|
+
- privacy
|
|
16477
|
+
type: object
|
|
16478
|
+
PortablePublicationPublicationProfile:
|
|
16479
|
+
additionalProperties: false
|
|
16480
|
+
properties:
|
|
16481
|
+
body:
|
|
16482
|
+
$ref: "#/components/schemas/PortablePublicationRepoRelativePath"
|
|
16483
|
+
route:
|
|
16484
|
+
$ref: "#/components/schemas/PortablePublicationCanonicalRoute"
|
|
16485
|
+
required:
|
|
16486
|
+
- route
|
|
16487
|
+
- body
|
|
16488
|
+
type: object
|
|
15270
16489
|
PortablePublicationRepoRelativePath:
|
|
15271
16490
|
description: NFC UTF-8 repository-relative path using slash separators, with no leading slash, dot segment, NUL, backslash, or percent-decoded traversal.
|
|
15272
16491
|
format: gala-repository-relative-path
|
|
@@ -15276,6 +16495,36 @@ components:
|
|
|
15276
16495
|
type: string
|
|
15277
16496
|
x-gala-utf8ByteLength:
|
|
15278
16497
|
maximum: 512
|
|
16498
|
+
PortablePublicationSharing:
|
|
16499
|
+
additionalProperties: false
|
|
16500
|
+
description: "SCHEMA-3.22.0: the share buttons shown on each article. `targets` is the display order: 0 to 11 unique members of the closed target set. An absent `sharing` member means `[\"copy-link\"]` (the Copy link button only); an empty `targets` array means no share buttons. `native` is shown only where the browser offers the system share sheet; every other target is a plain link to that service's documented share URL. Bookmark is not a share target and is unaffected."
|
|
16501
|
+
properties:
|
|
16502
|
+
targets:
|
|
16503
|
+
items:
|
|
16504
|
+
enum:
|
|
16505
|
+
- copy-link
|
|
16506
|
+
- native
|
|
16507
|
+
- x
|
|
16508
|
+
- bluesky
|
|
16509
|
+
- linkedin
|
|
16510
|
+
- facebook
|
|
16511
|
+
- hacker-news
|
|
16512
|
+
- whatsapp
|
|
16513
|
+
- telegram
|
|
16514
|
+
- reddit
|
|
16515
|
+
- email
|
|
16516
|
+
maxItems: 11
|
|
16517
|
+
minItems: 0
|
|
16518
|
+
type: array
|
|
16519
|
+
uniqueItems: true
|
|
16520
|
+
required:
|
|
16521
|
+
- targets
|
|
16522
|
+
type: object
|
|
16523
|
+
PortablePublicationSlug:
|
|
16524
|
+
maxLength: 80
|
|
16525
|
+
minLength: 1
|
|
16526
|
+
pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
|
|
16527
|
+
type: string
|
|
15279
16528
|
PortablePublicationSocialLink:
|
|
15280
16529
|
additionalProperties: false
|
|
15281
16530
|
allOf:
|
|
@@ -15319,6 +16568,10 @@ components:
|
|
|
15319
16568
|
- type
|
|
15320
16569
|
- uri
|
|
15321
16570
|
type: object
|
|
16571
|
+
PortablePublicationStableId:
|
|
16572
|
+
description: Lowercase canonical UUIDv7. Once published, it is immutable; its time ordering conveys neither chronology nor authority.
|
|
16573
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
16574
|
+
type: string
|
|
15322
16575
|
PortablePublicationUrlHttps:
|
|
15323
16576
|
description: Absolute HTTPS URL without embedded credentials.
|
|
15324
16577
|
format: uri
|
|
@@ -16070,6 +17323,10 @@ components:
|
|
|
16070
17323
|
PostOrganizationsByOrganizationIdPublicationTransfersByTransferIdDeclineResponse:
|
|
16071
17324
|
allOf:
|
|
16072
17325
|
- $ref: "#/components/schemas/PublicationTransfer"
|
|
17326
|
+
PostOrganizationsByOrganizationIdPublicationsByPublicationIdAssistanceRequestsRequest:
|
|
17327
|
+
$ref: "#/components/schemas/AssistanceRequestCreate"
|
|
17328
|
+
PostOrganizationsByOrganizationIdPublicationsByPublicationIdAssistanceRequestsResponse:
|
|
17329
|
+
$ref: "#/components/schemas/AssistanceRequest"
|
|
16073
17330
|
PostOrganizationsByOrganizationIdPublicationsByPublicationIdChangesPublishRequest:
|
|
16074
17331
|
additionalProperties: false
|
|
16075
17332
|
properties:
|
|
@@ -16304,6 +17561,23 @@ components:
|
|
|
16304
17561
|
PostOrganizationsByOrganizationIdPublicationsByPublicationIdDeploymentsRollbackResponse:
|
|
16305
17562
|
allOf:
|
|
16306
17563
|
- $ref: "#/components/schemas/OperationResponse"
|
|
17564
|
+
PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrationsCheckRequest:
|
|
17565
|
+
additionalProperties: false
|
|
17566
|
+
properties:
|
|
17567
|
+
name:
|
|
17568
|
+
description: The domain name to check, for example `mayawrites.com`.
|
|
17569
|
+
maxLength: 253
|
|
17570
|
+
minLength: 1
|
|
17571
|
+
type: string
|
|
17572
|
+
required:
|
|
17573
|
+
- name
|
|
17574
|
+
type: object
|
|
17575
|
+
PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrationsCheckResponse:
|
|
17576
|
+
$ref: "#/components/schemas/DomainRegistrationCheck"
|
|
17577
|
+
PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrationsRequest:
|
|
17578
|
+
$ref: "#/components/schemas/DomainRegistrationCreate"
|
|
17579
|
+
PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrationsResponse:
|
|
17580
|
+
$ref: "#/components/schemas/DomainRegistration"
|
|
16307
17581
|
PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainsByDomainIdCheckResponse:
|
|
16308
17582
|
allOf:
|
|
16309
17583
|
- $ref: "#/components/schemas/DomainBinding"
|
|
@@ -16358,6 +17632,26 @@ components:
|
|
|
16358
17632
|
- authorizationUrl
|
|
16359
17633
|
- expiresAt
|
|
16360
17634
|
type: object
|
|
17635
|
+
PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainsCheckGalascribeAddressRequest:
|
|
17636
|
+
additionalProperties: false
|
|
17637
|
+
properties:
|
|
17638
|
+
label:
|
|
17639
|
+
$ref: "#/components/schemas/GalascribeAddressLabel"
|
|
17640
|
+
required:
|
|
17641
|
+
- label
|
|
17642
|
+
type: object
|
|
17643
|
+
PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainsCheckGalascribeAddressResponse:
|
|
17644
|
+
$ref: "#/components/schemas/GalascribeAddressCheck"
|
|
17645
|
+
PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainsClaimGalascribeAddressRequest:
|
|
17646
|
+
additionalProperties: false
|
|
17647
|
+
properties:
|
|
17648
|
+
label:
|
|
17649
|
+
$ref: "#/components/schemas/GalascribeAddressLabel"
|
|
17650
|
+
required:
|
|
17651
|
+
- label
|
|
17652
|
+
type: object
|
|
17653
|
+
PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainsClaimGalascribeAddressResponse:
|
|
17654
|
+
$ref: "#/components/schemas/DomainBinding"
|
|
16361
17655
|
PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainsRequest:
|
|
16362
17656
|
additionalProperties: false
|
|
16363
17657
|
properties:
|
|
@@ -17346,6 +18640,8 @@ components:
|
|
|
17346
18640
|
- expiresAt
|
|
17347
18641
|
- secret
|
|
17348
18642
|
type: object
|
|
18643
|
+
PostPlatformAssistanceRequestsByRequestIdCloseResponse:
|
|
18644
|
+
$ref: "#/components/schemas/PlatformAssistanceRequest"
|
|
17349
18645
|
PostPlatformCachesByCacheIdEvictRequest:
|
|
17350
18646
|
additionalProperties: false
|
|
17351
18647
|
properties:
|
|
@@ -19616,6 +20912,11 @@ components:
|
|
|
19616
20912
|
PutPlatformPlansByPlanKeyRequest:
|
|
19617
20913
|
additionalProperties: false
|
|
19618
20914
|
properties:
|
|
20915
|
+
collaboratorLimit:
|
|
20916
|
+
description: SCHEMA-3.30.0, optional; absent keeps the plan's current value. 0 means no limit.
|
|
20917
|
+
format: int64
|
|
20918
|
+
minimum: 0
|
|
20919
|
+
type: integer
|
|
19619
20920
|
contactForm:
|
|
19620
20921
|
description: SCHEMA-3.23.0, optional; absent keeps the plan's current value.
|
|
19621
20922
|
type: boolean
|
|
@@ -20974,6 +22275,112 @@ components:
|
|
|
20974
22275
|
required:
|
|
20975
22276
|
- code
|
|
20976
22277
|
type: object
|
|
22278
|
+
SiteHostingCheck:
|
|
22279
|
+
additionalProperties: false
|
|
22280
|
+
description: "SCHEMA-3.30.0: what the site's repository contains that GitHub Pages limits or does not allow. It is advice: nothing here blocks publishing. `findings` is empty and `offers` is empty when the site is fine."
|
|
22281
|
+
properties:
|
|
22282
|
+
checkedAt:
|
|
22283
|
+
$ref: "#/components/schemas/PortableProblemRfc3339"
|
|
22284
|
+
description: When the check ran.
|
|
22285
|
+
findings:
|
|
22286
|
+
items:
|
|
22287
|
+
$ref: "#/components/schemas/HostingFinding"
|
|
22288
|
+
maxItems: 8
|
|
22289
|
+
type: array
|
|
22290
|
+
host:
|
|
22291
|
+
description: "Where the site is hosted today. `GITHUB_PAGES`: GitHub Pages."
|
|
22292
|
+
enum:
|
|
22293
|
+
- GITHUB_PAGES
|
|
22294
|
+
type: string
|
|
22295
|
+
limits:
|
|
22296
|
+
additionalProperties: false
|
|
22297
|
+
description: The thresholds the check used, so a client can show them.
|
|
22298
|
+
properties:
|
|
22299
|
+
directoryEntries:
|
|
22300
|
+
description: The most entries one folder may hold before `DIRECTORY_TOO_LARGE`.
|
|
22301
|
+
format: int64
|
|
22302
|
+
minimum: 0
|
|
22303
|
+
type: integer
|
|
22304
|
+
fileMaxBytes:
|
|
22305
|
+
description: The file size at which `FILE_OVER_SIZE_LIMIT` fires.
|
|
22306
|
+
format: int64
|
|
22307
|
+
minimum: 0
|
|
22308
|
+
type: integer
|
|
22309
|
+
fileWarningBytes:
|
|
22310
|
+
description: The file size at which `LARGE_FILE` fires.
|
|
22311
|
+
format: int64
|
|
22312
|
+
minimum: 0
|
|
22313
|
+
type: integer
|
|
22314
|
+
mediaWarningBytes:
|
|
22315
|
+
description: The media total at which `HEAVY_MEDIA` fires.
|
|
22316
|
+
format: int64
|
|
22317
|
+
minimum: 0
|
|
22318
|
+
type: integer
|
|
22319
|
+
siteBytes:
|
|
22320
|
+
description: The site size at which `SITE_OVER_SIZE_LIMIT` fires.
|
|
22321
|
+
format: int64
|
|
22322
|
+
minimum: 0
|
|
22323
|
+
type: integer
|
|
22324
|
+
required:
|
|
22325
|
+
- siteBytes
|
|
22326
|
+
- fileWarningBytes
|
|
22327
|
+
- fileMaxBytes
|
|
22328
|
+
- directoryEntries
|
|
22329
|
+
- mediaWarningBytes
|
|
22330
|
+
type: object
|
|
22331
|
+
offers:
|
|
22332
|
+
description: What the person can do about the findings. Empty when there is no finding.
|
|
22333
|
+
items:
|
|
22334
|
+
$ref: "#/components/schemas/HostingOffer"
|
|
22335
|
+
maxItems: 2
|
|
22336
|
+
type: array
|
|
22337
|
+
uniqueItems: true
|
|
22338
|
+
planTier:
|
|
22339
|
+
$ref: "#/components/schemas/PlatformPlanKey"
|
|
22340
|
+
description: The organization's plan tier when the check ran.
|
|
22341
|
+
revision:
|
|
22342
|
+
description: The commit of the default branch that was checked.
|
|
22343
|
+
pattern: ^(?:sha1:[0-9a-f]{40}|sha256:[0-9a-f]{64})$
|
|
22344
|
+
type: string
|
|
22345
|
+
totals:
|
|
22346
|
+
additionalProperties: false
|
|
22347
|
+
properties:
|
|
22348
|
+
files:
|
|
22349
|
+
description: Files in the repository.
|
|
22350
|
+
format: int64
|
|
22351
|
+
minimum: 0
|
|
22352
|
+
type: integer
|
|
22353
|
+
mediaBytes:
|
|
22354
|
+
description: Bytes of images, audio, video and PDFs.
|
|
22355
|
+
format: int64
|
|
22356
|
+
minimum: 0
|
|
22357
|
+
type: integer
|
|
22358
|
+
mediaFiles:
|
|
22359
|
+
description: Number of images, audio, video and PDF files.
|
|
22360
|
+
format: int64
|
|
22361
|
+
minimum: 0
|
|
22362
|
+
type: integer
|
|
22363
|
+
siteBytes:
|
|
22364
|
+
description: Bytes of all files.
|
|
22365
|
+
format: int64
|
|
22366
|
+
minimum: 0
|
|
22367
|
+
type: integer
|
|
22368
|
+
required:
|
|
22369
|
+
- siteBytes
|
|
22370
|
+
- mediaBytes
|
|
22371
|
+
- mediaFiles
|
|
22372
|
+
- files
|
|
22373
|
+
type: object
|
|
22374
|
+
required:
|
|
22375
|
+
- checkedAt
|
|
22376
|
+
- revision
|
|
22377
|
+
- host
|
|
22378
|
+
- planTier
|
|
22379
|
+
- totals
|
|
22380
|
+
- limits
|
|
22381
|
+
- findings
|
|
22382
|
+
- offers
|
|
22383
|
+
type: object
|
|
20977
22384
|
SiteLastPublished:
|
|
20978
22385
|
additionalProperties: false
|
|
20979
22386
|
properties:
|
|
@@ -24902,7 +26309,10 @@ paths:
|
|
|
24902
26309
|
for the inviter's benefit and is never compared with the accepting
|
|
24903
26310
|
principal's verified identity (LOCAL-34 G6). The token is single-use and
|
|
24904
26311
|
non-enumerating; recipient binding is revisited when verified email
|
|
24905
|
-
exists.
|
|
26312
|
+
exists. The organization's plan limits its collaborators (SCHEMA-3.30.0):
|
|
26313
|
+
when accepting would take it past the limit, because the plan changed
|
|
26314
|
+
since the invitation was sent, the answer is `409 PLAN_REQUIRED` and the
|
|
26315
|
+
invitation stays `PENDING`.
|
|
24906
26316
|
operationId: postMembershipInvitationsByTokenAccept
|
|
24907
26317
|
parameters:
|
|
24908
26318
|
- $ref: "#/components/parameters/XCorrelationId"
|
|
@@ -25031,9 +26441,22 @@ paths:
|
|
|
25031
26441
|
status: 409
|
|
25032
26442
|
title: INVALID_SOURCE_STATE
|
|
25033
26443
|
type: urn:gala:problem:invalid-source-state
|
|
26444
|
+
PLAN_REQUIRED:
|
|
26445
|
+
summary: PLAN_REQUIRED
|
|
26446
|
+
value:
|
|
26447
|
+
code: PLAN_REQUIRED
|
|
26448
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
26449
|
+
detail: The organization's plan allows no more collaborators. See the operation contract.
|
|
26450
|
+
errors: []
|
|
26451
|
+
retryable: false
|
|
26452
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
26453
|
+
schemaVersion: 2.0.0
|
|
26454
|
+
status: 409
|
|
26455
|
+
title: PLAN_REQUIRED
|
|
26456
|
+
type: urn:gala:problem:plan-required
|
|
25034
26457
|
schema:
|
|
25035
26458
|
$ref: "#/components/schemas/Problem"
|
|
25036
|
-
description: INVALID_SOURCE_STATE
|
|
26459
|
+
description: INVALID_SOURCE_STATE, PLAN_REQUIRED
|
|
25037
26460
|
headers:
|
|
25038
26461
|
Cache-Control:
|
|
25039
26462
|
$ref: "#/components/headers/CacheControlNoStore"
|
|
@@ -25041,6 +26464,7 @@ paths:
|
|
|
25041
26464
|
$ref: "#/components/headers/XCorrelationId"
|
|
25042
26465
|
x-gala-problem-codes:
|
|
25043
26466
|
- INVALID_SOURCE_STATE
|
|
26467
|
+
- PLAN_REQUIRED
|
|
25044
26468
|
"422":
|
|
25045
26469
|
content:
|
|
25046
26470
|
application/problem+json:
|
|
@@ -25086,6 +26510,7 @@ paths:
|
|
|
25086
26510
|
x-gala-reachable-problems:
|
|
25087
26511
|
- AUTHENTICATION_REQUIRED
|
|
25088
26512
|
- INVALID_SOURCE_STATE
|
|
26513
|
+
- PLAN_REQUIRED
|
|
25089
26514
|
- REQUEST_FIELD_UNKNOWN
|
|
25090
26515
|
- VALIDATION_FAILED
|
|
25091
26516
|
x-gala-replay-identity: invitation-capability
|
|
@@ -26229,6 +27654,13 @@ paths:
|
|
|
26229
27654
|
the invitation, never a verified identity and never an authorization
|
|
26230
27655
|
input. Hand the link only to the person it is meant for, and revoke and
|
|
26231
27656
|
re-invite if it goes astray (LOCAL-34 G6).
|
|
27657
|
+
|
|
27658
|
+
Every organization may invite, on any plan (SCHEMA-3.30.0). A personal
|
|
27659
|
+
organization becomes collaborative with its first invitation. The plan
|
|
27660
|
+
limits how many collaborators the organization may have: active members
|
|
27661
|
+
other than owners plus invitations still `PENDING` (`GET
|
|
27662
|
+
.../plan` shows the count). An invitation past the limit is `409
|
|
27663
|
+
PLAN_REQUIRED`, and the detail names the limit.
|
|
26232
27664
|
operationId: postOrganizationsByOrganizationIdMembershipInvitations
|
|
26233
27665
|
parameters:
|
|
26234
27666
|
- $ref: "#/components/parameters/XCorrelationId"
|
|
@@ -26444,9 +27876,22 @@ paths:
|
|
|
26444
27876
|
status: 409
|
|
26445
27877
|
title: INVALID_SOURCE_STATE
|
|
26446
27878
|
type: urn:gala:problem:invalid-source-state
|
|
27879
|
+
PLAN_REQUIRED:
|
|
27880
|
+
summary: PLAN_REQUIRED
|
|
27881
|
+
value:
|
|
27882
|
+
code: PLAN_REQUIRED
|
|
27883
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
27884
|
+
detail: The organization's plan allows no more collaborators. See the operation contract.
|
|
27885
|
+
errors: []
|
|
27886
|
+
retryable: false
|
|
27887
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
27888
|
+
schemaVersion: 2.0.0
|
|
27889
|
+
status: 409
|
|
27890
|
+
title: PLAN_REQUIRED
|
|
27891
|
+
type: urn:gala:problem:plan-required
|
|
26447
27892
|
schema:
|
|
26448
27893
|
$ref: "#/components/schemas/Problem"
|
|
26449
|
-
description: COMMAND_REPLAY_CONFLICT, INVALID_SOURCE_STATE
|
|
27894
|
+
description: COMMAND_REPLAY_CONFLICT, INVALID_SOURCE_STATE, PLAN_REQUIRED
|
|
26450
27895
|
headers:
|
|
26451
27896
|
Cache-Control:
|
|
26452
27897
|
$ref: "#/components/headers/CacheControlNoStore"
|
|
@@ -26455,6 +27900,7 @@ paths:
|
|
|
26455
27900
|
x-gala-problem-codes:
|
|
26456
27901
|
- COMMAND_REPLAY_CONFLICT
|
|
26457
27902
|
- INVALID_SOURCE_STATE
|
|
27903
|
+
- PLAN_REQUIRED
|
|
26458
27904
|
"422":
|
|
26459
27905
|
content:
|
|
26460
27906
|
application/problem+json:
|
|
@@ -26501,6 +27947,7 @@ paths:
|
|
|
26501
27947
|
- AUTHORIZATION_DENIED
|
|
26502
27948
|
- COMMAND_REPLAY_CONFLICT
|
|
26503
27949
|
- INVALID_SOURCE_STATE
|
|
27950
|
+
- PLAN_REQUIRED
|
|
26504
27951
|
- REAUTH_REQUIRED
|
|
26505
27952
|
- REQUEST_FIELD_UNKNOWN
|
|
26506
27953
|
- RESOURCE_NOT_FOUND
|
|
@@ -30434,6 +31881,111 @@ paths:
|
|
|
30434
31881
|
- NONE
|
|
30435
31882
|
x-gala-success-category: protocol
|
|
30436
31883
|
x-gala-tenant-scope: ORGANIZATION_PATH
|
|
31884
|
+
/v2/organizations/{organizationId}/plan:
|
|
31885
|
+
get:
|
|
31886
|
+
description: |
|
|
31887
|
+
Needs `organization.view`, so any member of the organization may read it.
|
|
31888
|
+
The organization's plan tier, how many collaborators it may have and how
|
|
31889
|
+
many it has, and what the plan includes: a `name.galascribe.com`
|
|
31890
|
+
address, one included domain and Galascribe hosting. `collaborators.limit`
|
|
31891
|
+
is null when the plan has no limit; `collaborators.used` counts the active
|
|
31892
|
+
members other than owners plus the invitations still `PENDING`.
|
|
31893
|
+
`galascribeAddressZone` is the zone Galascribe addresses are created in and
|
|
31894
|
+
is absent when Galascribe addresses are not configured, so a client hides
|
|
31895
|
+
the option.
|
|
31896
|
+
operationId: getOrganizationsByOrganizationIdPlan
|
|
31897
|
+
parameters:
|
|
31898
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
31899
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
31900
|
+
in: path
|
|
31901
|
+
name: organizationId
|
|
31902
|
+
required: true
|
|
31903
|
+
schema:
|
|
31904
|
+
format: uuid
|
|
31905
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
31906
|
+
type: string
|
|
31907
|
+
responses:
|
|
31908
|
+
"200":
|
|
31909
|
+
content:
|
|
31910
|
+
application/json:
|
|
31911
|
+
examples:
|
|
31912
|
+
nominal:
|
|
31913
|
+
summary: Nominal successful response
|
|
31914
|
+
value:
|
|
31915
|
+
collaborators:
|
|
31916
|
+
limit: null
|
|
31917
|
+
used: 2
|
|
31918
|
+
entitlements:
|
|
31919
|
+
galascribeAddress: true
|
|
31920
|
+
galascribeHosting: true
|
|
31921
|
+
includedDomain: false
|
|
31922
|
+
galascribeAddressZone: galascribe.com
|
|
31923
|
+
tier: PRO
|
|
31924
|
+
schema:
|
|
31925
|
+
$ref: "#/components/schemas/GetOrganizationsByOrganizationIdPlanResponse"
|
|
31926
|
+
description: read an organization's plan succeeded
|
|
31927
|
+
headers:
|
|
31928
|
+
Cache-Control:
|
|
31929
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
31930
|
+
X-Correlation-Id:
|
|
31931
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
31932
|
+
"400":
|
|
31933
|
+
$ref: "#/components/responses/ValidationFailed"
|
|
31934
|
+
"401":
|
|
31935
|
+
content:
|
|
31936
|
+
application/problem+json:
|
|
31937
|
+
examples:
|
|
31938
|
+
AUTHENTICATION_REQUIRED:
|
|
31939
|
+
summary: AUTHENTICATION_REQUIRED
|
|
31940
|
+
value:
|
|
31941
|
+
code: AUTHENTICATION_REQUIRED
|
|
31942
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
31943
|
+
detail: See the operation contract.
|
|
31944
|
+
errors: []
|
|
31945
|
+
retryable: false
|
|
31946
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
31947
|
+
schemaVersion: 2.0.0
|
|
31948
|
+
status: 401
|
|
31949
|
+
title: AUTHENTICATION_REQUIRED
|
|
31950
|
+
type: urn:gala:problem:authentication-required
|
|
31951
|
+
schema:
|
|
31952
|
+
$ref: "#/components/schemas/Problem"
|
|
31953
|
+
description: AUTHENTICATION_REQUIRED
|
|
31954
|
+
headers:
|
|
31955
|
+
Cache-Control:
|
|
31956
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
31957
|
+
X-Correlation-Id:
|
|
31958
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
31959
|
+
x-gala-problem-codes:
|
|
31960
|
+
- AUTHENTICATION_REQUIRED
|
|
31961
|
+
"403":
|
|
31962
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
31963
|
+
"404":
|
|
31964
|
+
$ref: "#/components/responses/ResourceNotFound"
|
|
31965
|
+
security:
|
|
31966
|
+
- browserSession: []
|
|
31967
|
+
summary: read an organization's plan
|
|
31968
|
+
tags:
|
|
31969
|
+
- organizations
|
|
31970
|
+
x-gala-activation-gate: MVP
|
|
31971
|
+
x-gala-activation-guards:
|
|
31972
|
+
- NONE
|
|
31973
|
+
x-gala-capability-key: organization.view
|
|
31974
|
+
x-gala-concurrency: authorization-epoch
|
|
31975
|
+
x-gala-conditional-capabilities: []
|
|
31976
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
31977
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
31978
|
+
x-gala-purpose: read an organization's plan
|
|
31979
|
+
x-gala-reachable-problems:
|
|
31980
|
+
- AUTHENTICATION_REQUIRED
|
|
31981
|
+
- AUTHORIZATION_DENIED
|
|
31982
|
+
- RESOURCE_NOT_FOUND
|
|
31983
|
+
- VALIDATION_FAILED
|
|
31984
|
+
x-gala-replay-identity: safe-query
|
|
31985
|
+
x-gala-state-guards:
|
|
31986
|
+
- NONE
|
|
31987
|
+
x-gala-success-category: query
|
|
31988
|
+
x-gala-tenant-scope: ORGANIZATION_PATH
|
|
30437
31989
|
/v2/organizations/{organizationId}/publication-imports:
|
|
30438
31990
|
get:
|
|
30439
31991
|
description: |
|
|
@@ -35102,45 +36654,122 @@ paths:
|
|
|
35102
36654
|
- NONE
|
|
35103
36655
|
x-gala-success-category: query
|
|
35104
36656
|
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
35105
|
-
/v2/organizations/{organizationId}/publications/{publicationId}/
|
|
36657
|
+
/v2/organizations/{organizationId}/publications/{publicationId}/assistance-requests:
|
|
36658
|
+
get:
|
|
36659
|
+
description: |
|
|
36660
|
+
Needs `publication.view`. The requests this site has made to the Galascribe
|
|
36661
|
+
team (`AssistanceRequest`), newest first, open and closed. At most 100.
|
|
36662
|
+
operationId: getOrganizationsByOrganizationIdPublicationsByPublicationIdAssistanceRequests
|
|
36663
|
+
parameters:
|
|
36664
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
36665
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
36666
|
+
in: path
|
|
36667
|
+
name: organizationId
|
|
36668
|
+
required: true
|
|
36669
|
+
schema:
|
|
36670
|
+
format: uuid
|
|
36671
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
36672
|
+
type: string
|
|
36673
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
36674
|
+
in: path
|
|
36675
|
+
name: publicationId
|
|
36676
|
+
required: true
|
|
36677
|
+
schema:
|
|
36678
|
+
format: uuid
|
|
36679
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
36680
|
+
type: string
|
|
36681
|
+
responses:
|
|
36682
|
+
"200":
|
|
36683
|
+
content:
|
|
36684
|
+
application/json:
|
|
36685
|
+
examples:
|
|
36686
|
+
nominal:
|
|
36687
|
+
summary: Nominal successful response
|
|
36688
|
+
value:
|
|
36689
|
+
items:
|
|
36690
|
+
- createdAt: "2026-11-02T09:00:00.000Z"
|
|
36691
|
+
findingCodes:
|
|
36692
|
+
- LARGE_FILE
|
|
36693
|
+
kind: GALASCRIBE_HOSTING
|
|
36694
|
+
requestId: 018f0000-0000-7000-8000-000000000001
|
|
36695
|
+
state: OPEN
|
|
36696
|
+
schema:
|
|
36697
|
+
$ref: "#/components/schemas/GetOrganizationsByOrganizationIdPublicationsByPublicationIdAssistanceRequestsResponse"
|
|
36698
|
+
description: list a site's requests for help succeeded
|
|
36699
|
+
headers:
|
|
36700
|
+
Cache-Control:
|
|
36701
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
36702
|
+
X-Correlation-Id:
|
|
36703
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
36704
|
+
"400":
|
|
36705
|
+
$ref: "#/components/responses/ValidationFailed"
|
|
36706
|
+
"401":
|
|
36707
|
+
content:
|
|
36708
|
+
application/problem+json:
|
|
36709
|
+
examples:
|
|
36710
|
+
AUTHENTICATION_REQUIRED:
|
|
36711
|
+
summary: AUTHENTICATION_REQUIRED
|
|
36712
|
+
value:
|
|
36713
|
+
code: AUTHENTICATION_REQUIRED
|
|
36714
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
36715
|
+
detail: See the operation contract.
|
|
36716
|
+
errors: []
|
|
36717
|
+
retryable: false
|
|
36718
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
36719
|
+
schemaVersion: 2.0.0
|
|
36720
|
+
status: 401
|
|
36721
|
+
title: AUTHENTICATION_REQUIRED
|
|
36722
|
+
type: urn:gala:problem:authentication-required
|
|
36723
|
+
schema:
|
|
36724
|
+
$ref: "#/components/schemas/Problem"
|
|
36725
|
+
description: AUTHENTICATION_REQUIRED
|
|
36726
|
+
headers:
|
|
36727
|
+
Cache-Control:
|
|
36728
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
36729
|
+
X-Correlation-Id:
|
|
36730
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
36731
|
+
x-gala-problem-codes:
|
|
36732
|
+
- AUTHENTICATION_REQUIRED
|
|
36733
|
+
"403":
|
|
36734
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
36735
|
+
"404":
|
|
36736
|
+
$ref: "#/components/responses/ResourceNotFound"
|
|
36737
|
+
security:
|
|
36738
|
+
- browserSession: []
|
|
36739
|
+
summary: list a site's requests for help
|
|
36740
|
+
tags:
|
|
36741
|
+
- organizations
|
|
36742
|
+
x-gala-activation-gate: MVP
|
|
36743
|
+
x-gala-activation-guards:
|
|
36744
|
+
- NONE
|
|
36745
|
+
x-gala-capability-key: publication.view
|
|
36746
|
+
x-gala-concurrency: authorization-and-publication-epochs
|
|
36747
|
+
x-gala-conditional-capabilities: []
|
|
36748
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
36749
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
36750
|
+
x-gala-purpose: list a site's requests for help
|
|
36751
|
+
x-gala-reachable-problems:
|
|
36752
|
+
- AUTHENTICATION_REQUIRED
|
|
36753
|
+
- AUTHORIZATION_DENIED
|
|
36754
|
+
- RESOURCE_NOT_FOUND
|
|
36755
|
+
- VALIDATION_FAILED
|
|
36756
|
+
x-gala-replay-identity: safe-query
|
|
36757
|
+
x-gala-state-guards:
|
|
36758
|
+
- NONE
|
|
36759
|
+
x-gala-success-category: query
|
|
36760
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
35106
36761
|
post:
|
|
35107
36762
|
description: |
|
|
35108
|
-
|
|
35109
|
-
|
|
35110
|
-
|
|
35111
|
-
|
|
35112
|
-
|
|
35113
|
-
|
|
35114
|
-
|
|
35115
|
-
|
|
35116
|
-
|
|
35117
|
-
|
|
35118
|
-
repository set up, binding active, no publish in flight) and nothing is
|
|
35119
|
-
merged now; the named changes are merged and deployed at `scheduledFor`,
|
|
35120
|
-
after the same checks run again. `scheduledFor` must be at least 5
|
|
35121
|
-
minutes and at most 366 days ahead, else `422 VALIDATION_FAILED` pointed
|
|
35122
|
-
at `/scheduledFor`. One schedule per publication: `409 SCHEDULE_EXISTS`
|
|
35123
|
-
while another is pending (its `publishId` is in the problem `detail` and
|
|
35124
|
-
in the site read's `schedule`). `409 CANONICAL_BASE_MISMATCH` when the
|
|
35125
|
-
merged head's `gala/publication.json` `canonicalBase` is not the address
|
|
35126
|
-
the site is served at (the active custom domain, else the github.io
|
|
35127
|
-
address); the problem `detail` names the expected value.
|
|
35128
|
-
|
|
35129
|
-
SCHEMA-3.17.0: that problem also carries the optional members
|
|
35130
|
-
`expectedBase` (the address the site is served at, an https URL),
|
|
35131
|
-
`profileBase` (the base the profile carries now, as written),
|
|
35132
|
-
`domainState` (the custom domain's state that decided the expected
|
|
35133
|
-
base, absent without a domain) and `remedy` (one sentence for the
|
|
35134
|
-
author), so a client names both addresses and renders the `remedy`
|
|
35135
|
-
without parsing `detail`. The server first includes the pending "Site
|
|
35136
|
-
address" change in the publish, or proposes one inside the request, and
|
|
35137
|
-
returns the problem only when it cannot. `409 INVALID_SOURCE_STATE`
|
|
35138
|
-
with `errors[].code DOMAIN_NOT_READY` is returned while
|
|
35139
|
-
a custom domain is part-way through its switch and no address can be
|
|
35140
|
-
verified (after the Pages CNAME is set and before the certificate
|
|
35141
|
-
serves); it resolves on its own, and the domain read's `nextStep` says
|
|
35142
|
-
what is being waited on.
|
|
35143
|
-
operationId: postOrganizationsByOrganizationIdPublicationsByPublicationIdChangesPublish
|
|
36763
|
+
Needs `publication.settings.manage`. Paid plans only: `409 PLAN_REQUIRED`
|
|
36764
|
+
on the Free plan. Asks the Galascribe team to do something by hand for the
|
|
36765
|
+
site: `GALASCRIBE_HOSTING` (host what GitHub does not allow, with the
|
|
36766
|
+
`findingCodes` of the hosting check), `DOMAIN_REGISTRATION` (register the
|
|
36767
|
+
included domain `domainName` for the author) or `DOMAIN_MOVE` (move the
|
|
36768
|
+
domain `domainName` to the author's own account). The request is `OPEN`
|
|
36769
|
+
until an operator closes it. When a request of the same `kind` is already
|
|
36770
|
+
`OPEN` for the site, that request is returned with `200` and nothing new
|
|
36771
|
+
is created.
|
|
36772
|
+
operationId: postOrganizationsByOrganizationIdPublicationsByPublicationIdAssistanceRequests
|
|
35144
36773
|
parameters:
|
|
35145
36774
|
- $ref: "#/components/parameters/XCorrelationId"
|
|
35146
36775
|
- example: 018f0000-0000-7000-8000-000000000001
|
|
@@ -35168,74 +36797,293 @@ paths:
|
|
|
35168
36797
|
nominal:
|
|
35169
36798
|
summary: Nominal valid request
|
|
35170
36799
|
value:
|
|
35171
|
-
|
|
35172
|
-
-
|
|
36800
|
+
findingCodes:
|
|
36801
|
+
- LARGE_FILE
|
|
36802
|
+
kind: GALASCRIBE_HOSTING
|
|
36803
|
+
note: The tour video is 60 MB.
|
|
35173
36804
|
schema:
|
|
35174
|
-
$ref: "#/components/schemas/
|
|
36805
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdAssistanceRequestsRequest"
|
|
35175
36806
|
required: true
|
|
35176
36807
|
responses:
|
|
35177
|
-
"
|
|
36808
|
+
"200":
|
|
35178
36809
|
content:
|
|
35179
36810
|
application/json:
|
|
35180
36811
|
examples:
|
|
35181
36812
|
nominal:
|
|
35182
|
-
summary:
|
|
36813
|
+
summary: The request of this kind that is already open
|
|
35183
36814
|
value:
|
|
35184
|
-
|
|
35185
|
-
|
|
35186
|
-
|
|
35187
|
-
|
|
35188
|
-
|
|
35189
|
-
|
|
36815
|
+
createdAt: "2026-11-02T09:00:00.000Z"
|
|
36816
|
+
findingCodes:
|
|
36817
|
+
- LARGE_FILE
|
|
36818
|
+
kind: GALASCRIBE_HOSTING
|
|
36819
|
+
requestId: 018f0000-0000-7000-8000-000000000001
|
|
36820
|
+
state: OPEN
|
|
35190
36821
|
schema:
|
|
35191
|
-
$ref: "#/components/schemas/
|
|
35192
|
-
description:
|
|
36822
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdAssistanceRequestsResponse"
|
|
36823
|
+
description: a request of the same kind is already open for the site
|
|
35193
36824
|
headers:
|
|
35194
36825
|
Cache-Control:
|
|
35195
36826
|
$ref: "#/components/headers/CacheControlNoStore"
|
|
35196
36827
|
X-Correlation-Id:
|
|
35197
36828
|
$ref: "#/components/headers/XCorrelationId"
|
|
35198
|
-
"
|
|
36829
|
+
"201":
|
|
35199
36830
|
content:
|
|
35200
|
-
application/
|
|
36831
|
+
application/json:
|
|
35201
36832
|
examples:
|
|
35202
|
-
|
|
35203
|
-
summary:
|
|
35204
|
-
value:
|
|
35205
|
-
code: REQUEST_FIELD_UNKNOWN
|
|
35206
|
-
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
35207
|
-
detail: See the operation contract.
|
|
35208
|
-
errors: []
|
|
35209
|
-
retryable: false
|
|
35210
|
-
schemaId: urn:gala:schema:problem:2.0.0
|
|
35211
|
-
schemaVersion: 2.0.0
|
|
35212
|
-
status: 400
|
|
35213
|
-
title: REQUEST_FIELD_UNKNOWN
|
|
35214
|
-
type: urn:gala:problem:request-field-unknown
|
|
35215
|
-
VALIDATION_FAILED:
|
|
35216
|
-
summary: VALIDATION_FAILED
|
|
36833
|
+
nominal:
|
|
36834
|
+
summary: Nominal successful response
|
|
35217
36835
|
value:
|
|
35218
|
-
|
|
35219
|
-
|
|
35220
|
-
|
|
35221
|
-
|
|
35222
|
-
|
|
35223
|
-
|
|
35224
|
-
schemaVersion: 2.0.0
|
|
35225
|
-
status: 400
|
|
35226
|
-
title: VALIDATION_FAILED
|
|
35227
|
-
type: urn:gala:problem:validation-failed
|
|
36836
|
+
createdAt: "2026-11-02T09:00:00.000Z"
|
|
36837
|
+
findingCodes:
|
|
36838
|
+
- LARGE_FILE
|
|
36839
|
+
kind: GALASCRIBE_HOSTING
|
|
36840
|
+
requestId: 018f0000-0000-7000-8000-000000000001
|
|
36841
|
+
state: OPEN
|
|
35228
36842
|
schema:
|
|
35229
|
-
$ref: "#/components/schemas/
|
|
35230
|
-
description:
|
|
36843
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdAssistanceRequestsResponse"
|
|
36844
|
+
description: ask Galascribe for help with a site succeeded
|
|
35231
36845
|
headers:
|
|
35232
36846
|
Cache-Control:
|
|
35233
36847
|
$ref: "#/components/headers/CacheControlNoStore"
|
|
36848
|
+
Location:
|
|
36849
|
+
$ref: "#/components/headers/Location"
|
|
35234
36850
|
X-Correlation-Id:
|
|
35235
36851
|
$ref: "#/components/headers/XCorrelationId"
|
|
35236
|
-
|
|
35237
|
-
|
|
35238
|
-
|
|
36852
|
+
"400":
|
|
36853
|
+
$ref: "#/components/responses/RequestInvalid"
|
|
36854
|
+
"401":
|
|
36855
|
+
content:
|
|
36856
|
+
application/problem+json:
|
|
36857
|
+
examples:
|
|
36858
|
+
AUTHENTICATION_REQUIRED:
|
|
36859
|
+
summary: AUTHENTICATION_REQUIRED
|
|
36860
|
+
value:
|
|
36861
|
+
code: AUTHENTICATION_REQUIRED
|
|
36862
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
36863
|
+
detail: See the operation contract.
|
|
36864
|
+
errors: []
|
|
36865
|
+
retryable: false
|
|
36866
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
36867
|
+
schemaVersion: 2.0.0
|
|
36868
|
+
status: 401
|
|
36869
|
+
title: AUTHENTICATION_REQUIRED
|
|
36870
|
+
type: urn:gala:problem:authentication-required
|
|
36871
|
+
schema:
|
|
36872
|
+
$ref: "#/components/schemas/Problem"
|
|
36873
|
+
description: AUTHENTICATION_REQUIRED
|
|
36874
|
+
headers:
|
|
36875
|
+
Cache-Control:
|
|
36876
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
36877
|
+
X-Correlation-Id:
|
|
36878
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
36879
|
+
x-gala-problem-codes:
|
|
36880
|
+
- AUTHENTICATION_REQUIRED
|
|
36881
|
+
"403":
|
|
36882
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
36883
|
+
"404":
|
|
36884
|
+
$ref: "#/components/responses/ResourceNotFound"
|
|
36885
|
+
"409":
|
|
36886
|
+
content:
|
|
36887
|
+
application/problem+json:
|
|
36888
|
+
examples:
|
|
36889
|
+
COMMAND_REPLAY_CONFLICT:
|
|
36890
|
+
summary: COMMAND_REPLAY_CONFLICT
|
|
36891
|
+
value:
|
|
36892
|
+
code: COMMAND_REPLAY_CONFLICT
|
|
36893
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
36894
|
+
detail: See the operation contract.
|
|
36895
|
+
errors: []
|
|
36896
|
+
retryable: false
|
|
36897
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
36898
|
+
schemaVersion: 2.0.0
|
|
36899
|
+
status: 409
|
|
36900
|
+
title: COMMAND_REPLAY_CONFLICT
|
|
36901
|
+
type: urn:gala:problem:command-replay-conflict
|
|
36902
|
+
PLAN_REQUIRED:
|
|
36903
|
+
summary: PLAN_REQUIRED
|
|
36904
|
+
value:
|
|
36905
|
+
code: PLAN_REQUIRED
|
|
36906
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
36907
|
+
detail: The organization's plan does not include asking Galascribe for help. See the operation contract.
|
|
36908
|
+
errors: []
|
|
36909
|
+
retryable: false
|
|
36910
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
36911
|
+
schemaVersion: 2.0.0
|
|
36912
|
+
status: 409
|
|
36913
|
+
title: PLAN_REQUIRED
|
|
36914
|
+
type: urn:gala:problem:plan-required
|
|
36915
|
+
schema:
|
|
36916
|
+
$ref: "#/components/schemas/Problem"
|
|
36917
|
+
description: COMMAND_REPLAY_CONFLICT, PLAN_REQUIRED
|
|
36918
|
+
headers:
|
|
36919
|
+
Cache-Control:
|
|
36920
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
36921
|
+
X-Correlation-Id:
|
|
36922
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
36923
|
+
x-gala-problem-codes:
|
|
36924
|
+
- COMMAND_REPLAY_CONFLICT
|
|
36925
|
+
- PLAN_REQUIRED
|
|
36926
|
+
security:
|
|
36927
|
+
- browserSession: []
|
|
36928
|
+
summary: ask Galascribe for help with a site
|
|
36929
|
+
tags:
|
|
36930
|
+
- organizations
|
|
36931
|
+
x-gala-activation-gate: MVP
|
|
36932
|
+
x-gala-activation-guards:
|
|
36933
|
+
- NONE
|
|
36934
|
+
x-gala-capability-key: publication.settings.manage
|
|
36935
|
+
x-gala-concurrency: none
|
|
36936
|
+
x-gala-conditional-capabilities: []
|
|
36937
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
36938
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
36939
|
+
x-gala-purpose: ask Galascribe for help with a site
|
|
36940
|
+
x-gala-reachable-problems:
|
|
36941
|
+
- AUTHENTICATION_REQUIRED
|
|
36942
|
+
- AUTHORIZATION_DENIED
|
|
36943
|
+
- COMMAND_REPLAY_CONFLICT
|
|
36944
|
+
- PLAN_REQUIRED
|
|
36945
|
+
- REQUEST_FIELD_UNKNOWN
|
|
36946
|
+
- RESOURCE_NOT_FOUND
|
|
36947
|
+
- VALIDATION_FAILED
|
|
36948
|
+
x-gala-replay-identity: idempotency-key
|
|
36949
|
+
x-gala-state-guards:
|
|
36950
|
+
- NONE
|
|
36951
|
+
x-gala-success-category: create
|
|
36952
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
36953
|
+
/v2/organizations/{organizationId}/publications/{publicationId}/changes:publish:
|
|
36954
|
+
post:
|
|
36955
|
+
description: |
|
|
36956
|
+
Publishes the named repository changes together. For each change, in order:
|
|
36957
|
+
|
|
36958
|
+
1. If the change is behind the main branch head it is brought up to date automatically when that is clean (the same file-level merge as `:bring-up-to-date`). When it is not clean nothing is written for any change and the response is `409 INVALID_SOURCE_STATE` with one error per conflicting path (`code: CONTENT_CONFLICT`, `pointer: /documents/<path>` or `/assets/<path>`) and the live head on `X-Gala-Current-Head`.
|
|
36959
|
+
2. If the publication's `publishingPolicy.requireReview` is true and the change has no approval, `409 INVALID_SOURCE_STATE` with `errors[].code REVIEW_REQUIRED` pointed at `/changeIds/<index>`.
|
|
36960
|
+
3. If `publishingPolicy.galascribeMerges` is true (the default) the server opens and merges the pull request itself through the GitHub App. Otherwise each change must already be merged on GitHub; one that is not is `409 INVALID_SOURCE_STATE` with `errors[].code SOURCE_NOT_MERGED` pointed at `/changeIds/<index>`.
|
|
36961
|
+
|
|
36962
|
+
Then ONE deploy of the resulting main head is started. Success is `202` with the accepted operation (kind `publish`; `publishId` names it, and the operation's `subject.generationId` names the generation once it exists). `scheduledFor` schedules the deploy instead of starting it now and additionally needs `publication.schedule`; it is cancelled with `:cancel` on the publish. `Idempotency-Key` replays the same acceptance. Whole-request validation happens before any change is merged: a refused request merges nothing.
|
|
36963
|
+
|
|
36964
|
+
SCHEMA-3.3.0 scheduling: with `scheduledFor` the request is validated
|
|
36965
|
+
exactly as an immediate publish (changes publishable, review state,
|
|
36966
|
+
repository set up, binding active, no publish in flight) and nothing is
|
|
36967
|
+
merged now; the named changes are merged and deployed at `scheduledFor`,
|
|
36968
|
+
after the same checks run again. `scheduledFor` must be at least 5
|
|
36969
|
+
minutes and at most 366 days ahead, else `422 VALIDATION_FAILED` pointed
|
|
36970
|
+
at `/scheduledFor`. One schedule per publication: `409 SCHEDULE_EXISTS`
|
|
36971
|
+
while another is pending (its `publishId` is in the problem `detail` and
|
|
36972
|
+
in the site read's `schedule`). `409 CANONICAL_BASE_MISMATCH` when the
|
|
36973
|
+
merged head's `gala/publication.json` `canonicalBase` is not the address
|
|
36974
|
+
the site is served at (the active custom domain, else the github.io
|
|
36975
|
+
address); the problem `detail` names the expected value.
|
|
36976
|
+
|
|
36977
|
+
SCHEMA-3.17.0: that problem also carries the optional members
|
|
36978
|
+
`expectedBase` (the address the site is served at, an https URL),
|
|
36979
|
+
`profileBase` (the base the profile carries now, as written),
|
|
36980
|
+
`domainState` (the custom domain's state that decided the expected
|
|
36981
|
+
base, absent without a domain) and `remedy` (one sentence for the
|
|
36982
|
+
author), so a client names both addresses and renders the `remedy`
|
|
36983
|
+
without parsing `detail`. The server first includes the pending "Site
|
|
36984
|
+
address" change in the publish, or proposes one inside the request, and
|
|
36985
|
+
returns the problem only when it cannot. `409 INVALID_SOURCE_STATE`
|
|
36986
|
+
with `errors[].code DOMAIN_NOT_READY` is returned while
|
|
36987
|
+
a custom domain is part-way through its switch and no address can be
|
|
36988
|
+
verified (after the Pages CNAME is set and before the certificate
|
|
36989
|
+
serves); it resolves on its own, and the domain read's `nextStep` says
|
|
36990
|
+
what is being waited on.
|
|
36991
|
+
operationId: postOrganizationsByOrganizationIdPublicationsByPublicationIdChangesPublish
|
|
36992
|
+
parameters:
|
|
36993
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
36994
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
36995
|
+
in: path
|
|
36996
|
+
name: organizationId
|
|
36997
|
+
required: true
|
|
36998
|
+
schema:
|
|
36999
|
+
format: uuid
|
|
37000
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
37001
|
+
type: string
|
|
37002
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
37003
|
+
in: path
|
|
37004
|
+
name: publicationId
|
|
37005
|
+
required: true
|
|
37006
|
+
schema:
|
|
37007
|
+
format: uuid
|
|
37008
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
37009
|
+
type: string
|
|
37010
|
+
- $ref: "#/components/parameters/IdempotencyKey"
|
|
37011
|
+
- $ref: "#/components/parameters/XCsrfToken"
|
|
37012
|
+
requestBody:
|
|
37013
|
+
content:
|
|
37014
|
+
application/json:
|
|
37015
|
+
examples:
|
|
37016
|
+
nominal:
|
|
37017
|
+
summary: Nominal valid request
|
|
37018
|
+
value:
|
|
37019
|
+
changeIds:
|
|
37020
|
+
- 018f0000-0000-7000-8000-000000000001
|
|
37021
|
+
schema:
|
|
37022
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdChangesPublishRequest"
|
|
37023
|
+
required: true
|
|
37024
|
+
responses:
|
|
37025
|
+
"202":
|
|
37026
|
+
content:
|
|
37027
|
+
application/json:
|
|
37028
|
+
examples:
|
|
37029
|
+
nominal:
|
|
37030
|
+
summary: Nominal successful response
|
|
37031
|
+
value:
|
|
37032
|
+
commandId: 018f0000-0000-7000-8000-000000000001
|
|
37033
|
+
operationId: 018f0000-0000-7000-8000-000000000001
|
|
37034
|
+
phase: accepted
|
|
37035
|
+
publishId: 018f0000-0000-7000-8000-000000000003
|
|
37036
|
+
resourceVersion: 0
|
|
37037
|
+
statusUrl: /v2/organizations/018f0000-0000-7000-8000-000000000001/operations/018f0000-0000-7000-8000-000000000002
|
|
37038
|
+
schema:
|
|
37039
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdChangesPublishResponse"
|
|
37040
|
+
description: publish a batch of changes with one deploy of the resulting main head succeeded
|
|
37041
|
+
headers:
|
|
37042
|
+
Cache-Control:
|
|
37043
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
37044
|
+
X-Correlation-Id:
|
|
37045
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
37046
|
+
"400":
|
|
37047
|
+
content:
|
|
37048
|
+
application/problem+json:
|
|
37049
|
+
examples:
|
|
37050
|
+
REQUEST_FIELD_UNKNOWN:
|
|
37051
|
+
summary: REQUEST_FIELD_UNKNOWN
|
|
37052
|
+
value:
|
|
37053
|
+
code: REQUEST_FIELD_UNKNOWN
|
|
37054
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
37055
|
+
detail: See the operation contract.
|
|
37056
|
+
errors: []
|
|
37057
|
+
retryable: false
|
|
37058
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
37059
|
+
schemaVersion: 2.0.0
|
|
37060
|
+
status: 400
|
|
37061
|
+
title: REQUEST_FIELD_UNKNOWN
|
|
37062
|
+
type: urn:gala:problem:request-field-unknown
|
|
37063
|
+
VALIDATION_FAILED:
|
|
37064
|
+
summary: VALIDATION_FAILED
|
|
37065
|
+
value:
|
|
37066
|
+
code: VALIDATION_FAILED
|
|
37067
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
37068
|
+
detail: See the operation contract.
|
|
37069
|
+
errors: []
|
|
37070
|
+
retryable: false
|
|
37071
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
37072
|
+
schemaVersion: 2.0.0
|
|
37073
|
+
status: 400
|
|
37074
|
+
title: VALIDATION_FAILED
|
|
37075
|
+
type: urn:gala:problem:validation-failed
|
|
37076
|
+
schema:
|
|
37077
|
+
$ref: "#/components/schemas/Problem"
|
|
37078
|
+
description: REQUEST_FIELD_UNKNOWN, VALIDATION_FAILED
|
|
37079
|
+
headers:
|
|
37080
|
+
Cache-Control:
|
|
37081
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
37082
|
+
X-Correlation-Id:
|
|
37083
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
37084
|
+
x-gala-problem-codes:
|
|
37085
|
+
- REQUEST_FIELD_UNKNOWN
|
|
37086
|
+
- VALIDATION_FAILED
|
|
35239
37087
|
"401":
|
|
35240
37088
|
content:
|
|
35241
37089
|
application/problem+json:
|
|
@@ -38203,9 +40051,26 @@ paths:
|
|
|
38203
40051
|
- NONE
|
|
38204
40052
|
x-gala-success-category: query
|
|
38205
40053
|
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
38206
|
-
/v2/organizations/{organizationId}/publications/{publicationId}/
|
|
40054
|
+
/v2/organizations/{organizationId}/publications/{publicationId}/content/preview-context:
|
|
38207
40055
|
get:
|
|
38208
|
-
|
|
40056
|
+
description: |
|
|
40057
|
+
Needs `publication.view`. The facts the published page reads from the
|
|
40058
|
+
site's repository besides the post itself, so the App's draft preview
|
|
40059
|
+
can render the site's real header menu, footer and author cards:
|
|
40060
|
+
`navigation` (`gala/navigation.json`), `publication`
|
|
40061
|
+
(`gala/publication.json`) and `authors` (every `gala/authors/*.json`).
|
|
40062
|
+
This is the one read of those `gala/` files; `GET .../content/documents`
|
|
40063
|
+
still refuses them. `revision` omitted reads the linked repository's
|
|
40064
|
+
current main head; a supplied `revision` is checked exactly as the
|
|
40065
|
+
documents read checks it, and any other value is `404
|
|
40066
|
+
RESOURCE_NOT_FOUND`. The read is best-effort per member: a file that is
|
|
40067
|
+
absent, unreadable, larger than 256 KiB or invalid against its schema
|
|
40068
|
+
is `null` (`navigation`, `publication`) or left out (`authors`, at most
|
|
40069
|
+
200, in file-name order), and never fails the read. The response
|
|
40070
|
+
carries a strong `ETag` and honours `If-None-Match` with `304` and no
|
|
40071
|
+
body; `Cache-Control` is `private, no-cache`, so a browser stores the
|
|
40072
|
+
body and revalidates it on every use.
|
|
40073
|
+
operationId: getOrganizationsByOrganizationIdPublicationsByPublicationIdContentPreviewContext
|
|
38209
40074
|
parameters:
|
|
38210
40075
|
- $ref: "#/components/parameters/XCorrelationId"
|
|
38211
40076
|
- example: 018f0000-0000-7000-8000-000000000001
|
|
@@ -38224,8 +40089,21 @@ paths:
|
|
|
38224
40089
|
format: uuid
|
|
38225
40090
|
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
38226
40091
|
type: string
|
|
38227
|
-
-
|
|
38228
|
-
|
|
40092
|
+
- example: sha1:0000000000000000000000000000000000000000
|
|
40093
|
+
in: query
|
|
40094
|
+
name: revision
|
|
40095
|
+
required: false
|
|
40096
|
+
schema:
|
|
40097
|
+
pattern: ^(?:sha1:[0-9a-f]{40}|sha256:[0-9a-f]{64})$
|
|
40098
|
+
type: string
|
|
40099
|
+
- description: A previously returned `ETag`; a match answers `304`.
|
|
40100
|
+
example: '"a1b2c3d4"'
|
|
40101
|
+
in: header
|
|
40102
|
+
name: If-None-Match
|
|
40103
|
+
required: false
|
|
40104
|
+
schema:
|
|
40105
|
+
maxLength: 256
|
|
40106
|
+
type: string
|
|
38229
40107
|
responses:
|
|
38230
40108
|
"200":
|
|
38231
40109
|
content:
|
|
@@ -38234,18 +40112,316 @@ paths:
|
|
|
38234
40112
|
nominal:
|
|
38235
40113
|
summary: Nominal successful response
|
|
38236
40114
|
value:
|
|
38237
|
-
|
|
38238
|
-
|
|
40115
|
+
authors:
|
|
40116
|
+
- biography: Writes about the craft of publishing.
|
|
40117
|
+
displayName: Example Author
|
|
40118
|
+
extensions: {}
|
|
40119
|
+
id: 018f0000-0000-7000-8000-000000000001
|
|
40120
|
+
links:
|
|
40121
|
+
- type: website
|
|
40122
|
+
uri: https://example.com/
|
|
40123
|
+
localized: []
|
|
40124
|
+
schemaId: urn:gala:schema:author:2.0.0
|
|
40125
|
+
schemaVersion: 2.0.0
|
|
40126
|
+
navigation:
|
|
40127
|
+
extensions: {}
|
|
40128
|
+
footerItems: []
|
|
40129
|
+
items:
|
|
40130
|
+
- children: []
|
|
40131
|
+
label: About
|
|
40132
|
+
route: /about/
|
|
40133
|
+
type: internal
|
|
40134
|
+
schemaId: urn:gala:schema:navigation:2.0.0
|
|
40135
|
+
schemaVersion: 2.0.0
|
|
40136
|
+
publication:
|
|
40137
|
+
authors:
|
|
40138
|
+
- gala/authors/example-author.json
|
|
40139
|
+
canonicalBase: https://example.com/
|
|
40140
|
+
defaultLanguage: en
|
|
40141
|
+
description: A site about the craft of publishing.
|
|
40142
|
+
extensions: {}
|
|
40143
|
+
id: 018f0000-0000-7000-8000-000000000001
|
|
40144
|
+
schemaId: urn:gala:schema:publication:2.0.0
|
|
40145
|
+
schemaVersion: 2.0.0
|
|
40146
|
+
slug: example
|
|
40147
|
+
socialLinks: []
|
|
40148
|
+
title: Example
|
|
40149
|
+
revision: sha1:0000000000000000000000000000000000000000
|
|
38239
40150
|
schema:
|
|
38240
|
-
$ref: "#/components/schemas/
|
|
38241
|
-
description: read
|
|
40151
|
+
$ref: "#/components/schemas/GetOrganizationsByOrganizationIdPublicationsByPublicationIdContentPreviewContextResponse"
|
|
40152
|
+
description: read the preview context succeeded
|
|
38242
40153
|
headers:
|
|
38243
40154
|
Cache-Control:
|
|
38244
|
-
$ref: "#/components/headers/
|
|
40155
|
+
$ref: "#/components/headers/CacheControlPrivateNoCache"
|
|
40156
|
+
ETag:
|
|
40157
|
+
description: Strong validator of this response body.
|
|
40158
|
+
required: true
|
|
40159
|
+
schema:
|
|
40160
|
+
maxLength: 256
|
|
40161
|
+
type: string
|
|
40162
|
+
X-Correlation-Id:
|
|
40163
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40164
|
+
"304":
|
|
40165
|
+
description: the caller's `If-None-Match` still matches; no body
|
|
40166
|
+
headers:
|
|
40167
|
+
Cache-Control:
|
|
40168
|
+
$ref: "#/components/headers/CacheControlPrivateNoCache"
|
|
40169
|
+
ETag:
|
|
40170
|
+
description: Strong validator of this response body.
|
|
40171
|
+
required: true
|
|
40172
|
+
schema:
|
|
40173
|
+
maxLength: 256
|
|
40174
|
+
type: string
|
|
38245
40175
|
X-Correlation-Id:
|
|
38246
40176
|
$ref: "#/components/headers/XCorrelationId"
|
|
38247
40177
|
"400":
|
|
38248
|
-
|
|
40178
|
+
content:
|
|
40179
|
+
application/problem+json:
|
|
40180
|
+
examples:
|
|
40181
|
+
VALIDATION_FAILED:
|
|
40182
|
+
summary: VALIDATION_FAILED
|
|
40183
|
+
value:
|
|
40184
|
+
code: VALIDATION_FAILED
|
|
40185
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40186
|
+
detail: See the operation contract.
|
|
40187
|
+
errors: []
|
|
40188
|
+
retryable: false
|
|
40189
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40190
|
+
schemaVersion: 2.0.0
|
|
40191
|
+
status: 400
|
|
40192
|
+
title: VALIDATION_FAILED
|
|
40193
|
+
type: urn:gala:problem:validation-failed
|
|
40194
|
+
schema:
|
|
40195
|
+
$ref: "#/components/schemas/Problem"
|
|
40196
|
+
description: VALIDATION_FAILED
|
|
40197
|
+
headers:
|
|
40198
|
+
Cache-Control:
|
|
40199
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40200
|
+
X-Correlation-Id:
|
|
40201
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40202
|
+
x-gala-problem-codes:
|
|
40203
|
+
- VALIDATION_FAILED
|
|
40204
|
+
"401":
|
|
40205
|
+
content:
|
|
40206
|
+
application/problem+json:
|
|
40207
|
+
examples:
|
|
40208
|
+
AUTHENTICATION_REQUIRED:
|
|
40209
|
+
summary: AUTHENTICATION_REQUIRED
|
|
40210
|
+
value:
|
|
40211
|
+
code: AUTHENTICATION_REQUIRED
|
|
40212
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40213
|
+
detail: See the operation contract.
|
|
40214
|
+
errors: []
|
|
40215
|
+
retryable: false
|
|
40216
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40217
|
+
schemaVersion: 2.0.0
|
|
40218
|
+
status: 401
|
|
40219
|
+
title: AUTHENTICATION_REQUIRED
|
|
40220
|
+
type: urn:gala:problem:authentication-required
|
|
40221
|
+
schema:
|
|
40222
|
+
$ref: "#/components/schemas/Problem"
|
|
40223
|
+
description: AUTHENTICATION_REQUIRED
|
|
40224
|
+
headers:
|
|
40225
|
+
Cache-Control:
|
|
40226
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40227
|
+
X-Correlation-Id:
|
|
40228
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40229
|
+
x-gala-problem-codes:
|
|
40230
|
+
- AUTHENTICATION_REQUIRED
|
|
40231
|
+
"403":
|
|
40232
|
+
content:
|
|
40233
|
+
application/problem+json:
|
|
40234
|
+
examples:
|
|
40235
|
+
AUTHORIZATION_DENIED:
|
|
40236
|
+
summary: AUTHORIZATION_DENIED
|
|
40237
|
+
value:
|
|
40238
|
+
code: AUTHORIZATION_DENIED
|
|
40239
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40240
|
+
detail: See the operation contract.
|
|
40241
|
+
errors: []
|
|
40242
|
+
retryable: false
|
|
40243
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40244
|
+
schemaVersion: 2.0.0
|
|
40245
|
+
status: 403
|
|
40246
|
+
title: AUTHORIZATION_DENIED
|
|
40247
|
+
type: urn:gala:problem:authorization-denied
|
|
40248
|
+
schema:
|
|
40249
|
+
$ref: "#/components/schemas/Problem"
|
|
40250
|
+
description: AUTHORIZATION_DENIED
|
|
40251
|
+
headers:
|
|
40252
|
+
Cache-Control:
|
|
40253
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40254
|
+
X-Correlation-Id:
|
|
40255
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40256
|
+
x-gala-problem-codes:
|
|
40257
|
+
- AUTHORIZATION_DENIED
|
|
40258
|
+
"404":
|
|
40259
|
+
content:
|
|
40260
|
+
application/problem+json:
|
|
40261
|
+
examples:
|
|
40262
|
+
RESOURCE_NOT_FOUND:
|
|
40263
|
+
summary: RESOURCE_NOT_FOUND
|
|
40264
|
+
value:
|
|
40265
|
+
code: RESOURCE_NOT_FOUND
|
|
40266
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40267
|
+
detail: See the operation contract.
|
|
40268
|
+
errors: []
|
|
40269
|
+
retryable: false
|
|
40270
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40271
|
+
schemaVersion: 2.0.0
|
|
40272
|
+
status: 404
|
|
40273
|
+
title: RESOURCE_NOT_FOUND
|
|
40274
|
+
type: urn:gala:problem:resource-not-found
|
|
40275
|
+
schema:
|
|
40276
|
+
$ref: "#/components/schemas/Problem"
|
|
40277
|
+
description: RESOURCE_NOT_FOUND
|
|
40278
|
+
headers:
|
|
40279
|
+
Cache-Control:
|
|
40280
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40281
|
+
X-Correlation-Id:
|
|
40282
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40283
|
+
x-gala-problem-codes:
|
|
40284
|
+
- RESOURCE_NOT_FOUND
|
|
40285
|
+
"429":
|
|
40286
|
+
content:
|
|
40287
|
+
application/problem+json:
|
|
40288
|
+
examples:
|
|
40289
|
+
RATE_LIMITED:
|
|
40290
|
+
summary: RATE_LIMITED
|
|
40291
|
+
value:
|
|
40292
|
+
code: RATE_LIMITED
|
|
40293
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40294
|
+
detail: See the operation contract.
|
|
40295
|
+
errors: []
|
|
40296
|
+
retryable: true
|
|
40297
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40298
|
+
schemaVersion: 2.0.0
|
|
40299
|
+
status: 429
|
|
40300
|
+
title: RATE_LIMITED
|
|
40301
|
+
type: urn:gala:problem:rate-limited
|
|
40302
|
+
schema:
|
|
40303
|
+
$ref: "#/components/schemas/Problem"
|
|
40304
|
+
description: RATE_LIMITED
|
|
40305
|
+
headers:
|
|
40306
|
+
Cache-Control:
|
|
40307
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40308
|
+
Retry-After:
|
|
40309
|
+
$ref: "#/components/headers/RetryAfter"
|
|
40310
|
+
X-Correlation-Id:
|
|
40311
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40312
|
+
x-gala-problem-codes:
|
|
40313
|
+
- RATE_LIMITED
|
|
40314
|
+
"503":
|
|
40315
|
+
content:
|
|
40316
|
+
application/problem+json:
|
|
40317
|
+
examples:
|
|
40318
|
+
CAPABILITY_UNAVAILABLE:
|
|
40319
|
+
summary: CAPABILITY_UNAVAILABLE
|
|
40320
|
+
value:
|
|
40321
|
+
code: CAPABILITY_UNAVAILABLE
|
|
40322
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40323
|
+
detail: See the operation contract.
|
|
40324
|
+
errors: []
|
|
40325
|
+
retryable: false
|
|
40326
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40327
|
+
schemaVersion: 2.0.0
|
|
40328
|
+
status: 503
|
|
40329
|
+
title: CAPABILITY_UNAVAILABLE
|
|
40330
|
+
type: urn:gala:problem:capability-unavailable
|
|
40331
|
+
DEPENDENCY_UNAVAILABLE:
|
|
40332
|
+
summary: DEPENDENCY_UNAVAILABLE
|
|
40333
|
+
value:
|
|
40334
|
+
code: DEPENDENCY_UNAVAILABLE
|
|
40335
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
40336
|
+
detail: See the operation contract.
|
|
40337
|
+
errors: []
|
|
40338
|
+
retryable: true
|
|
40339
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
40340
|
+
schemaVersion: 2.0.0
|
|
40341
|
+
status: 503
|
|
40342
|
+
title: DEPENDENCY_UNAVAILABLE
|
|
40343
|
+
type: urn:gala:problem:dependency-unavailable
|
|
40344
|
+
schema:
|
|
40345
|
+
$ref: "#/components/schemas/Problem"
|
|
40346
|
+
description: CAPABILITY_UNAVAILABLE, DEPENDENCY_UNAVAILABLE
|
|
40347
|
+
headers:
|
|
40348
|
+
Cache-Control:
|
|
40349
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40350
|
+
X-Correlation-Id:
|
|
40351
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40352
|
+
x-gala-problem-codes:
|
|
40353
|
+
- CAPABILITY_UNAVAILABLE
|
|
40354
|
+
- DEPENDENCY_UNAVAILABLE
|
|
40355
|
+
security:
|
|
40356
|
+
- browserSession: []
|
|
40357
|
+
summary: read the preview context
|
|
40358
|
+
tags:
|
|
40359
|
+
- organizations
|
|
40360
|
+
x-gala-activation-gate: MVP
|
|
40361
|
+
x-gala-activation-guards:
|
|
40362
|
+
- Active repository binding and configured GitHub App identity capability
|
|
40363
|
+
x-gala-capability-key: publication.view
|
|
40364
|
+
x-gala-concurrency: binding-epoch
|
|
40365
|
+
x-gala-conditional-capabilities: []
|
|
40366
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
40367
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
40368
|
+
x-gala-purpose: read the preview context
|
|
40369
|
+
x-gala-reachable-problems:
|
|
40370
|
+
- AUTHENTICATION_REQUIRED
|
|
40371
|
+
- AUTHORIZATION_DENIED
|
|
40372
|
+
- CAPABILITY_UNAVAILABLE
|
|
40373
|
+
- DEPENDENCY_UNAVAILABLE
|
|
40374
|
+
- RATE_LIMITED
|
|
40375
|
+
- RESOURCE_NOT_FOUND
|
|
40376
|
+
- VALIDATION_FAILED
|
|
40377
|
+
x-gala-replay-identity: safe-query
|
|
40378
|
+
x-gala-state-guards:
|
|
40379
|
+
- NONE
|
|
40380
|
+
x-gala-success-category: query
|
|
40381
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
40382
|
+
/v2/organizations/{organizationId}/publications/{publicationId}/deployments:
|
|
40383
|
+
get:
|
|
40384
|
+
operationId: getOrganizationsByOrganizationIdPublicationsByPublicationIdDeployments
|
|
40385
|
+
parameters:
|
|
40386
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
40387
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
40388
|
+
in: path
|
|
40389
|
+
name: organizationId
|
|
40390
|
+
required: true
|
|
40391
|
+
schema:
|
|
40392
|
+
format: uuid
|
|
40393
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
40394
|
+
type: string
|
|
40395
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
40396
|
+
in: path
|
|
40397
|
+
name: publicationId
|
|
40398
|
+
required: true
|
|
40399
|
+
schema:
|
|
40400
|
+
format: uuid
|
|
40401
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
40402
|
+
type: string
|
|
40403
|
+
- $ref: "#/components/parameters/Cursor"
|
|
40404
|
+
- $ref: "#/components/parameters/Limit"
|
|
40405
|
+
responses:
|
|
40406
|
+
"200":
|
|
40407
|
+
content:
|
|
40408
|
+
application/json:
|
|
40409
|
+
examples:
|
|
40410
|
+
nominal:
|
|
40411
|
+
summary: Nominal successful response
|
|
40412
|
+
value:
|
|
40413
|
+
hasMore: false
|
|
40414
|
+
items: []
|
|
40415
|
+
schema:
|
|
40416
|
+
$ref: "#/components/schemas/GetOrganizationsByOrganizationIdPublicationsByPublicationIdDeploymentsResponse"
|
|
40417
|
+
description: read generation and digest history without artifact bytes succeeded
|
|
40418
|
+
headers:
|
|
40419
|
+
Cache-Control:
|
|
40420
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
40421
|
+
X-Correlation-Id:
|
|
40422
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
40423
|
+
"400":
|
|
40424
|
+
$ref: "#/components/responses/ValidationFailed"
|
|
38249
40425
|
"401":
|
|
38250
40426
|
content:
|
|
38251
40427
|
application/problem+json:
|
|
@@ -39768,6 +41944,591 @@ paths:
|
|
|
39768
41944
|
- PublicationDestination:UNSET|SET
|
|
39769
41945
|
x-gala-success-category: update
|
|
39770
41946
|
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
41947
|
+
/v2/organizations/{organizationId}/publications/{publicationId}/domain-registrations:
|
|
41948
|
+
get:
|
|
41949
|
+
description: |
|
|
41950
|
+
Needs `publication.view`. The registrations made for this site, newest
|
|
41951
|
+
first (`DomainRegistration`). At most 20.
|
|
41952
|
+
operationId: getOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrations
|
|
41953
|
+
parameters:
|
|
41954
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
41955
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
41956
|
+
in: path
|
|
41957
|
+
name: organizationId
|
|
41958
|
+
required: true
|
|
41959
|
+
schema:
|
|
41960
|
+
format: uuid
|
|
41961
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
41962
|
+
type: string
|
|
41963
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
41964
|
+
in: path
|
|
41965
|
+
name: publicationId
|
|
41966
|
+
required: true
|
|
41967
|
+
schema:
|
|
41968
|
+
format: uuid
|
|
41969
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
41970
|
+
type: string
|
|
41971
|
+
responses:
|
|
41972
|
+
"200":
|
|
41973
|
+
content:
|
|
41974
|
+
application/json:
|
|
41975
|
+
examples:
|
|
41976
|
+
nominal:
|
|
41977
|
+
summary: Nominal successful response
|
|
41978
|
+
value:
|
|
41979
|
+
items:
|
|
41980
|
+
- createdAt: "2026-11-02T09:00:00.000Z"
|
|
41981
|
+
domainName: mayawrites.com
|
|
41982
|
+
registrationId: 018f0000-0000-7000-8000-000000000001
|
|
41983
|
+
state: REGISTERING
|
|
41984
|
+
updatedAt: "2026-11-02T09:00:00.000Z"
|
|
41985
|
+
schema:
|
|
41986
|
+
$ref: "#/components/schemas/GetOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrationsResponse"
|
|
41987
|
+
description: list the domain registrations of a site succeeded
|
|
41988
|
+
headers:
|
|
41989
|
+
Cache-Control:
|
|
41990
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
41991
|
+
X-Correlation-Id:
|
|
41992
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
41993
|
+
"400":
|
|
41994
|
+
$ref: "#/components/responses/ValidationFailed"
|
|
41995
|
+
"401":
|
|
41996
|
+
content:
|
|
41997
|
+
application/problem+json:
|
|
41998
|
+
examples:
|
|
41999
|
+
AUTHENTICATION_REQUIRED:
|
|
42000
|
+
summary: AUTHENTICATION_REQUIRED
|
|
42001
|
+
value:
|
|
42002
|
+
code: AUTHENTICATION_REQUIRED
|
|
42003
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
42004
|
+
detail: See the operation contract.
|
|
42005
|
+
errors: []
|
|
42006
|
+
retryable: false
|
|
42007
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
42008
|
+
schemaVersion: 2.0.0
|
|
42009
|
+
status: 401
|
|
42010
|
+
title: AUTHENTICATION_REQUIRED
|
|
42011
|
+
type: urn:gala:problem:authentication-required
|
|
42012
|
+
schema:
|
|
42013
|
+
$ref: "#/components/schemas/Problem"
|
|
42014
|
+
description: AUTHENTICATION_REQUIRED
|
|
42015
|
+
headers:
|
|
42016
|
+
Cache-Control:
|
|
42017
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
42018
|
+
X-Correlation-Id:
|
|
42019
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
42020
|
+
x-gala-problem-codes:
|
|
42021
|
+
- AUTHENTICATION_REQUIRED
|
|
42022
|
+
"403":
|
|
42023
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
42024
|
+
"404":
|
|
42025
|
+
$ref: "#/components/responses/ResourceNotFound"
|
|
42026
|
+
security:
|
|
42027
|
+
- browserSession: []
|
|
42028
|
+
summary: list the domain registrations of a site
|
|
42029
|
+
tags:
|
|
42030
|
+
- domains
|
|
42031
|
+
x-gala-activation-gate: MVP
|
|
42032
|
+
x-gala-activation-guards:
|
|
42033
|
+
- NONE
|
|
42034
|
+
x-gala-capability-key: publication.view
|
|
42035
|
+
x-gala-concurrency: publication-and-destination-epochs
|
|
42036
|
+
x-gala-conditional-capabilities: []
|
|
42037
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
42038
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
42039
|
+
x-gala-purpose: list the domain registrations of a site
|
|
42040
|
+
x-gala-reachable-problems:
|
|
42041
|
+
- AUTHENTICATION_REQUIRED
|
|
42042
|
+
- AUTHORIZATION_DENIED
|
|
42043
|
+
- RESOURCE_NOT_FOUND
|
|
42044
|
+
- VALIDATION_FAILED
|
|
42045
|
+
x-gala-replay-identity: safe-query
|
|
42046
|
+
x-gala-state-guards:
|
|
42047
|
+
- NONE
|
|
42048
|
+
x-gala-success-category: query
|
|
42049
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
42050
|
+
post:
|
|
42051
|
+
description: |
|
|
42052
|
+
Needs `publication.settings.manage`. Registers `domainName` for the
|
|
42053
|
+
organization as its one included domain and attaches it to this site.
|
|
42054
|
+
Galascribe re-checks the name, registers it with `registrant` as the
|
|
42055
|
+
domain's owner, then writes the DNS records and attaches the domain, so the
|
|
42056
|
+
person adds no records. The answer is `202` with a `DomainRegistration`
|
|
42057
|
+
that moves through its `state` while the work runs; read it again to follow
|
|
42058
|
+
it. `registrant` is sent to the registrar and is never stored, logged or
|
|
42059
|
+
returned. `409 PLAN_REQUIRED` when the plan has no included domain;
|
|
42060
|
+
`409 INVALID_SOURCE_STATE` when the organization already used its included
|
|
42061
|
+
domain; `422 VALIDATION_FAILED` for a name or registrant field that is not
|
|
42062
|
+
valid; `503 CAPABILITY_UNAVAILABLE` when registration is not set up.
|
|
42063
|
+
operationId: postOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrations
|
|
42064
|
+
parameters:
|
|
42065
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
42066
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
42067
|
+
in: path
|
|
42068
|
+
name: organizationId
|
|
42069
|
+
required: true
|
|
42070
|
+
schema:
|
|
42071
|
+
format: uuid
|
|
42072
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
42073
|
+
type: string
|
|
42074
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
42075
|
+
in: path
|
|
42076
|
+
name: publicationId
|
|
42077
|
+
required: true
|
|
42078
|
+
schema:
|
|
42079
|
+
format: uuid
|
|
42080
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
42081
|
+
type: string
|
|
42082
|
+
- $ref: "#/components/parameters/IdempotencyKey"
|
|
42083
|
+
- $ref: "#/components/parameters/XCsrfToken"
|
|
42084
|
+
requestBody:
|
|
42085
|
+
content:
|
|
42086
|
+
application/json:
|
|
42087
|
+
examples:
|
|
42088
|
+
nominal:
|
|
42089
|
+
summary: Nominal valid request
|
|
42090
|
+
value:
|
|
42091
|
+
domainName: mayawrites.com
|
|
42092
|
+
registrant:
|
|
42093
|
+
address:
|
|
42094
|
+
city: Portland
|
|
42095
|
+
countryCode: US
|
|
42096
|
+
postalCode: "97201"
|
|
42097
|
+
region: OR
|
|
42098
|
+
street: 12 Example Street
|
|
42099
|
+
email: maya@example.com
|
|
42100
|
+
name: Maya Example
|
|
42101
|
+
phone: "+1.5555555555"
|
|
42102
|
+
schema:
|
|
42103
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrationsRequest"
|
|
42104
|
+
required: true
|
|
42105
|
+
responses:
|
|
42106
|
+
"202":
|
|
42107
|
+
content:
|
|
42108
|
+
application/json:
|
|
42109
|
+
examples:
|
|
42110
|
+
nominal:
|
|
42111
|
+
summary: Nominal successful response
|
|
42112
|
+
value:
|
|
42113
|
+
createdAt: "2026-11-02T09:00:00.000Z"
|
|
42114
|
+
domainName: mayawrites.com
|
|
42115
|
+
registrationId: 018f0000-0000-7000-8000-000000000001
|
|
42116
|
+
state: REGISTERING
|
|
42117
|
+
updatedAt: "2026-11-02T09:00:00.000Z"
|
|
42118
|
+
schema:
|
|
42119
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrationsResponse"
|
|
42120
|
+
description: register the included domain succeeded
|
|
42121
|
+
headers:
|
|
42122
|
+
Cache-Control:
|
|
42123
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
42124
|
+
X-Correlation-Id:
|
|
42125
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
42126
|
+
"400":
|
|
42127
|
+
$ref: "#/components/responses/RequestInvalid"
|
|
42128
|
+
"401":
|
|
42129
|
+
content:
|
|
42130
|
+
application/problem+json:
|
|
42131
|
+
examples:
|
|
42132
|
+
AUTHENTICATION_REQUIRED:
|
|
42133
|
+
summary: AUTHENTICATION_REQUIRED
|
|
42134
|
+
value:
|
|
42135
|
+
code: AUTHENTICATION_REQUIRED
|
|
42136
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
42137
|
+
detail: See the operation contract.
|
|
42138
|
+
errors: []
|
|
42139
|
+
retryable: false
|
|
42140
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
42141
|
+
schemaVersion: 2.0.0
|
|
42142
|
+
status: 401
|
|
42143
|
+
title: AUTHENTICATION_REQUIRED
|
|
42144
|
+
type: urn:gala:problem:authentication-required
|
|
42145
|
+
schema:
|
|
42146
|
+
$ref: "#/components/schemas/Problem"
|
|
42147
|
+
description: AUTHENTICATION_REQUIRED
|
|
42148
|
+
headers:
|
|
42149
|
+
Cache-Control:
|
|
42150
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
42151
|
+
X-Correlation-Id:
|
|
42152
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
42153
|
+
x-gala-problem-codes:
|
|
42154
|
+
- AUTHENTICATION_REQUIRED
|
|
42155
|
+
"403":
|
|
42156
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
42157
|
+
"404":
|
|
42158
|
+
$ref: "#/components/responses/ResourceNotFound"
|
|
42159
|
+
"409":
|
|
42160
|
+
content:
|
|
42161
|
+
application/problem+json:
|
|
42162
|
+
examples:
|
|
42163
|
+
COMMAND_REPLAY_CONFLICT:
|
|
42164
|
+
summary: COMMAND_REPLAY_CONFLICT
|
|
42165
|
+
value:
|
|
42166
|
+
code: COMMAND_REPLAY_CONFLICT
|
|
42167
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
42168
|
+
detail: See the operation contract.
|
|
42169
|
+
errors: []
|
|
42170
|
+
retryable: false
|
|
42171
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
42172
|
+
schemaVersion: 2.0.0
|
|
42173
|
+
status: 409
|
|
42174
|
+
title: COMMAND_REPLAY_CONFLICT
|
|
42175
|
+
type: urn:gala:problem:command-replay-conflict
|
|
42176
|
+
INVALID_SOURCE_STATE:
|
|
42177
|
+
summary: INVALID_SOURCE_STATE
|
|
42178
|
+
value:
|
|
42179
|
+
code: INVALID_SOURCE_STATE
|
|
42180
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
42181
|
+
detail: See the operation contract.
|
|
42182
|
+
errors: []
|
|
42183
|
+
retryable: false
|
|
42184
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
42185
|
+
schemaVersion: 2.0.0
|
|
42186
|
+
status: 409
|
|
42187
|
+
title: INVALID_SOURCE_STATE
|
|
42188
|
+
type: urn:gala:problem:invalid-source-state
|
|
42189
|
+
PLAN_REQUIRED:
|
|
42190
|
+
summary: PLAN_REQUIRED
|
|
42191
|
+
value:
|
|
42192
|
+
code: PLAN_REQUIRED
|
|
42193
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
42194
|
+
detail: The organization's plan does not include a domain. See the operation contract.
|
|
42195
|
+
errors: []
|
|
42196
|
+
retryable: false
|
|
42197
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
42198
|
+
schemaVersion: 2.0.0
|
|
42199
|
+
status: 409
|
|
42200
|
+
title: PLAN_REQUIRED
|
|
42201
|
+
type: urn:gala:problem:plan-required
|
|
42202
|
+
schema:
|
|
42203
|
+
$ref: "#/components/schemas/Problem"
|
|
42204
|
+
description: COMMAND_REPLAY_CONFLICT, INVALID_SOURCE_STATE, PLAN_REQUIRED
|
|
42205
|
+
headers:
|
|
42206
|
+
Cache-Control:
|
|
42207
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
42208
|
+
X-Correlation-Id:
|
|
42209
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
42210
|
+
x-gala-problem-codes:
|
|
42211
|
+
- COMMAND_REPLAY_CONFLICT
|
|
42212
|
+
- INVALID_SOURCE_STATE
|
|
42213
|
+
- PLAN_REQUIRED
|
|
42214
|
+
"422":
|
|
42215
|
+
content:
|
|
42216
|
+
application/problem+json:
|
|
42217
|
+
examples:
|
|
42218
|
+
VALIDATION_FAILED:
|
|
42219
|
+
summary: VALIDATION_FAILED
|
|
42220
|
+
value:
|
|
42221
|
+
code: VALIDATION_FAILED
|
|
42222
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
42223
|
+
detail: See the operation contract.
|
|
42224
|
+
errors: []
|
|
42225
|
+
retryable: false
|
|
42226
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
42227
|
+
schemaVersion: 2.0.0
|
|
42228
|
+
status: 422
|
|
42229
|
+
title: VALIDATION_FAILED
|
|
42230
|
+
type: urn:gala:problem:validation-failed
|
|
42231
|
+
schema:
|
|
42232
|
+
$ref: "#/components/schemas/Problem"
|
|
42233
|
+
description: VALIDATION_FAILED
|
|
42234
|
+
headers:
|
|
42235
|
+
Cache-Control:
|
|
42236
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
42237
|
+
X-Correlation-Id:
|
|
42238
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
42239
|
+
x-gala-problem-codes:
|
|
42240
|
+
- VALIDATION_FAILED
|
|
42241
|
+
"503":
|
|
42242
|
+
content:
|
|
42243
|
+
application/problem+json:
|
|
42244
|
+
examples:
|
|
42245
|
+
CAPABILITY_UNAVAILABLE:
|
|
42246
|
+
summary: CAPABILITY_UNAVAILABLE
|
|
42247
|
+
value:
|
|
42248
|
+
code: CAPABILITY_UNAVAILABLE
|
|
42249
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
42250
|
+
detail: See the operation contract.
|
|
42251
|
+
errors: []
|
|
42252
|
+
retryable: false
|
|
42253
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
42254
|
+
schemaVersion: 2.0.0
|
|
42255
|
+
status: 503
|
|
42256
|
+
title: CAPABILITY_UNAVAILABLE
|
|
42257
|
+
type: urn:gala:problem:capability-unavailable
|
|
42258
|
+
schema:
|
|
42259
|
+
$ref: "#/components/schemas/Problem"
|
|
42260
|
+
description: CAPABILITY_UNAVAILABLE
|
|
42261
|
+
headers:
|
|
42262
|
+
Cache-Control:
|
|
42263
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
42264
|
+
X-Correlation-Id:
|
|
42265
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
42266
|
+
x-gala-problem-codes:
|
|
42267
|
+
- CAPABILITY_UNAVAILABLE
|
|
42268
|
+
security:
|
|
42269
|
+
- browserSession: []
|
|
42270
|
+
summary: register the included domain
|
|
42271
|
+
tags:
|
|
42272
|
+
- domains
|
|
42273
|
+
x-gala-activation-gate: MVP
|
|
42274
|
+
x-gala-activation-guards:
|
|
42275
|
+
- DOMAIN_REGISTRATION_ENABLED
|
|
42276
|
+
x-gala-capability-key: publication.settings.manage
|
|
42277
|
+
x-gala-concurrency: organization-version
|
|
42278
|
+
x-gala-conditional-capabilities: []
|
|
42279
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
42280
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
42281
|
+
x-gala-purpose: register the included domain
|
|
42282
|
+
x-gala-reachable-problems:
|
|
42283
|
+
- AUTHENTICATION_REQUIRED
|
|
42284
|
+
- AUTHORIZATION_DENIED
|
|
42285
|
+
- CAPABILITY_UNAVAILABLE
|
|
42286
|
+
- COMMAND_REPLAY_CONFLICT
|
|
42287
|
+
- INVALID_SOURCE_STATE
|
|
42288
|
+
- PLAN_REQUIRED
|
|
42289
|
+
- REQUEST_FIELD_UNKNOWN
|
|
42290
|
+
- RESOURCE_NOT_FOUND
|
|
42291
|
+
- VALIDATION_FAILED
|
|
42292
|
+
x-gala-replay-identity: idempotency-key
|
|
42293
|
+
x-gala-state-guards:
|
|
42294
|
+
- Organization:INCLUDED_DOMAIN_UNUSED
|
|
42295
|
+
x-gala-success-category: async
|
|
42296
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
42297
|
+
/v2/organizations/{organizationId}/publications/{publicationId}/domain-registrations/{registrationId}:
|
|
42298
|
+
get:
|
|
42299
|
+
description: |
|
|
42300
|
+
Needs `publication.view`. One registration made for this site. `state`
|
|
42301
|
+
follows the work: `REQUESTED`, `REGISTERING`, `REGISTERED` (bought, records
|
|
42302
|
+
not yet written) and `ATTACHED` (the site uses it; `domainId` names the
|
|
42303
|
+
binding), or `ACTION_REQUIRED` and `FAILED` (`failure` says what happened and
|
|
42304
|
+
the person may ask Galascribe for help).
|
|
42305
|
+
operationId: getOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrationsByRegistrationId
|
|
42306
|
+
parameters:
|
|
42307
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
42308
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
42309
|
+
in: path
|
|
42310
|
+
name: organizationId
|
|
42311
|
+
required: true
|
|
42312
|
+
schema:
|
|
42313
|
+
format: uuid
|
|
42314
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
42315
|
+
type: string
|
|
42316
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
42317
|
+
in: path
|
|
42318
|
+
name: publicationId
|
|
42319
|
+
required: true
|
|
42320
|
+
schema:
|
|
42321
|
+
format: uuid
|
|
42322
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
42323
|
+
type: string
|
|
42324
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
42325
|
+
in: path
|
|
42326
|
+
name: registrationId
|
|
42327
|
+
required: true
|
|
42328
|
+
schema:
|
|
42329
|
+
format: uuid
|
|
42330
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
42331
|
+
type: string
|
|
42332
|
+
responses:
|
|
42333
|
+
"200":
|
|
42334
|
+
content:
|
|
42335
|
+
application/json:
|
|
42336
|
+
examples:
|
|
42337
|
+
nominal:
|
|
42338
|
+
summary: Nominal successful response
|
|
42339
|
+
value:
|
|
42340
|
+
createdAt: "2026-11-02T09:00:00.000Z"
|
|
42341
|
+
domainId: 018f0000-0000-7000-8000-000000000001
|
|
42342
|
+
domainName: mayawrites.com
|
|
42343
|
+
registrationId: 018f0000-0000-7000-8000-000000000001
|
|
42344
|
+
state: ATTACHED
|
|
42345
|
+
updatedAt: "2026-11-02T09:00:00.000Z"
|
|
42346
|
+
schema:
|
|
42347
|
+
$ref: "#/components/schemas/GetOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrationsByRegistrationIdResponse"
|
|
42348
|
+
description: read a domain registration succeeded
|
|
42349
|
+
headers:
|
|
42350
|
+
Cache-Control:
|
|
42351
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
42352
|
+
X-Correlation-Id:
|
|
42353
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
42354
|
+
"400":
|
|
42355
|
+
$ref: "#/components/responses/ValidationFailed"
|
|
42356
|
+
"401":
|
|
42357
|
+
content:
|
|
42358
|
+
application/problem+json:
|
|
42359
|
+
examples:
|
|
42360
|
+
AUTHENTICATION_REQUIRED:
|
|
42361
|
+
summary: AUTHENTICATION_REQUIRED
|
|
42362
|
+
value:
|
|
42363
|
+
code: AUTHENTICATION_REQUIRED
|
|
42364
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
42365
|
+
detail: See the operation contract.
|
|
42366
|
+
errors: []
|
|
42367
|
+
retryable: false
|
|
42368
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
42369
|
+
schemaVersion: 2.0.0
|
|
42370
|
+
status: 401
|
|
42371
|
+
title: AUTHENTICATION_REQUIRED
|
|
42372
|
+
type: urn:gala:problem:authentication-required
|
|
42373
|
+
schema:
|
|
42374
|
+
$ref: "#/components/schemas/Problem"
|
|
42375
|
+
description: AUTHENTICATION_REQUIRED
|
|
42376
|
+
headers:
|
|
42377
|
+
Cache-Control:
|
|
42378
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
42379
|
+
X-Correlation-Id:
|
|
42380
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
42381
|
+
x-gala-problem-codes:
|
|
42382
|
+
- AUTHENTICATION_REQUIRED
|
|
42383
|
+
"403":
|
|
42384
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
42385
|
+
"404":
|
|
42386
|
+
$ref: "#/components/responses/ResourceNotFound"
|
|
42387
|
+
security:
|
|
42388
|
+
- browserSession: []
|
|
42389
|
+
summary: read a domain registration
|
|
42390
|
+
tags:
|
|
42391
|
+
- domains
|
|
42392
|
+
x-gala-activation-gate: MVP
|
|
42393
|
+
x-gala-activation-guards:
|
|
42394
|
+
- NONE
|
|
42395
|
+
x-gala-capability-key: publication.view
|
|
42396
|
+
x-gala-concurrency: publication-and-destination-epochs
|
|
42397
|
+
x-gala-conditional-capabilities: []
|
|
42398
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
42399
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
42400
|
+
x-gala-purpose: read a domain registration
|
|
42401
|
+
x-gala-reachable-problems:
|
|
42402
|
+
- AUTHENTICATION_REQUIRED
|
|
42403
|
+
- AUTHORIZATION_DENIED
|
|
42404
|
+
- RESOURCE_NOT_FOUND
|
|
42405
|
+
- VALIDATION_FAILED
|
|
42406
|
+
x-gala-replay-identity: safe-query
|
|
42407
|
+
x-gala-state-guards:
|
|
42408
|
+
- NONE
|
|
42409
|
+
x-gala-success-category: query
|
|
42410
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
42411
|
+
/v2/organizations/{organizationId}/publications/{publicationId}/domain-registrations:check:
|
|
42412
|
+
post:
|
|
42413
|
+
description: |
|
|
42414
|
+
Needs `publication.settings.manage`. Asks whether `name` can be registered
|
|
42415
|
+
for the organization as its included domain, without registering it. Always
|
|
42416
|
+
`200`: `registrable` is true, or `reason` says why not. `UNAVAILABLE`:
|
|
42417
|
+
already registered. `EXTENSION_NOT_SUPPORTED`: Galascribe cannot register
|
|
42418
|
+
that ending. `PREMIUM`: a premium name, which the included domain does
|
|
42419
|
+
not cover. `OVER_PRICE_CAP`: its first-year price is above what the
|
|
42420
|
+
included domain covers. `INVALID_NAME`: not a usable domain name.
|
|
42421
|
+
`PLAN_REQUIRED`: the plan has no included domain. `ALREADY_USED`: the
|
|
42422
|
+
organization already used its included domain. `NOT_CONFIGURED`:
|
|
42423
|
+
registration is not set up on this deployment. The response carries no
|
|
42424
|
+
price: the domain is included in the plan.
|
|
42425
|
+
operationId: postOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrationsCheck
|
|
42426
|
+
parameters:
|
|
42427
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
42428
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
42429
|
+
in: path
|
|
42430
|
+
name: organizationId
|
|
42431
|
+
required: true
|
|
42432
|
+
schema:
|
|
42433
|
+
format: uuid
|
|
42434
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
42435
|
+
type: string
|
|
42436
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
42437
|
+
in: path
|
|
42438
|
+
name: publicationId
|
|
42439
|
+
required: true
|
|
42440
|
+
schema:
|
|
42441
|
+
format: uuid
|
|
42442
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
42443
|
+
type: string
|
|
42444
|
+
- $ref: "#/components/parameters/XCsrfToken"
|
|
42445
|
+
requestBody:
|
|
42446
|
+
content:
|
|
42447
|
+
application/json:
|
|
42448
|
+
examples:
|
|
42449
|
+
nominal:
|
|
42450
|
+
summary: Nominal valid request
|
|
42451
|
+
value:
|
|
42452
|
+
name: mayawrites.com
|
|
42453
|
+
schema:
|
|
42454
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrationsCheckRequest"
|
|
42455
|
+
required: true
|
|
42456
|
+
responses:
|
|
42457
|
+
"200":
|
|
42458
|
+
content:
|
|
42459
|
+
application/json:
|
|
42460
|
+
examples:
|
|
42461
|
+
nominal:
|
|
42462
|
+
summary: Nominal successful response
|
|
42463
|
+
value:
|
|
42464
|
+
name: mayawrites.com
|
|
42465
|
+
registrable: true
|
|
42466
|
+
schema:
|
|
42467
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainRegistrationsCheckResponse"
|
|
42468
|
+
description: check a domain name for registration succeeded
|
|
42469
|
+
headers:
|
|
42470
|
+
Cache-Control:
|
|
42471
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
42472
|
+
X-Correlation-Id:
|
|
42473
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
42474
|
+
"400":
|
|
42475
|
+
$ref: "#/components/responses/RequestInvalid"
|
|
42476
|
+
"401":
|
|
42477
|
+
content:
|
|
42478
|
+
application/problem+json:
|
|
42479
|
+
examples:
|
|
42480
|
+
AUTHENTICATION_REQUIRED:
|
|
42481
|
+
summary: AUTHENTICATION_REQUIRED
|
|
42482
|
+
value:
|
|
42483
|
+
code: AUTHENTICATION_REQUIRED
|
|
42484
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
42485
|
+
detail: See the operation contract.
|
|
42486
|
+
errors: []
|
|
42487
|
+
retryable: false
|
|
42488
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
42489
|
+
schemaVersion: 2.0.0
|
|
42490
|
+
status: 401
|
|
42491
|
+
title: AUTHENTICATION_REQUIRED
|
|
42492
|
+
type: urn:gala:problem:authentication-required
|
|
42493
|
+
schema:
|
|
42494
|
+
$ref: "#/components/schemas/Problem"
|
|
42495
|
+
description: AUTHENTICATION_REQUIRED
|
|
42496
|
+
headers:
|
|
42497
|
+
Cache-Control:
|
|
42498
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
42499
|
+
X-Correlation-Id:
|
|
42500
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
42501
|
+
x-gala-problem-codes:
|
|
42502
|
+
- AUTHENTICATION_REQUIRED
|
|
42503
|
+
"403":
|
|
42504
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
42505
|
+
"404":
|
|
42506
|
+
$ref: "#/components/responses/ResourceNotFound"
|
|
42507
|
+
security:
|
|
42508
|
+
- browserSession: []
|
|
42509
|
+
summary: check a domain name for registration
|
|
42510
|
+
tags:
|
|
42511
|
+
- domains
|
|
42512
|
+
x-gala-activation-gate: MVP
|
|
42513
|
+
x-gala-activation-guards:
|
|
42514
|
+
- NONE
|
|
42515
|
+
x-gala-capability-key: publication.settings.manage
|
|
42516
|
+
x-gala-concurrency: none
|
|
42517
|
+
x-gala-conditional-capabilities: []
|
|
42518
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
42519
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
42520
|
+
x-gala-purpose: check a domain name for registration
|
|
42521
|
+
x-gala-reachable-problems:
|
|
42522
|
+
- AUTHENTICATION_REQUIRED
|
|
42523
|
+
- AUTHORIZATION_DENIED
|
|
42524
|
+
- REQUEST_FIELD_UNKNOWN
|
|
42525
|
+
- RESOURCE_NOT_FOUND
|
|
42526
|
+
- VALIDATION_FAILED
|
|
42527
|
+
x-gala-replay-identity: safe-query
|
|
42528
|
+
x-gala-state-guards:
|
|
42529
|
+
- NONE
|
|
42530
|
+
x-gala-success-category: protocol
|
|
42531
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
39771
42532
|
/v2/organizations/{organizationId}/publications/{publicationId}/domains:
|
|
39772
42533
|
get:
|
|
39773
42534
|
description: |
|
|
@@ -42412,6 +45173,389 @@ paths:
|
|
|
42412
45173
|
- NONE
|
|
42413
45174
|
x-gala-success-category: update
|
|
42414
45175
|
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
45176
|
+
/v2/organizations/{organizationId}/publications/{publicationId}/domains:check-galascribe-address:
|
|
45177
|
+
post:
|
|
45178
|
+
description: |
|
|
45179
|
+
Needs `publication.settings.manage`. Asks whether `label` can become this
|
|
45180
|
+
site's `label.galascribe.com` address, without reserving it. Always
|
|
45181
|
+
`200`: `available` is true, or `reason` says why not. `INVALID`: not a
|
|
45182
|
+
usable label (3 to 63 lowercase letters, digits and hyphens, not starting
|
|
45183
|
+
or ending with a hyphen). `RESERVED`: a name Galascribe keeps for itself.
|
|
45184
|
+
`TAKEN`: another site has it or something already exists at that name.
|
|
45185
|
+
`PLAN_REQUIRED`: the organization's plan has no Galascribe address.
|
|
45186
|
+
`NOT_CONFIGURED`: Galascribe addresses are not set up on this deployment.
|
|
45187
|
+
`ALREADY_HAS_DOMAIN`: the site already has a domain that is not detached.
|
|
45188
|
+
`hostname` is the full address when the label is well formed.
|
|
45189
|
+
operationId: postOrganizationsByOrganizationIdPublicationsByPublicationIdDomainsCheckGalascribeAddress
|
|
45190
|
+
parameters:
|
|
45191
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
45192
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
45193
|
+
in: path
|
|
45194
|
+
name: organizationId
|
|
45195
|
+
required: true
|
|
45196
|
+
schema:
|
|
45197
|
+
format: uuid
|
|
45198
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
45199
|
+
type: string
|
|
45200
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
45201
|
+
in: path
|
|
45202
|
+
name: publicationId
|
|
45203
|
+
required: true
|
|
45204
|
+
schema:
|
|
45205
|
+
format: uuid
|
|
45206
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
45207
|
+
type: string
|
|
45208
|
+
- $ref: "#/components/parameters/XCsrfToken"
|
|
45209
|
+
requestBody:
|
|
45210
|
+
content:
|
|
45211
|
+
application/json:
|
|
45212
|
+
examples:
|
|
45213
|
+
nominal:
|
|
45214
|
+
summary: Nominal valid request
|
|
45215
|
+
value:
|
|
45216
|
+
label: maya
|
|
45217
|
+
schema:
|
|
45218
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainsCheckGalascribeAddressRequest"
|
|
45219
|
+
required: true
|
|
45220
|
+
responses:
|
|
45221
|
+
"200":
|
|
45222
|
+
content:
|
|
45223
|
+
application/json:
|
|
45224
|
+
examples:
|
|
45225
|
+
nominal:
|
|
45226
|
+
summary: Nominal successful response
|
|
45227
|
+
value:
|
|
45228
|
+
available: true
|
|
45229
|
+
hostname: maya.galascribe.com
|
|
45230
|
+
label: maya
|
|
45231
|
+
schema:
|
|
45232
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainsCheckGalascribeAddressResponse"
|
|
45233
|
+
description: check a Galascribe address succeeded
|
|
45234
|
+
headers:
|
|
45235
|
+
Cache-Control:
|
|
45236
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45237
|
+
X-Correlation-Id:
|
|
45238
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45239
|
+
"400":
|
|
45240
|
+
$ref: "#/components/responses/RequestInvalid"
|
|
45241
|
+
"401":
|
|
45242
|
+
content:
|
|
45243
|
+
application/problem+json:
|
|
45244
|
+
examples:
|
|
45245
|
+
AUTHENTICATION_REQUIRED:
|
|
45246
|
+
summary: AUTHENTICATION_REQUIRED
|
|
45247
|
+
value:
|
|
45248
|
+
code: AUTHENTICATION_REQUIRED
|
|
45249
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45250
|
+
detail: See the operation contract.
|
|
45251
|
+
errors: []
|
|
45252
|
+
retryable: false
|
|
45253
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45254
|
+
schemaVersion: 2.0.0
|
|
45255
|
+
status: 401
|
|
45256
|
+
title: AUTHENTICATION_REQUIRED
|
|
45257
|
+
type: urn:gala:problem:authentication-required
|
|
45258
|
+
schema:
|
|
45259
|
+
$ref: "#/components/schemas/Problem"
|
|
45260
|
+
description: AUTHENTICATION_REQUIRED
|
|
45261
|
+
headers:
|
|
45262
|
+
Cache-Control:
|
|
45263
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45264
|
+
X-Correlation-Id:
|
|
45265
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45266
|
+
x-gala-problem-codes:
|
|
45267
|
+
- AUTHENTICATION_REQUIRED
|
|
45268
|
+
"403":
|
|
45269
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
45270
|
+
"404":
|
|
45271
|
+
$ref: "#/components/responses/ResourceNotFound"
|
|
45272
|
+
security:
|
|
45273
|
+
- browserSession: []
|
|
45274
|
+
summary: check a Galascribe address
|
|
45275
|
+
tags:
|
|
45276
|
+
- domains
|
|
45277
|
+
x-gala-activation-gate: MVP
|
|
45278
|
+
x-gala-activation-guards:
|
|
45279
|
+
- NONE
|
|
45280
|
+
x-gala-capability-key: publication.settings.manage
|
|
45281
|
+
x-gala-concurrency: none
|
|
45282
|
+
x-gala-conditional-capabilities: []
|
|
45283
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
45284
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
45285
|
+
x-gala-purpose: check a Galascribe address
|
|
45286
|
+
x-gala-reachable-problems:
|
|
45287
|
+
- AUTHENTICATION_REQUIRED
|
|
45288
|
+
- AUTHORIZATION_DENIED
|
|
45289
|
+
- REQUEST_FIELD_UNKNOWN
|
|
45290
|
+
- RESOURCE_NOT_FOUND
|
|
45291
|
+
- VALIDATION_FAILED
|
|
45292
|
+
x-gala-replay-identity: safe-query
|
|
45293
|
+
x-gala-state-guards:
|
|
45294
|
+
- NONE
|
|
45295
|
+
x-gala-success-category: protocol
|
|
45296
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
45297
|
+
/v2/organizations/{organizationId}/publications/{publicationId}/domains:claim-galascribe-address:
|
|
45298
|
+
post:
|
|
45299
|
+
description: |
|
|
45300
|
+
Needs `publication.settings.manage`. Makes `label.galascribe.com` this
|
|
45301
|
+
site's custom domain. Galascribe owns the DNS records, so the returned
|
|
45302
|
+
`DomainBinding` carries `galascribeManaged` and the person is never asked
|
|
45303
|
+
to add records; the binding then follows the usual domain steps (Pages
|
|
45304
|
+
domain, certificate, base move). `409 PLAN_REQUIRED` when the plan has no
|
|
45305
|
+
Galascribe address; `409 INVALID_SOURCE_STATE` when the site already has a
|
|
45306
|
+
domain that is not detached; `422 VALIDATION_FAILED` pointed at `/label`
|
|
45307
|
+
when the label is `INVALID`, `RESERVED` or `TAKEN` (the reasons of the check
|
|
45308
|
+
read, which tells a client which one); `503 CAPABILITY_UNAVAILABLE` when
|
|
45309
|
+
Galascribe addresses are not configured.
|
|
45310
|
+
operationId: postOrganizationsByOrganizationIdPublicationsByPublicationIdDomainsClaimGalascribeAddress
|
|
45311
|
+
parameters:
|
|
45312
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
45313
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
45314
|
+
in: path
|
|
45315
|
+
name: organizationId
|
|
45316
|
+
required: true
|
|
45317
|
+
schema:
|
|
45318
|
+
format: uuid
|
|
45319
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
45320
|
+
type: string
|
|
45321
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
45322
|
+
in: path
|
|
45323
|
+
name: publicationId
|
|
45324
|
+
required: true
|
|
45325
|
+
schema:
|
|
45326
|
+
format: uuid
|
|
45327
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
45328
|
+
type: string
|
|
45329
|
+
- $ref: "#/components/parameters/IdempotencyKey"
|
|
45330
|
+
- $ref: "#/components/parameters/XCsrfToken"
|
|
45331
|
+
requestBody:
|
|
45332
|
+
content:
|
|
45333
|
+
application/json:
|
|
45334
|
+
examples:
|
|
45335
|
+
nominal:
|
|
45336
|
+
summary: Nominal valid request
|
|
45337
|
+
value:
|
|
45338
|
+
label: maya
|
|
45339
|
+
schema:
|
|
45340
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainsClaimGalascribeAddressRequest"
|
|
45341
|
+
required: true
|
|
45342
|
+
responses:
|
|
45343
|
+
"201":
|
|
45344
|
+
content:
|
|
45345
|
+
application/json:
|
|
45346
|
+
examples:
|
|
45347
|
+
nominal:
|
|
45348
|
+
summary: Nominal successful response
|
|
45349
|
+
value:
|
|
45350
|
+
canonicalBase:
|
|
45351
|
+
current: https://rathnastest.github.io/g11/
|
|
45352
|
+
published: false
|
|
45353
|
+
target: https://maya.galascribe.com/
|
|
45354
|
+
certificate:
|
|
45355
|
+
state: NONE
|
|
45356
|
+
createdAt: "2026-11-02T09:00:00.000Z"
|
|
45357
|
+
dns:
|
|
45358
|
+
observed:
|
|
45359
|
+
addresses: []
|
|
45360
|
+
pointsToGithub: false
|
|
45361
|
+
resolves: false
|
|
45362
|
+
records: []
|
|
45363
|
+
domainId: 018f0000-0000-7000-8000-000000000001
|
|
45364
|
+
galascribeManaged:
|
|
45365
|
+
kind: GALASCRIBE_ADDRESS
|
|
45366
|
+
hostname: maya.galascribe.com
|
|
45367
|
+
kind: SUBDOMAIN
|
|
45368
|
+
nextStep:
|
|
45369
|
+
code: WAIT_FOR_DNS
|
|
45370
|
+
detail: Galascribe is setting this up.
|
|
45371
|
+
routing:
|
|
45372
|
+
httpsEnforced: false
|
|
45373
|
+
probeOk: false
|
|
45374
|
+
servedByPages: false
|
|
45375
|
+
state: OWNERSHIP_PENDING
|
|
45376
|
+
updatedAt: "2026-11-02T09:00:00.000Z"
|
|
45377
|
+
version: 0
|
|
45378
|
+
schema:
|
|
45379
|
+
$ref: "#/components/schemas/PostOrganizationsByOrganizationIdPublicationsByPublicationIdDomainsClaimGalascribeAddressResponse"
|
|
45380
|
+
description: claim a Galascribe address succeeded
|
|
45381
|
+
headers:
|
|
45382
|
+
Cache-Control:
|
|
45383
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45384
|
+
Location:
|
|
45385
|
+
$ref: "#/components/headers/Location"
|
|
45386
|
+
X-Correlation-Id:
|
|
45387
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45388
|
+
"400":
|
|
45389
|
+
$ref: "#/components/responses/RequestInvalid"
|
|
45390
|
+
"401":
|
|
45391
|
+
content:
|
|
45392
|
+
application/problem+json:
|
|
45393
|
+
examples:
|
|
45394
|
+
AUTHENTICATION_REQUIRED:
|
|
45395
|
+
summary: AUTHENTICATION_REQUIRED
|
|
45396
|
+
value:
|
|
45397
|
+
code: AUTHENTICATION_REQUIRED
|
|
45398
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45399
|
+
detail: See the operation contract.
|
|
45400
|
+
errors: []
|
|
45401
|
+
retryable: false
|
|
45402
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45403
|
+
schemaVersion: 2.0.0
|
|
45404
|
+
status: 401
|
|
45405
|
+
title: AUTHENTICATION_REQUIRED
|
|
45406
|
+
type: urn:gala:problem:authentication-required
|
|
45407
|
+
schema:
|
|
45408
|
+
$ref: "#/components/schemas/Problem"
|
|
45409
|
+
description: AUTHENTICATION_REQUIRED
|
|
45410
|
+
headers:
|
|
45411
|
+
Cache-Control:
|
|
45412
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45413
|
+
X-Correlation-Id:
|
|
45414
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45415
|
+
x-gala-problem-codes:
|
|
45416
|
+
- AUTHENTICATION_REQUIRED
|
|
45417
|
+
"403":
|
|
45418
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
45419
|
+
"404":
|
|
45420
|
+
$ref: "#/components/responses/ResourceNotFound"
|
|
45421
|
+
"409":
|
|
45422
|
+
content:
|
|
45423
|
+
application/problem+json:
|
|
45424
|
+
examples:
|
|
45425
|
+
COMMAND_REPLAY_CONFLICT:
|
|
45426
|
+
summary: COMMAND_REPLAY_CONFLICT
|
|
45427
|
+
value:
|
|
45428
|
+
code: COMMAND_REPLAY_CONFLICT
|
|
45429
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45430
|
+
detail: See the operation contract.
|
|
45431
|
+
errors: []
|
|
45432
|
+
retryable: false
|
|
45433
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45434
|
+
schemaVersion: 2.0.0
|
|
45435
|
+
status: 409
|
|
45436
|
+
title: COMMAND_REPLAY_CONFLICT
|
|
45437
|
+
type: urn:gala:problem:command-replay-conflict
|
|
45438
|
+
INVALID_SOURCE_STATE:
|
|
45439
|
+
summary: INVALID_SOURCE_STATE
|
|
45440
|
+
value:
|
|
45441
|
+
code: INVALID_SOURCE_STATE
|
|
45442
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45443
|
+
detail: See the operation contract.
|
|
45444
|
+
errors: []
|
|
45445
|
+
retryable: false
|
|
45446
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45447
|
+
schemaVersion: 2.0.0
|
|
45448
|
+
status: 409
|
|
45449
|
+
title: INVALID_SOURCE_STATE
|
|
45450
|
+
type: urn:gala:problem:invalid-source-state
|
|
45451
|
+
PLAN_REQUIRED:
|
|
45452
|
+
summary: PLAN_REQUIRED
|
|
45453
|
+
value:
|
|
45454
|
+
code: PLAN_REQUIRED
|
|
45455
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45456
|
+
detail: The organization's plan does not include a Galascribe address. See the operation contract.
|
|
45457
|
+
errors: []
|
|
45458
|
+
retryable: false
|
|
45459
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45460
|
+
schemaVersion: 2.0.0
|
|
45461
|
+
status: 409
|
|
45462
|
+
title: PLAN_REQUIRED
|
|
45463
|
+
type: urn:gala:problem:plan-required
|
|
45464
|
+
schema:
|
|
45465
|
+
$ref: "#/components/schemas/Problem"
|
|
45466
|
+
description: COMMAND_REPLAY_CONFLICT, INVALID_SOURCE_STATE, PLAN_REQUIRED
|
|
45467
|
+
headers:
|
|
45468
|
+
Cache-Control:
|
|
45469
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45470
|
+
X-Correlation-Id:
|
|
45471
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45472
|
+
x-gala-problem-codes:
|
|
45473
|
+
- COMMAND_REPLAY_CONFLICT
|
|
45474
|
+
- INVALID_SOURCE_STATE
|
|
45475
|
+
- PLAN_REQUIRED
|
|
45476
|
+
"422":
|
|
45477
|
+
content:
|
|
45478
|
+
application/problem+json:
|
|
45479
|
+
examples:
|
|
45480
|
+
VALIDATION_FAILED:
|
|
45481
|
+
summary: VALIDATION_FAILED
|
|
45482
|
+
value:
|
|
45483
|
+
code: VALIDATION_FAILED
|
|
45484
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45485
|
+
detail: That address is reserved. Choose another. See the operation contract.
|
|
45486
|
+
errors: []
|
|
45487
|
+
retryable: false
|
|
45488
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45489
|
+
schemaVersion: 2.0.0
|
|
45490
|
+
status: 422
|
|
45491
|
+
title: VALIDATION_FAILED
|
|
45492
|
+
type: urn:gala:problem:validation-failed
|
|
45493
|
+
schema:
|
|
45494
|
+
$ref: "#/components/schemas/Problem"
|
|
45495
|
+
description: VALIDATION_FAILED
|
|
45496
|
+
headers:
|
|
45497
|
+
Cache-Control:
|
|
45498
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45499
|
+
X-Correlation-Id:
|
|
45500
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45501
|
+
x-gala-problem-codes:
|
|
45502
|
+
- VALIDATION_FAILED
|
|
45503
|
+
"503":
|
|
45504
|
+
content:
|
|
45505
|
+
application/problem+json:
|
|
45506
|
+
examples:
|
|
45507
|
+
CAPABILITY_UNAVAILABLE:
|
|
45508
|
+
summary: CAPABILITY_UNAVAILABLE
|
|
45509
|
+
value:
|
|
45510
|
+
code: CAPABILITY_UNAVAILABLE
|
|
45511
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
45512
|
+
detail: See the operation contract.
|
|
45513
|
+
errors: []
|
|
45514
|
+
retryable: false
|
|
45515
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
45516
|
+
schemaVersion: 2.0.0
|
|
45517
|
+
status: 503
|
|
45518
|
+
title: CAPABILITY_UNAVAILABLE
|
|
45519
|
+
type: urn:gala:problem:capability-unavailable
|
|
45520
|
+
schema:
|
|
45521
|
+
$ref: "#/components/schemas/Problem"
|
|
45522
|
+
description: CAPABILITY_UNAVAILABLE
|
|
45523
|
+
headers:
|
|
45524
|
+
Cache-Control:
|
|
45525
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
45526
|
+
X-Correlation-Id:
|
|
45527
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
45528
|
+
x-gala-problem-codes:
|
|
45529
|
+
- CAPABILITY_UNAVAILABLE
|
|
45530
|
+
security:
|
|
45531
|
+
- browserSession: []
|
|
45532
|
+
summary: claim a Galascribe address
|
|
45533
|
+
tags:
|
|
45534
|
+
- domains
|
|
45535
|
+
x-gala-activation-gate: MVP
|
|
45536
|
+
x-gala-activation-guards:
|
|
45537
|
+
- GALASCRIBE_ADDRESS_ZONE_CONFIGURED
|
|
45538
|
+
x-gala-capability-key: publication.settings.manage
|
|
45539
|
+
x-gala-concurrency: binding-epoch
|
|
45540
|
+
x-gala-conditional-capabilities: []
|
|
45541
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
45542
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
45543
|
+
x-gala-purpose: claim a Galascribe address
|
|
45544
|
+
x-gala-reachable-problems:
|
|
45545
|
+
- AUTHENTICATION_REQUIRED
|
|
45546
|
+
- AUTHORIZATION_DENIED
|
|
45547
|
+
- CAPABILITY_UNAVAILABLE
|
|
45548
|
+
- COMMAND_REPLAY_CONFLICT
|
|
45549
|
+
- INVALID_SOURCE_STATE
|
|
45550
|
+
- PLAN_REQUIRED
|
|
45551
|
+
- REQUEST_FIELD_UNKNOWN
|
|
45552
|
+
- RESOURCE_NOT_FOUND
|
|
45553
|
+
- VALIDATION_FAILED
|
|
45554
|
+
x-gala-replay-identity: idempotency-key
|
|
45555
|
+
x-gala-state-guards:
|
|
45556
|
+
- PublicationDomain:NONE -> OWNERSHIP_PENDING
|
|
45557
|
+
x-gala-success-category: create
|
|
45558
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
42415
45559
|
/v2/organizations/{organizationId}/publications/{publicationId}/followers:
|
|
42416
45560
|
get:
|
|
42417
45561
|
description: Needs `publication.audience.read`. `total` is every follow of the site, `authors` the count per author, and `items` the followers newest first as display names, one keyset page at a time. There is no public follower count; this list is for the site's owners and admins.
|
|
@@ -55252,6 +58396,199 @@ paths:
|
|
|
55252
58396
|
- NONE
|
|
55253
58397
|
x-gala-success-category: query
|
|
55254
58398
|
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
58399
|
+
/v2/organizations/{organizationId}/publications/{publicationId}/site/hosting-check:
|
|
58400
|
+
get:
|
|
58401
|
+
description: |
|
|
58402
|
+
Needs `publication.view`. What the site's repository contains that GitHub
|
|
58403
|
+
Pages limits or does not allow, as a `SiteHostingCheck`, computed for the
|
|
58404
|
+
default branch's current commit (`revision`) from the repository's file
|
|
58405
|
+
tree and a bounded scan of its pages. It is advice and never blocks
|
|
58406
|
+
publishing: a `LIMIT` finding is something GitHub will refuse or stop
|
|
58407
|
+
serving, a `WARNING` is a risk. `offers` is empty when there is no
|
|
58408
|
+
finding, `UPGRADE` on the Free plan and `REQUEST_GALASCRIBE_HOSTING` on a
|
|
58409
|
+
paid plan. The response carries a strong `ETag` and honours
|
|
58410
|
+
`If-None-Match` with `304` and no body; `Cache-Control` is `private,
|
|
58411
|
+
no-cache`, so a browser stores the body and revalidates it on every use.
|
|
58412
|
+
operationId: getOrganizationsByOrganizationIdPublicationsByPublicationIdSiteHostingCheck
|
|
58413
|
+
parameters:
|
|
58414
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
58415
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
58416
|
+
in: path
|
|
58417
|
+
name: organizationId
|
|
58418
|
+
required: true
|
|
58419
|
+
schema:
|
|
58420
|
+
format: uuid
|
|
58421
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
58422
|
+
type: string
|
|
58423
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
58424
|
+
in: path
|
|
58425
|
+
name: publicationId
|
|
58426
|
+
required: true
|
|
58427
|
+
schema:
|
|
58428
|
+
format: uuid
|
|
58429
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
58430
|
+
type: string
|
|
58431
|
+
- description: A previously returned `ETag`; a match answers `304`.
|
|
58432
|
+
example: '"1"'
|
|
58433
|
+
in: header
|
|
58434
|
+
name: If-None-Match
|
|
58435
|
+
required: false
|
|
58436
|
+
schema:
|
|
58437
|
+
maxLength: 256
|
|
58438
|
+
type: string
|
|
58439
|
+
responses:
|
|
58440
|
+
"200":
|
|
58441
|
+
content:
|
|
58442
|
+
application/json:
|
|
58443
|
+
examples:
|
|
58444
|
+
nominal:
|
|
58445
|
+
summary: Nominal successful response
|
|
58446
|
+
value:
|
|
58447
|
+
checkedAt: "2026-11-02T09:00:00.000Z"
|
|
58448
|
+
findings:
|
|
58449
|
+
- bytes: 62914560
|
|
58450
|
+
code: LARGE_FILE
|
|
58451
|
+
items:
|
|
58452
|
+
- bytes: 62914560
|
|
58453
|
+
path: media/launch-tour.mp4
|
|
58454
|
+
limitBytes: 52428800
|
|
58455
|
+
pathCount: 1
|
|
58456
|
+
severity: WARNING
|
|
58457
|
+
- code: COMMERCE_PAGE
|
|
58458
|
+
items:
|
|
58459
|
+
- path: pages/shop.md
|
|
58460
|
+
title: Shop
|
|
58461
|
+
pathCount: 1
|
|
58462
|
+
severity: WARNING
|
|
58463
|
+
signals:
|
|
58464
|
+
- CHECKOUT_LINK
|
|
58465
|
+
- SHOP_WORDS
|
|
58466
|
+
host: GITHUB_PAGES
|
|
58467
|
+
limits:
|
|
58468
|
+
directoryEntries: 3000
|
|
58469
|
+
fileMaxBytes: 104857600
|
|
58470
|
+
fileWarningBytes: 52428800
|
|
58471
|
+
mediaWarningBytes: 524288000
|
|
58472
|
+
siteBytes: 1073741824
|
|
58473
|
+
offers:
|
|
58474
|
+
- UPGRADE
|
|
58475
|
+
planTier: FREE
|
|
58476
|
+
revision: sha1:0000000000000000000000000000000000000000
|
|
58477
|
+
totals:
|
|
58478
|
+
files: 142
|
|
58479
|
+
mediaBytes: 83886080
|
|
58480
|
+
mediaFiles: 12
|
|
58481
|
+
siteBytes: 125829120
|
|
58482
|
+
schema:
|
|
58483
|
+
$ref: "#/components/schemas/GetOrganizationsByOrganizationIdPublicationsByPublicationIdSiteHostingCheckResponse"
|
|
58484
|
+
description: read a site's hosting check succeeded
|
|
58485
|
+
headers:
|
|
58486
|
+
Cache-Control:
|
|
58487
|
+
$ref: "#/components/headers/CacheControlPrivateNoCache"
|
|
58488
|
+
ETag:
|
|
58489
|
+
description: Strong validator of this response body.
|
|
58490
|
+
required: true
|
|
58491
|
+
schema:
|
|
58492
|
+
maxLength: 256
|
|
58493
|
+
type: string
|
|
58494
|
+
X-Correlation-Id:
|
|
58495
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
58496
|
+
"304":
|
|
58497
|
+
description: the caller's `If-None-Match` still matches; no body
|
|
58498
|
+
headers:
|
|
58499
|
+
ETag:
|
|
58500
|
+
description: Strong validator of this response body.
|
|
58501
|
+
required: true
|
|
58502
|
+
schema:
|
|
58503
|
+
maxLength: 256
|
|
58504
|
+
type: string
|
|
58505
|
+
X-Correlation-Id:
|
|
58506
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
58507
|
+
"400":
|
|
58508
|
+
$ref: "#/components/responses/ValidationFailed"
|
|
58509
|
+
"401":
|
|
58510
|
+
content:
|
|
58511
|
+
application/problem+json:
|
|
58512
|
+
examples:
|
|
58513
|
+
AUTHENTICATION_REQUIRED:
|
|
58514
|
+
summary: AUTHENTICATION_REQUIRED
|
|
58515
|
+
value:
|
|
58516
|
+
code: AUTHENTICATION_REQUIRED
|
|
58517
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
58518
|
+
detail: See the operation contract.
|
|
58519
|
+
errors: []
|
|
58520
|
+
retryable: false
|
|
58521
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
58522
|
+
schemaVersion: 2.0.0
|
|
58523
|
+
status: 401
|
|
58524
|
+
title: AUTHENTICATION_REQUIRED
|
|
58525
|
+
type: urn:gala:problem:authentication-required
|
|
58526
|
+
schema:
|
|
58527
|
+
$ref: "#/components/schemas/Problem"
|
|
58528
|
+
description: AUTHENTICATION_REQUIRED
|
|
58529
|
+
headers:
|
|
58530
|
+
Cache-Control:
|
|
58531
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
58532
|
+
X-Correlation-Id:
|
|
58533
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
58534
|
+
x-gala-problem-codes:
|
|
58535
|
+
- AUTHENTICATION_REQUIRED
|
|
58536
|
+
"403":
|
|
58537
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
58538
|
+
"404":
|
|
58539
|
+
$ref: "#/components/responses/ResourceNotFound"
|
|
58540
|
+
"503":
|
|
58541
|
+
content:
|
|
58542
|
+
application/problem+json:
|
|
58543
|
+
examples:
|
|
58544
|
+
DEPENDENCY_UNAVAILABLE:
|
|
58545
|
+
summary: DEPENDENCY_UNAVAILABLE
|
|
58546
|
+
value:
|
|
58547
|
+
code: DEPENDENCY_UNAVAILABLE
|
|
58548
|
+
correlationId: 018f0000-0000-7000-8000-000000000001
|
|
58549
|
+
detail: See the operation contract.
|
|
58550
|
+
errors: []
|
|
58551
|
+
retryable: true
|
|
58552
|
+
schemaId: urn:gala:schema:problem:2.0.0
|
|
58553
|
+
schemaVersion: 2.0.0
|
|
58554
|
+
status: 503
|
|
58555
|
+
title: DEPENDENCY_UNAVAILABLE
|
|
58556
|
+
type: urn:gala:problem:dependency-unavailable
|
|
58557
|
+
schema:
|
|
58558
|
+
$ref: "#/components/schemas/Problem"
|
|
58559
|
+
description: DEPENDENCY_UNAVAILABLE
|
|
58560
|
+
headers:
|
|
58561
|
+
Cache-Control:
|
|
58562
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
58563
|
+
X-Correlation-Id:
|
|
58564
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
58565
|
+
x-gala-problem-codes:
|
|
58566
|
+
- DEPENDENCY_UNAVAILABLE
|
|
58567
|
+
security:
|
|
58568
|
+
- browserSession: []
|
|
58569
|
+
summary: read a site's hosting check
|
|
58570
|
+
tags:
|
|
58571
|
+
- organizations
|
|
58572
|
+
x-gala-activation-gate: MVP
|
|
58573
|
+
x-gala-activation-guards:
|
|
58574
|
+
- NONE
|
|
58575
|
+
x-gala-capability-key: publication.view
|
|
58576
|
+
x-gala-concurrency: authorization-and-publication-epochs
|
|
58577
|
+
x-gala-conditional-capabilities: []
|
|
58578
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
58579
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
58580
|
+
x-gala-purpose: read a site's hosting check
|
|
58581
|
+
x-gala-reachable-problems:
|
|
58582
|
+
- AUTHENTICATION_REQUIRED
|
|
58583
|
+
- AUTHORIZATION_DENIED
|
|
58584
|
+
- DEPENDENCY_UNAVAILABLE
|
|
58585
|
+
- RESOURCE_NOT_FOUND
|
|
58586
|
+
- VALIDATION_FAILED
|
|
58587
|
+
x-gala-replay-identity: safe-query
|
|
58588
|
+
x-gala-state-guards:
|
|
58589
|
+
- NONE
|
|
58590
|
+
x-gala-success-category: query
|
|
58591
|
+
x-gala-tenant-scope: ORGANIZATION_AND_PUBLICATION_PATH
|
|
55255
58592
|
/v2/organizations/{organizationId}/publications/{publicationId}/site:publish-update:
|
|
55256
58593
|
post:
|
|
55257
58594
|
description: |
|
|
@@ -59415,6 +62752,168 @@ paths:
|
|
|
59415
62752
|
- NONE
|
|
59416
62753
|
x-gala-success-category: update
|
|
59417
62754
|
x-gala-tenant-scope: NONE
|
|
62755
|
+
/v2/platform/assistance-requests:
|
|
62756
|
+
get:
|
|
62757
|
+
description: |
|
|
62758
|
+
Operators only, with recent authentication. Keyset-paged requests that
|
|
62759
|
+
authors made for help with their sites, newest first. `state` limits the
|
|
62760
|
+
list to `OPEN` or `CLOSED` requests. Each item names the organization and
|
|
62761
|
+
site, the GitHub login that asked and the optional note.
|
|
62762
|
+
operationId: getPlatformAssistanceRequests
|
|
62763
|
+
parameters:
|
|
62764
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
62765
|
+
- description: Which requests to list. Absent lists both.
|
|
62766
|
+
example: OPEN
|
|
62767
|
+
in: query
|
|
62768
|
+
name: state
|
|
62769
|
+
required: false
|
|
62770
|
+
schema:
|
|
62771
|
+
enum:
|
|
62772
|
+
- OPEN
|
|
62773
|
+
- CLOSED
|
|
62774
|
+
type: string
|
|
62775
|
+
- $ref: "#/components/parameters/Cursor"
|
|
62776
|
+
- $ref: "#/components/parameters/Limit"
|
|
62777
|
+
responses:
|
|
62778
|
+
"200":
|
|
62779
|
+
content:
|
|
62780
|
+
application/json:
|
|
62781
|
+
examples:
|
|
62782
|
+
nominal:
|
|
62783
|
+
summary: Nominal successful response
|
|
62784
|
+
value:
|
|
62785
|
+
hasMore: false
|
|
62786
|
+
items:
|
|
62787
|
+
- createdAt: "2026-11-02T09:00:00.000Z"
|
|
62788
|
+
findingCodes:
|
|
62789
|
+
- LARGE_FILE
|
|
62790
|
+
kind: GALASCRIBE_HOSTING
|
|
62791
|
+
note: The tour video is 60 MB.
|
|
62792
|
+
organizationId: 018f0000-0000-7000-8000-000000000001
|
|
62793
|
+
organizationName: Maya Studio
|
|
62794
|
+
publicationId: 018f0000-0000-7000-8000-000000000001
|
|
62795
|
+
publicationName: Maya Writes
|
|
62796
|
+
requestId: 018f0000-0000-7000-8000-000000000001
|
|
62797
|
+
requestedByLogin: maya
|
|
62798
|
+
state: OPEN
|
|
62799
|
+
schema:
|
|
62800
|
+
$ref: "#/components/schemas/GetPlatformAssistanceRequestsResponse"
|
|
62801
|
+
description: list assistance requests succeeded
|
|
62802
|
+
headers:
|
|
62803
|
+
Cache-Control:
|
|
62804
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
62805
|
+
X-Correlation-Id:
|
|
62806
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
62807
|
+
"400":
|
|
62808
|
+
$ref: "#/components/responses/ValidationFailed"
|
|
62809
|
+
"401":
|
|
62810
|
+
$ref: "#/components/responses/PlatformAuthenticationRequired"
|
|
62811
|
+
"403":
|
|
62812
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
62813
|
+
security:
|
|
62814
|
+
- browserSession: []
|
|
62815
|
+
summary: list assistance requests
|
|
62816
|
+
tags:
|
|
62817
|
+
- platform
|
|
62818
|
+
x-gala-activation-gate: MVP
|
|
62819
|
+
x-gala-activation-guards:
|
|
62820
|
+
- NONE
|
|
62821
|
+
x-gala-capability-key: platform.users.view
|
|
62822
|
+
x-gala-concurrency: none
|
|
62823
|
+
x-gala-conditional-capabilities: []
|
|
62824
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
62825
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
62826
|
+
x-gala-purpose: list assistance requests
|
|
62827
|
+
x-gala-reachable-problems:
|
|
62828
|
+
- AUTHENTICATION_REQUIRED
|
|
62829
|
+
- AUTHORIZATION_DENIED
|
|
62830
|
+
- REAUTH_REQUIRED
|
|
62831
|
+
- VALIDATION_FAILED
|
|
62832
|
+
x-gala-replay-identity: safe-query
|
|
62833
|
+
x-gala-state-guards:
|
|
62834
|
+
- NONE
|
|
62835
|
+
x-gala-success-category: query
|
|
62836
|
+
x-gala-tenant-scope: NONE
|
|
62837
|
+
/v2/platform/assistance-requests/{requestId}:close:
|
|
62838
|
+
post:
|
|
62839
|
+
description: |
|
|
62840
|
+
Operators only, with recent authentication. Marks the request `CLOSED`
|
|
62841
|
+
once the operator has done the work, and returns it. Closing a request that
|
|
62842
|
+
is already closed returns it unchanged.
|
|
62843
|
+
operationId: postPlatformAssistanceRequestsByRequestIdClose
|
|
62844
|
+
parameters:
|
|
62845
|
+
- $ref: "#/components/parameters/XCorrelationId"
|
|
62846
|
+
- example: 018f0000-0000-7000-8000-000000000001
|
|
62847
|
+
in: path
|
|
62848
|
+
name: requestId
|
|
62849
|
+
required: true
|
|
62850
|
+
schema:
|
|
62851
|
+
format: uuid
|
|
62852
|
+
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
62853
|
+
type: string
|
|
62854
|
+
- $ref: "#/components/parameters/XCsrfToken"
|
|
62855
|
+
responses:
|
|
62856
|
+
"200":
|
|
62857
|
+
content:
|
|
62858
|
+
application/json:
|
|
62859
|
+
examples:
|
|
62860
|
+
nominal:
|
|
62861
|
+
summary: Nominal successful response
|
|
62862
|
+
value:
|
|
62863
|
+
closedAt: "2026-11-02T09:00:00.000Z"
|
|
62864
|
+
createdAt: "2026-11-02T09:00:00.000Z"
|
|
62865
|
+
findingCodes:
|
|
62866
|
+
- LARGE_FILE
|
|
62867
|
+
kind: GALASCRIBE_HOSTING
|
|
62868
|
+
note: The tour video is 60 MB.
|
|
62869
|
+
organizationId: 018f0000-0000-7000-8000-000000000001
|
|
62870
|
+
organizationName: Maya Studio
|
|
62871
|
+
publicationId: 018f0000-0000-7000-8000-000000000001
|
|
62872
|
+
publicationName: Maya Writes
|
|
62873
|
+
requestId: 018f0000-0000-7000-8000-000000000001
|
|
62874
|
+
requestedByLogin: maya
|
|
62875
|
+
state: CLOSED
|
|
62876
|
+
schema:
|
|
62877
|
+
$ref: "#/components/schemas/PostPlatformAssistanceRequestsByRequestIdCloseResponse"
|
|
62878
|
+
description: close an assistance request succeeded
|
|
62879
|
+
headers:
|
|
62880
|
+
Cache-Control:
|
|
62881
|
+
$ref: "#/components/headers/CacheControlNoStore"
|
|
62882
|
+
X-Correlation-Id:
|
|
62883
|
+
$ref: "#/components/headers/XCorrelationId"
|
|
62884
|
+
"400":
|
|
62885
|
+
$ref: "#/components/responses/ValidationFailed"
|
|
62886
|
+
"401":
|
|
62887
|
+
$ref: "#/components/responses/PlatformAuthenticationRequired"
|
|
62888
|
+
"403":
|
|
62889
|
+
$ref: "#/components/responses/AuthorizationDenied"
|
|
62890
|
+
"404":
|
|
62891
|
+
$ref: "#/components/responses/ResourceNotFound"
|
|
62892
|
+
security:
|
|
62893
|
+
- browserSession: []
|
|
62894
|
+
summary: close an assistance request
|
|
62895
|
+
tags:
|
|
62896
|
+
- platform
|
|
62897
|
+
x-gala-activation-gate: MVP
|
|
62898
|
+
x-gala-activation-guards:
|
|
62899
|
+
- NONE
|
|
62900
|
+
x-gala-capability-key: platform.users.contact
|
|
62901
|
+
x-gala-concurrency: none
|
|
62902
|
+
x-gala-conditional-capabilities: []
|
|
62903
|
+
x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
|
|
62904
|
+
x-gala-nullability: required-and-nullable-are-explicit
|
|
62905
|
+
x-gala-purpose: close an assistance request
|
|
62906
|
+
x-gala-reachable-problems:
|
|
62907
|
+
- AUTHENTICATION_REQUIRED
|
|
62908
|
+
- AUTHORIZATION_DENIED
|
|
62909
|
+
- REAUTH_REQUIRED
|
|
62910
|
+
- RESOURCE_NOT_FOUND
|
|
62911
|
+
- VALIDATION_FAILED
|
|
62912
|
+
x-gala-replay-identity: natural-idempotent-state
|
|
62913
|
+
x-gala-state-guards:
|
|
62914
|
+
- NONE
|
|
62915
|
+
x-gala-success-category: protocol
|
|
62916
|
+
x-gala-tenant-scope: NONE
|
|
59418
62917
|
/v2/platform/audit-events:
|
|
59419
62918
|
get:
|
|
59420
62919
|
description: |
|
|
@@ -60894,7 +64393,9 @@ paths:
|
|
|
60894
64393
|
its sites may turn on Listen, the audio version of posts). Defaults of
|
|
60895
64394
|
the first release: FREE 50 and no contact form, PRO 500 and a contact
|
|
60896
64395
|
form, BUSINESS 2000 and a contact form. Listen defaults: FREE no, PRO
|
|
60897
|
-
and BUSINESS yes.
|
|
64396
|
+
and BUSINESS yes. `collaboratorLimit` (SCHEMA-3.30.0) is the most
|
|
64397
|
+
collaborators an organization on the plan may have, 0 meaning no limit:
|
|
64398
|
+
FREE 1, PRO and BUSINESS no limit.
|
|
60898
64399
|
operationId: getPlatformPlans
|
|
60899
64400
|
parameters:
|
|
60900
64401
|
- $ref: "#/components/parameters/XCorrelationId"
|
|
@@ -60908,17 +64409,20 @@ paths:
|
|
|
60908
64409
|
value:
|
|
60909
64410
|
effectiveAt: "2026-10-10T00:00:04.000Z"
|
|
60910
64411
|
items:
|
|
60911
|
-
-
|
|
64412
|
+
- collaboratorLimit: 1
|
|
64413
|
+
contactForm: false
|
|
60912
64414
|
listen: false
|
|
60913
64415
|
newsletterSubscriberLimit: 50
|
|
60914
64416
|
planKey: FREE
|
|
60915
64417
|
publicationLimit: 1
|
|
60916
|
-
-
|
|
64418
|
+
- collaboratorLimit: 0
|
|
64419
|
+
contactForm: true
|
|
60917
64420
|
listen: true
|
|
60918
64421
|
newsletterSubscriberLimit: 500
|
|
60919
64422
|
planKey: PRO
|
|
60920
64423
|
publicationLimit: 10
|
|
60921
|
-
-
|
|
64424
|
+
- collaboratorLimit: 0
|
|
64425
|
+
contactForm: true
|
|
60922
64426
|
listen: true
|
|
60923
64427
|
newsletterSubscriberLimit: 2000
|
|
60924
64428
|
planKey: BUSINESS
|
|
@@ -60968,8 +64472,8 @@ paths:
|
|
|
60968
64472
|
Operators only, with recent authentication. Atomically replaces the
|
|
60969
64473
|
complete publication-capacity release, changing the named plan's limits
|
|
60970
64474
|
while retaining the other two, at the release version in `If-Match`.
|
|
60971
|
-
`newsletterSubscriberLimit`, `contactForm
|
|
60972
|
-
absent keeps the plan's current value. The invariant FREE <= PRO <=
|
|
64475
|
+
`newsletterSubscriberLimit`, `contactForm`, `listen` and
|
|
64476
|
+
`collaboratorLimit` are optional: absent keeps the plan's current value. The invariant FREE <= PRO <=
|
|
60973
64477
|
BUSINESS is enforced on `publicationLimit` only. `reason` is a
|
|
60974
64478
|
non-sensitive operator reason code recorded in the audit event.
|
|
60975
64479
|
operationId: putPlatformPlansByPlanKey
|
|
@@ -61006,17 +64510,20 @@ paths:
|
|
|
61006
64510
|
value:
|
|
61007
64511
|
effectiveAt: "2026-10-10T12:00:00.000Z"
|
|
61008
64512
|
items:
|
|
61009
|
-
-
|
|
64513
|
+
- collaboratorLimit: 1
|
|
64514
|
+
contactForm: false
|
|
61010
64515
|
listen: false
|
|
61011
64516
|
newsletterSubscriberLimit: 50
|
|
61012
64517
|
planKey: FREE
|
|
61013
64518
|
publicationLimit: 1
|
|
61014
|
-
-
|
|
64519
|
+
- collaboratorLimit: 0
|
|
64520
|
+
contactForm: true
|
|
61015
64521
|
listen: true
|
|
61016
64522
|
newsletterSubscriberLimit: 500
|
|
61017
64523
|
planKey: PRO
|
|
61018
64524
|
publicationLimit: 12
|
|
61019
|
-
-
|
|
64525
|
+
- collaboratorLimit: 0
|
|
64526
|
+
contactForm: true
|
|
61020
64527
|
listen: true
|
|
61021
64528
|
newsletterSubscriberLimit: 2000
|
|
61022
64529
|
planKey: BUSINESS
|