coupon-admin/vendor/zircote/swagger-php/Examples/openapi-spec/openapi-spec.yaml

213 lines
5.1 KiB
YAML

openapi: 3.0.0
info:
title: 'Link Example'
version: 1.0.0
paths:
'/2.0/repositories/{username}':
get:
operationId: getRepositoriesByOwner
parameters:
-
name: username
in: path
required: true
schema:
type: string
responses:
'200':
description: 'repositories owned by the supplied user'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/repository'
links:
userRepository:
$ref: '#/components/links/UserRepository'
'/2.0/repositories/{username}/{slug}':
get:
operationId: getRepository
parameters:
-
name: username
in: path
required: true
schema:
type: string
-
name: slug
in: path
required: true
schema:
type: string
responses:
'200':
description: 'The repository'
content:
application/json:
schema:
$ref: '#/components/schemas/repository'
links:
repositoryPullRequests:
$ref: '#/components/links/RepositoryPullRequests'
'/2.0/repositories/{username}/{slug}/pullrequests':
get:
operationId: getPullRequestsByRepository
parameters:
-
name: username
in: path
required: true
schema:
type: string
-
name: slug
in: path
required: true
schema:
type: string
-
name: state
in: query
schema:
type: string
enum:
- open
- merged
- declined
responses:
'200':
description: 'an array of pull request objects'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/pullrequest'
'/2.0/repositories/{username}/{slug}/pullrequests/{pid}':
get:
operationId: getPullRequestsById
parameters:
-
name: username
in: path
required: true
schema:
type: string
-
name: slug
in: path
required: true
schema:
type: string
-
name: pid
in: path
required: true
schema:
type: string
responses:
'200':
description: 'a pull request object'
content:
application/json:
schema:
$ref: '#/components/schemas/pullrequest'
links:
pullRequestMerge:
$ref: '#/components/links/PullRequestMerge'
'/2.0/repositories/{username}/{slug}/pullrequests/{pid}/merge':
post:
operationId: mergePullRequest
parameters:
-
name: username
in: path
required: true
schema:
type: string
-
name: slug
in: path
required: true
schema:
type: string
-
name: pid
in: path
required: true
schema:
type: string
responses:
'204':
description: 'the PR was successfully merged'
'/2.0/users/{username}':
get:
operationId: getUserByName
parameters:
-
name: username
in: path
required: true
schema:
type: string
responses:
'200':
description: 'The User'
content:
application/json:
schema:
$ref: '#/components/schemas/user'
links:
userRepositories:
$ref: '#/components/links/UserRepositories'
components:
schemas:
pullrequest:
properties:
id:
type: integer
title:
type: string
repository:
$ref: '#/components/schemas/repository'
author:
$ref: '#/components/schemas/user'
type: object
repository:
properties:
slug:
type: string
owner:
$ref: '#/components/schemas/user'
type: object
user:
properties:
username:
type: string
uuid:
type: string
type: object
links:
UserRepositories:
operationId: getRepositoriesByOwner
parameters:
username: '$response.body#/username'
UserRepository:
operationId: getRepository
parameters:
username: '$response.body#/owner/username'
slug: '$response.body#/slug'
RepositoryPullRequests:
operationId: getPullRequestsByRepository
parameters:
username: '$response.body#/owner/username'
slug: '$response.body#/slug'
PullRequestMerge:
operationId: mergePullRequest
parameters:
username: '$response.body#/author/username'
slug: '$response.body#/repository/slug'
pid: '$response.body#/id'