basePath: /api/v1
definitions:
    idn-service_internal_api_generated.AmountInCurrency:
        properties:
            currencyType:
                description: CurrencyType Code for the specified currency as defined in ISO 4217.
                type: string
            currencyValue:
                description: CurrencyValue The amount of currency specified in the given currency code type.
                type: number
        type: object
    idn-service_internal_api_generated.CalculationTypeEnum:
        enum:
            - counted
            - derived
            - expected
            - verified
        type: string
        x-enum-varnames:
            - Counted
            - Derived
            - Expected
            - Verified
    idn-service_internal_api_generated.DemandSpaceType:
        properties:
            detectionUpdateTime:
                description: DetectionUpdateTime ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ.
                type: string
            occupancyEndTime:
                description: OccupancyEndTime ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ.
                type: string
            occupancyEstimatedEndTime:
                description: OccupancyEstimatedEndTime ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ.
                type: string
            occupancyEstimatedStartTime:
                description: OccupancyEstimatedStartTime ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ.
                type: string
            occupancyLevel:
                allOf:
                    - $ref: '#/definitions/idn-service_internal_api_generated.OccupancyLevel'
                description: OccupancyLevel Defines an occupancy level as specified by the data supplier.
            occupancyStartTime:
                description: OccupancyStartTime ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ.
                type: string
            spaceId:
                allOf:
                    - $ref: '#/definitions/idn-service_internal_api_generated.Reference'
                description: SpaceId Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered.
        type: object
    idn-service_internal_api_generated.DemandType:
        properties:
            count:
                description: Count Number of occupied spaces.
                type: integer
            occupancyCalculation:
                allOf:
                    - $ref: '#/definitions/idn-service_internal_api_generated.CalculationTypeEnum'
                description: |-
                    OccupancyCalculation A list of the supported calculation types for demand.
                    * counted : Physical determination if a space is occupied
                    * derived : Space occupancy is estimated by using related data such as active payments or sold permits.
                    * expected : Future prediction of occupancy levels.
                    * verified : Defines an occupancy report that is considered a verified report.
            percentage:
                description: Percentage Percent of spaces occupied.
                type: number
            recordDateTime:
                description: RecordDateTime ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ.
                type: string
        type: object
    idn-service_internal_api_generated.OccupancyDemandTable:
        properties:
            demandSpaceType:
                description: DemandSpaceType Occupancy for single spaces
                items:
                    $ref: '#/definitions/idn-service_internal_api_generated.DemandSpaceType'
                type: array
            demandType:
                description: DemandType Occupancy for area
                items:
                    $ref: '#/definitions/idn-service_internal_api_generated.DemandType'
                type: array
            frequency:
                description: Frequency ISO8601 format definition of an interval of time in format [PnnYnnMnnDTnnHnnMnnS].
                type: string
            timestamp:
                description: Timestamp ISO-8601 format definition of a date and time - format YYYY-MM-DDTHH:MM:SSZ.
                type: string
        type: object
    idn-service_internal_api_generated.OccupancyLevel:
        properties:
            occupancyIndicator:
                allOf:
                    - $ref: '#/definitions/idn-service_internal_api_generated.ReferencedCodeListEntry'
                description: OccupancyIndicator Provides a structure to support reference to an entry in a previously defined user-defined code list.
        type: object
    idn-service_internal_api_generated.RateLine:
        properties:
            description:
                description: Description Array of SpecificLanguageString objects representing multi language text.
                items:
                    $ref: '#/definitions/idn-service_internal_api_generated.SpecificLanguageString'
                type: array
            durationEnd:
                description: DurationEnd If used, indicates the end time for the applicability of the specific RateLine, generally with respect to the end of the parking or other mobility Session, e.g. the end of a time-based tier charge rate.The format can be either of _hh:mm_ (hours and minutes) or _dd:hh:mm_ (days, hours and minutes).
                type: string
            durationStart:
                description: DurationStart If used, indicates the start time for the applicability of the specific RateLine, generally with respect to the start of the parking Session, e.g. the start of a time-based tier charge rate. The format can be either of _hh:mm_ (hours and minutes) or _dd:hh:mm_ (days, hours and minutes).
                type: string
            id:
                description: Id Unique identifier for the object.
                type: string
            incrementPeriod:
                description: IncrementPeriod ISO8601 format definition of an interval of time in format [PnnYnnMnnDTnnHnnMnnS].
                type: string
            maxValue:
                type: number
            minValue:
                type: number
            rateLineTax:
                allOf:
                    - $ref: '#/definitions/idn-service_internal_api_generated.RateLineTax'
                description: RateLineTax Contains details of the tax to be applied to a RateLine.
            rateLineType:
                allOf:
                    - $ref: '#/definitions/idn-service_internal_api_generated.RateLineTypeEnum'
                description: |-
                    RateLineType Describes the type of rates of a RateLine.
                    * flatRate : A rate applied to the rate line which is not time/duration dependent. i.e. a single fixed payment.
                    * flatRateTier : A flat rate charge rate associated with a specific time-based tier. This is a special case of an incrementing rate.
                    * incrementingRate : A charge rate that increases by a defined amount in a defined time.
            sequence:
                description: Sequence The position of this rate line within a __RateLineCollection__
                type: integer
            usageCondition:
                allOf:
                    - $ref: '#/definitions/idn-service_internal_api_generated.RateUsageConditionsTypeEnum'
                description: |-
                    UsageCondition A list of supported rate usage condition types.
                    * fixedDuration : Fixed duration - check Rate Usage Duration Limitation field
                    * fixedNumber : check Rate Usage Count Limitation field
                    * once : Permit can be used once
                    * unlimited : Unlimited usage.
            value:
                type: number
            version:
                description: Version Positive integer representing the object version.
                type: integer
        type: object
    idn-service_internal_api_generated.RateLineTax:
        properties:
            labelForDisplay:
                description: LabelForDisplay Array of SpecificLanguageString objects representing multi language text.
                items:
                    $ref: '#/definitions/idn-service_internal_api_generated.SpecificLanguageString'
                type: array
            taxIncluded:
                description: TaxIncluded Indicates if the tax to be applied is included within the total rate associated with this rate line (TRUE) or if the tax is to be added additionally to the total (FALSE).
                type: boolean
            taxRate:
                description: TaxRate The percentage rate of tax to be applied.
                type: number
            taxValue:
                allOf:
                    - $ref: '#/definitions/idn-service_internal_api_generated.AmountInCurrency'
                description: TaxValue A class supporting the definition of a unit of currency in a defined currency.
            triggerDescription:
                description: TriggerDescription Array of SpecificLanguageString objects representing multi language text.
                items:
                    $ref: '#/definitions/idn-service_internal_api_generated.SpecificLanguageString'
                type: array
            triggerType:
                allOf:
                    - $ref: '#/definitions/idn-service_internal_api_generated.TriggerTypeEnum'
                description: |-
                    TriggerType * firstUse : Trigger is applied on first use of the facility.
                    * withTransaction : Trigger condition is met when the transaction is completed.
        type: object
    idn-service_internal_api_generated.RateLineTypeEnum:
        enum:
            - flatRate
            - flatRateTier
            - incrementingRate
        type: string
        x-enum-varnames:
            - FlatRate
            - FlatRateTier
            - IncrementingRate
    idn-service_internal_api_generated.RateRateLineCollection:
        properties:
            applicableCurrency:
                description: ApplicableCurrency Code for the specified currency as defined in ISO 4217.
                type: string
            collectionSequence:
                description: CollectionSequence An indicator giving the place in sequence of this RateLineCollection.
                type: integer
            id:
                description: Id Unique identifier for the object.
                type: string
            maxTime:
                description: MaxTime ISO8601 format definition of an interval of time in format [PnnYnnMnnDTnnHnnMnnS].
                type: string
            maxValueCollection:
                allOf:
                    - $ref: '#/definitions/idn-service_internal_api_generated.AmountInCurrency'
                description: MaxValueCollection A class supporting the definition of a unit of currency in a defined currency.
            minTime:
                description: MinTime ISO8601 format definition of an interval of time in format [PnnYnnMnnDTnnHnnMnnS].
                type: string
            minValueCollection:
                allOf:
                    - $ref: '#/definitions/idn-service_internal_api_generated.AmountInCurrency'
                description: MinValueCollection A class supporting the definition of a unit of currency in a defined currency.
            rateLines:
                items:
                    $ref: '#/definitions/idn-service_internal_api_generated.RateLine'
                type: array
            referenceTimeEnd:
                description: ReferenceTimeEnd Event-related reference end time
                type: string
            referenceTimeStart:
                description: ReferenceTimeStart Event-related reference start time
                type: string
            relativeTimes:
                description: RelativeTimes Indicates whether or not times that are relative to the start of an event are used as the basis for rate calculation (TRUE), or if parking rate calculation definitions are done with respect to the parking sessions and defined as local or UTC times (FALSE).
                type: boolean
            resetTime:
                description: ResetTime ISO-8601 format definition of a time - format HH:MM.
                type: string
            taxIncluded:
                description: TaxIncluded Indication that tax to be applied is included within the total rate associated with this rate line collection (true) or indicates that the tax is added additionally to the total.
                type: boolean
            taxRate:
                description: TaxRate The percentage rate of tax to be applied.
                type: number
            taxValue:
                description: TaxValue The monetary amount of tax to be applied.
                type: number
            validEnd:
                description: ValidEnd The end time for the validity of this RateLineCollection.
                type: string
            validStart:
                description: ValidStart The start time for the validity of this RateLineCollection.
                type: string
            version:
                description: Version Positive integer representing the object version.
                type: integer
        type: object
    idn-service_internal_api_generated.RateUsageConditionsTypeEnum:
        enum:
            - fixedDuration
            - fixedNumber
            - once
            - unlimited
        type: string
        x-enum-varnames:
            - FixedDuration
            - FixedNumber
            - Once
            - Unlimited
    idn-service_internal_api_generated.Reference:
        properties:
            className:
                description: ClassName The class name of the referenced object in PascalCase.
                type: string
            id:
                description: Id The unique identifier within the given class.
                type: string
        type: object
    idn-service_internal_api_generated.ReferencedCodeListEntry:
        properties:
            codeListEntryId:
                allOf:
                    - $ref: '#/definitions/idn-service_internal_api_generated.Reference'
                description: CodeListEntryId Represents a reference to an identifiable object where the identifier is unique. It is composed of an unique identifier and a string identifying the class of the referenced object. If multiple versions exists for the object, the latest version is considered.
            codeListId:
                allOf:
                    - $ref: '#/definitions/idn-service_internal_api_generated.VersionedReference'
                description: CodeListId Represents a reference to an identifiable object where the combination of the identifier and version is unique. It is composed of an unique identifier, a version and potentially a string identifying the class of the referenced object.
            entryDefinedValue:
                description: EntryDefinedValue Free-text defined text (name) for the code list entry being referenced.
                type: string
        type: object
    idn-service_internal_api_generated.SpecificLanguageString:
        properties:
            language:
                description: Language ISO 639-1:2002 language code.
                type: string
            string:
                description: String Translated string
                type: string
        type: object
    idn-service_internal_api_generated.TriggerTypeEnum:
        enum:
            - firstUse
            - withTransaction
        type: string
        x-enum-varnames:
            - FirstUse
            - WithTransaction
    idn-service_internal_api_generated.VersionedReference:
        properties:
            className:
                description: ClassName Class name of the referenced object.
                type: string
            id:
                description: Id Unique identifier for the object.
                type: string
            version:
                description: Version Positive integer representing the object version.
                type: integer
        type: object
    idn-service_internal_models.Capacity:
        properties:
            totalSpaces:
                type: integer
        type: object
    idn-service_internal_models.ErrorResponse:
        properties:
            code:
                type: integer
            details:
                additionalProperties: true
                type: object
            error:
                type: string
            message:
                type: string
        type: object
    idn-service_internal_models.Extensions:
        properties:
            premiumParking:
                $ref: '#/definitions/idn-service_internal_models.PremiumParkingExtension'
        type: object
    idn-service_internal_models.GeoJSONPoint:
        properties:
            coordinates:
                description: '[longitude, latitude]'
                items:
                    type: number
                type: array
            type:
                type: string
        type: object
    idn-service_internal_models.Instructions:
        properties:
            reservation:
                type: string
        type: object
    idn-service_internal_models.Media:
        properties:
            type:
                description: '"photo", "qrCode", etc.'
                type: string
            url:
                type: string
        type: object
    idn-service_internal_models.NameValue:
        properties:
            language:
                type: string
            value:
                type: string
        type: object
    idn-service_internal_models.Place:
        properties:
            extensions:
                $ref: '#/definitions/idn-service_internal_models.Extensions'
            id:
                type: string
            layer:
                type: integer
            name:
                items:
                    $ref: '#/definitions/idn-service_internal_models.NameValue'
                type: array
            pointLocation:
                items:
                    $ref: '#/definitions/idn-service_internal_models.PointLocation'
                type: array
            streetAddress:
                items:
                    $ref: '#/definitions/idn-service_internal_models.StreetAddress'
                type: array
            timeZone:
                type: string
            version:
                type: integer
        type: object
    idn-service_internal_models.PlaceResponse:
        properties:
            place:
                $ref: '#/definitions/idn-service_internal_models.Place'
        type: object
    idn-service_internal_models.PointLocation:
        properties:
            geoJSONPoint:
                $ref: '#/definitions/idn-service_internal_models.GeoJSONPoint'
        type: object
    idn-service_internal_models.PremiumParkingExtension:
        properties:
            capacity:
                $ref: '#/definitions/idn-service_internal_models.Capacity'
            instructions:
                $ref: '#/definitions/idn-service_internal_models.Instructions'
            legacyType:
                type: string
            media:
                items:
                    $ref: '#/definitions/idn-service_internal_models.Media'
                type: array
            sourceType:
                type: string
        type: object
    idn-service_internal_models.ProviderBlackout:
        properties:
            description:
                type: string
            end_date:
                type: string
            id:
                type: integer
            location_id:
                type: integer
            reason:
                type: string
            start_date:
                type: string
        type: object
    idn-service_internal_models.ProviderIcon:
        properties:
            url:
                type: string
        type: object
    idn-service_internal_models.ProviderLocationFeature:
        properties:
            description:
                type: string
            icon:
                $ref: '#/definitions/idn-service_internal_models.ProviderIcon'
            id:
                type: integer
            more_info:
                type: string
            slug:
                type: string
            title:
                type: string
            url:
                type: string
        type: object
    idn-service_internal_models.ProviderNearbyDestination:
        properties:
            address:
                type: string
            id:
                type: integer
            name:
                type: string
            photo:
                $ref: '#/definitions/idn-service_internal_models.ProviderPhotoVariants'
            slug:
                type: string
        type: object
    idn-service_internal_models.ProviderPhoto:
        properties:
            url:
                type: string
        type: object
    idn-service_internal_models.ProviderPhotoVariants:
        properties:
            android:
                $ref: '#/definitions/idn-service_internal_models.ProviderPhoto'
            ios:
                $ref: '#/definitions/idn-service_internal_models.ProviderPhoto'
            lazy:
                $ref: '#/definitions/idn-service_internal_models.ProviderPhoto'
            medium:
                $ref: '#/definitions/idn-service_internal_models.ProviderPhoto'
            url:
                type: string
        type: object
    idn-service_internal_models.StreetAddress:
        properties:
            addressLine1:
                type: string
            city:
                type: string
            countryCode:
                type: string
            postalCode:
                type: string
            stateProvince:
                type: string
        type: object
    idn-service_internal_models.SuccessResponse:
        properties:
            data: {}
            message:
                type: string
            success:
                type: boolean
        type: object
    idn-service_internal_models.TokenRequest:
        properties:
            api_key:
                type: string
        required:
            - api_key
        type: object
    idn-service_internal_models.TokenResponse:
        properties:
            access_token:
                type: string
            expires_in:
                description: Seconds until expiration
                type: integer
            issued_at:
                description: Unix timestamp
                type: integer
            scope:
                type: string
            token_type:
                description: Always "Bearer"
                type: string
        type: object
    idn-service_internal_models.ValidateTokenRequest:
        properties:
            token:
                type: string
        required:
            - token
        type: object
    idn-service_internal_models.ValidateTokenResponse:
        properties:
            expires_at:
                type: integer
            message:
                type: string
            provider_id:
                type: integer
            valid:
                type: boolean
        type: object
host: dev.idn.glideparcs.com
info:
    contact:
        name: API Support
    description: RESTful API service for managing parking location data and provider authentication
    title: IDN Service API
    version: "1.0"
paths:
    /auth/token:
        post:
            consumes:
                - application/json
            description: Exchanges an API key for a JWT Bearer token that can be used for authenticated requests.
            parameters:
                - description: API Key Request. The api_key field (string, required) contains the provider API key to exchange for a JWT.
                  in: body
                  name: request
                  required: true
                  schema:
                    $ref: '#/definitions/idn-service_internal_models.TokenRequest'
            produces:
                - application/json
            responses:
                "200":
                    description: Token generated successfully. Returns a SuccessResponse wrapper containing TokenResponse with access_token, token_type (always 'Bearer'), issued_at (Unix timestamp in seconds), expires_in (seconds until expiration), and scope (if applicable).
                    schema:
                        allOf:
                            - $ref: '#/definitions/idn-service_internal_models.SuccessResponse'
                            - properties:
                                data:
                                    $ref: '#/definitions/idn-service_internal_models.TokenResponse'
                              type: object
                "400":
                    description: Invalid request - missing or malformed API key
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
                "401":
                    description: 'Unauthorized. Possible reasons: Invalid API key, Expired key, Inactive key, Provider API access disabled'
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
                "500":
                    description: Internal server error
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
            summary: Exchange API key for JWT token
            tags:
                - auth
    /auth/validate:
        post:
            consumes:
                - application/json
            description: Validates a JWT Bearer token and returns validation status, including provider information and expiration details.
            parameters:
                - description: JWT Token to validate. The token field (string, required) contains the JWT string to validate.
                  in: body
                  name: request
                  required: true
                  schema:
                    $ref: '#/definitions/idn-service_internal_models.ValidateTokenRequest'
            produces:
                - application/json
            responses:
                "200":
                    description: Token validation result. Returns a SuccessResponse wrapper containing ValidateTokenResponse with valid (boolean), provider_id (integer), expires_at (Unix seconds, not milliseconds), and message (string).
                    schema:
                        allOf:
                            - $ref: '#/definitions/idn-service_internal_models.SuccessResponse'
                            - properties:
                                data:
                                    $ref: '#/definitions/idn-service_internal_models.ValidateTokenResponse'
                              type: object
                "400":
                    description: Invalid request - missing or empty token
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
                "500":
                    description: Internal server error
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
            summary: Validate JWT token
            tags:
                - auth
    /locations:
        get:
            consumes:
                - application/json
            description: Returns list of APDS-compliant places (Place objects) with related provider information.
            parameters:
                - default: '""'
                  description: API Key for authentication
                  in: header
                  name: X-ApiKey
                  required: true
                  type: string
            produces:
                - application/json
            responses:
                "200":
                    description: List of APDS-compliant places (Place objects)
                    schema:
                        items:
                            $ref: '#/definitions/idn-service_internal_models.Place'
                        type: array
                "401":
                    description: Unauthorized - missing or invalid API key
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
                "500":
                    description: Internal server error
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
            summary: List locations
            tags:
                - locations
    /locations/{location_name}:
        get:
            consumes:
                - application/json
            description: Returns APDS-compliant place details for a specific location.
            parameters:
                - default: '""'
                  description: API Key for authentication
                  in: header
                  name: X-ApiKey
                  required: true
                  type: string
                - description: Location identifier. Accepts both P location number (e.g., P2726) and location ID (numeric). Both formats are supported and will resolve to the same location.
                  in: path
                  name: location_name
                  required: true
                  type: string
            produces:
                - application/json
            responses:
                "200":
                    description: APDS-compliant place details (PlaceResponse)
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.PlaceResponse'
                "401":
                    description: Unauthorized - missing or invalid API key
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
                "403":
                    description: Forbidden - no access to location
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
                "404":
                    description: Location not found
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
                "500":
                    description: Internal server error
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
            summary: Get location
            tags:
                - locations
    /locations/{location_name}/blackouts:
        get:
            consumes:
                - application/json
            description: Returns blackout periods (ProviderBlackout) for a location.
            parameters:
                - default: '""'
                  description: API Key for authentication
                  in: header
                  name: X-ApiKey
                  required: true
                  type: string
                - description: Location identifier. Accepts both P location number (e.g., P2726) and location ID (numeric). Both formats are supported and will resolve to the same location.
                  in: path
                  name: location_name
                  required: true
                  type: string
            produces:
                - application/json
            responses:
                "200":
                    description: Blackout periods (ProviderBlackout)
                    schema:
                        items:
                            $ref: '#/definitions/idn-service_internal_models.ProviderBlackout'
                        type: array
                "401":
                    description: Unauthorized
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
                "500":
                    description: Internal server error
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
            summary: Get location blackouts
            tags:
                - locations
    /locations/{location_name}/features:
        get:
            consumes:
                - application/json
            description: Returns location features (ProviderLocationFeature) for a location.
            parameters:
                - default: '""'
                  description: API Key for authentication
                  in: header
                  name: X-ApiKey
                  required: true
                  type: string
                - description: Location identifier. Accepts both P location number (e.g., P2726) and location ID (numeric). Both formats are supported and will resolve to the same location.
                  in: path
                  name: location_name
                  required: true
                  type: string
            produces:
                - application/json
            responses:
                "200":
                    description: Location features (ProviderLocationFeature)
                    schema:
                        items:
                            $ref: '#/definitions/idn-service_internal_models.ProviderLocationFeature'
                        type: array
                "401":
                    description: Unauthorized
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
                "500":
                    description: Internal server error
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
            summary: Get location features
            tags:
                - locations
    /locations/{location_name}/nearby_destinations:
        get:
            consumes:
                - application/json
            description: Returns nearby destinations (ProviderNearbyDestination) for a location.
            parameters:
                - default: '""'
                  description: API Key for authentication
                  in: header
                  name: X-ApiKey
                  required: true
                  type: string
                - description: Location identifier. Accepts both P location number (e.g., P2726) and location ID (numeric). Both formats are supported and will resolve to the same location.
                  in: path
                  name: location_name
                  required: true
                  type: string
            produces:
                - application/json
            responses:
                "200":
                    description: Nearby destinations (ProviderNearbyDestination)
                    schema:
                        items:
                            $ref: '#/definitions/idn-service_internal_models.ProviderNearbyDestination'
                        type: array
                "401":
                    description: Unauthorized
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
                "500":
                    description: Internal server error
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
            summary: Get nearby destinations
            tags:
                - locations
    /locations/{location_name}/occupancies:
        get:
            consumes:
                - application/json
            description: Returns occupancy table (OccupancyDemandTable) for a location.
            parameters:
                - default: '""'
                  description: API Key for authentication
                  in: header
                  name: X-ApiKey
                  required: true
                  type: string
                - description: Location identifier. Accepts both P location number (e.g., P2726) and location ID (numeric). Both formats are supported and will resolve to the same location.
                  in: path
                  name: location_name
                  required: true
                  type: string
            produces:
                - application/json
            responses:
                "200":
                    description: Occupancy data (OccupancyDemandTable)
                    schema:
                        $ref: '#/definitions/idn-service_internal_api_generated.OccupancyDemandTable'
                "401":
                    description: Unauthorized
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
                "500":
                    description: Internal server error
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
            summary: Get location occupancies
            tags:
                - locations
    /locations/{location_name}/rates:
        get:
            consumes:
                - application/json
            description: Returns rates for a location as a RateRateLineCollection.
            parameters:
                - default: '""'
                  description: API Key for authentication
                  in: header
                  name: X-ApiKey
                  required: true
                  type: string
                - description: Location identifier. Accepts both P location number (e.g., P2726) and location ID (numeric). Both formats are supported and will resolve to the same location.
                  in: path
                  name: location_name
                  required: true
                  type: string
            produces:
                - application/json
            responses:
                "200":
                    description: RateRateLineCollection containing rates, validity windows, taxes, and increments
                    schema:
                        $ref: '#/definitions/idn-service_internal_api_generated.RateRateLineCollection'
                "401":
                    description: Unauthorized - missing or invalid API key
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
                "404":
                    description: Location not found
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
                "500":
                    description: Internal server error
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
            summary: Get location rates
            tags:
                - rates
    /locations/{location_name}/recurring_rates:
        get:
            consumes:
                - application/json
            description: Returns recurring rates for a location.
            parameters:
                - default: '""'
                  description: API Key for authentication
                  in: header
                  name: X-ApiKey
                  required: true
                  type: string
                - description: Location identifier. Accepts both P location number (e.g., P2726) and location ID (numeric). Both formats are supported and will resolve to the same location.
                  in: path
                  name: location_name
                  required: true
                  type: string
            produces:
                - application/json
            responses:
                "200":
                    description: Array of RateRateLineCollection objects containing recurring rates
                    schema:
                        items:
                            $ref: '#/definitions/idn-service_internal_api_generated.RateRateLineCollection'
                        type: array
                "401":
                    description: Unauthorized - missing or invalid API key
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
                "500":
                    description: Internal server error
                    schema:
                        $ref: '#/definitions/idn-service_internal_models.ErrorResponse'
            summary: Get recurring rates
            tags:
                - subscriptions
schemes:
    - https
securityDefinitions:
    BearerAuth:
        description: Type "Bearer" followed by a space and JWT token.
        in: header
        name: Authorization
        type: apiKey
swagger: "2.0"
