share_issue_space #

View this page as Markdown

Generated automatically from the published contract sources.

Build metadata: Registered in this build. Registration describes the default dispatcher in this build. It does not guarantee that a caller has the required credential or grant, that a tool is listed for that connection, or that the required service is configured.

A script calls this action over HTTPS at POST https://turnzero.ai/api/v1/actions/share_issue_space, with a bearer credential and the action's payload as the JSON body.

Contract description #

Share an issue space you own with another person's account, or list its members. `add` gives an existing account by its sign-in email address, with a `level`, `report`, `contribute`, or `owner`, `contribute` where left out; `remove` gives a member by that address; neither lists. An address no account signed in with is refused, and nothing is kept for later. A member works the space through the relay at its level and never shares it. The answer lists the members and `users`, the members plus you.

Access and action metadata #

{
  "name": "share_issue_space",
  "resource": "account",
  "tier": "reversible",
  "summary": "Share one issue space the account owns with other accounts, each a member at one level, or list its members. `space` picks the space. `add` gives an existing account by the email address it signs in with, and `level` the level it works the space at through `relay_issue_act`, `report`, `contribute`, or `owner`, `contribute` where absent; a standing member's level moves. `remove` gives a member by that address. With neither the call lists. An address no account signed in with is refused `no_such_account`, and nothing is kept for a later sign-in. A space the account does not own, one shared with it among them, is refused `space_not_owned`; a member never shares, and the feedback actions stay the owner's. The answer carries the members, each with its account, address, level, and the instant it was added, and `users`, the members plus the owner. Registered while the issue service's origin is configured.",
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": false,
    "openWorldHint": false,
    "idempotentHint": true
  }
}

MCP catalog entry #

{
  "name": "share_issue_space",
  "title": "Share issue space",
  "tier": "reversible",
  "scenario": "API-L0-20",
  "summary": "Share an issue space you own with another person's account, or list its members. `add` gives an existing account by its sign-in email address, with a `level`, `report`, `contribute`, or `owner`, `contribute` where left out; `remove` gives a member by that address; neither lists. An address no account signed in with is refused, and nothing is kept for later. A member works the space through the relay at its level and never shares it. The answer lists the members and `users`, the members plus you.",
  "owners": [
    "ITS-L0-07"
  ]
}

request #

JSON pointer Description and constraints
"" (root) Type: object
Required fields: ["space"]
/properties/space The space to share, a lower-case UUID of a space your account owns.

Type: string
Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
/properties/add The sign-in email address of an existing account to add as a member, or whose level to move. An address no account signed in with is refused `no_such_account`; nothing is kept for a later sign-in. Never beside `remove`.

Type: string
Maximum length: 320
/properties/level With `add`: the level the member works the space at through the relay, `contribute` where absent. `owner` reaches every relayed act and makes nobody an owner: the space stays yours, and a member never shares it.

Type: string
Allowed values: ["report","contribute","owner"]
/properties/remove The sign-in email address of the member to remove. Never beside `add`.

Type: string
Maximum length: 320

response #

JSON pointer Description and constraints
"" (root) Type: object
Required fields: ["contract_version","space","members","users"]
/properties/contract_version Required value: 1
/properties/reference The short reference the platform recorded your call under: ten lowercase hexadecimal characters, the value in the call's record row. Quote it when you report the call.

Type: string
Pattern: ^[0-9a-f]{10}$
/properties/space The space shared.

Type: string
/properties/members The members of the space after the call, oldest first; you, the owner, are not among them.

Type: array
/properties/members/items Type: object
Required fields: ["account","address","level","added_at"]
/properties/members/items/properties/account The member's account identifier, the one its claims and its `person:<account>` carry.

Type: string
/properties/members/items/properties/address The sign-in email address the member was added by.

Type: string
/properties/members/items/properties/level Type: string
Allowed values: ["report","contribute","owner"]
/properties/members/items/properties/added_at The instant the member was added, or its level last moved.

Type: string
/properties/users The members plus you, the count a per-user price reads.

Type: integer
Minimum: 1

Complete payload contract #

{
  "request": {
    "type": "object",
    "required": [
      "space"
    ],
    "properties": {
      "space": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
        "description": "The space to share, a lower-case UUID of a space your account owns."
      },
      "add": {
        "type": "string",
        "maxLength": 320,
        "description": "The sign-in email address of an existing account to add as a member, or whose level to move. An address no account signed in with is refused `no_such_account`; nothing is kept for a later sign-in. Never beside `remove`."
      },
      "level": {
        "type": "string",
        "enum": [
          "report",
          "contribute",
          "owner"
        ],
        "description": "With `add`: the level the member works the space at through the relay, `contribute` where absent. `owner` reaches every relayed act and makes nobody an owner: the space stays yours, and a member never shares it."
      },
      "remove": {
        "type": "string",
        "maxLength": 320,
        "description": "The sign-in email address of the member to remove. Never beside `add`."
      }
    }
  },
  "response": {
    "type": "object",
    "required": [
      "contract_version",
      "space",
      "members",
      "users"
    ],
    "properties": {
      "contract_version": {
        "const": 1
      },
      "reference": {
        "type": "string",
        "pattern": "^[0-9a-f]{10}$",
        "description": "The short reference the platform recorded your call under: ten lowercase hexadecimal characters, the value in the call's record row. Quote it when you report the call."
      },
      "space": {
        "type": "string",
        "description": "The space shared."
      },
      "members": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "account",
            "address",
            "level",
            "added_at"
          ],
          "properties": {
            "account": {
              "type": "string",
              "description": "The member's account identifier, the one its claims and its `person:<account>` carry."
            },
            "address": {
              "type": "string",
              "description": "The sign-in email address the member was added by."
            },
            "level": {
              "type": "string",
              "enum": [
                "report",
                "contribute",
                "owner"
              ]
            },
            "added_at": {
              "type": "string",
              "description": "The instant the member was added, or its level last moved."
            }
          }
        },
        "description": "The members of the space after the call, oldest first; you, the owner, are not among them."
      },
      "users": {
        "type": "integer",
        "minimum": 1,
        "description": "The members plus you, the count a per-user price reads."
      }
    }
  }
}

Shared contracts #