Merge "docs: Reorganize documentation structure"

This commit is contained in:
Zuul 2018-10-05 20:49:07 +00:00 committed by Gerrit Code Review
commit fd768bc163
28 changed files with 301 additions and 239 deletions

View File

@ -4,13 +4,18 @@ Deckhand
|Docker Repository on Quay| |Doc Status| |Docker Repository on Quay| |Doc Status|
Deckhand is a storage service for YAML-based configuration documents, which are Deckhand provides document revision management, storage and mutation
managed through version control and automatically validated. Deckhand provides functionality upon which the rest of the `Airship`_ components rely for
users with a variety of different document types that describe complex orchestration of infrastructure provisioning. Deckhand understands declarative
configurations using the features listed below. YAML documents that define, end-to-end, the configuration of sites: from the
hardware -- encompassing network topology and hardware and host profile
information -- up to the software level that comprises the overcloud.
Find more documentation for Deckhand on * Free software: Apache license
`Read the Docs <https://airship-deckhand.readthedocs.io/>`_. * Documentation: https://airship-deckhand.readthedocs.io/en/latest/
* Source: https://git.openstack.org/cgit/openstack/airship-deckhand
* Bugs: https://storyboard.openstack.org/#!/project/1004
* Release notes: https://airship-deckhand.readthedocs.io/en/latest/releasenotes/index.html
Core Responsibilities Core Responsibilities
===================== =====================
@ -37,40 +42,6 @@ For more detailed installation and setup information, please refer to the
`Getting Started <https://airship-deckhand.readthedocs.io/en/latest/getting-started.html>`_ `Getting Started <https://airship-deckhand.readthedocs.io/en/latest/getting-started.html>`_
guide. guide.
Testing
-------
Automated Testing
^^^^^^^^^^^^^^^^^
To run unit tests using sqlite, execute:
::
$ tox -epy27
$ tox -epy35
against a py27- or py35-backed environment, respectively. To run individual
unit tests, run:
::
$ tox -e py27 -- deckhand.tests.unit.db.test_revisions
for example.
To run functional tests:
::
$ tox -e functional
You can also run a subset of tests via a regex:
::
$ tox -e functional -- gabbi.suitemaker.test_gabbi_document-crud-success-multi-bucket
Integration Points Integration Points
================== ==================
@ -100,7 +71,9 @@ with it, including:
Further Reading Further Reading
=============== ===============
`Airship <https://www.airshipit.org/>`_. `Airship`_.
.. _Airship: https://www.airshipit.org
.. |Docker Repository on Quay| image:: https://quay.io/repository/airshipit/deckhand/status .. |Docker Repository on Quay| image:: https://quay.io/repository/airshipit/deckhand/status
:target: https://quay.io/repository/airshipit/deckhand :target: https://quay.io/repository/airshipit/deckhand

View File

@ -1,5 +0,0 @@
=======================
Reviewing Deckhand Code
=======================
.. include:: ../../REVIEWING.rst

View File

@ -19,4 +19,4 @@
Deckhand Coding Guide Deckhand Coding Guide
===================== =====================
.. include:: ../../HACKING.rst .. include:: ../../../HACKING.rst

View File

@ -0,0 +1,20 @@
..
Copyright 2018 AT&T Intellectual Property. All other 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.
=======================
Reviewing Deckhand Code
=======================
.. include:: ../../../REVIEWING.rst

View File

@ -26,7 +26,7 @@ Airship components.
Architecture Architecture
============ ============
.. image:: images/architecture.png .. image:: ../images/architecture.png
:alt: High level architecture of Deckhand :alt: High level architecture of Deckhand
From a high-level perspective, Deckhand consists of a RESTful API, a document From a high-level perspective, Deckhand consists of a RESTful API, a document
@ -41,8 +41,8 @@ Deckhand uses Barbican to securely storage sensitive document data.
`Pegleg <https://airship-pegleg.readthedocs.io/>`_ in effect provides `Pegleg <https://airship-pegleg.readthedocs.io/>`_ in effect provides
Deckhand with a CLI, which facilitates communication with Deckhand. Deckhand with a CLI, which facilitates communication with Deckhand.
.. image:: images/architecture-pegleg.png .. image:: ../images/architecture-pegleg.png
:alt: High level architecture of Deckhand :alt: High level architecture of Deckhand + Pegleg
Components Components
========== ==========

View File

@ -0,0 +1,34 @@
..
Copyright 2018 AT&T Intellectual Property.
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.
Developer's Guide
=================
.. toctree::
:maxdepth: 2
HACKING
REVIEWING
developer-overview
policy-enforcement
testing
Indices and tables
------------------
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

View File

@ -51,4 +51,4 @@ Deckhand with the version of this documentation.
The sample configuration can also be viewed in `file form <_static/deckhand.policy.yaml.sample>`_. The sample configuration can also be viewed in `file form <_static/deckhand.policy.yaml.sample>`_.
.. literalinclude:: _static/deckhand.policy.yaml.sample .. literalinclude:: ../_static/deckhand.policy.yaml.sample

View File

@ -1,141 +0,0 @@
..
Copyright 2017 AT&T Intellectual Property.
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.
Deckhand Exceptions
===================
.. list-table::
:widths: 5 50
:header-rows: 1
* - Exception Name
- Description
* - BarbicanClientException
- .. autoexception:: deckhand.errors.BarbicanClientException
:members:
:show-inheritance:
:undoc-members:
* - BarbicanServerException
- .. autoexception:: deckhand.errors.BarbicanServerException
:members:
:show-inheritance:
:undoc-members:
* - DeepDiffException
- .. autoexception:: deckhand.errors.DeepDiffException
:members:
:show-inheritance:
:undoc-members:
* - DocumentNotFound
- .. autoexception:: deckhand.errors.DocumentNotFound
:members:
:show-inheritance:
:undoc-members:
* - DuplicateDocumentExists
- .. autoexception:: deckhand.errors.DuplicateDocumentExists
:members:
:show-inheritance:
:undoc-members:
* - EncryptionSourceNotFound
- .. autoexception:: deckhand.errors.EncryptionSourceNotFound
:members:
:show-inheritance:
:undoc-members:
* - InvalidDocumentFormat
- .. autoexception:: deckhand.errors.InvalidDocumentFormat
:members:
:show-inheritance:
:undoc-members:
* - IndeterminateDocumentParent
- .. autoexception:: deckhand.errors.IndeterminateDocumentParent
:members:
:show-inheritance:
:undoc-members:
* - InvalidInputException
- .. autoexception:: deckhand.errors.InvalidInputException
:members:
:show-inheritance:
:undoc-members:
* - LayeringPolicyNotFound
- .. autoexception:: deckhand.errors.LayeringPolicyNotFound
:members:
:show-inheritance:
:undoc-members:
* - MissingDocumentKey
- .. autoexception:: deckhand.errors.MissingDocumentKey
:members:
:show-inheritance:
:undoc-members:
* - MissingDocumentPattern
- .. autoexception:: deckhand.errors.MissingDocumentPattern
:members:
:show-inheritance:
:undoc-members:
* - PolicyNotAuthorized
- .. autoexception:: deckhand.errors.PolicyNotAuthorized
:members:
:show-inheritance:
:undoc-members:
* - RevisionTagBadFormat
- .. autoexception:: deckhand.errors.RevisionTagBadFormat
:members:
:show-inheritance:
:undoc-members:
* - RevisionTagNotFound
- .. autoexception:: deckhand.errors.RevisionTagNotFound
:members:
:show-inheritance:
:undoc-members:
* - RevisionNotFound
- .. autoexception:: deckhand.errors.RevisionNotFound
:members:
:show-inheritance:
:undoc-members:
* - SingletonDocumentConflict
- .. autoexception:: deckhand.errors.SingletonDocumentConflict
:members:
:show-inheritance:
:undoc-members:
* - SubstitutionDependencyCycle
- .. autoexception:: deckhand.errors.SubstitutionDependencyCycle
:members:
:show-inheritance:
:undoc-members:
* - SubstitutionSourceDataNotFound
- .. autoexception:: deckhand.errors.SubstitutionSourceDataNotFound
:members:
:show-inheritance:
:undoc-members:
* - SubstitutionSourceNotFound
- .. autoexception:: deckhand.errors.SubstitutionSourceNotFound
:members:
:show-inheritance:
:undoc-members:
* - UnknownSubstitutionError
- .. autoexception:: deckhand.errors.UnknownSubstitutionError
:members:
:show-inheritance:
:undoc-members:
* - UnsupportedActionMethod
- .. autoexception:: deckhand.errors.UnsupportedActionMethod
:members:
:show-inheritance:
:undoc-members:
* - ValidationNotFound
- .. autoexception:: deckhand.errors.ValidationNotFound
:members:
:show-inheritance:
:undoc-members:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -28,30 +28,25 @@ site configuration data, including sensitive data. Secrets can be stored using
specialized secret storage management services like Barbican and later specialized secret storage management services like Barbican and later
substituted into finalized or "rendered" documents. substituted into finalized or "rendered" documents.
The service understands a variety of document formats, the combination of which The service understands a variety of document types, the combination of which
describe the manner in which Deckhand renders finalized documents for describe the manner in which Deckhand renders finalized documents for
consumption by other Airship services. consumption by other Airship services.
Overview
========
.. toctree::
:maxdepth: 2
overview
User's Guide User's Guide
============ ============
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
getting-started users/index
overview
revision-history
documents
document-types
encryption
validation
rendering
substitution
layering
replacement
api_ref
api_client
exceptions
Developer's Guide Developer's Guide
================= =================
@ -59,11 +54,15 @@ Developer's Guide
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
HACKING developers/index
REVIEWING
developer-overview Operator's Guide
policy-enforcement ================
testing
.. toctree::
:maxdepth: 2
operators/index
Release Notes Release Notes
============= =============
@ -71,7 +70,7 @@ Release Notes
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
releasenotes/index.rst releasenotes/index
Glossary Glossary
======== ========

View File

@ -0,0 +1,111 @@
..
Copyright 2017 AT&T Intellectual Property.
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.
Deckhand Exceptions
===================
.. autoexception:: deckhand.errors.BarbicanClientException
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.BarbicanServerException
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.DeepDiffException
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.DocumentNotFound
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.DuplicateDocumentExists
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.EncryptionSourceNotFound
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.InvalidDocumentFormat
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.IndeterminateDocumentParent
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.InvalidInputException
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.LayeringPolicyNotFound
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.MissingDocumentKey
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.MissingDocumentPattern
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.PolicyNotAuthorized
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.RevisionTagBadFormat
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.RevisionTagNotFound
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.RevisionNotFound
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.SingletonDocumentConflict
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.SubstitutionDependencyCycle
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.SubstitutionSourceDataNotFound
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.SubstitutionSourceNotFound
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.UnknownSubstitutionError
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.UnsupportedActionMethod
:members:
:show-inheritance:
:undoc-members:
.. autoexception:: deckhand.errors.ValidationNotFound
:members:
:show-inheritance:
:undoc-members:

View File

@ -0,0 +1,32 @@
..
Copyright 2018 AT&T Intellectual Property.
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.
Operator's Guide
================
.. toctree::
:maxdepth: 2
api_ref
api_client
exceptions
Indices and tables
------------------
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

View File

@ -17,17 +17,17 @@
Overview Overview
======== ========
Deckhand is a storage service for YAML-based configuration documents. Deckhand Deckhand provides document revision management, storage and mutation
stores the documents using version control: Each time a collection of documents functionality upon which the rest of the `Airship`_ components rely for
is passed to Deckhand, a new revision is created. Thus, documents have a orchestration of infrastructure provisioning. Deckhand understands declarative
revision history, allowing complex configurations to be incrementally modified YAML documents that define, end-to-end, the configuration of sites: from the
and validated. For example, if the first revision of documents fail validation, hardware -- encompassing network topology and hardware and host profile
deployers can make modifications to the documents and submit them to Deckhand information -- up to the software level that comprises the overcloud.
again, until the documents pass validation and are ready to be rendered into
their finalized state. .. _Airship: https://www.airshipit.org
Core Responsibilities Core Responsibilities
===================== ---------------------
* *revision history* - improves auditability and enables services to provide * *revision history* - improves auditability and enables services to provide
functional validation of a well-defined collection of documents that are functional validation of a well-defined collection of documents that are

View File

@ -0,0 +1,39 @@
..
Copyright 2018 AT&T Intellectual Property.
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.
User's Guide
============
.. toctree::
:maxdepth: 2
getting-started
revision-history
documents
document-types
encryption
validation
rendering
substitution
layering
replacement
Indices and tables
------------------
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

View File

@ -271,11 +271,11 @@ document) will be:
Recursive Replacement of Patterns Recursive Replacement of Patterns
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Patterns may also be replaced recursively. This can be achieved by using Patterns may also be replaced recursively. This can be achieved by specifying
specifying a ``pattern`` value and ``recurse`` as ``True`` (it otherwise a ``pattern`` value and ``recurse`` as ``True`` (it otherwise defaults to
defaults to ``False``). Best practice is to limit the scope of the recursion ``False``). Best practice is to limit the scope of the recursion as much as
as much as possible: e.g. avoid passing in "$" as the ``jsonpath``, but rather possible: e.g. avoid passing in "$" as the ``jsonpath``, but rather a JSON path
a JSON path that lives closer to the nested strings in question. that lives closer to the nested strings in question.
.. note:: .. note::

View File

@ -210,7 +210,7 @@ Base Schema
Base JSON schema against which all Deckhand documents are validated. Base JSON schema against which all Deckhand documents are validated.
.. literalinclude:: ../../deckhand/engine/schemas/base_schema.yaml .. literalinclude:: ../../../deckhand/engine/schemas/base_schema.yaml
:language: yaml :language: yaml
:lines: 15- :lines: 15-
:caption: Base schema that applies to all documents. :caption: Base schema that applies to all documents.
@ -231,7 +231,7 @@ ingested by Deckhand.
configure Deckhand behavior, like LayeringPolicy, ValidationPolicy, configure Deckhand behavior, like LayeringPolicy, ValidationPolicy,
and DataSchema documents. and DataSchema documents.
.. literalinclude:: ../../deckhand/engine/schemas/metadata_control.yaml .. literalinclude:: ../../../deckhand/engine/schemas/metadata_control.yaml
:language: yaml :language: yaml
:lines: 15- :lines: 15-
:caption: Schema for ``metadata/Control`` metadata document sections. :caption: Schema for ``metadata/Control`` metadata document sections.
@ -242,7 +242,7 @@ ingested by Deckhand.
document type is validated. Applies to all site definition documents or document type is validated. Applies to all site definition documents or
"regular" documents that require rendering. "regular" documents that require rendering.
.. literalinclude:: ../../deckhand/engine/schemas/metadata_document.yaml .. literalinclude:: ../../../deckhand/engine/schemas/metadata_document.yaml
:language: yaml :language: yaml
:lines: 15- :lines: 15-
:caption: Schema for ``metadata/Document`` metadata document sections. :caption: Schema for ``metadata/Document`` metadata document sections.
@ -270,7 +270,7 @@ corresponding to the created revision.
``deckhand/CertificateAuthorityKey/v1`` schema are validated. ``deckhand/CertificateAuthorityKey/v1`` schema are validated.
.. literalinclude:: .. literalinclude::
../../deckhand/engine/schemas/certificate_authority_key_schema.yaml ../../../deckhand/engine/schemas/certificate_authority_key_schema.yaml
:language: yaml :language: yaml
:lines: 15- :lines: 15-
:caption: Schema for ``CertificateAuthorityKey`` documents. :caption: Schema for ``CertificateAuthorityKey`` documents.
@ -284,7 +284,7 @@ corresponding to the created revision.
``deckhand/CertificateAuthority/v1`` schema are validated. ``deckhand/CertificateAuthority/v1`` schema are validated.
.. literalinclude:: .. literalinclude::
../../deckhand/engine/schemas/certificate_authority_schema.yaml ../../../deckhand/engine/schemas/certificate_authority_schema.yaml
:language: yaml :language: yaml
:lines: 15- :lines: 15-
:caption: Schema for ``CertificateAuthority`` documents. :caption: Schema for ``CertificateAuthority`` documents.
@ -297,7 +297,7 @@ corresponding to the created revision.
JSON schema against which all documents with ``deckhand/CertificateKey/v1`` JSON schema against which all documents with ``deckhand/CertificateKey/v1``
schema are validated. schema are validated.
.. literalinclude:: ../../deckhand/engine/schemas/certificate_key_schema.yaml .. literalinclude:: ../../../deckhand/engine/schemas/certificate_key_schema.yaml
:language: yaml :language: yaml
:lines: 15- :lines: 15-
:caption: Schema for ``CertificateKey`` documents. :caption: Schema for ``CertificateKey`` documents.
@ -310,7 +310,7 @@ corresponding to the created revision.
JSON schema against which all documents with ``deckhand/Certificate/v1`` JSON schema against which all documents with ``deckhand/Certificate/v1``
schema are validated. schema are validated.
.. literalinclude:: ../../deckhand/engine/schemas/certificate_schema.yaml .. literalinclude:: ../../../deckhand/engine/schemas/certificate_schema.yaml
:language: yaml :language: yaml
:lines: 15- :lines: 15-
:caption: Schema for ``Certificate`` documents. :caption: Schema for ``Certificate`` documents.
@ -323,7 +323,7 @@ corresponding to the created revision.
JSON schema against which all documents with ``deckhand/LayeringPolicy/v1`` JSON schema against which all documents with ``deckhand/LayeringPolicy/v1``
schema are validated. schema are validated.
.. literalinclude:: ../../deckhand/engine/schemas/layering_policy_schema.yaml .. literalinclude:: ../../../deckhand/engine/schemas/layering_policy_schema.yaml
:language: yaml :language: yaml
:lines: 15- :lines: 15-
:caption: Schema for ``LayeringPolicy`` documents. :caption: Schema for ``LayeringPolicy`` documents.
@ -336,7 +336,7 @@ corresponding to the created revision.
JSON schema against which all documents with ``deckhand/PrivateKey/v1`` JSON schema against which all documents with ``deckhand/PrivateKey/v1``
schema are validated. schema are validated.
.. literalinclude:: ../../deckhand/engine/schemas/passphrase_schema.yaml .. literalinclude:: ../../../deckhand/engine/schemas/passphrase_schema.yaml
:language: yaml :language: yaml
:lines: 15- :lines: 15-
:caption: Schema for ``PrivateKey`` documents. :caption: Schema for ``PrivateKey`` documents.
@ -349,7 +349,7 @@ corresponding to the created revision.
JSON schema against which all documents with ``deckhand/PublicKey/v1`` JSON schema against which all documents with ``deckhand/PublicKey/v1``
schema are validated. schema are validated.
.. literalinclude:: ../../deckhand/engine/schemas/public_key_schema.yaml .. literalinclude:: ../../../deckhand/engine/schemas/public_key_schema.yaml
:language: yaml :language: yaml
:lines: 15- :lines: 15-
:caption: Schema for ``PublicKey`` documents. :caption: Schema for ``PublicKey`` documents.
@ -362,7 +362,7 @@ corresponding to the created revision.
JSON schema against which all documents with ``deckhand/Passphrase/v1`` JSON schema against which all documents with ``deckhand/Passphrase/v1``
schema are validated. schema are validated.
.. literalinclude:: ../../deckhand/engine/schemas/private_key_schema.yaml .. literalinclude:: ../../../deckhand/engine/schemas/private_key_schema.yaml
:language: yaml :language: yaml
:lines: 15- :lines: 15-
:caption: Schema for ``Passphrase`` documents. :caption: Schema for ``Passphrase`` documents.
@ -376,7 +376,7 @@ corresponding to the created revision.
schema are validated. schema are validated.
.. literalinclude:: .. literalinclude::
../../deckhand/engine/schemas/validation_policy_schema.yaml ../../../deckhand/engine/schemas/validation_policy_schema.yaml
:language: yaml :language: yaml
:lines: 15- :lines: 15-
:caption: Schema for ``ValidationPolicy`` documents. :caption: Schema for ``ValidationPolicy`` documents.