// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_JSON_SCHEMA_JSON_SCHEMA_CONSTANTS_H_
#define COMPONENTS_JSON_SCHEMA_JSON_SCHEMA_CONSTANTS_H_

// These constants are shared by code that uses JSON schemas.
namespace json_schema_constants {

extern const char kAdditionalProperties[];
extern const char kAny[];
extern const char kArray[];
extern const char kBoolean[];
extern const char kChoices[];
extern const char kDescription[];
extern const char kEnum[];
extern const char kId[];
extern const char kInteger[];
extern const char kItems[];
extern const char kMaximum[];
extern const char kMaxItems[];
extern const char kMaxLength[];
extern const char kMinimum[];
extern const char kMinItems[];
extern const char kMinLength[];
extern const char kNull[];
extern const char kNumber[];
extern const char kObject[];
extern const char kOptional[];
extern const char kPattern[];
extern const char kPatternProperties[];
extern const char kProperties[];
extern const char kRef[];
extern const char kSchema[];
extern const char kString[];
extern const char kTitle[];
extern const char kType[];

}  // namespace json_schema_constants

#endif  // COMPONENTS_JSON_SCHEMA_JSON_SCHEMA_CONSTANTS_H_
