Skip to content

Conversation

@vbotbuildovich
Copy link
Contributor

@vbotbuildovich vbotbuildovich commented Jan 9, 2026

This PR updates the OpenAPI spec file for the Cloud API.
Triggered by commit: 724e843b520abdf853e142925b5aa69f6a7c7d2f

@coderabbitai
Copy link

coderabbitai bot commented Jan 9, 2026

📝 Walkthrough

Walkthrough

This PR extends the cloud-controlplane OpenAPI specification by introducing eleven new schemas for long-running operation metadata and responses. These schemas support create and delete operations for network peering, serverless clusters, and serverless private links. The OperationMetadata type is updated to incorporate these new metadata definitions via its oneOf field. The PR also updates API payload examples, corrects descriptions, and adjusts request/response payload shapes to reflect the new schema structure. A minor capitalization correction is applied to the cloud-dataplane specification.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~13 minutes

Possibly related PRs

Suggested reviewers

  • JakeSCahill
  • kbatuigas
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'auto-docs: Update Cloud API spec' accurately describes the main change: updating the OpenAPI specification for the Cloud API with new schemas and operational metadata.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The pull request description accurately describes the changeset as an OpenAPI spec update for the Cloud API, referencing the triggering commit.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

github-actions bot commented Jan 9, 2026

ℹ️ Redpanda/http-proxy API content change detected

Preview documentation

No structural change, nothing to display.

Powered by Bump.sh

@github-actions
Copy link

github-actions bot commented Jan 9, 2026

ℹ️ Redpanda/schema-registry API content change detected

Preview documentation

No structural change, nothing to display.

Powered by Bump.sh

@github-actions
Copy link

github-actions bot commented Jan 9, 2026

ℹ️ Redpanda/admin (branch: v1) API content change detected

Preview documentation

No structural change, nothing to display.

Powered by Bump.sh

@github-actions
Copy link

github-actions bot commented Jan 9, 2026

ℹ️ Redpanda/admin (branch: v2) API content change detected

Preview documentation

No structural change, nothing to display.

Powered by Bump.sh

@github-actions
Copy link

github-actions bot commented Jan 9, 2026

ℹ️ Redpanda/cloud-dataplane API content change detected

Preview documentation

No structural change, nothing to display.

Powered by Bump.sh

@github-actions
Copy link

github-actions bot commented Jan 9, 2026

🚨 Breaking Redpanda/cloud-controlplane API change detected

Preview documentation

Structural change details

Modified (19)

  • DELETE /v1/clusters/{id}
    • Response modified: 202
      • Content type modified: application/json
        • Property modified: operation
          • Properties modified: metadata, response
  • DELETE /v1/network/{network_id}/network-peerings/{id}
    • Response modified: 202
      • Content type modified: application/json
        • Property modified: operation
          • Properties modified: metadata, response
    • [Breaking] Response removed: default
      • Removing a resource is always breaking unless it was deprecated before [Breaking]
  • DELETE /v1/networks/{id}
    • Response modified: 202
      • Content type modified: application/json
        • Property modified: operation
          • Properties modified: metadata, response
  • DELETE /v1/serverless/clusters/{id}
    • Response modified: 202
      • Content type modified: application/json
        • Property modified: operation
          • Properties modified: metadata, response
    • [Breaking] Response removed: default
      • Removing a resource is always breaking unless it was deprecated before [Breaking]
  • DELETE /v1/shadow-links/{id}
    • Response modified: 202
      • Content type modified: application/json
        • Property modified: operation
          • Properties modified: metadata, response
  • GET /v1/network/{network_id}/network-peerings
    • Response modified: 200
      • Content type modified: application/json
        • Property modified: network_peerings
          • Property modified: status
    • [Breaking] Response removed: default
      • Removing a resource is always breaking unless it was deprecated before [Breaking]
  • GET /v1/network/{network_id}/network-peerings/{id}
    • [Breaking] Response removed: default
      • Removing a resource is always breaking unless it was deprecated before [Breaking]
  • GET /v1/operations
    • Response modified: 200
      • Content type modified: application/json
        • Property modified: operations
          • Properties modified: metadata, response
  • GET /v1/operations/{id}
    • Response modified: 200
      • Content type modified: application/json
        • Property modified: operation
          • Properties modified: metadata, response
  • GET /v1/serverless/clusters
    • [Breaking] Response removed: default
      • Removing a resource is always breaking unless it was deprecated before [Breaking]
  • GET /v1/serverless/clusters/{id}
    • [Breaking] Response removed: default
      • Removing a resource is always breaking unless it was deprecated before [Breaking]
  • GET /v1/users
    • Response modified: 200
      • Content type modified: application/json
        • Property modified: users
          • Property added: identities
  • GET /v1/users/{id}
    • Response modified: 200
      • Content type modified: application/json
        • Property modified: user
          • Property added: identities
  • PATCH /v1/shadow-links/{shadow_link.id}
    • Response modified: 202
      • Content type modified: application/json
        • Property modified: operation
          • Properties modified: metadata, response
  • POST /v1/clusters
    • Response modified: 202
      • Content type modified: application/json
        • Property modified: operation
          • Properties modified: metadata, response
  • POST /v1/network/{network_peering.network_id}/network-peerings
    • Response modified: 202
      • Content type modified: application/json
        • Property modified: operation
          • Properties modified: metadata, response
    • [Breaking] Response removed: default
      • Removing a resource is always breaking unless it was deprecated before [Breaking]
  • POST /v1/networks
    • Response modified: 202
      • Content type modified: application/json
        • Property modified: operation
          • Properties modified: metadata, response
  • POST /v1/serverless/clusters
    • Response modified: 202
      • Content type modified: application/json
        • Property modified: operation
          • Properties modified: metadata, response
    • [Breaking] Response removed: default
      • Removing a resource is always breaking unless it was deprecated before [Breaking]
  • POST /v1/shadow-links
    • Response modified: 202
      • Content type modified: application/json
        • Property modified: operation
          • Properties modified: metadata, response
Powered by Bump.sh

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
cloud-controlplane/cloud-controlplane.yaml (3)

5402-5444: GetNetworkPeering response schema reference looks wrong (GetNetworkPeeringRequest vs response).

Under the 200 response, the schema currently references #/components/schemas/GetNetworkPeeringRequest (Line 5442-5443), but the payload shown is a network_peering wrapper (i.e., GetNetworkPeeringResponse). Even if this was pre-existing, it’s worth fixing since this endpoint segment was touched.

Proposed diff
         "200":
           content:
             application/json:
@@
               schema:
-                $ref: '#/components/schemas/GetNetworkPeeringRequest'
+                $ref: '#/components/schemas/GetNetworkPeeringResponse'

5461-5510: Fix typo in endpoint description (“pering” → “peering”).

User-facing docs regression.

Proposed diff
-      description: Create a Redpanda network pering.
+      description: Create a Redpanda network peering.

2575-2741: Add missing ServerlessPrivateLink operation metadata to OperationMetadata.oneOf and remove duplicate DeleteNetworkPeeringMetadata/DeleteNetworkPeeringResponse entries.

The schemas CreateServerlessPrivateLinkMetadata, DeleteServerlessPrivateLinkMetadata, and UpdateServerlessPrivateLinkMetadata are defined in the specification but are not included in OperationMetadata.oneOf. Each must be added as a oneOf variant with the corresponding @type discriminator to ensure the API properly returns these metadata types.

Additionally, DeleteNetworkPeeringMetadata (line 2631 and 2639) and DeleteNetworkPeeringResponse (line 2714 and 2722) are duplicated in their respective oneOf arrays—remove one occurrence of each.

Note: ServerlessPrivateLink response schemas (CreateServerlessPrivateLinkResponse, DeleteServerlessPrivateLinkResponse, UpdateServerlessPrivateLinkResponse) do not appear to be defined; if they should exist, they must be added both as schemas and to OperationResponse.oneOf.

🤖 Fix all issues with AI agents
In @cloud-controlplane/cloud-controlplane.yaml:
- Around line 1158-1162: The schema description text for response objects is
incorrect: update the description for CreateServerlessClusterResponse and
DeleteServerlessClusterResponse (and any other schema components with “Response
is the request of …”) to correctly read “CreateServerlessClusterResponse is the
response of CreateServerlessCluster.” and “DeleteServerlessClusterResponse is
the response of DeleteServerlessCluster.” respectively; locate the description
fields in the YAML for the CreateServerlessClusterResponse and
DeleteServerlessClusterResponse schema objects and replace “request” with
“response” (and audit similar Response schema descriptions to make the same
fix).
- Around line 2701-2740: The OperationResponse.oneOf array currently contains a
duplicated branch for DeleteNetworkPeeringResponse; remove the redundant allOf
entry that references DeleteNetworkPeeringResponse so only a single oneOf member
exists (locate the duplicate allOf block that sets '@type' to
type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringResponse
and the subsequent $ref to DeleteNetworkPeeringResponse and delete that block),
and if this YAML is generated, fix the upstream generator/proto template that
emits OperationResponse.oneOf to prevent emitting duplicate
DeleteNetworkPeeringResponse entries.
- Around line 2618-2658: In OperationMetadata.oneOf remove the duplicated
DeleteNetworkPeeringMetadata branch (the repeated allOf that references
DeleteNetworkPeeringMetadata) and add the missing serverless private-link
metadata entries by inserting allOf entries for
CreateServerlessPrivateLinkMetadata, DeleteServerlessPrivateLinkMetadata, and
UpdateServerlessPrivateLinkMetadata; each entry should mirror the existing
pattern (properties.'@type' enum set to the fully-qualified
type.googleapis.com/redpanda.api.controlplane.v1.<Name> and an $ref to
'#/components/schemas/<Name>'). Ensure the enum strings and $ref names exactly
match the schema component names (CreateServerlessPrivateLinkMetadata,
DeleteServerlessPrivateLinkMetadata, UpdateServerlessPrivateLinkMetadata) and
remove only the duplicate block referencing DeleteNetworkPeeringMetadata.
🧹 Nitpick comments (2)
cloud-controlplane/cloud-controlplane.yaml (2)

1070-1089: Add required for CreateNetworkPeeringBody.network_peering (and consider title/description parity).

CreateNetworkPeeringBody defines network_peering, but doesn’t mark it required, which can lead to underspecified clients/server stubs for a body that is effectively mandatory.

Proposed diff
     CreateNetworkPeeringBody:
       properties:
         network_peering:
           properties:
             aws:
               $ref: '#/components/schemas/AWSPeeringSpec'
             azure:
               $ref: '#/components/schemas/AzurePeeringSpec'
             cloud_provider:
               $ref: '#/components/schemas/CloudProvider'
             display_name:
               type: string
             gcp:
               $ref: '#/components/schemas/GCPPeeringSpec'
           type: object
+      required:
+        - network_peering
       type: object

5370-5380: DeleteNetworkPeering 202 example: consider including metadata fields (even if empty) consistently.

The example includes metadata.@type but no fields; that’s fine if metadata is intentionally empty, but it’s a bit inconsistent with other operations that include IDs in metadata.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between a57267a and f66607f.

📒 Files selected for processing (2)
  • cloud-controlplane/cloud-controlplane.yaml
  • cloud-dataplane/cloud-dataplane.yaml
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: kbatuigas
Repo: redpanda-data/api-docs PR: 40
File: cloud-controlplane/cloud-controlplane.yaml:1733-1738
Timestamp: 2025-11-26T19:18:28.591Z
Learning: For the redpanda-data/api-docs repository, the OpenAPI specification files in cloud-controlplane/ and cloud-dataplane/ are auto-generated from proto source files. Changes to these specs should be made in the upstream proto sources rather than directly editing the generated OpenAPI YAML files.
📚 Learning: 2025-11-26T19:18:28.591Z
Learnt from: kbatuigas
Repo: redpanda-data/api-docs PR: 40
File: cloud-controlplane/cloud-controlplane.yaml:1733-1738
Timestamp: 2025-11-26T19:18:28.591Z
Learning: For the redpanda-data/api-docs repository, the OpenAPI specification files in cloud-controlplane/ and cloud-dataplane/ are auto-generated from proto source files. Changes to these specs should be made in the upstream proto sources rather than directly editing the generated OpenAPI YAML files.

Applied to files:

  • cloud-controlplane/cloud-controlplane.yaml
🔇 Additional comments (8)
cloud-dataplane/cloud-dataplane.yaml (1)

7851-7853: Non-functional doc polish; ensure it’s reflected in the upstream generator/source-of-truth.

Capitalizing the endpoint summary to Deploy Transform is fine for consistency, but since these specs are auto-generated, please ensure this change is coming from (or is mirrored in) the upstream proto/generator to avoid being reverted on the next regen. Based on learnings, ...

cloud-controlplane/cloud-controlplane.yaml (7)

4934-4977: Example updates look consistent (tier rename + CreateClusterRequest nesting).

Switching the example tier value and nesting the create body under cluster: matches the CreateClusterRequest schema.


5316-5340: ListNetworkPeerings example looks good and matches the response schema shape.

The example includes network_peerings: [...] with nested provider status, which aligns with ListNetworkPeeringsResponse.


5591-5597: CreateNetworkRequest example nesting under network: matches the schema.

This is aligned with CreateNetworkRequest.network.


6324-6326: CreateResourceGroupRequest example nesting under resource_group: matches the schema.

Aligned with CreateResourceGroupRequest.resource_group.


6881-6922: Adding page_size bounds is good; Serverless list example looks consistent.

The minimum: 1 / maximum: 100 addition improves client-side validation.


6938-6963: Serverless create/delete/get examples look coherent with the new metadata schema.

Examples consistently use CreateServerlessClusterMetadata.serverless_cluster_id and DeleteServerlessClusterMetadata as metadata type.

Also applies to: 7002-7012, 7035-7075


8077-8080: Tag reordering/update is fine.

No issues.

Comment on lines +1158 to +1162
description: CreateServerlessClusterResponse is the request of CreateServerlessCluster.
properties:
serverless_cluster:
$ref: '#/components/schemas/ServerlessCluster'
type: object
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix incorrect “Response is the request of …” descriptions.

CreateServerlessClusterResponse and DeleteServerlessClusterResponse descriptions say “request”, which is misleading in generated docs.

Proposed diff
     CreateServerlessClusterResponse:
-      description: CreateServerlessClusterResponse is the request of CreateServerlessCluster.
+      description: CreateServerlessClusterResponse is the response of CreateServerlessCluster.
       properties:
         serverless_cluster:
           $ref: '#/components/schemas/ServerlessCluster'
       type: object
@@
     DeleteServerlessClusterResponse:
-      description: DeleteServerlessClusterResponse is the request of DeleteServerlessCluster.
+      description: DeleteServerlessClusterResponse is the response of DeleteServerlessCluster.
       type: object

Also applies to: 1451-1452

🤖 Prompt for AI Agents
In @cloud-controlplane/cloud-controlplane.yaml around lines 1158 - 1162, The
schema description text for response objects is incorrect: update the
description for CreateServerlessClusterResponse and
DeleteServerlessClusterResponse (and any other schema components with “Response
is the request of …”) to correctly read “CreateServerlessClusterResponse is the
response of CreateServerlessCluster.” and “DeleteServerlessClusterResponse is
the response of DeleteServerlessCluster.” respectively; locate the description
fields in the YAML for the CreateServerlessClusterResponse and
DeleteServerlessClusterResponse schema objects and replace “request” with
“response” (and audit similar Response schema descriptions to make the same
fix).

Comment on lines +2618 to 2669
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.CreateNetworkPeeringMetadata
type: string
- $ref: '#/components/schemas/CreateNetworkPeeringMetadata'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringMetadata
type: string
- $ref: '#/components/schemas/DeleteNetworkPeeringMetadata'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringMetadata
type: string
- $ref: '#/components/schemas/DeleteNetworkPeeringMetadata'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.CreateServerlessClusterMetadata
type: string
- $ref: '#/components/schemas/CreateServerlessClusterMetadata'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteServerlessClusterMetadata
type: string
- $ref: '#/components/schemas/DeleteServerlessClusterMetadata'
OperationResponse:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Remove duplicated DeleteNetworkPeeringMetadata branch in OperationMetadata.oneOf and wire in missing serverless private-link metadata (if applicable).

There are two identical DeleteNetworkPeeringMetadata oneOf entries (Line 2627-2642), which can confuse schema validators/generators. Also, newly added CreateServerlessPrivateLinkMetadata, DeleteServerlessPrivateLinkMetadata, and UpdateServerlessPrivateLinkMetadata aren’t present here (in the provided excerpt), so operation.metadata may not validate for those operation types.

Proposed diff (dedupe + add missing metadata types)
     OperationMetadata:
       description: Metadata of the long-running Operation. Contains in-progress information.
       oneOf:
@@
         - allOf:
             - properties:
                 '@type':
                   description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
                   enum:
                     - type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringMetadata
                   type: string
             - $ref: '#/components/schemas/DeleteNetworkPeeringMetadata'
-        - allOf:
-            - properties:
-                '@type':
-                  description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
-                  enum:
-                    - type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringMetadata
-                  type: string
-            - $ref: '#/components/schemas/DeleteNetworkPeeringMetadata'
@@
+        - allOf:
+            - properties:
+                '@type':
+                  description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
+                  enum:
+                    - type.googleapis.com/redpanda.api.controlplane.v1.CreateServerlessPrivateLinkMetadata
+                  type: string
+            - $ref: '#/components/schemas/CreateServerlessPrivateLinkMetadata'
+        - allOf:
+            - properties:
+                '@type':
+                  description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
+                  enum:
+                    - type.googleapis.com/redpanda.api.controlplane.v1.DeleteServerlessPrivateLinkMetadata
+                  type: string
+            - $ref: '#/components/schemas/DeleteServerlessPrivateLinkMetadata'
+        - allOf:
+            - properties:
+                '@type':
+                  description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
+                  enum:
+                    - type.googleapis.com/redpanda.api.controlplane.v1.UpdateServerlessPrivateLinkMetadata
+                  type: string
+            - $ref: '#/components/schemas/UpdateServerlessPrivateLinkMetadata'

Based on learnings, if this file is generated from protos, the dedupe/wiring should be fixed in the upstream proto/OpenAPI generator rather than hand-editing this YAML.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.CreateNetworkPeeringMetadata
type: string
- $ref: '#/components/schemas/CreateNetworkPeeringMetadata'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringMetadata
type: string
- $ref: '#/components/schemas/DeleteNetworkPeeringMetadata'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringMetadata
type: string
- $ref: '#/components/schemas/DeleteNetworkPeeringMetadata'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.CreateServerlessClusterMetadata
type: string
- $ref: '#/components/schemas/CreateServerlessClusterMetadata'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteServerlessClusterMetadata
type: string
- $ref: '#/components/schemas/DeleteServerlessClusterMetadata'
OperationResponse:
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.CreateNetworkPeeringMetadata
type: string
- $ref: '#/components/schemas/CreateNetworkPeeringMetadata'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringMetadata
type: string
- $ref: '#/components/schemas/DeleteNetworkPeeringMetadata'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.CreateServerlessClusterMetadata
type: string
- $ref: '#/components/schemas/CreateServerlessClusterMetadata'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteServerlessClusterMetadata
type: string
- $ref: '#/components/schemas/DeleteServerlessClusterMetadata'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.CreateServerlessPrivateLinkMetadata
type: string
- $ref: '#/components/schemas/CreateServerlessPrivateLinkMetadata'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteServerlessPrivateLinkMetadata
type: string
- $ref: '#/components/schemas/DeleteServerlessPrivateLinkMetadata'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.UpdateServerlessPrivateLinkMetadata
type: string
- $ref: '#/components/schemas/UpdateServerlessPrivateLinkMetadata'
OperationResponse:
🤖 Prompt for AI Agents
In @cloud-controlplane/cloud-controlplane.yaml around lines 2618 - 2658, In
OperationMetadata.oneOf remove the duplicated DeleteNetworkPeeringMetadata
branch (the repeated allOf that references DeleteNetworkPeeringMetadata) and add
the missing serverless private-link metadata entries by inserting allOf entries
for CreateServerlessPrivateLinkMetadata, DeleteServerlessPrivateLinkMetadata,
and UpdateServerlessPrivateLinkMetadata; each entry should mirror the existing
pattern (properties.'@type' enum set to the fully-qualified
type.googleapis.com/redpanda.api.controlplane.v1.<Name> and an $ref to
'#/components/schemas/<Name>'). Ensure the enum strings and $ref names exactly
match the schema component names (CreateServerlessPrivateLinkMetadata,
DeleteServerlessPrivateLinkMetadata, UpdateServerlessPrivateLinkMetadata) and
remove only the duplicate block referencing DeleteNetworkPeeringMetadata.

Comment on lines +2701 to +2751
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.CreateNetworkPeeringResponse
type: string
- $ref: '#/components/schemas/CreateNetworkPeeringResponse'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringResponse
type: string
- $ref: '#/components/schemas/DeleteNetworkPeeringResponse'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringResponse
type: string
- $ref: '#/components/schemas/DeleteNetworkPeeringResponse'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.CreateServerlessClusterResponse
type: string
- $ref: '#/components/schemas/CreateServerlessClusterResponse'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteServerlessClusterResponse
type: string
- $ref: '#/components/schemas/DeleteServerlessClusterResponse'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Remove duplicated DeleteNetworkPeeringResponse branch in OperationResponse.oneOf.

There are two identical DeleteNetworkPeeringResponse oneOf entries (Line 2710-2724), which can cause ambiguity for tooling.

Proposed diff
     OperationResponse:
       description: Response of the long-running Operation.
       oneOf:
@@
         - allOf:
             - properties:
                 '@type':
                   description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
                   enum:
                     - type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringResponse
                   type: string
             - $ref: '#/components/schemas/DeleteNetworkPeeringResponse'
-        - allOf:
-            - properties:
-                '@type':
-                  description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
-                  enum:
-                    - type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringResponse
-                  type: string
-            - $ref: '#/components/schemas/DeleteNetworkPeeringResponse'

Based on learnings, this likely needs to be corrected in the upstream generator/protos.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.CreateNetworkPeeringResponse
type: string
- $ref: '#/components/schemas/CreateNetworkPeeringResponse'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringResponse
type: string
- $ref: '#/components/schemas/DeleteNetworkPeeringResponse'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringResponse
type: string
- $ref: '#/components/schemas/DeleteNetworkPeeringResponse'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.CreateServerlessClusterResponse
type: string
- $ref: '#/components/schemas/CreateServerlessClusterResponse'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteServerlessClusterResponse
type: string
- $ref: '#/components/schemas/DeleteServerlessClusterResponse'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.CreateNetworkPeeringResponse
type: string
- $ref: '#/components/schemas/CreateNetworkPeeringResponse'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringResponse
type: string
- $ref: '#/components/schemas/DeleteNetworkPeeringResponse'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.CreateServerlessClusterResponse
type: string
- $ref: '#/components/schemas/CreateServerlessClusterResponse'
- allOf:
- properties:
'@type':
description: Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.
enum:
- type.googleapis.com/redpanda.api.controlplane.v1.DeleteServerlessClusterResponse
type: string
- $ref: '#/components/schemas/DeleteServerlessClusterResponse'
🤖 Prompt for AI Agents
In @cloud-controlplane/cloud-controlplane.yaml around lines 2701 - 2740, The
OperationResponse.oneOf array currently contains a duplicated branch for
DeleteNetworkPeeringResponse; remove the redundant allOf entry that references
DeleteNetworkPeeringResponse so only a single oneOf member exists (locate the
duplicate allOf block that sets '@type' to
type.googleapis.com/redpanda.api.controlplane.v1.DeleteNetworkPeeringResponse
and the subsequent $ref to DeleteNetworkPeeringResponse and delete that block),
and if this YAML is generated, fix the upstream generator/proto template that
emits OperationResponse.oneOf to prevent emitting duplicate
DeleteNetworkPeeringResponse entries.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants