# Copyright 2016 OpenStack Foundation # All Rights Reserved. # # 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. FIXTURE_SCHEMA = { u'name': u'sample_artifact', u'properties': { u'activated_at': { u'description': u'Datetime when artifact has became active.', u'filter_ops': [u'eq', u'neq', u'in', u'gt', u'gte', u'lt', u'lte'], u'format': u'date-time', u'glareType': u'DateTime', u'readOnly': True, u'required_on_activate': False, u'sortable': True, u'type': [u'string', u'null']}, u'created_at': { u'description': u'Datetime when artifact has been created.', u'filter_ops': [u'eq', u'neq', u'in', u'gt', u'gte', u'lt', u'lte'], u'format': u'date-time', u'glareType': u'DateTime', u'readOnly': True, u'sortable': True, u'type': u'string'}, u'description': {u'default': u'', u'description': u'Artifact description.', u'filter_ops': [u'eq', u'neq', u'in'], u'glareType': u'String', u'maxLength': 4096, u'mutable': True, u'required_on_activate': False, u'type': [u'string', u'null']}, u'icon': {u'additionalProperties': False, u'description': u'Artifact icon.', u'filter_ops': [], u'glareType': u'Blob', u'properties': {u'md5': {u'type': [u'string', u'null']}, u'sha1': {u'type': [u'string', u'null']}, u'sha256': {u'type': [u'string', u'null']}, u'content_type': {u'type': u'string'}, u'external': {u'type': u'boolean'}, u'size': {u'type': [u'number', u'null']}, u'status': {u'enum': [u'saving', u'active', u'pending_delete'], u'type': u'string'}}, u'required': [u'size', u'md5', u'sha1', u'sha256', u'external', u'status', u'content_type'], u'required_on_activate': False, u'type': [u'object', u'null']}, u'id': {u'description': u'Artifact UUID.', u'filter_ops': [u'eq', u'neq', u'in'], u'glareType': u'String', u'maxLength': 255, u'pattern': u'^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-' u'fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$', u'readOnly': True, u'sortable': True, u'type': u'string'}, u'license': {u'description': u'Artifact license type.', u'filter_ops': [u'eq', u'neq', u'in'], u'glareType': u'String', u'maxLength': 255, u'required_on_activate': False, u'type': [u'string', u'null']}, u'license_url': {u'description': u'URL to artifact license.', u'filter_ops': [u'eq', u'neq', u'in'], u'glareType': u'String', u'maxLength': 255, u'required_on_activate': False, u'type': [u'string', u'null']}, u'metadata': {u'additionalProperties': {u'type': u'string'}, u'default': {}, u'description': u'Key-value dict with useful information' u'about an artifact.', u'filter_ops': [u'eq', u'neq'], u'glareType': u'StringDict', u'maxProperties': 255, u'required_on_activate': False, u'type': [u'object', u'null']}, u'name': {u'description': u'Artifact Name.', u'filter_ops': [u'eq', u'neq', u'in'], u'glareType': u'String', u'maxLength': 255, u'required_on_activate': False, u'sortable': True, u'type': u'string'}, u'owner': {u'description': u'ID of user/tenant who uploaded artifact.', u'filter_ops': [u'eq', u'neq', u'in'], u'glareType': u'String', u'maxLength': 255, u'readOnly': True, u'required_on_activate': False, u'sortable': True, u'type': u'string'}, u'provided_by': {u'additionalProperties': False, u'description': u'Info about artifact authors.', u'filter_ops': [u'eq', u'neq', u'in'], u'glareType': u'StringDict', u'maxProperties': 255, u'properties': {u'company': {u'type': u'string'}, u'href': {u'type': u'string'}, u'name': {u'type': u'string'}}, u'required_on_activate': False, u'type': [u'object', u'null']}, u'release': {u'default': [], u'description': u'Target OpenStack release for artifact. ' u'It is usually the same when artifact ' u'was uploaded.', u'filter_ops': [u'eq', u'neq', u'in'], u'glareType': u'StringList', u'items': {u'type': u'string'}, u'maxItems': 255, u'required_on_activate': False, u'type': [u'array', u'null'], u'unique': True}, u'status': {u'default': u'drafted', u'description': u'Artifact status.', u'enum': [u'drafted', u'active', u'deactivated', u'deleted'], u'filter_ops': [u'eq', u'neq', u'in'], u'glareType': u'String', u'sortable': True, u'type': u'string'}, u'supported_by': {u'additionalProperties': {u'type': u'string'}, u'description': u'Info about persons who ' u'responsible for artifact support', u'filter_ops': [u'eq', u'neq', u'in'], u'glareType': u'StringDict', u'maxProperties': 255, u'required': [u'name'], u'required_on_activate': False, u'type': [u'object', u'null']}, u'tags': {u'default': [], u'description': u'List of tags added to Artifact.', u'filter_ops': [u'eq', u'neq', u'in'], u'glareType': u'StringList', u'items': {u'type': u'string'}, u'maxItems': 255, u'mutable': True, u'required_on_activate': False, u'type': [u'array', u'null']}, u'updated_at': { u'description': u'Datetime when artifact has been updated ' u'last time.', u'filter_ops': [u'eq', u'neq', u'in', u'gt', u'gte', u'lt', u'lte'], u'format': u'date-time', u'glareType': u'DateTime', u'readOnly': True, u'sortable': True, u'type': u'string'}, u'version': {u'default': u'0.0.0', u'description': u'Artifact version(semver).', u'filter_ops': [u'eq', u'neq', u'in', u'gt', u'gte', u'lt', u'lte'], u'glareType': u'String', u'pattern': u'/^([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-' u'([0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?' u'(?:\\+[0-9A-Za-z-]+)?$/', u'required_on_activate': False, u'sortable': True, u'type': u'string'}, u'visibility': {u'default': u'private', u'description': u'Artifact visibility that defines if ' u'artifact can be available to other ' u'users.', u'filter_ops': [u'eq'], u'glareType': u'String', u'maxLength': 255, u'sortable': True, u'type': u'string'}, u'image': {u'additionalProperties': False, u'description': u'Image binary.', u'filter_ops': [], u'glareType': u'Blob', u'properties': { u'md5': {u'type': [u'string', u'null']}, u'sha1': {u'type': [u'string', u'null']}, u'sha256': {u'type': [u'string', u'null']}, u'content_type': {u'type': u'string'}, u'external': {u'type': u'boolean'}, u'size': {u'type': [u'number', u'null']}, u'status': {u'enum': [u'saving', u'active', u'pending_delete'], u'type': u'string'}}, u'required': [u'size', u'md5', u'sha1', u'sha256', u'external', u'status', u'content_type'], u'required_on_activate': False, u'type': [u'object', u'null']}, u'package': { u'additionalProperties': False, u'description': u'Murano Package binary.', u'filter_ops': [], u'glareType': u'Blob', u'properties': {u'md5': {u'type': [u'string', u'null']}, u'sha1': {u'type': [u'string', u'null']}, u'sha256': {u'type': [u'string', u'null']}, u'content_type': {u'type': u'string'}, u'external': {u'type': u'boolean'}, u'size': {u'type': [u'number', u'null']}, u'status': {u'enum': [u'saving', u'active', u'pending_delete'], u'type': u'string'}}, u'required': [u'size', u'md5', u'sha1', u'sha256', u'external', u'status', u'content_type'], u'required_on_activate': False, u'type': [u'object', u'null']}, u'environment': { u'additionalProperties': False, u'description': u'Heat Environment text body.', u'filter_ops': [], u'glareType': u'Blob', u'properties': {u'md5': {u'type': [u'string', u'null']}, u'sha1': {u'type': [u'string', u'null']}, u'sha256': {u'type': [u'string', u'null']}, u'content_type': {u'type': u'string'}, u'external': {u'type': u'boolean'}, u'size': {u'type': [u'number', u'null']}, u'status': {u'enum': [u'saving', u'active', u'pending_delete'], u'type': u'string'}}, u'required': [u'size', u'md5', u'sha1', u'sha256', u'external', u'status', u'content_type'], u'type': [u'object', u'null']}, u'blob': { u'additionalProperties': False, u'description': u'I am Blob', u'filter_ops': [], u'glareType': u'Blob', u'mutable': True, u'properties': { u'md5': {u'type': [u'string', u'null']}, u'sha1': {u'type': [u'string', u'null']}, u'sha256': {u'type': [u'string', u'null']}, u'content_type': { u'type': u'string'}, u'external': { u'type': u'boolean'}, u'size': {u'type': [ u'number', u'null']}, u'status': { u'enum': [ u'saving', u'active', u'pending_delete'], u'type': u'string'}}, u'required': [u'size', u'md5', u'sha1', u'sha256', u'external', u'status', u'content_type'], u'required_on_activate': False, u'type': [u'object', u'null']}, u'template': { u'additionalProperties': False, u'description': u'TOSCA template body.', u'filter_ops': [], u'glareType': u'Blob', u'properties': { u'md5': {u'type': [u'string', u'null']}, u'sha1': {u'type': [u'string', u'null']}, u'sha256': {u'type': [u'string', u'null']}, u'content_type': { u'type': u'string'}, u'external': {u'type': u'boolean'}, u'size': {u'type': [u'number', u'null']}, u'status': {u'enum': [u'saving', u'active', u'pending_delete'], u'type': u'string'}}, u'required': [u'size', u'md5', u'sha1', u'sha256', u'external', u'status', u'content_type'], u'type': [u'object', u'null']}, } }