read_push

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/read_push, with a bearer credential and the action's payload as the JSON body. It also accepts GET.

Contract description

Read an application's push configuration for one environment: the providers with their identifiers and secret names, never a value, and the registered devices by platform with the count marked gone. The answer also carries the last hour's deliveries by outcome and the month's accepted deliveries beside the plan's quantity. An optional `environment` (`development` or `production`; absent, `production`) names which environment the call reads.

Access and action metadata

{
  "name": "read_push",
  "resource": "push",
  "tier": "observe",
  "summary": "An application environment's push configuration with secret names only, its device counts by platform, the last hour's delivery outcomes, and the month's accepted deliveries beside the plan's quantity.",
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false,
    "idempotentHint": true
  }
}

MCP catalog entry

{
  "name": "read_push",
  "tier": "observe",
  "summary": "Read an application's push configuration for one environment: the providers with their identifiers and secret names, never a value, and the registered devices by platform with the count marked gone. The answer also carries the last hour's deliveries by outcome and the month's accepted deliveries beside the plan's quantity. An optional `environment` (`development` or `production`; absent, `production`) names which environment the call reads.",
  "owners": [
    "PSH-L0-01",
    "PSH-L0-02",
    "PSH-L0-04",
    "PLD-L0-40"
  ],
  "scenario": "PSH-L0-01"
}

request

JSON pointer Description and constraints
"" (root) Type: object
Required fields: ["application"]
Additional properties: false
/properties/application The application id whose push service to read.

Type: string
/properties/environment Optional. The environment the call addresses, `development` or `production`; absent, `production`.

Type: string
Pattern: ^(development|production)$

response

JSON pointer Description and constraints
"" (root) Type: object
Required fields: ["contract_version","push"]
Additional properties: false
/properties/contract_version Required value: 1
/properties/push Type: object
Required fields: ["application","environment","apns","fcm","configured","devices","last_hour","accepted_this_month","quota"]
Additional properties: false
/properties/push/properties/application Type: string
/properties/push/properties/environment Type: string
Allowed values: ["development","production"]
/properties/push/properties/apns Type: ["object","null"]
Required fields: ["team_id","key_id","bundle_id","key_secret_name","environment"]
Additional properties: false
/properties/push/properties/apns/properties/team_id The ten-character Apple team identifier.

Type: string
/properties/push/properties/apns/properties/key_id The ten-character identifier of the APNs signing key.

Type: string
/properties/push/properties/apns/properties/bundle_id The app's bundle identifier, the notification's topic.

Type: string
/properties/push/properties/apns/properties/key_secret_name The custody NAME of the stored .p8 signing key at this environment scope; never a value.

Type: string
/properties/push/properties/apns/properties/environment Which of Apple's two gateways this environment's pushes go to.

Type: string
Allowed values: ["production","sandbox"]
/properties/push/properties/fcm Type: ["object","null"]
Required fields: ["project_id","service_account_secret_name"]
Additional properties: false
/properties/push/properties/fcm/properties/project_id The Firebase project identifier.

Type: string
/properties/push/properties/fcm/properties/service_account_secret_name The custody NAME of the stored service-account JSON file at this environment scope; never a value.

Type: string
/properties/push/properties/configured True where at least one provider is configured.

Type: boolean
/properties/push/properties/devices Type: object
Required fields: ["ios","android","invalid"]
Additional properties: false
/properties/push/properties/devices/properties/ios Type: integer
/properties/push/properties/devices/properties/android Type: integer
/properties/push/properties/devices/properties/invalid Registrations a provider reported gone, skipped until the app registers again.

Type: integer
/properties/push/properties/last_hour Type: object
Required fields: ["delivered","invalid","dead","pending"]
Additional properties: false
/properties/push/properties/last_hour/properties/delivered Type: integer
/properties/push/properties/last_hour/properties/invalid Type: integer
/properties/push/properties/last_hour/properties/dead Type: integer
/properties/push/properties/last_hour/properties/pending Rows queued or in flight now, whatever their age.

Type: integer
/properties/push/properties/accepted_this_month The deliveries accepted this UTC month, the figure the send compares with the cell.

Type: integer
/properties/push/properties/quota The plan's served `push-messages-capacity` quantity; null for an Unset cell.

Type: ["integer","null"]

Complete payload contract

{
  "request": {
    "type": "object",
    "required": [
      "application"
    ],
    "properties": {
      "application": {
        "type": "string",
        "description": "The application id whose push service to read."
      },
      "environment": {
        "type": "string",
        "pattern": "^(development|production)$",
        "description": "Optional. The environment the call addresses, `development` or `production`; absent, `production`."
      }
    },
    "additionalProperties": false
  },
  "response": {
    "type": "object",
    "required": [
      "contract_version",
      "push"
    ],
    "properties": {
      "contract_version": {
        "const": 1
      },
      "push": {
        "type": "object",
        "required": [
          "application",
          "environment",
          "apns",
          "fcm",
          "configured",
          "devices",
          "last_hour",
          "accepted_this_month",
          "quota"
        ],
        "properties": {
          "application": {
            "type": "string"
          },
          "environment": {
            "type": "string",
            "enum": [
              "development",
              "production"
            ]
          },
          "apns": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "team_id",
              "key_id",
              "bundle_id",
              "key_secret_name",
              "environment"
            ],
            "properties": {
              "team_id": {
                "type": "string",
                "description": "The ten-character Apple team identifier."
              },
              "key_id": {
                "type": "string",
                "description": "The ten-character identifier of the APNs signing key."
              },
              "bundle_id": {
                "type": "string",
                "description": "The app's bundle identifier, the notification's topic."
              },
              "key_secret_name": {
                "type": "string",
                "description": "The custody NAME of the stored .p8 signing key at this environment scope; never a value."
              },
              "environment": {
                "type": "string",
                "enum": [
                  "production",
                  "sandbox"
                ],
                "description": "Which of Apple's two gateways this environment's pushes go to."
              }
            },
            "additionalProperties": false
          },
          "fcm": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "project_id",
              "service_account_secret_name"
            ],
            "properties": {
              "project_id": {
                "type": "string",
                "description": "The Firebase project identifier."
              },
              "service_account_secret_name": {
                "type": "string",
                "description": "The custody NAME of the stored service-account JSON file at this environment scope; never a value."
              }
            },
            "additionalProperties": false
          },
          "configured": {
            "type": "boolean",
            "description": "True where at least one provider is configured."
          },
          "devices": {
            "type": "object",
            "required": [
              "ios",
              "android",
              "invalid"
            ],
            "properties": {
              "ios": {
                "type": "integer"
              },
              "android": {
                "type": "integer"
              },
              "invalid": {
                "type": "integer",
                "description": "Registrations a provider reported gone, skipped until the app registers again."
              }
            },
            "additionalProperties": false
          },
          "last_hour": {
            "type": "object",
            "required": [
              "delivered",
              "invalid",
              "dead",
              "pending"
            ],
            "properties": {
              "delivered": {
                "type": "integer"
              },
              "invalid": {
                "type": "integer"
              },
              "dead": {
                "type": "integer"
              },
              "pending": {
                "type": "integer",
                "description": "Rows queued or in flight now, whatever their age."
              }
            },
            "additionalProperties": false
          },
          "accepted_this_month": {
            "type": "integer",
            "description": "The deliveries accepted this UTC month, the figure the send compares with the cell."
          },
          "quota": {
            "type": [
              "integer",
              "null"
            ],
            "description": "The plan's served `push-messages-capacity` quantity; null for an Unset cell."
          }
        },
        "additionalProperties": false
      }
    },
    "additionalProperties": false
  }
}

Shared contracts