# Generated with protoc-gen-openapi
# https://github.com/google/gnostic/tree/master/cmd/protoc-gen-openapi

openapi: 3.0.3
info:
    title: Container API
    version: 0.0.1
paths:
    /v1/container:
        get:
            tags:
                - Container
            operationId: Container_GetContainer
            parameters:
                - name: name
                  in: query
                  schema:
                    type: string
                - name: podUid
                  in: query
                  schema:
                    type: string
                - name: deviceId
                  in: query
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ContainerReply'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/containers:
        post:
            tags:
                - Container
            operationId: Container_GetAllContainers
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetAllContainersReq'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ContainersReply'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
components:
    schemas:
        ContainerReply:
            type: object
            properties:
                name:
                    type: string
                status:
                    type: string
                appName:
                    type: string
                nodeName:
                    type: string
                allocatedDevices:
                    type: integer
                    format: int32
                allocatedCores:
                    type: integer
                    format: int32
                allocatedMem:
                    type: integer
                    format: int32
                type:
                    type: string
                createTime:
                    type: string
                startTime:
                    type: string
                endTime:
                    type: string
                podUid:
                    type: string
                nodeUid:
                    type: string
                resourcePools:
                    type: array
                    items:
                        type: string
                flavor:
                    type: string
                priority:
                    type: string
                namespace:
                    type: string
                deviceIds:
                    type: array
                    items:
                        type: string
                podName:
                    type: string
                taskType:
                    type: string
                shixunName:
                    type: string
                role:
                    type: string
                username:
                    type: string
                requestedCpuCores:
                    type: number
                    format: float
                requestedMemory:
                    type: string
        ContainersReply:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/ContainerReply'
        GetAllContainersReq:
            type: object
            properties:
                filters:
                    $ref: '#/components/schemas/GetAllContainersReq_Filters'
                pageSize:
                    $ref: '#/components/schemas/GetAllContainersReq_PageSize'
        GetAllContainersReq_Filters:
            type: object
            properties:
                name:
                    type: string
                nodeName:
                    type: string
                status:
                    type: string
                deviceId:
                    type: string
                nodeUid:
                    type: string
                resourceGroup:
                    type: string
                priority:
                    type: string
        GetAllContainersReq_PageSize:
            type: object
            properties:
                pageSize:
                    type: integer
                    format: int32
                pageNo:
                    type: integer
                    format: int32
                sort:
                    type: string
                sortField:
                    type: string
        GoogleProtobufAny:
            type: object
            properties:
                '@type':
                    type: string
                    description: The type of the serialized message.
            additionalProperties: true
            description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
        Status:
            type: object
            properties:
                code:
                    type: integer
                    description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
                    format: int32
                message:
                    type: string
                    description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
                details:
                    type: array
                    items:
                        $ref: '#/components/schemas/GoogleProtobufAny'
                    description: A list of messages that carry the error details.  There is a common set of message types for APIs to use.
            description: 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).'
tags:
    - name: Container
