ListShadowTopics

POST /redpanda.core.admin.v2.ShadowLinkService/ListShadowTopics

Returns a list of all shadow topics on a shadow link and their status.

Headers

  • Connect-Protocol-Version number Required

    Define the version of the Connect protocol

    Value is 1.

  • Connect-Timeout-Ms number

    Define the timeout, in ms

application/json

Body Required

  • shadowLinkName string Required

Responses

  • 200 application/json

    Success

    Hide response attribute Show response attribute object
    • shadowTopics array[object]

      A ShadowTopic resource contained by the ShadowLink

      Hide shadowTopics attributes Show shadowTopics attributes object
      • name string

        Name of the shadow topic

      • sourceTopicId string

        The topic ID of the source topic

      • sourceTopicName string

        The name of the source topic

      • status object

        Status of a ShadowTopic

        Additional properties are NOT allowed.

        Hide status attributes Show status attributes object
        • partitionInformation array[object]

          List of partition information for the shadow topic

          Topic partition information

          Hide partitionInformation attributes Show partitionInformation attributes object
          • highWatermark integer | string

            Shadowed partition's HWM

          • partitionId integer | string

            Partition ID

          • sourceHighWatermark integer | string

            Source partition's HWM

          • sourceLastStableOffset integer | string

            Source partition's LSO

          • sourceLastUpdatedTimestamp string(date-time)

            A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.

            All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap second table is needed for interpretation, using a 24-hour linear smear.

            The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings.

            # Examples

            Example 1: Compute Timestamp from POSIX time().

            Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);

            Example 2: Compute Timestamp from POSIX gettimeofday().

            struct timeval tv; gettimeofday(&tv, NULL);

            Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);

            Example 3: Compute Timestamp from Win32 GetSystemTimeAsFileTime().

            FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

            // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

            Example 4: Compute Timestamp from Java System.currentTimeMillis().

            long millis = System.currentTimeMillis();

            Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();

            Example 5: Compute Timestamp from Java Instant.now().

            Instant now = Instant.now();

            Timestamp timestamp = Timestamp.newBuilder().setSeconds(now.getEpochSecond()) .setNanos(now.getNano()).build();

            Example 6: Compute Timestamp from current time in Python.

            timestamp = Timestamp() timestamp.GetCurrentTime()

            # JSON Mapping

            In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by "Z") when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).

            For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.

            In JavaScript, one can convert a Date object to this format using the standard toISOString() method. In Python, a standard datetime.datetime object can be converted to this format using strftime with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.

        • state string

          State of a shadow topic

          Values are SHADOW_TOPIC_STATE_UNSPECIFIED, SHADOW_TOPIC_STATE_ACTIVE, SHADOW_TOPIC_STATE_FAULTED, SHADOW_TOPIC_STATE_PAUSED, SHADOW_TOPIC_STATE_FAILING_OVER, SHADOW_TOPIC_STATE_FAILED_OVER, SHADOW_TOPIC_STATE_PROMOTING, or SHADOW_TOPIC_STATE_PROMOTED.

      • topicId string

        The topic ID of the shadow topic

  • default application/json

    Error

    Hide response attributes Show response attributes object
    • code string

      The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

      Values are canceled, unknown, invalid_argument, deadline_exceeded, not_found, already_exists, permission_denied, resource_exhausted, failed_precondition, aborted, out_of_range, unimplemented, internal, unavailable, data_loss, or unauthenticated.

    • details array[object]

      A list of messages that carry the error details. There is no limit on the number of messages.

      Contains an arbitrary serialized message along with a @type that describes the type of the serialized message, with an additional debug field for ConnectRPC error details.

      Hide details attributes Show details attributes object
      • debug object

        Detailed error information.

        Additional properties are allowed.

      • type string

        A URL that acts as a globally unique identifier for the type of the serialized message. For example: type.googleapis.com/google.rpc.ErrorInfo. This is used to determine the schema of the data in the value field and is the discriminator for the debug field.

      • value string(binary)

        The Protobuf message, serialized as bytes and base64-encoded. The specific message type is identified by the type field.

    • message string

      A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

POST /redpanda.core.admin.v2.ShadowLinkService/ListShadowTopics
curl \
 --request POST 'http://localhost:9644/redpanda.core.admin.v2.ShadowLinkService/ListShadowTopics' \
 --header "Content-Type: application/json" \
 --header "Connect-Protocol-Version: 1" \
 --header "Connect-Timeout-Ms: 42.0" \
 --data '{"shadowLinkName":"string"}'
Request examples
# Headers
Connect-Protocol-Version: 1
Connect-Timeout-Ms: 42.0

# Payload
{
  "shadowLinkName": "string"
}
Response examples (200)
{
  "shadowTopics": [
    {
      "name": "string",
      "sourceTopicId": "string",
      "sourceTopicName": "string",
      "status": {
        "partitionInformation": [
          {
            "highWatermark": 42,
            "partitionId": 42,
            "sourceHighWatermark": 42,
            "sourceLastStableOffset": 42,
            "sourceLastUpdatedTimestamp": "2023-01-15T01:30:15.01Z"
          }
        ],
        "state": "SHADOW_TOPIC_STATE_UNSPECIFIED"
      },
      "topicId": "string"
    }
  ]
}
Response examples (default)
{
  "code": "not_found",
  "details": [
    {
      "debug": {},
      "type": "string",
      "value": "@file"
    }
  ],
  "message": "string"
}