diff --git a/apigee/recreacionyturismo-afiliados.json b/apigee/recreacionyturismo-afiliados.json new file mode 100644 index 0000000..0c629a3 --- /dev/null +++ b/apigee/recreacionyturismo-afiliados.json @@ -0,0 +1,1670 @@ +{ + "openapi": "3.0.0", + "servers": [ + { + "description": "Calidad", + "url": "https://colsubsidio-test.apigee.net/api" + }, + { + "description": "Producción", + "url": "https://colsubsidio-prod.apigee.net/api" + } + ], + "info": { + "description": "Información de los servicios del producto recreacion y turismo afiliados.", + "version": "1.0.0", + "title": "Recreacion y turismo afiliados", + "termsOfService": "http://172.16.95.36/wiki/index.php/T%C3%A9rminos_de_servicio_Swagger", + "contact": { + "email": "operacionesti@colsubsidio.com" + }, + "license": { + "name": "Colsubsidio", + "url": "http://172.16.95.36/wiki/index.php/T%C3%A9rminos_de_servicio_Swagger" + } + }, + "tags": [ + { + "name": "cols-recreacionyturismo-afiliados", + "description": "Informacion de afiliados." + } + ], + "paths": { + "/v1/recreacionyturismo/afiliados/clientes": { + "post": { + "tags": [ + "cols-recreacionyturismo-afiliados" + ], + "summary": "Capacidad para inscribir una persona", + "description": "Realiza la inscripción de una persona en el sistema con la información enviada", + "operationId": "registrarDatosCliente.v1", + "responses": { + "200": { + "description": "Operación exitosa", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/registrarDatosClienteResponse" + } + } + } + }, + "400": { + "description": "Estado inválido" + } + }, + "security": [ + { + "apigee_auth": [ + "write:apigee", + "read:apigee" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/registrarDatosClienteRequestBody" + } + } + }, + "/v1/recreacionyturismo/afiliados/afiliacion": { + "post": { + "tags": [ + "cols-recreacionyturismo-afiliados" + ], + "summary": "Inscribir afiliacion", + "description": "Según el id se puede inscribir a una afiliación", + "operationId": "inscribirMembresia.v1", + "responses": { + "200": { + "description": "Operación exitosa", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/inscribirMembresiaResponse" + } + } + } + }, + "400": { + "description": "Estado inválido" + } + }, + "security": [ + { + "apigee_auth": [ + "write:apigee", + "read:apigee" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/inscribirMembresiaRequestBody" + } + } + }, + "/v1/recreacionyturismo/afiliados/disponibilidad": { + "post": { + "tags": [ + "cols-recreacionyturismo-afiliados" + ], + "summary": "Consultar disponibilidad de la practica libre", + "description": "Consultar disponibilidad de la practica libre", + "operationId": "disponibilidadPracticaLibre.v1", + "responses": { + "200": { + "description": "Operación exitosa", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/disponibilidadPracticaLibreResponse" + } + } + } + }, + "400": { + "description": "Estado inválido" + } + }, + "security": [ + { + "apigee_auth": [ + "write:apigee", + "read:apigee" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/disponibilidadPracticaLibreRequestBody" + } + } + }, + "/v1/recreacionyturismo/afiliados/reserva": { + "post": { + "tags": [ + "cols-recreacionyturismo-afiliados" + ], + "summary": "Inscripción de la persona al turno practica libre", + "description": "Capacidad que permite la inscripción de una persona a un turno de practica libre, y lo asocia a una cotización.", + "operationId": "reservarTurnoPracticaLibre.v1", + "responses": { + "200": { + "description": "Operación exitosa", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reservarTurnoPracticaLibreResponse" + } + } + } + }, + "400": { + "description": "Estado inválido" + } + }, + "security": [ + { + "apigee_auth": [ + "write:apigee", + "read:apigee" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/reservarTurnoPracticaLibreRequestBody" + } + }, + "delete": { + "tags": [ + "cols-recreacionyturismo-afiliados" + ], + "summary": "Borra un turno de práctica libre asociado a una persona.", + "description": "Borra el turno completo desasociando todas las personas incluídas en él. NOTA: El turno tuvo que ser reservado por Tiquetera para ser cancelable.", + "operationId": "cancelarReservaPracticaLibre.v1", + "parameters": [ + { + "name": "numId", + "in": "query", + "description": "Numero de identificacion de la persona que reservo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "idTurno", + "in": "query", + "description": "Numero de identificacion del turno ", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Operación exitosa", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/cancelarReservaPracticaLibreResponse" + } + } + } + }, + "400": { + "description": "Estado inválido" + } + }, + "security": [ + { + "apigee_auth": [ + "write:apigee", + "read:apigee" + ] + } + ] + } + }, + }, + "externalDocs": { + "description": "Encontrar más información en EnterpriseArchitect", + "url": "http://172.16.95.36/wiki/index.php/Enterprise_Architect" + }, + "components": { + "schemas": { + "resultado": { + "type": "object", + "properties": { + "codigo": { + "type": "string", + "description": "Código del resultado" + }, + "descripcion": { + "type": "string", + "description": "Descripción del resultado" + } + }, + "xml": { + "name": "resultado" + } + }, + "resultadoCotizacion": { + "type": "object", + "properties": { + "codigo": { + "type": "string", + "description": "Estado de la cotización. Posibles Valores\n - 1) PAGO PENDIENTE > No ha sido pagada *nueva*\n - 2) PAGO REALIZADO > Ya ha sido pagada *facturada*\n - 3) RECHAZADA > El pago no ha sido exitoso *cancelada*\n - 4) CHECKOUT > En espera del medio de pago *en proceso de pago*" + }, + "descripcion": { + "type": "string", + "description": "Mensaje de la cotización" + } + }, + "xml": { + "name": "resultado" + } + }, + "cancelarReservaPracticaLibreResponse": { + "type": "object", + "required": [ + "resultado" + ], + "properties": { + "resultado": { + "type": "array", + "xml": { + "name": "resultado" + }, + "items": { + "$ref": "#/components/schemas/resultado" + } + } + } + }, + "disponibilidadPracticaLibreResponse": { + "type": "object", + "required": [ + "resultado" + ], + "properties": { + "resultado": { + "type": "array", + "xml": { + "name": "resultado" + }, + "items": { + "$ref": "#/components/schemas/resultado" + } + }, + "obtenerDisponibilidad": { + "type": "array", + "items": { + "$ref": "#/components/schemas/obtenerDisponibilidad" + } + } + } + }, + "obtenerDisponibilidad": { + "type": "object", + "properties": { + "turno": { + "$ref": "#/components/schemas/turnoPracticaLibre" + } + } + }, + "turnoPracticaLibre": { + "type": "object", + "properties": { + "practicaLibre ": { + "type": "object", + "properties": { + "fechaInicio": { + "type": "string", + "description": "Fecha de inicio" + }, + "fechaFin": { + "type": "string", + "description": "Fecha de fin" + }, + "cantidadUsos": { + "type": "string", + "description": "Número de usos que require el turno" + }, + "participantes": { + "type": "string", + "description": "Número de personas máximas acompañantes para el turno" + }, + "cupos": { + "type": "string", + "description": "Cupos disponibles en el horario" + }, + "duracion": { + "type": "string", + "description": "Cantidad de minutos del turno" + }, + "zona": { + "type": "array", + "items": { + "properties":{ + "id": { + "type": "string", + "description": "Identificador de la zona" + }, + "nombre": { + "type": "string", + "description": "Nombre de la zona" + }, + "idEscenario": { + "type": "string", + "description": "Nombre del material" + }, + "nombreEscenario": { + "type": "string", + "description": "Identificador del escenario al que pertenece la zona" + } + } + } + } + } + } + } + }, + "disponibilidadPracticaLibreRequest": { + "type": "object", + "properties": { + "idCentroEntrenamiento": { + "type": "string", + "description": "Id del centro de entrenamiento" + }, + "disponibilidad": { + "type": "object", + "description": "Objeto que representa una búsqueda de disponibilidad en un rango de fechas para práctica libre.", + "properties":{ + "fechaInicio": { + "type": "string", + "description": "Fecha de inicio de búsqueda de la disponibilidad. Sujeto al mínimo del centro de entrenamiento con relación a la fecha actual." + }, + "fechaFin": { + "type": "string", + "description": "Fecha límite a la cual se le busca disponibilidad. Sujeto al maximo del centro de entrenamiento con relación a la fecha actual." + }, + "inmediato": { + "type": "string", + "description": "Indicador para buscar turnos que inicien en los próximos 5, 10 o 15 minutos" + } + } + }, + "turno": { + "$ref": "#/components/schemas/turnoReservaPracticaLibre" + } + } + }, + "reservarTurnoPracticaLibreResponse": { + "type": "object", + "required": [ + "resultado" + ], + "properties": { + "resultado": { + "type": "array", + "xml": { + "name": "resultado" + }, + "items": { + "$ref": "#/components/schemas/resultadoCotizacion" + } + }, + "obtenerCotizacion": { + "type": "array", + "items": { + "$ref": "#/components/schemas/obtenerCotizacion" + } + } + } + }, + "reservarTurnoPracticaLibreRequest": { + "type": "object", + "properties": { + "idCotizacion": { + "type": "string", + "description": "Id de cotizacion" + }, + "idCentroEntrenamiento": { + "type": "string", + "description": "Id del centro de entrenamiento" + }, + "turno": { + "$ref": "#/components/schemas/turnoReservaPracticaLibre" + } + } + }, + "turnoReservaPracticaLibre": { + "type": "object", + "properties": { + "practicaLibre ": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Identificador del turno de la practica libre" + }, + "fechaInicio": { + "type": "string", + "description": "Fecha de inicio" + }, + "fechaFin": { + "type": "string", + "description": "Fecha de fin" + }, + "tiquetera": { + "type": "string", + "description": "Parametro que informa si la practica libre se reserva a través de una tiquetera" + }, + "cantidadUsos": { + "type": "string", + "description": "Número de la cantidad de usos que se desean reservar" + }, + "cancelable": { + "type": "string", + "description": "Parametro que describe si el turno de practica libre es aún cancelable" + }, + "informacionPersonal": { + "type": "object", + "properties":{ + "id": { + "type": "string", + "description": "Id de la persona" + }, + "edad": { + "type": "string", + "description": "Edad de la persona" + }, + "correoElectronico": { + "type": "string", + "description": "Correo electronico de la persona" + }, + "documento": { + "$ref": "#/components/schemas/documento" + }, + "nombre": { + "$ref": "#/components/schemas/nombre" + }, + "genero": { + "$ref": "#/components/schemas/genero" + }, + "categoria": { + "$ref": "#/components/schemas/categoria" + } + } + }, + "material": { + "type": "array", + "items": { + "properties":{ + "id": { + "type": "string", + "description": "Identificador o id del material" + }, + "tipo": { + "type": "string", + "description": "Tipo del material:\n * 1) Referencia\n * 2) Transporte\n * 3) Turno\n * 4) Articulo" + }, + "descripcion": { + "type": "string", + "description": "Nombre del material" + } + } + } + }, + "zona": { + "type": "array", + "items": { + "properties":{ + "id": { + "type": "string", + "description": "Identificador de la zona" + }, + "nombre": { + "type": "string", + "description": "Nombre de la zona" + }, + "idEscenario": { + "type": "string", + "description": "Nombre del material" + }, + "nombreEscenario": { + "type": "string", + "description": "Identificador del escenario al que pertenece la zona" + } + } + } + }, + } + }, + } + }, + "inscribirMembresiaRequest": { + "type": "object", + "properties": { + "idCentroEntrenamiento ": { + "type": "string", + "description": "Id de centro de entrenamiento", + }, + "idCotizacion": { + "type": "string", + "description": "Id de cotizacion" + }, + "fechaInicio": { + "type": "string", + "description": "Fecha de inicio" + }, + "servicio": { + "$ref": "#/components/schemas/servicio" + }, + "cliente": { + "$ref": "#/components/schemas/cliente" + } + } + }, + "inscribirMembresiaResponse": { + "type": "object", + "required": [ + "resultado" + ], + "properties": { + "resultado": { + "type": "array", + "xml": { + "name": "resultado" + }, + "items": { + "$ref": "#/components/schemas/resultado" + } + }, + "obtenerCotizacion": { + "type": "array", + "items": { + "$ref": "#/components/schemas/obtenerCotizacion" + } + } + } + }, + "registrarDatosClienteRequest": { + "type": "object", + "properties": { + "cliente": { + "$ref": "#/components/schemas/cliente" + } + } + }, + "registrarDatosClienteResponse": { + "type": "object", + "required": [ + "resultado" + ], + "properties": { + "resultado": { + "type": "array", + "xml": { + "name": "resultado" + }, + "items": { + "$ref": "#/components/schemas/resultado" + } + }, + "obtenerCliente": { + "type": "array", + "items": { + "$ref": "#/components/schemas/obtenerCliente" + } + } + } + }, + "obtenerCliente": { + "type": "object", + "properties": { + "cliente": { + "$ref": "#/components/schemas/cliente" + }, + } + }, + "documento": { + "type": "object", + "properties": { + "tipo": { + "type": "string", + "description": "Tipo de documento" + }, + "numero": { + "type": "string", + "description": "Número de identificación del documento" + } + }, + "xml": { + "name": "documento" + } + }, + "genero": { + "type": "object", + "properties": { + "codigo": { + "type": "string", + "description": "Género de la persona: * 0) FEMENINO * 1) MASCULINO", + "enum": [ + 0, + 1 + ] + }, + } + }, + "categoria": { + "type": "object", + "properties": { + "sigla": { + "type": "string", + "description": "Sigla de la categoria" + } + } + }, + "nombre": { + "type": "object", + "properties": { + "primero": { + "type": "string", + "description": "Primer nombre" + }, + "segundo": { + "type": "string", + "description": "Segundo nombre" + }, + "primerApellido": { + "type": "string", + "description": "Primer apellido" + }, + "segundoApellido": { + "type": "string", + "description": "Segundo apellido" + }, + "completo": { + "type": "string", + "description": "Nombre completo" + } + }, + "xml": { + "name": "nombre" + } + }, + "cliente": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Id del cliente" + }, + "edad": { + "type": "string", + "description": "Edad del cliente" + }, + "correoElectronico": { + "type": "string", + "description": "Correo electronico del cliente" + }, + "documento": { + "$ref": "#/components/schemas/documento" + }, + "nombre": { + "$ref": "#/components/schemas/nombre" + }, + "genero": { + "$ref": "#/components/schemas/genero" + }, + "categoria": { + "$ref": "#/components/schemas/categoria" + } + } + }, + "consultaCotizacionIdResponse": { + "type": "object", + "required": [ + "resultado" + ], + "properties": { + "resultado": { + "type": "array", + "xml": { + "name": "resultado" + }, + "items": { + "$ref": "#/components/schemas/resultadoCotizacion" + } + }, + "obtenerCotizacion": { + "type": "array", + "items": { + "$ref": "#/components/schemas/obtenerCotizacion" + } + } + } + }, + "obtenerCotizacion": { + "type": "object", + "properties": { + "afiliado": { + "$ref": "#/components/schemas/afiliado" + }, + "cotizacion": { + "$ref": "#/components/schemas/cotizacion" + }, + "transaccion": { + "$ref": "#/components/schemas/transaccion" + }, + "logs": { + "type": "array", + "items":{ + "$ref": "#/components/schemas/logs" + } + } + } + }, + "logs": { + "type": "object", + "description": "Cambio realizado en la cotización en un instante de tiempo", + "properties": { + "tipo": { + "type": "string", + "description": "Tipo de modificación que se realiza Tipo:\n * 1) CREACION\n * 2) ACTUALIZACION\n * 3) INFORMATIVO\n * 4) PRUEBAS" + }, + "descripcion": { + "type": "string", + "description": "Descripción del log" + } + } + }, + "transaccion": { + "type": "object", + "description": "Propiedades de la transacción de pago de una cotización", + "properties": { + "id": { + "type": "string", + "description": "El id de la transacción enviado por el sistema de pago." + }, + "fecha": { + "type": "string", + "description": "Fecha en la que se completó la transacción de pago" + }, + "canal": { + "type": "string", + "description": "Identificador del canal de pago - 1) Caja - 2) Módulos - 3) Web - 4) App - 5) IVR - 6) Interno", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6 + ] + }, + "idCaja": { + "type": "string", + "description": "Identificador de la máquina que hizo el pago (Módulo, Caja). En caso de transacción en línea se usará algún identificador del proveedor de pago." + }, + "idCajero": { + "type": "string", + "description": "Identificador del cajero quien realiza la cotización en el sistema Hércules (Normalmente la cédula o código de máquina)" + }, + "pago": { + "type": "object", + "properties":{ + "id": { + "type": "string", + "description": "Consecutivo generado por el medio de pago" + }, + "medio": { + "type": "string", + "description": "Código del medio de pago" + }, + "valor": { + "type": "string", + "description": "Valor pagado con este medio de pago" + } + } + } + } + }, + "cotizacion": { + "type": "object", + "description": "Información de una cotización. Las cotizaciones se componen de Ítems de Cotización que indican los servicios a adquirir. Los Ítems tiene diferntes tipos dependiendo del servicio que se adquirió. Además las Cotizaciones tienen un log de auditoría y una Transacción de pago asociada que incluye la forma de pago detallada", + "properties": { + "id": { + "type": "string", + "description": "Id de la cotización en Hércules" + }, + "idFactura": { + "type": "string", + "description": "Identificador de la Cotización en el sistema facturador. ( Por ejemplo Número de Factura o de la Orden de Venta)" + }, + "idFacturaSecundario": { + "type": "string", + "description": "Identificador secundario de la Cotización en el sistema facturador. (Por ejemplo Número de Factura Empresarial)" + }, + "idParticipacionOrganizacion": { + "type": "string", + "description": "Id de la ParticipacionOrganizacion en Hércules de la cotización (uso interno)" + }, + "fechaCreacion": { + "type": "string", + "description": "Fecha de creación de la cotización" + }, + "fechaActualizacion": { + "type": "string", + "description": "Fecha de actualización de la cotización" + }, + "fechaExpiracion": { + "type": "string", + "description": "Fecha de expiración de la cotización" + }, + "usuario": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Id del usuario en Hércules que realiza la cotización (si se hace por servicio sería el client_id)" + }, + "nombre": { + "type": "object", + "properties":{ + "completo": { + "type": "string", + "description": "Nombre del usuario que reqliza la cotización" + }, + } + } + } + }, + "empresa": { + "type": "object", + "properties":{ + "nombre": { + "type": "string", + "description": "Nombre de la organización o empresa" + }, + } + }, + "proveedor": { + "type": "object", + "properties":{ + "nombre": { + "type": "string", + "description": "Nombre del proveedor de pago de la cotización" + }, + } + }, + "costo": { + "type": "object", + "properties":{ + "reversion": { + "type": "string", + "description": "Suma del total de las reversiones de cada ítem" + }, + "base": { + "type": "string", + "description": "Valor de la base del IVA en la cotización" + }, + "iva": { + "type": "string", + "description": "Valor total del IVA en la cotización" + }, + "total": { + "type": "object", + "properties":{ + "valor": { + "type": "string", + "description": "Suma del total de cada ítem en la cotización. Total Pagado" + }, + } + } + } + }, + "articulo": { + "type": "array", + "items":{ + "$ref": "#/components/schemas/articulo" + } + } + } + }, + "articulo": { + "type": "object", + "description": "Hace referencia al servicio que se quiere inscribit, a la persona, y el valor de la inscripción al servicio ", + "properties": { + "tipo": { + "type": "string", + "description": "Tipo del ítem (INSCRIPCION = 1, MATRICULA = 2, MATERIAL = 3, AFILIACION = 4, RESERVA_TURNO = 5, CITA = 6)", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6 + ] + }, + "cantidad": { + "type": "string", + "description": "Cantidad del ítem adquirida" + }, + "descripcion": { + "type": "string", + "description": "Descripción del ítem" + }, + "centroBeneficio": { + "type": "string", + "description": "Código del centro de beneficios (Centro de Beneficios SAP)" + }, + "persona": { + "type": "object", + "properties":{ + "nombre": { + "type": "object", + "properties":{ + "completo": { + "type": "string", + "description": "Nombre de la persona asociada al ítem" + } + } + }, + "documento": { + "type": "object", + "properties":{ + "numero": { + "type": "string", + "description": "NNúmero de documento de la persona asociada al ítem" + } + } + }, + } + }, + "categoria": { + "type": "object", + "properties":{ + "sigla": { + "type": "string", + "description": "Nombre de la categoría de precio" + } + } + }, + "costo": { + "type": "object", + "properties": { + "nombre": { + "type": "string", + "description": "Nombre del precio aplicado." + }, + "codigo": { + "type": "string", + "description": "Código del precio según la tabla de productos enviada. Id Material en SAP" + }, + "base": { + "type": "string", + "description": "Valor base del ítem sin impuesto." + }, + "impuesto": { + "type": "string", + "description": "Valor del impuesto aplicado sobre el valor" + }, + "total": { + "type": "object", + "properties":{ + "valor": { + "type": "string", + "description": "Valor total de la suma del valor más el impuesto" + } + } + } + } + }, + "servicio": { + "type": "object", + "properties":{ + "nombre": { + "type": "string", + "description": "Nombre del titular que realizó la cotización" + }, + "costo": { + "$ref": "#/components/schemas/costoServicioCotizacion" + } + } + }, + "descuento": { + "type": "array", + "description": "Lista de descuentos aplicados al ítem", + "items":{ + "$ref": "#/components/schemas/descuento" + } + } + } + }, + "descuento": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Identificador del descuento" + }, + "tipo": { + "type": "string", + "description": "Parametro para saber el tipo del descuento.\nLos tipos son los siguientes:\n - 0) CONVENIO: Los convenios son aquellos que no tienen recobro por subsidio a la demanda.\n - 1) DESCUENTO\n - 2) MERCADEO\n\nUn ítem de cotización puede tener a lo sumo tres descuentos, uno de cada tipo entre: convenio, no convenio y mercadeo.", + "enum": [ + 0, + 1, + 2 + ], + }, + "codigo": { + "type": "string", + "description": "Código de descuento a aplicar (en caso de escritura) o aplicado (en caso de lectura), puede ser un código único o un código repetible (Cupón)" + }, + "nombre": { + "type": "string", + "description": "Nombre del descuento" + }, + "mercadeo": { + "type": "string", + "description": "Parámetro que indica que el precio fue modificado por un sistema externo con autorización para cambiar precios." + }, + "total": { + "type": "object", + "properties":{ + "valor": { + "type": "string", + "description": "Valor final con el descuento aplicado al valor del ítem consultado." + } + } + } + } + }, + "costoServicioCotizacion": { + "type": "object", + "properties": { + "base": { + "type": "string", + "description": "Valor de la base (Sin IVA) del precio" + }, + "iva": { + "type": "string", + "description": "Valor del IVA para el precio" + }, + "fechaInicioVigencia": { + "type": "string", + "description": "Fecha de inicio de la vigencia del precio" + }, + "fechaFinVigencia": { + "type": "string", + "description": "Fecha de fin de la vigencia del precio" + }, + "total": { + "type": "object", + "properties":{ + "valor": { + "type": "string", + "description": "Valor total (incluye IVA) del precio" + } + } + } + } + }, + "afiliado": { + "type": "object", + "properties": { + "telefono": { + "type": "string", + "description": "Número de telefono del titular" + }, + "correoElectronico": { + "type": "string", + "description": "Correo electrónico del titular de la cotización" + }, + "nombre": { + "type": "object", + "properties": { + "completo": { + "type": "string", + "description": "Nombre del titular que realizó la cotización" + } + } + }, + "documento": { + "type": "object", + "properties": { + "tipo": { + "type": "string", + "description": "Tipo de documento del titular de la cotización", + "enum": [ + "CC", + "CE", + "NIT", + "TI", + "PAS", + "FN", + "RC", + "NUIP", + "MSI", + "CD", + "PEP" + ] + }, + "numero": { + "type": "string", + "description": "Número de documento de una persona" + } + } + }, + "direccion": { + "type": "object", + "properties": { + "direccionPrincipal": { + "type": "string", + "description": "Dirección del titular" + } + } + } + } + }, + "consultaCatalogoResponse": { + "type": "object", + "required": [ + "resultado" + ], + "properties": { + "resultado": { + "type": "array", + "xml": { + "name": "resultado" + }, + "items": { + "$ref": "#/components/schemas/resultado" + } + }, + "obtenerServicios": { + "type": "array", + "items": { + "$ref": "#/components/schemas/obtenerServicios" + } + } + } + }, + "obtenerServicios": { + "type": "object", + "properties": { + "servicio": { + "type": "array", + "items":{ + "$ref": "#/components/schemas/servicio" + } + }, + "opcionesAplicadas": { + "type": "array", + "items":{ + "$ref": "#/components/schemas/opcionesAplicadas" + } + } + } + }, + "opcionesAplicadas": { + "type": "object", + "description": "Objeto que contiene la información de las opciones utilizadas para buscar los servicios. Los tipos de opción pueden ser los siguientes:\n * 1) Documento\n * 2) Antiguedad\n * 3) Clasificación\n * 4) Área (Deporte)\n * 5) Sede\n * 6) Días (Entre Semana / Fin de Semana)\n * 7) Horario (Mañana / Tarde / Noche)\n * 8) Nivel (Prueba)\n * 9) Servicio (Prueba Campeonato)\n * 10) Segmento (Edad)", + "properties":{ + "valor": { + "type": "string", + "description": "Valor para la opción seleccionada" + }, + "tipo": { + "type": "string", + "description": "Nombre del tipo de la opción" + }, + "opcion": { + "type": "string", + "description": "Nombre de la opción" + }, + "atributos": { + "type": "object", + "description": "Características adicionales de la opción" + }, + } + }, + "servicio": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Id del servicio" + }, + "tipo": { + "type": "string", + "description": "Tipo de servicio que puede existir, los tipos pueden ser los siguientes:\n * 1 ) Escuela\n * 2 ) Practica Libre\n * 3 ) Plan Afiliación\n * 4 ) Cita\n * 5 ) Material" + }, + "nombre": { + "type": "string", + "description": "Nombre del servicio" + }, + "nombreAbreviado": { + "type": "string", + "description": "Nombre corto del servicio con un tamaño máximo de 25 caracteres" + }, + "tiempoFijo": { + "type": "string", + "description": "Indicador que muestra si los usos aumentan el tiempo o solo el valor" + }, + "edadMinima": { + "type": "string", + "description": "Edad mínima con la cual se pueden registrar los participantes" + }, + "edadMaxima": { + "type": "string", + "description": "Edad máxima con la cual se pueden registrar los participantes" + }, + "numeroSesiones": { + "type": "string", + "description": "Número de sesiones del beneficio principal plan de afiliación" + }, + "tiempo": { + "type": "string", + "description": "Tiempo de duración en días del beneficio principal del plan de afiliación" + }, + "cupos": { + "type": "string", + "description": "Cantidad de cupos disponibles para el servicio" + }, + "pruebaTorneo": { + "type": "string", + "description": "Flag que indica si este servicio habilita pruebas para inscripción a torneo." + }, + "fechaInicio": { + "type": "string", + "format": "date-time", + "description": "Fecha de inicio." + }, + "fechaFin": { + "type": "string", + "format": "date-time", + "description": "Fecha de fin." + }, + "beneficios": { + "type": "array", + "description": "Lista del beneficio principal y secundarios del plan de afiliación.", + "items":{ + "type": "object", + "properties":{ + "id": { + "type": "string", + "description": "Id del beneficio" + }, + "numeroSesiones": { + "type": "string", + "description": "Cantidad de usos máximos del beneficio" + }, + "tiempo": { + "type": "string", + "description": "Tiempo en días de la vigencia del beneficio" + }, + "principal": { + "type": "string", + "description": "Indicador que muestra cuál es el beneficio principal del plan de afiliación" + }, + "area": { + "type": "object", + "properties":{ + "nombre": { + "type": "string", + "description": "Nombre del area" + }, + } + }, + "sede": { + "type": "object", + "properties":{ + "nombre": { + "type": "string", + "description": "Nombre de la sede" + }, + } + }, + "centroEntrenamiento": { + "type": "object", + "description": "Objeto que contiene toda la información del centro de entrenamiento", + "properties":{ + "id": { + "type": "string", + "description": "Id del centro de entrenamiento" + }, + "nombre": { + "type": "string", + "description": "Nombre del centro de entrenamiento" + } + } + }, + "prestador": { + "type": "object", + "properties":{ + "disponible": { + "type": "string", + "description": "Parametro que describe si el plan de afiliación tiene médico" + } + } + }, + } + } + }, + "dias": { + "type": "array", + "description": "Se devolvera los dias que su valor sea 'true', los posibles pueden ser los siguientes:\n * lunes\n * martes\n * miercoles\n * jueves\n * viernes\n * entreSemana\n * finSemana", + "format": "string", + "enum": [ + lunes, + martes, + miercoles, + jueves, + viernes, + entreSemana, + finSemana + ], + "items":{ + } + }, + "genero": { + "type": "object", + "properties":{ + "descripcion": { + "type": "string", + "description": "Género que aplica al centro de entrnamiento" + } + } + }, + "turno": { + "type": "object", + "properties":{ + "grupal": { + "type": "string", + "description": "Indicador que muestra si el turno aplica para varias personas al tiempo" + }, + "personas": { + "type": "string", + "description": "Cantidad de personas máximas por turno" + }, + "inmediato": { + "type": "string", + "description": "Indicador que muestra si puede tener inicio inmediato el turno (dentro de los siguientes 5, 10 o 15 min)" + }, + "intervalo": { + "type": "string", + "description": "Duración en minutos de cada cuanto se puede obtener turnos" + }, + "duracion": { + "type": "string", + "description": "Duración en minutos del turno" + }, + "reserva": { + "type": "string", + "description": "Requiere reservar todos los turnos al momento de comprar. Por ejemplo para un pasadía" + } + } + }, + "prestador": { + "type": "object", + "properties":{ + "disponible": { + "type": "string", + "description": "Parametro que describe si el plan de afiliación tiene médico" + } + } + }, + "centroEntrenamiento": { + "type": "object", + "description": "Objeto que contiene toda la información del centro de entrenamiento", + "properties":{ + "id": { + "type": "string", + "description": "Id del centro de entrenamiento" + }, + "nombre": { + "type": "string", + "description": "Nombre del centro de entrenamiento" + } + } + }, + "inscripcion": { + "type": "object", + "properties":{ + "fechaInicioAntiguos": { + "type": "string", + "format": "date-time", + "description": "Fecha inicio de inscripcion para antiguos." + }, + "fechaFinAntiguos": { + "type": "string", + "format": "date-time", + "description": "Fecha fin de inscripcion para antiguos." + }, + "fechaInicioNuevos": { + "type": "string", + "format": "date-time", + "description": "Fecha inicio de inscripcion para nuevos." + }, + "fechaFinNuevos": { + "type": "string", + "format": "date-time", + "description": "Fecha fin de inscripcion para nuevos." + }, + } + }, + "area": { + "type": "object", + "properties":{ + "id": { + "type": "string", + "description": "Identificador del área asociada al servicio tipo escuela" + }, + "nombre": { + "type": "string", + "description": "Nombre del área" + } + } + }, + "nivel": { + "type": "object", + "properties":{ + "id": { + "type": "string", + "description": "Identificador del nivel asociado al servicio tipo escuela" + }, + "nombre": { + "type": "string", + "description": "Nombre del nivel" + } + } + }, + "categoria": { + "type": "object", + "properties":{ + "id": { + "type": "string", + "description": "Identificador de la categoria asociada a servicio tipo escuela" + }, + "nombre": { + "type": "string", + "description": "Nombre de la categoría de edad" + } + } + }, + "ciclo": { + "type": "object", + "properties":{ + "id": { + "type": "string", + "description": "Identificador del ciclo de inscripción del servicio" + }, + "nombre": { + "type": "string", + "description": "Nombre del ciclo de inscripción" + } + } + }, + "sede": { + "type": "object", + "properties":{ + "id": { + "type": "string", + "description": "Identificador de la sede del servicio de tipo escuela" + }, + "nombre": { + "type": "string", + "description": "Nombre de la sede del servicio" + } + } + }, + "material": { + "type": "object", + "properties":{ + "id": { + "type": "string", + "description": "Identificador o id del material" + }, + "tipo": { + "type": "string", + "description": "Tipo del material:\n * 1) Referencia\n * 2) Transporte\n * 3) Turno\n * 4) Articulo" + }, + "descripcion": { + "type": "string", + "description": "Nombre del material" + } + } + }, + "atributo": { + "type": "array", + "items":{ + "type": "object", + "properties":{ + "tipo": { + "type": "string", + "description": "Tipo de atributo en especifico, estos tipos de atributos se sacan de la lista enumerada en el objeto" + }, + "valor": { + "type": "string", + "description": "Valor de atributo" + } + } + } + }, + "costo": { + "type": "array", + "items":{ + "type": "object", + "properties":{ + "nombre": { + "type": "string", + "description": "Nombre del precio" + }, + "iva": { + "type": "string", + "description": "Valor del IVA para el precio" + }, + "base": { + "type": "string", + "description": "Valor de la base (Sin IVA) del precio" + }, + "fechaInicioVigencia": { + "type": "string", + "format": "date-time", + "description": "Fecha de inicio de la vigencia del precio" + }, + "fechaFinVigencia": { + "type": "string", + "format": "date-time", + "description": "Fecha de fin de la vigencia del precio" + }, + "categoria": { + "type": "object", + "properties":{ + "sigla": { + "type": "string", + "description": "Nombre de la categoría de precio" + } + } + }, + "total": { + "type": "object", + "properties":{ + "valor": { + "type": "string", + "description": "Valor total (incluye IVA) del precio" + } + } + } + } + } + } + } + } + }, + "requestBodies": { + "registrarDatosClienteRequestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/registrarDatosClienteRequest" + } + } + }, + "description": "Informacion para registrar clientes", + "required": true + }, + "inscribirMembresiaRequestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/inscribirMembresiaRequest" + } + } + }, + "description": "Información de la fórmula médica", + "required": true + }, + "reservarTurnoPracticaLibreRequestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reservarTurnoPracticaLibreRequest" + } + } + }, + "description": "Información de la fórmula médica", + "required": true + }, + "disponibilidadPracticaLibreRequestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/disponibilidadPracticaLibreRequest" + } + } + }, + "description": "Información de la fórmula médica", + "required": true + } + }, + "securitySchemes": { + "apigee_auth": { + "type": "oauth2", + "flows": { + "clientCredentials": { + "tokenUrl": "https://colsubsidio-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials", + "scopes": { + "write:apigee": "Permisos de escritura", + "read:apigee": "Permisos de lectura" + } + } + } + } + } + } +} \ No newline at end of file