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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
48 changes: 48 additions & 0 deletions apiserver/controllers/repositories.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,20 @@ import (
"github.com/gorilla/mux"
)

// swagger:route POST /repositories repositories Create
//
// Create repository with the parameters given.
//
// Parameters:
// + name: Body
// description: Parameters used when creating the repository.
// type: CreateRepoParams
// in: body
// required: true
//
// Responses:
// 200: Repository
// default: APIErrorResponse
func (a *APIController) CreateRepoHandler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()

Expand All @@ -48,6 +62,13 @@ func (a *APIController) CreateRepoHandler(w http.ResponseWriter, r *http.Request
}
}

// swagger:route GET /repositories repositories List
//
// List repositories.
//
// Responses:
// 200: Repositories
// default: APIErrorResponse
func (a *APIController) ListReposHandler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()

Expand All @@ -64,6 +85,20 @@ func (a *APIController) ListReposHandler(w http.ResponseWriter, r *http.Request)
}
}

// swagger:route GET /repositories/{repoID} repositories Get
//
// Get repository by ID.
//
// Parameters:
// + name: repoID
// description: ID of the repository to fetch.
// type: string
// in: path
// required: true
//
// Responses:
// 200: Repository
// default: APIErrorResponse
func (a *APIController) GetRepoByIDHandler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()

Expand Down Expand Up @@ -93,6 +128,19 @@ func (a *APIController) GetRepoByIDHandler(w http.ResponseWriter, r *http.Reques
}
}

// swagger:route DELETE /repositories/{repoID} repositories Delete
//
// Delete repository by ID.
//
// Parameters:
// + name: repoID
// description: ID of the repository to delete.
// type: string
// in: path
// required: true
//
// Responses:
// default: APIErrorResponse
func (a *APIController) DeleteRepoHandler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()

Expand Down
14 changes: 14 additions & 0 deletions apiserver/routers/routers.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,22 @@
// License for the specific language governing permissions and limitations
// under the License.

// Package routers Garm API.
//
// The Garm API generated using go-swagger.
//
// BasePath: /api/v1
// Version: 1.0.0
// License: Apache 2.0 https://www.apache.org/licenses/LICENSE-2.0
//
// swagger:meta
package routers

//go:generate swagger generate spec --input=../swagger-models.yaml --output=../swagger.yaml --include="routers|controllers"
//go:generate swagger validate ../swagger.yaml
//go:generate rm -rf ../../client
//go:generate swagger generate client --target=../../ --spec=../swagger.yaml

import (
"io"
"net/http"
Expand Down
33 changes: 33 additions & 0 deletions apiserver/swagger-models.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# NOTE: The purpose of these definitions is to reuse the existing golang
# types from GARM packages.
definitions:
Repositories:
type: array
x-go-type:
type: Repositories
import:
package: github.com/cloudbase/garm/params
alias: garm_params
items:
$ref: '#/definitions/Repository'
Repository:
type: object
x-go-type:
type: Repository
import:
package: github.com/cloudbase/garm/params
alias: garm_params
CreateRepoParams:
type: object
x-go-type:
type: CreateRepoParams
import:
package: github.com/cloudbase/garm/params
alias: garm_params
APIErrorResponse:
type: object
x-go-type:
type: APIErrorResponse
import:
package: github.com/cloudbase/garm/apiserver/params
alias: apiserver_params
116 changes: 116 additions & 0 deletions apiserver/swagger.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
basePath: /api/v1
definitions:
APIErrorResponse:
type: object
x-go-type:
import:
alias: apiserver_params
package: github.com/cloudbase/garm/apiserver/params
type: APIErrorResponse
CreateRepoParams:
type: object
x-go-type:
import:
alias: garm_params
package: github.com/cloudbase/garm/params
type: CreateRepoParams
Repositories:
items:
$ref: '#/definitions/Repository'
type: array
x-go-type:
import:
alias: garm_params
package: github.com/cloudbase/garm/params
type: Repositories
Repository:
type: object
x-go-type:
import:
alias: garm_params
package: github.com/cloudbase/garm/params
type: Repository
info:
description: The Garm API generated using go-swagger.
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
title: Garm API.
version: 1.0.0
paths:
/repositories:
get:
operationId: List
responses:
"200":
description: Repositories
schema:
$ref: '#/definitions/Repositories'
default:
description: APIErrorResponse
schema:
$ref: '#/definitions/APIErrorResponse'
summary: List repositories.
tags:
- repositories
post:
operationId: Create
parameters:
- description: Parameters used when creating the repository.
in: body
name: Body
required: true
schema:
$ref: '#/definitions/CreateRepoParams'
description: Parameters used when creating the repository.
type: object
responses:
"200":
description: Repository
schema:
$ref: '#/definitions/Repository'
default:
description: APIErrorResponse
schema:
$ref: '#/definitions/APIErrorResponse'
summary: Create repository with the parameters given.
tags:
- repositories
/repositories/{repoID}:
delete:
operationId: Delete
parameters:
- description: ID of the repository to delete.
in: path
name: repoID
required: true
type: string
responses:
default:
description: APIErrorResponse
schema:
$ref: '#/definitions/APIErrorResponse'
summary: Delete repository by ID.
tags:
- repositories
get:
operationId: Get
parameters:
- description: ID of the repository to fetch.
in: path
name: repoID
required: true
type: string
responses:
"200":
description: Repository
schema:
$ref: '#/definitions/Repository'
default:
description: APIErrorResponse
schema:
$ref: '#/definitions/APIErrorResponse'
summary: Get repository by ID.
tags:
- repositories
swagger: "2.0"
112 changes: 112 additions & 0 deletions client/garm_api_client.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading