openapi: 3.1.0
info:
  title: INFLOR - API de ALIANÇAS
  version: v2
  description: API destinada a integração de parcerias com a INFLOR.
  contact:
    name: Diretoria de Alianças
    email: alliances@inflor.com
    url: https://inflor.com
servers:
  - url: https://api-alliances.inflor-qas.cloud/api/v2
    description: Qualidade
  - url: https://api-alliances.inflor.cloud/api/v2
    description: Produção
components:
  securitySchemes:
    API-Key:
      type: apiKey
      description: >-
        API Key para autenticação de acesso. Envie no `header` da requisição
        como `Authorization: Token {{api-key}}`.
      name: Authorization
      in: header
    Client-Code:
      type: apiKey
      description: >-
        O código que será usado para identificar o cliente. Envie no `header`da
        requisição como `Client-Code: {{client-code}}`.
      name: Client-Code
      in: header
  schemas:
    GetUltimosBoletinsResponse:
      type: object
      properties:
        dados:
          type: array
          items:
            type: object
            properties:
              refRegistroOrigem:
                type: string
              statusImportacao:
                type: string
              dcrErro:
                type: string
              dataAtualizacao:
                type: string
      additionalProperties: false
    ErrorMessageResponse:
      type: object
      properties:
        error:
          type: string
      additionalProperties: false
    CtlImportColheita:
      type: object
      properties:
        CD_BOLETIM_IMP:
          type: string
        CD_BOLETIM_PROD_IMP:
          type: string
        CD_TALHAO_PRACA_IMP:
          type: string
        CD_TURNO:
          type: string
        DATA_HORA_FIM_OPERACAO_IMP:
          type: string
        DATA_HORA_INI_OPERACAO_IMP:
          type: string
        DCR_NUM_MATRICULA_IMP:
          type: string
        FLAG_ENVIO_AGRUPADO_IMP:
          type: string
        ID_EQUIPAMENTO_IMP:
          type: string
        ID_OPERACAO_IMP:
          type: string
        ID_PARADA_IMP:
          type: string
        ID_PRODUTO_IMP:
          type: string
        ID_PROJETO_IMP:
          type: string
        ID_REGIAO_IMP:
          type: string
        QTD_DURACAO_BOL_IMP:
          type: number
        QTD_PRODUCAO_IMP:
          type: string
        REF_REGISTRO_ORIGEM:
          type: string
        VLR_DISTANCIA_PERCORRIDA_IMP:
          type: string
        VLR_HODOMETRO_FIM_IMP:
          type: string
        VLR_HODOMETRO_INI_IMP:
          type: string
        VLR_HORIMETRO_FIM_IMP:
          type: string
        VLR_HORIMETRO_INI_IMP:
          type: string
        VLR_VOLUME_APONTADO_IMP:
          type: string
      additionalProperties: false
    PostBoletimColheitaRequest:
      required:
        - CTL_IMPORT_COLHEITA
        - ManagementUnit
      type: object
      properties:
        ManagementUnit:
          type: integer
          format: int32
        SerialNumber:
          type: string
        UserCode:
          type: integer
          format: int32
        CTL_IMPORT_COLHEITA:
          type: array
          items:
            $ref: '#/components/schemas/CtlImportColheita'
      additionalProperties: false
    PostBoletimColheitaResponse:
      type: object
      properties:
        dados:
          type: array
          items:
            type: object
            properties:
              refRegistroOrigem:
                type: integer
      additionalProperties: false
    GetTurnosResponse:
      type: object
      properties:
        dados:
          type: array
          items:
            type: object
            properties:
              cdTurno:
                type: integer
              cdFornecedor:
                type: integer
              dcrTurno:
                type: string
              abrevTurno:
                type: string
              horaInicio:
                type: string
              horaFim:
                type: string
      additionalProperties: false
    GetEquipamentosResponse:
      type: object
      properties:
        dados:
          type: array
          items:
            type: object
            properties:
              cdEquipamento:
                type: integer
              cdClasseEquipamento:
                type: integer
              cdFamiliaEquipamento:
                type: integer
              idEquipamento:
                type: string
              dcrEquipamento:
                type: string
              abrevEquipamento:
                type: string
              dcrNumSerie:
                type: string
              vlrCapacidade:
                type: string
              dcrFamiliaEquipamento:
                type: string
              abrevFamiliaEquipamento:
                type: string
              dcrClasseEquipamento:
                type: string
              abrevClasseEquipamento:
                type: string
      additionalProperties: false
    GetOperacoesResponse:
      type: object
      properties:
        dados:
          type: array
          items:
            type: object
            properties:
              cdOperacao:
                type: integer
              idOperacao:
                type: string
              dcrOperacao:
                type: string
              abrevOperacao:
                type: string
      additionalProperties: false
    GetParadasResponse:
      type: object
      properties:
        dados:
          type: array
          items:
            type: object
            properties:
              cdParada:
                type: integer
              idParada:
                type: string
              dcrParada:
                type: string
              abrevParada:
                type: string
              tipParada:
                type: string
              dcrClasseParada:
                type: string
      additionalProperties: false
    GetOSTalhoesOperResponse:
      type: object
      properties:
        dados:
          type: array
          items:
            type: object
            properties:
              cdOrdemServico:
                type: integer
              cdFornecedor:
                type: integer
              cdFrenteOperacao:
                type: integer
              cdUnidadeGestao:
                type: integer
              cdRegiao:
                type: integer
              cdProjeto:
                type: integer
              cdUsoSolo:
                type: integer
              cdTalhao:
                type: string
              cdProcesso:
                type: integer
              cdOperacao:
                type: integer
              idRegiao:
                type: string
              idProjeto:
                type: string
              dcrOrdemServico:
                type: string
              dataIniOS:
                type: string
              dataFimOS:
                type: string
              dcrUnidadeGestao:
                type: string
              dcrRegiao:
                type: string
              nomProjeto:
                type: string
              vlrVolumeUnit:
                type: number
              vlrVolTotal:
                type: number
              flagProprioTerceiro:
                type: string
              tipProcesso:
                type: string
              dataAssocOs:
                type: string
              vlrArea:
                type: number
      additionalProperties: false
    GetFrenteOperacaoResponse:
      type: object
      properties:
        dados:
          type: array
          items:
            type: object
            properties:
              cdFornecedor:
                type: integer
              cdEquipamento:
                type: integer
              cdFrenteOperacao:
                type: integer
              cdFuncionario:
                type: integer
              abrevFrenteOperacao:
                type: string
              dcrFornecedor:
                type: string
              dcrNomeFuncionario:
                type: string
              dcrFrenteOperacao:
                type: string
              dcrNumMatricula:
                type: string
      additionalProperties: false
    GetProdutosResponse:
      type: object
      properties:
        dados:
          type: array
          items:
            type: object
            properties:
              cdProduto:
                type: integer
              idProduto:
                type: string
              dcrProduto:
                type: string
              abrevProduto:
                type: string
              numComprimentoTora:
                type: string
      additionalProperties: false
    GetCtoTalhaoResponse:
      type: object
      properties:
        dados:
          type: array
          items:
            type: object
            properties:
              cdUsoSolo:
                type: string
              idRegiao:
                type: string
              idProjeto:
                type: string
              cdTalhao:
                type: string
              cdOperacao:
                type: string
              dcrOperacao:
                type: string
              idOperacao:
                type: string
              dataCto:
                type: string
              ctoIndicado:
                type: string
              ctoExecutado:
                type: string
              idProduto:
                type: string
      additionalProperties: false
    GetVolumeAjustadoResponse:
      type: object
      properties:
        dados:
          type: array
          items:
            type: object
            properties:
              refRegistroOrigem:
                type: string
              volumeApontado:
                type: string
              volumeAjustado:
                type: string
      additionalProperties: false
    GetDataCubesResponse:
      type: array
      items:
        type: object
        properties:
          id:
            type: string
          name:
            type: string
          description:
            type: string
      additionalProperties: false
    GetDataCubesDataResponse:
      type: object
      properties:
        dataCube:
          type: string
        client:
          type: string
        clientAbbrev:
          type: string
        dataRequestedOn:
          type: string
          format: date-time
        lastDataRefresh:
          type: string
          format: date-time
        totalRecords:
          type: integer
        dataset:
          type: array
          items:
            type: object
            properties:
              client:
                type: string
              fund:
                type: string
              property:
                type: string
              tractName:
                type: string
              tractNumber:
                type: string
              compartment:
                type: string
              stand:
                type: string
              standKey:
                type: string
              cycle:
                type: integer
              rotation:
                type: integer
              country:
                type: string
              region:
                type: string
              state:
                type: string
              county:
                type: string
              gisArea:
                type: number
              bookArea:
                type: number
              exclusionLayer:
                type: number
              netBookArea:
                type: number
              netGisArea:
                type: number
              areaUnit:
                type: string
              propertyManager:
                type: string
              assetManager:
                type: string
              ownership:
                type: string
              landUse:
                type: string
              certification:
                type: string
              origin:
                type: string
              dominantSpecies:
                type: string
              speciesLabel:
                type: string
              secondarySpecies:
                type: string
              secSpeciesLabel:
                type: string
              yearEstablished:
                type: integer
              standAge:
                type: integer
              description:
                type: string
              strata:
                type: string
              siteType:
                type: string
              siteTypeLabel:
                type: string
              convertibility:
                type: string
              operability:
                type: string
              merchClass:
                type: string
              sizeClass:
                type: string
              stockingClass:
                type: string
              volumeClass:
                type: string
              heightClass:
                type: string
              densityClass:
                type: string
              basalAreaClass:
                type: string
              forestTypeClass:
                type: string
              siteClass:
                type: string
              physiographicRegion:
                type: string
              status:
                type: string
              elevation:
                type: string
              aspect:
                type: string
              slope:
                type: string
              soilType:
                type: string
              baseAge:
                type: number
              siteIndex:
                type: number
              dominantHeight:
                type: number
              volumeEffectiveDate:
                type: string
                format: date-time
              volUnitsPulp:
                type: string
              volUnitsSolid:
                type: string
              softwoodTpa:
                type: number
              softwoodBa:
                type: number
              softwoodPpw:
                type: number
              softwoodCns:
                type: number
              softwoodSaw:
                type: number
              softwoodTop:
                type: number
              softwoodPpwTotal:
                type: number
              softwoodCnsTotal:
                type: number
              softwoodSawTotal:
                type: number
              softwoodTopTotal:
                type: number
              hardwoodTpa:
                type: number
              hardwoodBa:
                type: number
              hardwoodPpw:
                type: number
              hardwoodSaw:
                type: number
              hardwoodTop:
                type: number
              hardwoodPpwTotal:
                type: number
              hardwoodSawTotal:
                type: number
              hardwoodTopTotal:
                type: number
              cruiseDate:
                type: string
                format: date-time
              cruiser:
                type: string
              cruiseType:
                type: string
              cruiseValue:
                type: string
              plots:
                type: string
              error:
                type: string
              cv:
                type: string
              seedlingSource:
                type: string
              seedlingGeneration:
                type: string
              seedlingDetails:
                type: string
              regenMethod:
                type: string
              thinType:
                type: string
              thinYear:
                type: integer
              fertilizationMethod:
                type: string
              fertilizationYear:
                type: integer
              sitePrepMethod:
                type: string
              sitePrepYear:
                type: integer
              releaseMethod:
                type: string
              releaseYear:
                type: integer
              preCommercialMethod:
                type: string
              preCommercialYear:
                type: integer
              areaType:
                type: string
              standCenX:
                type: number
              standCenY:
                type: number
              databaseUpdateDate:
                type: string
                format: date-time
              creation:
                type: string
                format: date-time
              id:
                type: integer
      additionalProperties: false
    GetDataCubeReportsResponse:
      type: object
      properties:
        dataRequestedOn:
          type: string
          format: date-time
        totalReports:
          type: integer
        reports:
          type: array
          items:
            type: object
            properties:
              reportId:
                type: integer
              reportName:
                type: string
              observations:
                type: string
      additionalProperties: false
    PaginationMetadata:
      type: object
      additionalProperties: false
      properties:
        count:
          type: integer
        pageSize:
          type: integer
        hasNextPage:
          type: boolean
        nextCursor:
          type:
            - string
            - 'null'
        previousCursor:
          type:
            - string
            - 'null'
        orderBy:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              columnName:
                type: string
              direction:
                type: string
    GetDataCubeReportsDataResponse:
      type: object
      properties:
        reportId:
          type: integer
        dataRequestedOn:
          type: string
          format: date-time
        pagination:
          $ref: '#/components/schemas/PaginationMetadata'
        data:
          type: array
          items:
            type: object
      additionalProperties: false
    Position:
      title: Position
      type: array
      items:
        type: number
      minItems: 2
      maxItems: 3
    Point:
      title: Point
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - Point
        coordinates:
          $ref: '#/components/schemas/Position'
    MultiPoint:
      title: MultiPoint
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - MultiPoint
        coordinates:
          type: array
          items:
            $ref: '#/components/schemas/Position'
    LineString:
      title: LineString
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - LineString
        coordinates:
          type: array
          minItems: 2
          items:
            $ref: '#/components/schemas/Position'
    MultiLineString:
      title: MultiLineString
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - MultiLineString
        coordinates:
          type: array
          items:
            type: array
            minItems: 2
            items:
              $ref: '#/components/schemas/Position'
    Polygon:
      title: Polygon
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - Polygon
        coordinates:
          type: array
          items:
            type: array
            minItems: 4
            items:
              $ref: '#/components/schemas/Position'
    MultiPolygon:
      title: MultiPolygon
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - MultiPolygon
        coordinates:
          type: array
          items:
            type: array
            items:
              type: array
              minItems: 4
              items:
                $ref: '#/components/schemas/Position'
    Feature:
      title: Feature
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - Feature
        geometry:
          oneOf:
            - $ref: '#/components/schemas/Point'
            - $ref: '#/components/schemas/MultiPoint'
            - $ref: '#/components/schemas/LineString'
            - $ref: '#/components/schemas/MultiLineString'
            - $ref: '#/components/schemas/Polygon'
            - $ref: '#/components/schemas/MultiPolygon'
            - type: 'null'
        properties:
          type:
            - object
            - 'null'
        id:
          type:
            - string
            - number
    FeatureCollection:
      title: FeatureCollection
      type: object
      required:
        - type
        - features
      properties:
        type:
          type: string
          enum:
            - FeatureCollection
        features:
          type: array
          items:
            $ref: '#/components/schemas/Feature'
          minItems: 0
        properties:
          type:
            - object
            - 'null'
    GeometryCollection:
      title: GeometryCollection
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - GeometryCollection
        geometries:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/Point'
              - $ref: '#/components/schemas/MultiPoint'
              - $ref: '#/components/schemas/LineString'
              - $ref: '#/components/schemas/MultiLineString'
              - $ref: '#/components/schemas/Polygon'
              - $ref: '#/components/schemas/MultiPolygon'
    GeoJSON:
      title: GeoJson
      discriminator:
        propertyName: type
      oneOf:
        - $ref: '#/components/schemas/FeatureCollection'
        - $ref: '#/components/schemas/Feature'
        - $ref: '#/components/schemas/GeometryCollection'
        - $ref: '#/components/schemas/Point'
        - $ref: '#/components/schemas/MultiPoint'
        - $ref: '#/components/schemas/LineString'
        - $ref: '#/components/schemas/MultiLineString'
        - $ref: '#/components/schemas/Polygon'
        - $ref: '#/components/schemas/MultiPolygon'
    InflorModuleEnum:
      type: string
      enum:
        - ANA
        - COL
        - GIS
        - SIL
        - TRA
    LogStatusEnum:
      type: string
      enum:
        - Completed
        - Pending
    LogItem:
      type: object
      additionalProperties: false
      properties:
        clientName:
          type: string
        requestId:
          type: string
        responseId:
          type:
            - string
            - 'null'
        resource:
          type: string
        requestAt:
          type: string
          format: date-time
        responseAt:
          type: string
          format: date-time
        module:
          $ref: '#/components/schemas/InflorModuleEnum'
        errorMessage:
          type:
            - string
            - 'null'
        logStatus:
          $ref: '#/components/schemas/LogStatusEnum'
        dataReady:
          type: boolean
    DataSentLogs:
      type: object
      additionalProperties: false
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/LogItem'
        pagination:
          $ref: '#/components/schemas/PaginationMetadata'
    ProcessingRequest:
      type: object
      additionalProperties: false
      properties:
        data:
          type: string
    ValidationErrors:
      type: object
      additionalProperties: false
      properties:
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
    LogReceivedItem:
      type: object
      additionalProperties: false
      properties:
        sender:
          type: string
        requestId:
          type: string
        responseId:
          type: string
        resource:
          type: string
        requestAt:
          type: string
          format: date-time
        responseAt:
          type: string
          format: date-time
        module:
          $ref: '#/components/schemas/InflorModuleEnum'
        errorMessage:
          type:
            - string
            - 'null'
        logStatus:
          $ref: '#/components/schemas/LogStatusEnum'
        dataReady:
          type: boolean
    DataReceivedLogs:
      type: object
      additionalProperties: false
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/LogReceivedItem'
        pagination:
          $ref: '#/components/schemas/PaginationMetadata'
    LogData:
      type: object
      additionalProperties: false
      properties:
        payload:
          type: object
  responses:
    BadRequest:
      description: >-
        Bad Request. Acontece quando a requisição é enviada sem API Key ou
        Código de Cliente nos `headers` corretos, ou quando os tokens enviados
        estão em formatos inválidos.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessageResponse'
    InvalidToken:
      description: >-
        Unauthorized. Acontece quando a API Key enviada não passou na
        autenticação.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessageResponse'
    UnauthorizedAccess:
      description: >-
        Forbidden. Acontece quando a API Key enviada não possui acesso ao
        cliente especificado.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessageResponse'
    GisAgolGeojson200:
      description: >-
        Sucesso.

        Retorna um objeto do tipo GeoJSON seguindo a especificação [RFC
        7946](https://datatracker.ietf.org/doc/html/rfc7946 "The GeoJSON
        Format").
      content:
        application/json:
          schema:
            description: Um objeto GeoJSON.
            $ref: '#/components/schemas/GeoJSON'
    ClientErrorResponse:
      description: >-
        Acontece quando um há um erro na requisição.

        O código especificará o tipo de erro e o corpo da resposta conterá uma
        mensagem indicando o motivo do erro.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessageResponse'
    GetLogs:
      description: Sucesso.
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/DataSentLogs'
              - $ref: '#/components/schemas/ProcessingRequest'
    ValidationErrorResponse:
      description: >-
        Acontece quando houver erros de validação do uso dos filtros. O atributo
        `errors` funcionará como `Dictionary<string, List<string>>` onde a chave
        será referente ao parâmetro que causou o erro e o valor será mensagens
        listando os problemas ocorridos.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationErrors'
    GetLogsReceived:
      description: Sucesso.
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/DataReceivedLogs'
              - $ref: '#/components/schemas/ProcessingRequest'
    GetLogsDataSingle:
      description: Sucesso.
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/LogData'
              - $ref: '#/components/schemas/ProcessingRequest'
  parameters:
    ServiceId:
      name: serviceId
      in: path
      schema:
        type: string
    LayerId:
      name: layerId
      in: query
      schema:
        type: integer
        default: 0
        minimum: 0
    ClientCode:
      name: clientCode
      in: query
      schema:
        type: string
    InflorModule:
      name: module
      in: query
      schema:
        $ref: '#/components/schemas/InflorModuleEnum'
    Endpoint:
      name: endpoint
      in: query
      schema:
        type: string
    StartDateTime:
      name: startDateTime
      in: query
      schema:
        type: string
        format: date-time
    EndDateTime:
      name: endDateTime
      in: query
      schema:
        type: string
        format: date-time
    Cursor:
      name: cursor
      in: query
      schema:
        type: string
    HasError:
      name: hasError
      in: query
      schema:
        type: boolean
    LogStatus:
      name: logStatus
      in: query
      schema:
        $ref: '#/components/schemas/LogStatusEnum'
    DataReady:
      name: dataReady
      in: query
      schema:
        type: boolean
    Package:
      name: package
      in: query
      schema:
        type: string
        enum:
          - Analytics
          - Telemetry
    Sender:
      name: sender
      in: query
      schema:
        type: string
security:
  - API-Key: []
    Client-Code: []
tags:
  - name: colheita
    description: Endpoints que fazem interface com o módulo de Colheita do SGF da INFLOR.
    x-displayName: Colheita
  - name: analytics
    description: Endpoints de acompanhamento de uso e monitoramento da API.
    x-displayName: Analytics
  - name: logs
    description: Endpoints para acompanhamento do processamento e logs das requisições.
    x-displayName: Logs
paths:
  /colheita/boletins:
    get:
      operationId: get-colheita-boletins
      tags:
        - colheita
      summary: Obter Boletins
      parameters:
        - name: RefRegistroOrigem
          in: query
          required: true
          schema:
            type: string
        - name: SerialNumber
          in: query
          schema:
            type: string
        - name: UserCode
          in: query
          schema:
            type: integer
            format: int32
        - name: ManagementUnit
          in: query
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUltimosBoletinsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
    post:
      operationId: postColheitaBoletins
      tags:
        - colheita
      summary: Registrar Boletim
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostBoletimColheitaRequest'
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostBoletimColheitaResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
  /colheita/turnos:
    get:
      operationId: get-colheita-turnos
      tags:
        - colheita
      summary: Obter Turnos
      parameters:
        - name: AbrevTurno
          in: query
          schema:
            type: string
        - name: SerialNumber
          in: query
          schema:
            type: string
        - name: UserCode
          in: query
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTurnosResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
  /colheita/equipamentos:
    get:
      operationId: get-colheita-equipamentos
      tags:
        - colheita
      summary: Obter Equipamentos
      parameters:
        - name: IdEquipamento
          in: query
          schema:
            type: string
        - name: CdFrenteOperacao
          in: query
          schema:
            type: string
        - name: SerialNumber
          in: query
          schema:
            type: string
        - name: UserCode
          in: query
          schema:
            type: integer
            format: int32
        - name: ManagementUnit
          in: query
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEquipamentosResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
  /colheita/operacoes:
    get:
      operationId: get-colheita-operacoes
      tags:
        - colheita
      summary: Obter Operações
      parameters:
        - name: SerialNumber
          in: query
          schema:
            type: string
        - name: UserCode
          in: query
          schema:
            type: integer
            format: int32
        - name: ManagementUnit
          in: query
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOperacoesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
  /colheita/paradas:
    get:
      operationId: get-colheita-paradas
      tags:
        - colheita
      summary: Obter Paradas
      parameters:
        - name: ClasseParada
          in: query
          schema:
            type: string
        - name: TipParada
          in: query
          schema:
            type: string
        - name: AbrevParada
          in: query
          schema:
            type: string
        - name: IdParada
          in: query
          schema:
            type: string
        - name: SerialNumber
          in: query
          schema:
            type: string
        - name: UserCode
          in: query
          schema:
            type: integer
            format: int32
        - name: ManagementUnit
          in: query
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetParadasResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
  /colheita/os-talhao-oper:
    get:
      operationId: get-colheita-os-talhao-oper
      tags:
        - colheita
      summary: Obter Ordens de Serviço
      parameters:
        - name: TipProprioTerceiro
          in: query
          schema:
            type: string
        - name: CdOperacao
          in: query
          schema:
            type: string
        - name: CdTalhao
          in: query
          schema:
            type: string
        - name: IdProjeto
          in: query
          schema:
            type: string
        - name: IdRegiao
          in: query
          schema:
            type: string
        - name: CdUnidadeGestao
          in: query
          schema:
            type: string
        - name: CdFornecedor
          in: query
          schema:
            type: string
        - name: CdOrdemServico
          in: query
          schema:
            type: string
        - name: SerialNumber
          in: query
          schema:
            type: string
        - name: UserCode
          in: query
          schema:
            type: integer
            format: int32
        - name: ManagementUnit
          in: query
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOSTalhoesOperResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
  /colheita/frentes-operacao:
    get:
      operationId: get-colheita-frentes-operacao
      tags:
        - colheita
      summary: Obter Frentes de Operação
      parameters:
        - name: CdEquipamento
          in: query
          schema:
            type: integer
            format: int32
        - name: DcrNumMatricula
          in: query
          schema:
            type: string
        - name: CdFornecedor
          in: query
          schema:
            type: integer
            format: int32
        - name: AbrevFrenteOper
          in: query
          schema:
            type: string
        - name: SerialNumber
          in: query
          schema:
            type: string
        - name: UserCode
          in: query
          schema:
            type: integer
            format: int32
        - name: ManagementUnit
          in: query
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetFrenteOperacaoResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
  /colheita/produtos:
    get:
      operationId: get-colheita-produtos
      tags:
        - colheita
      summary: Obter Produtos
      parameters:
        - name: SerialNumber
          in: query
          schema:
            type: string
        - name: UserCode
          in: query
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProdutosResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
  /colheita/cto-talhao:
    get:
      operationId: get-colheita-cto-talhao
      tags:
        - colheita
      summary: Obter CTO de Talhão
      parameters:
        - name: IdRegiao
          in: query
          schema:
            type: string
        - name: IdProjeto
          in: query
          schema:
            type: string
        - name: CdTalhao
          in: query
          schema:
            type: string
        - name: CdOperacao
          in: query
          schema:
            type: string
        - name: SerialNumber
          in: query
          schema:
            type: string
        - name: UserCode
          in: query
          schema:
            type: integer
            format: int32
        - name: ManagementUnit
          in: query
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCtoTalhaoResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
  /colheita/volume-ajustado:
    get:
      operationId: get-colheita-volume-ajustado
      tags:
        - colheita
      summary: Obter Volume Ajustado
      parameters:
        - name: RefRegistrosOrigem
          in: query
          required: true
          schema:
            type: integer
            format: int32
        - name: SerialNumber
          in: query
          schema:
            type: string
        - name: UserCode
          in: query
          schema:
            type: integer
            format: int32
        - name: ManagementUnit
          in: query
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetVolumeAjustadoResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
  /analytics/data-cubes:
    get:
      operationId: get-data-cubes
      tags:
        - analytics
      summary: Obter DataCubes
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDataCubesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
  /analytics/data-cubes/{id}:
    get:
      operationId: get-data-cubes-single
      tags:
        - analytics
      summary: Obter Único DataCube
      parameters:
        - name: id
          in: path
          schema:
            type: string
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDataCubesDataResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
  /analytics/data-cubes/reports:
    get:
      operationId: get-data-cubes-reports
      tags:
        - analytics
      summary: Obter Relatórios Disponíveis
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDataCubeReportsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
  /analytics/data-cubes/reports/{id}:
    get:
      operationId: get-data-cubes-reports-single
      tags:
        - analytics
      summary: Obter Único Relatório
      parameters:
        - name: id
          in: path
          schema:
            type: integer
        - name: pageSize
          in: query
          schema:
            type: integer
            default: 100
            maximum: 1000
        - name: cursor
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDataCubeReportsDataResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/InvalidToken'
        '403':
          $ref: '#/components/responses/UnauthorizedAccess'
  /gis/agol/geojson/{serviceId}:
    get:
      operationId: get-gis-agol-geojson
      tags:
        - analytics
      summary: Obter AGOL GeoJSON
      parameters:
        - $ref: '#/components/parameters/ServiceId'
        - $ref: '#/components/parameters/LayerId'
      responses:
        '200':
          $ref: '#/components/responses/GisAgolGeojson200'
        4xx:
          $ref: '#/components/responses/ClientErrorResponse'
  /logs:
    get:
      operationId: get-logs
      tags:
        - logs
      summary: Obter Logs
      description: Realiza a busca dos logs de requisições realizadas pela sua conta.
      security:
        - API-Key: []
      parameters:
        - $ref: '#/components/parameters/ClientCode'
        - $ref: '#/components/parameters/InflorModule'
        - $ref: '#/components/parameters/Endpoint'
        - $ref: '#/components/parameters/StartDateTime'
        - $ref: '#/components/parameters/EndDateTime'
        - $ref: '#/components/parameters/Cursor'
        - $ref: '#/components/parameters/HasError'
        - $ref: '#/components/parameters/LogStatus'
        - $ref: '#/components/parameters/DataReady'
        - $ref: '#/components/parameters/Package'
      responses:
        '200':
          $ref: '#/components/responses/GetLogs'
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        4xx:
          $ref: '#/components/responses/ClientErrorResponse'
  /logs/received:
    get:
      operationId: get-logs-received
      tags:
        - logs
      summary: Obter Logs Vinculados à Conta
      description: >-
        Realiza a busca dos logs de requisições realizadas onde os dados estão
        vinculados à sua conta mesmo que a requisição não tenha sido envidada
        pela sua conta.
      security:
        - API-Key: []
      parameters:
        - $ref: '#/components/parameters/Sender'
        - $ref: '#/components/parameters/InflorModule'
        - $ref: '#/components/parameters/Endpoint'
        - $ref: '#/components/parameters/StartDateTime'
        - $ref: '#/components/parameters/EndDateTime'
        - $ref: '#/components/parameters/Cursor'
        - $ref: '#/components/parameters/HasError'
        - $ref: '#/components/parameters/LogStatus'
        - $ref: '#/components/parameters/DataReady'
        - $ref: '#/components/parameters/Package'
      responses:
        '200':
          $ref: '#/components/responses/GetLogsReceived'
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        4xx:
          $ref: '#/components/responses/ClientErrorResponse'
  /logs/data/{id}:
    get:
      operationId: get-logs-data-single
      tags:
        - logs
      summary: Obter Dados de Log
      description: Retorna os dados associados à um log.
      security:
        - API-Key: []
      parameters:
        - name: id
          in: path
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/GetLogsDataSingle'
        '400':
          $ref: '#/components/responses/ValidationErrorResponse'
        4xx:
          $ref: '#/components/responses/ClientErrorResponse'
