openapi: 3.0.0
servers:
  - url: http://techport.nasa.gov/api
  - url: https://techport.nasa.gov/api
info:
  contact:
    email: hq-techport@mail.nasa.gov
    name: TechPort Team
    url: https://techport.nasa.gov
  description: TechPort RESTful API
  title: TechPort
  version: 3.4.0
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/nasa/api-docs/gh-pages/assets/json/Asteroids%20NeoWs
      version: "2.0"
  x-providerName: nasa.gov
  x-serviceName: asteroids neows
paths:
  /api:
    get:
      description: Returns the swagger specification for the API.
      responses:
        "200":
          description: Successful response
        default:
          description: Object not found.
  "/api/projects/{id}{.format}":
    get:
      description: Returns information about a specific technology project.
      parameters:
        - description: ID of project to fetch
          in: path
          name: id
          required: true
          schema:
            format: int64
            type: integer
        - description: The response type desired.
          in: query
          name: format
          required: true
          schema:
            default: xml
            enum:
              - json
              - xml
            type: string
        - description: Automatically added
          in: path
          name: .format
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/project"
            application/xml:
              schema:
                $ref: "#/components/schemas/project"
          description: Successful response
        default:
          description: Object not found.
  "/api/projects{.format}":
    get:
      description: Returns a list of available technology project IDs.
      parameters:
        - description: ISO 8601 full-date in the format YYYY-MM-DD. Filters the list of
            available ID values by their lastUpdated parameter.
          in: query
          name: updatedSince
          required: true
          schema:
            format: date
            type: string
        - description: The response type desired.
          in: query
          name: format
          required: true
          schema:
            default: json
            enum:
              - json
              - xml
            type: string
        - description: Automatically added
          in: path
          name: .format
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  id:
                    format: int64
                    type: integer
                  lastUpdated:
                    type: string
                type: object
            application/xml:
              schema:
                properties:
                  id:
                    format: int64
                    type: integer
                  lastUpdated:
                    type: string
                type: object
          description: Successful response
        default:
          description: Object not found.
components:
  schemas:
    closeoutDocument:
      description: Represents a file hyperlink or external hyperlink to a project
        closeout final report artifact.
      type: string
    coInvestigator:
      description: The name of an investigator who is a scientist or engineer for an
        project.
      type: string
    destination:
      description: Represents a destination towards which the technology on this
        project helps advance the Agency goals.
      type: string
    file:
      description: Represents a file associated with a library item.
      properties:
        id:
          description: Unique identifier for the file.
          format: int64
          type: integer
        size:
          description: The size of the file in bytes.
          type: string
        url:
          description: The TechPort URL at which the file is accessible for download.
          type: string
      type: object
    libraryItem:
      description: Represents a specific library item that is part of this project.
      properties:
        completionDate:
          description: Date the library item was completed.
          type: string
        description:
          description: Description of the library item.
          type: string
        externalUrl:
          description: External URL for the library item.
          type: string
        files:
          description: List of files associated with the library item.
          items:
            $ref: "#/components/schemas/file"
          type: array
        id:
          description: Unique identifier for the library item.
          format: int64
          type: integer
        publishedBy:
          description: Publisher of the library item.
          type: string
        publishedDate:
          description: Date the library item was published.
          type: string
        title:
          description: Title of the library item
          type: string
        type:
          description: Identifies the type of library item, e.g. Image
          type: string
      type: object
    organization:
      description: A NASA center/facility associated with an project.
      properties:
        acronym:
          description: The acronym of the organization.
          type: string
        city:
          description: The city in which the organization is located.
          type: string
        name:
          description: The name of the organization.
          type: string
        state:
          description: The state in which the organization is located.
          type: string
      type: object
    principalInvestigator:
      description: The name of the Principal Investigator who is a lead scientist or
        engineer for an project.
      type: string
    programDirector:
      description: The name of a Program Director responsible for management of an project.
      type: string
    programManager:
      description: The name of a Program Manager responsible for management of an project.
      type: string
    project:
      description: Top-level TechPort object representing a NASA technology project
        and its associated data.
      properties:
        acronym:
          description: Abbreviated name of the project.
          type: string
        additionalTas:
          description: List of additional and cross-cutting technology areas associated
            with the project.
          items:
            $ref: "#/components/schemas/technologyArea"
          type: array
        benefits:
          description: Describes the benefits offered to NASA funded and planned missions,
            unfunded or planned missions, commercial space industry, and to the
            nation.
          type: string
        closeoutDocuments:
          description: List of document files or links to the project final report
            closeout documentation.
          items:
            $ref: "#/components/schemas/closeoutDocument"
          type: array
        closeoutSummary:
          description: The project closeout summary excerpt.
          type: string
        coFundingPartners:
          description: Other government agencies, NASA Mission Directoratres,
            universities, or commercial entities performing contributing
            resources to this project.
          items:
            $ref: "#/components/schemas/organization"
          type: array
        coInvestigators:
          description: Names of the additional investigators who are scientists or
            engineers for this project.
          items:
            $ref: "#/components/schemas/coInvestigator"
          type: array
        description:
          description: A detailed description of the project.
          type: string
        destinations:
          description: List of the NASA destinations the technology on this project helps
            achieve.
          items:
            $ref: "#/components/schemas/destination"
          type: array
        endDate:
          description: The month and year the project is expected to complete its work.
          type: string
        id:
          description: Unique identifier for the project.
          format: int64
          type: integer
        lastUpdated:
          description: ISO 8601 full-date in the format YYYY-MM-DD describing the last
            time this project was updated.
          format: date
          type: string
        leadOrganization:
          $ref: "#/components/schemas/organization"
        libraryItems:
          description: List of library items in the project library.
          items:
            $ref: "#/components/schemas/libraryItem"
          type: array
        primaryTas:
          description: List of primary technolgy areas (from the NASA Technology Roadmap)
            associated with the project.
          items:
            $ref: "#/components/schemas/technologyArea"
          type: array
        principalInvestigators:
          description: Names of the Principal Investigators who are the lead scientists or
            engineers for this project.
          items:
            $ref: "#/components/schemas/principalInvestigator"
          type: array
        programDirectors:
          description: Names of the Program Directors responsible for the management of
            this project.
          items:
            $ref: "#/components/schemas/programDirector"
          type: array
        programManagers:
          description: Names of the Program Managers responsible for the management of
            this project.
          items:
            $ref: "#/components/schemas/programManager"
          type: array
        projectManagers:
          description: Names of the Project Managers responsible for the management of
            this project.
          items:
            $ref: "#/components/schemas/projectManager"
          type: array
        responsibleMissionDirectorateOrOffice:
          description: The NASA Mission Directorate or Office that is the primary funding
            source for this project.
          type: string
        responsibleProgram:
          description: The NASA program that is the primary funding source for this project.
          type: string
        startDate:
          description: The month and year the project was authorized to proceed.
          type: string
        status:
          description: Indicates whether the project is currently active, completed, or
            canceled.
          type: string
        supportedMissionType:
          description: The supported mission type (Projected Mission, Planned Mission, or
            Pull).
          type: string
        supportingOrganizations:
          description: The supporting organizations for this project that are conducting
            work on the project.
          items:
            $ref: "#/components/schemas/organization"
          type: array
        technologyMaturityCurrent:
          description: The current technology maturity (technology readiness level) of the
            project.
          type: string
        technologyMaturityEnd:
          description: The estimated technology maturity (technology readiness level) of
            the project at its end.
          type: string
        technologyMaturityStart:
          description: The technology maturity (technology readiness level) of the project
            at its beginning.
          type: string
        title:
          description: Title of the project.
          type: string
        website:
          description: The URL for the associated website.
          type: string
        workLocations:
          description: States and territories with people performing work on this project.
          items:
            $ref: "#/components/schemas/workLocation"
          type: array
      type: object
    projectManager:
      description: The name of a Project Manager responsible for management of an project.
      type: string
    technologyArea:
      description: The Technology Area for a given technology that corresponds to the
        NASA Technology Roadmap.
      properties:
        code:
          description: The code identifier for the Technology Area.
          type: string
        id:
          description: Unique identifier for the Technology Area.
          format: int64
          type: integer
        name:
          description: The name of the Technology Area.
          type: string
      type: object
    workLocation:
      description: A state/territory where work on this project is performed.
      type: string
