mirror of
https://github.com/LukeHagar/openapi-types.git
synced 2025-12-06 12:37:47 +00:00
322 lines
7.4 KiB
TypeScript
322 lines
7.4 KiB
TypeScript
import type { Specification } from "../../3.0";
|
|
|
|
export const linkExample: Specification = {
|
|
openapi: "3.0.0",
|
|
info: {
|
|
title: "Link Example",
|
|
version: "1.0.0",
|
|
},
|
|
paths: {
|
|
"/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",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
"/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",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
components: {
|
|
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",
|
|
},
|
|
},
|
|
},
|
|
schemas: {
|
|
user: {
|
|
type: "object",
|
|
properties: {
|
|
username: {
|
|
type: "string",
|
|
},
|
|
uuid: {
|
|
type: "string",
|
|
},
|
|
},
|
|
},
|
|
repository: {
|
|
type: "object",
|
|
properties: {
|
|
slug: {
|
|
type: "string",
|
|
},
|
|
owner: {
|
|
$ref: "#/components/schemas/user",
|
|
},
|
|
},
|
|
},
|
|
pullrequest: {
|
|
type: "object",
|
|
properties: {
|
|
id: {
|
|
type: "integer",
|
|
},
|
|
title: {
|
|
type: "string",
|
|
},
|
|
repository: {
|
|
$ref: "#/components/schemas/repository",
|
|
},
|
|
author: {
|
|
$ref: "#/components/schemas/user",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|