#    Licensed under the Apache License, Version 2.0 (the "License"); you may
#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.
"""Placement API schemas for usage information."""

import copy

from placement.schemas import common


# Represents the allowed query string parameters to GET /usages
GET_USAGES_SCHEMA_1_9 = {
    "type": "object",
    "properties": {
        "project_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
        },
        "user_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
        },
    },
    "required": [
        "project_id"
    ],
    "additionalProperties": False,
}


# An optional consumer type was added to the usage dicts in this
# version of GET /usages.

GET_USAGES_SCHEMA_V1_38 = copy.deepcopy(GET_USAGES_SCHEMA_1_9)
GET_USAGES_SCHEMA_V1_38['properties']['consumer_type'] = {
    "type": "string",
    "pattern": common.CONSUMER_TYPE_GET_PATTERN,
    "minLength": 1,
    "maxLength": 255,
}
