openapi: 3.2.0 info: title: V2X App Geofence Expiration API description: API for Vehicle-to-Everything (V2X) Multi-Access Edge Computing (MEC) services. This App API provides endpoints for ETX registration, V2X Message Deposit, and authentication services. version: 1.0.0 servers: - url: http://localhost:8080 description: Generated server url security: - BearerAuth: [] tags: - name: Geofence Expiration description: Geofence expiration management endpoints paths: /prd/v2/deposit/geofence/expiration/cleanup: post: tags: - Geofence Expiration summary: Manually trigger Geofence expiration cleanup description: Manually triggers the cleanup process to deactivate expired Geofence deployments. This endpoint is useful for testing and immediate cleanup without waiting for the scheduled task. operationId: triggerCleanup responses: '200': description: Cleanup completed successfully content: '*/*': schema: type: object additionalProperties: {} '401': description: Unauthorized - invalid or missing authentication content: '*/*': schema: type: object additionalProperties: {} '403': description: Forbidden - insufficient permissions content: '*/*': schema: type: object additionalProperties: {} '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' security: - BearerAuth: [] /prd/v2/deposit/geofence/expiration/expired: get: tags: - Geofence Expiration summary: Get expired Geofence deployments description: Retrieves a list of all Geofence deployments that have expired. This endpoint is useful for monitoring and debugging expiration issues. operationId: getExpiredGeofenceDeployments responses: '200': description: Expired Geofence deployments retrieved successfully content: '*/*': schema: type: array items: $ref: '#/components/schemas/GeofenceDeploymentResponse' '401': description: Unauthorized - invalid or missing authentication content: '*/*': schema: type: array items: $ref: '#/components/schemas/GeofenceDeploymentResponse' '403': description: Forbidden - insufficient permissions content: '*/*': schema: type: array items: $ref: '#/components/schemas/GeofenceDeploymentResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' security: - BearerAuth: [] /prd/v2/deposit/geofence/expiration/cleanup/status: get: tags: - Geofence Expiration summary: Get cleanup service status description: Retrieves the current status of the Geofence expiration cleanup service, including the cleanup interval and whether the service is enabled. operationId: getCleanupStatus responses: '200': description: Geofence cleanup service status retrieved successfully content: '*/*': schema: type: object additionalProperties: {} '401': description: Unauthorized - invalid or missing authentication content: '*/*': schema: type: object additionalProperties: {} '403': description: Forbidden - insufficient permissions content: '*/*': schema: type: object additionalProperties: {} '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' security: - BearerAuth: [] components: schemas: MultiPolygon: allOf: - $ref: '#/components/schemas/Geometry' - type: object properties: coordinates: type: array items: type: array items: type: array items: type: array items: type: number format: double Polygon: allOf: - $ref: '#/components/schemas/Geometry' - type: object properties: coordinates: type: array items: type: array items: type: array items: type: number format: double LineString: allOf: - $ref: '#/components/schemas/Geometry' - type: object properties: coordinates: type: array items: type: array items: type: number format: double GeofenceFeatureCollection: type: object description: GeoJSON FeatureCollection representing a geofence area properties: type: type: string description: GeoJSON type, must be 'FeatureCollection' example: FeatureCollection features: type: array description: Array of GeoJSON features defining the geofence geometry items: $ref: '#/components/schemas/GeofenceFeature' ErrorResponse: type: object properties: error: type: string description: type: string Geometry: discriminator: propertyName: type properties: type: type: string required: - type MultiLineString: allOf: - $ref: '#/components/schemas/Geometry' - type: object properties: coordinates: type: array items: type: array items: type: array items: type: number format: double GeofenceFeature: type: object description: GeoJSON Feature representing a single geometric element within a geofence properties: type: type: string description: GeoJSON type, must be 'Feature' example: Feature geometry: description: GeoJSON geometry object defining the spatial extent oneOf: - $ref: '#/components/schemas/LineString' - $ref: '#/components/schemas/MultiLineString' - $ref: '#/components/schemas/MultiPolygon' - $ref: '#/components/schemas/Polygon' properties: additionalProperties: false description: 'Properties object is required and must be an empty object. No content is allowed in the properties object. Must be an empty JSON object: {}. Any properties within this object will cause validation to fail. This field enforces that the properties object contains no key-value pairs.' example: {} required: - properties GeofenceDeploymentResponse: type: object description: Response model for Geofence deployment properties: id: type: integer format: int64 description: Database ID of the Geofence deployment geofence_id: type: string description: Unique identifier for the Geofence deployment geojson: $ref: '#/components/schemas/GeofenceFeatureCollection' description: GeoJSON FeatureCollection representation of the deployment area hex_payload: type: string description: ASN.1 encoded message in hexadecimal format deployed_by: type: string description: Username of the person who deployed the Geofence is_active: type: boolean description: Whether the Geofence deployment is currently active created_at: type: string format: date-time description: Timestamp when the Geofence was deployed updated_at: type: string format: date-time description: Timestamp when the Geofence was last updated expires_at: type: string format: date-time description: Optional expiration timestamp for the Geofence deployment geohashes: type: array description: List of geohashes covering the deployment area items: type: string securitySchemes: BearerAuth: type: http description: Keycloak JWT Bearer Token. Required for all endpoints except decode endpoints. Obtain a token from the /auth/token endpoint using your credentials. scheme: bearer bearerFormat: JWT