Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/workflows/pr_validation_caller.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# =========================================================================================
# CAMARA Project - Pull Request Validation Workflow Caller
#
# This GitHub Actions workflow is responsible for invoking a reusable PR validation workflow
# from the camaraproject/tooling repository. It is intended to ensure consistent validation
# steps for all PRs targeting the main branch in this repository.
#
# CHANGELOG:
# - 2025-08-01: Initial version for v0
#
# USAGE:
# - Automatically triggers on pull requests targeting main.
# - Can be triggered manually via workflow_dispatch.
# - Calls by default the reusable workflow at
# camaraproject/tooling/.github/workflows/pr_validation.yml@v0
#
# DOCUMENTATION:
# see https://github.com/camaraproject/tooling/tree/main/linting/docs
# =========================================================================================

name: Caller for PR validation workflow

on:
# Trigger on pull requests to the main branch only
pull_request:
branches: main
# Enable manual trigger via the GitHub UI
workflow_dispatch:

concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true

permissions:
# Grant necessary write permissions for PRs, contents, and issues
pull-requests: write
contents: write
issues: write
statuses: write

jobs:
pr_validation:
# Invoke the reusable PR validation workflow from "v0" tag of camaraproject/tooling
uses: camaraproject/tooling/.github/workflows/pr_validation.yml@v0
secrets: inherit
# Tools configuration from the tooling repository subfolder of /linting/config/ indicated by `configurations` variable
# If needed, you can specify a configuration from another subfolder of camaraproject/tooling/linting/config/ (uncomment below)
# with:
# configurations: api-name
42 changes: 42 additions & 0 deletions .github/workflows/spectral-oas-caller.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# =========================================================================================
# CAMARA Project - Linting OpenAPI Specification with CAMARA Ruleset Caller
#
# This GitHub Actions workflow is responsible for invoking a reusable "Spectral linting with
# CAMARA ruleset" workflow from the camaraproject/tooling repository. It is intended to
# provide more detailed output from Spectral tool (warnings, hints)
#
# CHANGELOG:
# - 2025-08-01: Initial version for v0
#
# USAGE:
# - Can be triggered manually via workflow_dispatch.
# - Calls by default the reusable workflow at
# camaraproject/tooling/.github/workflows/spectral-oas.yml@v0
#
# DOCUMENTATION:
# see https://github.com/camaraproject/tooling/tree/main/linting/docs
# =========================================================================================

name: Caller for Spectral linting with CAMARA ruleset

on:
workflow_dispatch:

concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true

permissions:
# Grant necessary write permissions for PRs and issues
pull-requests: write
contents: read
issues: write

jobs:
spectral:
# Invoke the reusable PR validation workflow from the main branch of camaraproject/tooling
uses: camaraproject/tooling/.github/workflows/spectral-oas.yml@v0
# Spectral configuration from the tooling repository subfolder of /linting/config/ indicated by `configurations` variable
# If needed, you can specify a configuration from another subfolder of camaraproject/tooling/linting/config/ (uncomment below)
# with:
# configurations: api-name
124 changes: 56 additions & 68 deletions code/API_definitions/MultiPoint_VPN_Camara_API_v0.0.3.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,37 +5,25 @@ info:
##### Before starting to use the API, the developer needs to know about the
below specified details :

* Multipoint VPN service endpoint The URL pointing to the RESTful resource of the
Multipoint VPN API.
* Multipoint VPN service endpoint The URL pointing to the RESTful resource of the Multipoint VPN API.

* Authentication Security access keys such as OAuth 2.0 client credentials
used by client applications to invoke the Multipoint VPN API.
* Authentication Security access keys such as OAuth 2.0 client credentials used by client applications to invoke the Multipoint VPN API.

* Identifier for access point Customer Edge (CE) IPv4 addressand/or IPv6
address of the Customer Edge Router.
* Identifier for access point Customer Edge (CE) IPv4 addressand/or IPv6 address of the Customer Edge Router.

* Identifier for the endpoint cloud Provider Edge (PE) IPv4 and/or IPv6
address of the Cloud Provider Edge
* Identifier for the endpoint cloud Provider Edge (PE) IPv4 and/or IPv6 address of the Cloud Provider Edge.

* Identifier for the application server(AS)IPv4 and/or IPv6 address of the
application server (cloud virtual machine)
* Identifier for the application server(AS)IPv4 and/or IPv6 address of the application server (cloud virtual machine).

* App-Flow (between the application client and application server) The
developer wants to have non public network delivery for the precise
application data flow for the application users.
* App-Flow (between the application client and application server). The developer wants to have non public network delivery for the precise application data flow for the application users.

* Duration Duration (in hours) for which the Multipoint VPN session (between CE and
cloud PE) should be created. This parameter is optional. When not specified,
a default session duration (e.g. 6 months) is applied. The user may request
a termination before its expiration.
* Duration Duration (in hours) for which the Multipoint VPN session (between CE and cloud PE) should be created. This parameter is optional.
When not specified, a default session duration (e.g. 6 months) is applied. The user may request a termination before its expiration.

* Physical Location Physical location of the Customer Edge Router.



NOTE- The private physical link between CE and cloud PE is default deployed
for one click calling, otherwise it is required to install the physical
link, which is out of the scope of this API.
NOTE- The private physical link between CE and cloud PE is default deployed for one click calling,
otherwise it is required to install the physical link, which is out of the scope of this API.
version: wip
license:
name: Apache 2.0
Expand Down Expand Up @@ -68,7 +56,7 @@ paths:
requestBody:
required: true
content:
application/json:
application/json:
schema:
$ref: "#/components/schemas/NetworkCreate"
examples:
Expand All @@ -94,7 +82,7 @@ paths:
"403":
$ref: "#/components/responses/Generic403"
"500":
$ref: "#/components/responses/Generic500"
$ref: "#/components/responses/Generic500"
/network/{serviceId}:
patch:
tags:
Expand All @@ -108,7 +96,7 @@ paths:
requestBody:
required: true
content:
application/json:
application/json:
schema:
$ref: "#/components/schemas/NetworkUpdate"
examples:
Expand All @@ -134,7 +122,7 @@ paths:
"403":
$ref: "#/components/responses/Generic403"
"500":
$ref: "#/components/responses/Generic500"
$ref: "#/components/responses/Generic500"
get:
tags:
- Network
Expand Down Expand Up @@ -200,7 +188,7 @@ paths:
requestBody:
required: true
content:
application/json:
application/json:
schema:
$ref: "#/components/schemas/AssessmentRequest"
examples:
Expand All @@ -226,7 +214,7 @@ paths:
"403":
$ref: "#/components/responses/Generic403"
"500":
$ref: "#/components/responses/Generic500"
$ref: "#/components/responses/Generic500"
components:
headers:
x-correlator:
Expand Down Expand Up @@ -288,7 +276,7 @@ components:
minimum: 1
sla:
type: string
enum:
enum:
- A
- AA
- AAA
Expand Down Expand Up @@ -341,7 +329,7 @@ components:
properties:
type:
description: Multipoint VPN access point type
enum:
enum:
- site
- cloud
primaryIpAddress:
Expand All @@ -355,24 +343,24 @@ components:
type: object
properties:
addressType:
type: string
type: string
required:
- addressType
- addressType
discriminator:
propertyName: addressType
mappings:
propertyName: addressType
mappings:
- Ipv4Addr: '#/components/schemas/Ipv4Address'
- Ipv6Addr: '#/components/schemas/Ipv6Address'
Ipv4Address:
- Ipv6Addr: '#/components/schemas/Ipv6Address'
Ipv4Address:
allOf:
- $ref: '#/components/schemas/IpAddress'
- type: object
required:
- address
properties:
address:
type: string
format: ipv4
type: string
format: ipv4
Ipv6Address:
allOf:
- $ref: '#/components/schemas/IpAddress'
Expand Down Expand Up @@ -402,7 +390,7 @@ components:
$ref: '#/components/schemas/Connection'
sla:
type: string
enum:
enum:
- A
- AA
- AAA
Expand Down Expand Up @@ -438,7 +426,7 @@ components:
minimum: 1
sla:
type: string
enum:
enum:
- A
- AA
- AAA
Expand All @@ -455,43 +443,43 @@ components:
description: Guarantee Bandwidth (Mps)
sla:
type: string
enum:
enum:
- A
- AA
- AAA

examples:
siteToCloudVPNFeasibilityAssessmentRequest:
summary: Assesment Sample 1
description: Feasibility assessment sample
summary: Assesment Sample 1
description: Feasibility assessment sample
value:
isProtected: true
connections:
- customerEdge:
type: site
primaryIP: 84.125.93.10
secondaryIP: 84.125.94.10
location: string
providerEdge:
type: site
primaryIP: 84.125.93.10
secondaryIP: 84.125.94.10
- customerEdge:
type: site
primaryIP: 84.125.93.10
secondaryIP: 84.125.94.10
location: string
providerEdge:
type: site
primaryIP: 84.125.93.10
secondaryIP: 84.125.94.10
guaranteeBandwidth: 20
duration:
duration:
value: 6
unit: days

siteToCloudVPNFeasibilityAssessmentResponse:
summary: Assesment Sample 1
description: Feasibility assessment sample
summary: Assesment Sample 1
description: Feasibility assessment sample
value:
waitdays: 1
sla: A
rent:
rent:
amount: 2000
currency: GBP
siteToCloudVPNCreateConnectionRequest:
summary: Create Connection Sample 1
summary: Create Connection Sample 1
description: Create Connection request sample
value:
isProtected: true
Expand All @@ -502,17 +490,17 @@ components:
secondaryIP: 84.125.94.10
location: string
providerEdge:
type: site
type: site
primaryIP: 84.125.93.10
secondaryIP: 84.125.94.10
guaranteeBandwidth: 20
duration:
duration:
value: 6
unit: days

siteToCloudVPNCreateConnectionResponse:
summary: Create Connection Sampl 1
description: Create Connection response sample
summary: Create Connection Sampl 1
description: Create Connection response sample
value:
serviceId: 111111
connections:
Expand All @@ -522,17 +510,17 @@ components:
secondaryIP: 84.125.94.10
location: string
providerEdge:
type: site
type: site
primaryIP: 84.125.93.10
secondaryIP: 84.125.94.10
resourceGroupId: 12121
cloudGatewayIP: 1.2.3.4
siteToCloudVPNUpdateConnectionRequest:
summary: Update Connection Sample 1
summary: Update Connection Sample 1
description: Update Connection request sample
value:
serviceId: 111111
guaranteeBandwidth: 10Mbps
guaranteeBandwidth: 10
sla: A
responses:
Generic400:
Expand Down Expand Up @@ -642,5 +630,5 @@ components:
description: Internal server error
value:
status: 500
code: Internal Server Error
message: Internal server error while processing request.
code: INTERNAL_SERVER_ERROR
message: Internal server error while processing request.