{
  "openapi": "3.0.0",
  "info": {
    "title": "API Lista Veículo",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://sauto.dsv.bradescoseguros.com.br:443/V2/WSBL-CotacaoCSP/service/",
      "description": "Desenvolvimento"
    },
    {
      "url": "https://sauto.hml.bradescoseguros.com.br:443/V2/WSBL-CotacaoCSP/service/",
      "description": "Homologação"
    },
    {
      "url": "https://sauto.bradescoseguros.com.br:443/V2/WSBL-CotacaoCSP/service/",
      "description": "Produção"
    }
  ],
  "paths": {
    "/veiculo": {
      "post": {
        "tags": [
          "Veículos"
        ],
        "summary": "Listar Veículos",
        "operationId": "listarVeiculos",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Autenticacao"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operação bem-sucedida",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListaVeiculosVo"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MensagemErroVo"
                }
              }
            }
          },
          "404": {
            "description": "Não encontrado",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MensagemErroVo"
                }
              }
            }
          },
          "500": {
            "description": "Erro interno do servidor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MensagemErroVo"
                }
              }
            }
          },
          "503": {
            "description": "Serviço indisponível",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MensagemErroVo"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "Autenticacao": {
        "type": "object",
        "properties": {
          "provedor": {
            "type": "integer",
            "format": "int64",
            "description": "Provedor de autenticação",
            "example": 1
          },
          "usuario": {
            "type": "string",
            "description": "Nome de usuário",
            "example": "usuario123"
          },
          "senha": {
            "type": "string",
            "description": "Senha do usuário",
            "example": "senhaSegura123"
          }
        },
        "required": [
          "provedor",
          "usuario",
          "senha"
        ]
      },
      "ListaVeiculosVo": {
        "type": "object",
        "properties": {
          "veiculos": {
            "type": "array",
            "description": "Lista de veículos Bradesco",
            "items": {
              "$ref": "#/components/schemas/VeiculoBradescoVo"
            }
          },
          "qtdVeiculos": {
            "type": "integer",
            "description": "Quantidade de veículos",
            "example": 5
          },
          "erro": {
            "$ref": "#/components/schemas/MensagemErroVo"
          }
        }
      },
      "VeiculoBradescoVo": {
        "type": "object",
        "properties": {
          "codigo": {
            "type": "integer",
            "description": "Código do veículo",
            "example": 123
          },
          "tipoVeiculo": {
            "type": "integer",
            "description": "Tipo do veículo",
            "example": 1
          },
          "grupoVeiculo": {
            "type": "integer",
            "description": "Grupo do veículo",
            "example": 2
          },
          "modelo": {
            "type": "string",
            "description": "Modelo do veículo",
            "example": "Modelo XYZ"
          },
          "codigoFabricante": {
            "type": "integer",
            "description": "Código do fabricante",
            "example": 456
          },
          "portas": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "Lista de portas do veículo",
            "example": [
              2,
              4
            ]
          },
          "eixos": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "Lista de eixos do veículo",
            "example": [
              2,
              3
            ]
          },
          "cambio": {
            "type": "integer",
            "description": "Tipo de câmbio do veículo",
            "example": 1
          },
          "fipe": {
            "type": "string",
            "description": "Código FIPE do veículo",
            "example": "123456-7"
          },
          "combustivel": {
            "type": "integer",
            "description": "Tipo de combustível do veículo",
            "example": 1
          },
          "anos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VeiculoBradescoAnoVo"
            },
            "description": "Lista de anos do veículo"
          },
          "fabricante": {
            "type": "string",
            "description": "Nome do fabricante do veículo",
            "example": "Fabricante XYZ"
          },
          "cdProcedencia": {
            "type": "integer",
            "description": "Código de procedência do veículo",
            "example": 1
          },
          "procedencia": {
            "type": "string",
            "description": "Procedência do veículo",
            "example": "Nacional"
          },
          "cdUso": {
            "type": "integer",
            "description": "Código de uso do veículo",
            "example": 1
          },
          "uso": {
            "type": "string",
            "description": "Uso do veículo",
            "example": "Particular"
          },
          "inicioFabricacao": {
            "type": "string",
            "description": "Data de início de fabricação do veículo",
            "example": "01/2020"
          },
          "fimFabricacao": {
            "type": "string",
            "description": "Data de fim de fabricação do veículo",
            "example": "12/2022"
          },
          "tipoCambio": {
            "type": "string",
            "description": "Tipo de câmbio do veículo",
            "example": "Automático"
          }
        }
      },
      "VeiculoBradescoAnoVo": {
        "type": "object",
        "properties": {
          "ano": {
            "type": "integer",
            "description": "Ano do veículo",
            "example": 2022
          },
          "valorFipe": {
            "type": "number",
            "format": "double",
            "description": "Valor FIPE do veículo",
            "example": 35000.5
          },
          "dataVigencia": {
            "type": "integer",
            "description": "Data de vigência",
            "example": 20230101
          }
        }
      },
      "MensagemErroVo": {
        "type": "object",
        "properties": {
          "cdErro": {
            "type": "integer"
          },
          "dsErro": {
            "type": "string"
          }
        }
      }
    }
  }
}