From 0405aa4e88d9bcbc924ca6ee6d0b23b6dc98f321 Mon Sep 17 00:00:00 2001 From: Brian Pescatore Date: Fri, 19 Jun 2026 22:14:07 +0000 Subject: [PATCH] Add ConnectionType enum (STANDARD, TEST, MONITORING) Introduce a ConnectionType enum to distinguish between ordinary customer connections and special-purpose connections used for testing or monitoring. The new optional 'connectionType' field on Connection defaults to CONNECTION_TYPE_STANDARD when not specified. Connection types: - STANDARD: ordinary customer connections - TEST: reserved for provider dev teams; may use sub-minimum bandwidths, does not count against capacity, partners may enforce a small quota - MONITORING: reserved for active monitoring sessions; may use small bandwidths, does not count against capacity, limited to 1 per interconnect to enable monitoring across all underlying links --- connection-coordinator/schemas/common.yaml | 25 +++++++++++- .../schemas/connection.yaml | 39 ++++++++++++++++++- 2 files changed, 61 insertions(+), 3 deletions(-) diff --git a/connection-coordinator/schemas/common.yaml b/connection-coordinator/schemas/common.yaml index 3696190..4db20b2 100644 --- a/connection-coordinator/schemas/common.yaml +++ b/connection-coordinator/schemas/common.yaml @@ -37,4 +37,27 @@ Empty: description: |- A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. - type: object \ No newline at end of file + type: object + +ConnectionType: + description: |- + Enum that describes the type of a connection. + CONNECTION_TYPE_STANDARD - Standard connections are ordinary customer + connections. + CONNECTION_TYPE_TEST - Test connections are reserved for provider + development teams to support testing and canary workflows. Test + connections may be provisioned at bandwidths below the minimum supported + size (e.g. 50 Mbps). Bandwidth consumed by test connections must not + count against interconnect or environment capacity totals. Partners may + enforce a small quota on the number of active test connections. + CONNECTION_TYPE_MONITORING - Monitoring connections are reserved for + active monitoring sessions between providers. Monitoring connections may + be provisioned at a small bandwidth and must not tally against + interconnect or environment capacity totals. The quota is 1 per + interconnect (not per environment) to enable monitoring across all + underlying links. + enum: + - CONNECTION_TYPE_STANDARD + - CONNECTION_TYPE_TEST + - CONNECTION_TYPE_MONITORING + type: string \ No newline at end of file diff --git a/connection-coordinator/schemas/connection.yaml b/connection-coordinator/schemas/connection.yaml index 310d3d4..4ac5450 100644 --- a/connection-coordinator/schemas/connection.yaml +++ b/connection-coordinator/schemas/connection.yaml @@ -17,10 +17,11 @@ Connection: example: name: providers/my-provider/environments/my-environment/interconnects/my-interconnect/connections/my-connection adminState: "" - activationKey: activationKey verificationState: "" bandwidthMbps: 0 deferProvisioning: false + sourceData: + encodedKey: properties: name: description: |- @@ -29,7 +30,11 @@ Connection: Format: providers/{provider}/environments/{environment}/interconnects/{interconnect}/connections/{connection} type: string activationKey: - description: Identifier. A activation key associated with the connection. + deprecated: true + description: |- + DEPRECATED - Should use sourceData instead. + If both sourceData and activationKey are present, sourceData must be used. + The activation key associated with the connection. type: string bandwidthMbps: description: |- @@ -55,6 +60,20 @@ Connection: receiver. Note, the receiver may refuse to accept the provisioning responsiblity and reject the request with a 400 error code. type: boolean + sourceData: + description: |- + The source that should be consulted/confirmed as part of the creation request. + oneOf: + - $ref: "#/EncodedKey" + - $ref: "#/SourceConnectionName" + connectionType: + allOf: + - $ref: "common.yaml#/ConnectionType" + description: |- + Optional. The type of connection being created. Defaults to + CONNECTION_TYPE_STANDARD if not specified. + default: CONNECTION_TYPE_STANDARD + type: object FeatureGuidance: @@ -320,3 +339,19 @@ NotifyConnectionStatusRequest: A notification from a remote provider that a connection's status has been updated. type: object + +EncodedKey: + description: |- + Base64 Encoded ActivationKey + required: [encodedKey] + properties: + encodedKey: + type: string + +SourceConnectionName: + description: |- + The name of the source connection. + required: [sourceConnectionName] + properties: + sourceConnectionName: + type: string