summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Rivera <stefanor@debian.org>2022-10-19 07:35:05 +0100
committerStefano Rivera <stefanor@debian.org>2022-10-19 07:35:05 +0100
commit6b4dd8b2ceb344de9aaed6b3322dd8581b6fa462 (patch)
tree11b37359206cd17deac1b595da006d8f267be698
Import python-launchpadlib_1.10.17.orig.tar.gz
[dgit import orig python-launchpadlib_1.10.17.orig.tar.gz]
-rw-r--r--CONTRIBUTING.rst40
-rw-r--r--COPYING.txt165
-rw-r--r--MANIFEST.in5
-rw-r--r--NEWS.rst373
-rw-r--r--PKG-INFO427
-rw-r--r--README.rst57
-rw-r--r--pyproject.toml3
-rw-r--r--setup.cfg13
-rwxr-xr-xsetup.py106
-rw-r--r--src/launchpadlib.egg-info/PKG-INFO427
-rw-r--r--src/launchpadlib.egg-info/SOURCES.txt44
-rw-r--r--src/launchpadlib.egg-info/dependency_links.txt1
-rw-r--r--src/launchpadlib.egg-info/not-zip-safe1
-rw-r--r--src/launchpadlib.egg-info/requires.txt22
-rw-r--r--src/launchpadlib.egg-info/top_level.txt1
-rw-r--r--src/launchpadlib/__init__.py22
-rw-r--r--src/launchpadlib/apps.py49
-rw-r--r--src/launchpadlib/credentials.py868
-rw-r--r--src/launchpadlib/docs/CONTRIBUTING.rst40
-rw-r--r--src/launchpadlib/docs/Makefile20
-rw-r--r--src/launchpadlib/docs/NEWS.rst373
-rw-r--r--src/launchpadlib/docs/command-line.rst40
-rw-r--r--src/launchpadlib/docs/conf.py174
-rw-r--r--src/launchpadlib/docs/files/mugshot.pngbin0 -> 2260 bytes
-rw-r--r--src/launchpadlib/docs/hosted-files.rst103
-rw-r--r--src/launchpadlib/docs/index.rst33
-rw-r--r--src/launchpadlib/docs/introduction.rst415
-rw-r--r--src/launchpadlib/docs/operations.rst27
-rw-r--r--src/launchpadlib/docs/people.rst223
-rw-r--r--src/launchpadlib/docs/toplevel.rst121
-rw-r--r--src/launchpadlib/errors.py20
-rw-r--r--src/launchpadlib/launchpad.py805
-rw-r--r--src/launchpadlib/testing/__init__.py0
-rw-r--r--src/launchpadlib/testing/helpers.py233
-rw-r--r--src/launchpadlib/testing/launchpad-wadl.xml37799
-rw-r--r--src/launchpadlib/testing/launchpad.py620
-rw-r--r--src/launchpadlib/testing/resources.py55
-rw-r--r--src/launchpadlib/testing/testing-wadl.xml346
-rw-r--r--src/launchpadlib/testing/tests/__init__.py0
-rw-r--r--src/launchpadlib/testing/tests/test_launchpad.py422
-rw-r--r--src/launchpadlib/tests/__init__.py16
-rw-r--r--src/launchpadlib/tests/test_credential_store.py224
-rw-r--r--src/launchpadlib/tests/test_http.py275
-rw-r--r--src/launchpadlib/tests/test_launchpad.py893
-rw-r--r--src/launchpadlib/uris.py139
45 files changed, 46040 insertions, 0 deletions
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
new file mode 100644
index 0000000..137032a
--- /dev/null
+++ b/CONTRIBUTING.rst
@@ -0,0 +1,40 @@
+..
+ This file is part of lazr.launchpadlib.
+
+ lazr.launchpadlib is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation, version 3 of the License.
+
+ lazr.launchpadlib is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with lazr.launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+============
+Contributing
+============
+
+To run this project's tests, use `tox <https://tox.readthedocs.io/en/latest/>`_.
+
+To update the `project's documentation
+<https://launchpadlib.readthedocs.io/en/latest/>`_ you need to trigger a manual
+build on the project's dashboard on https://readthedocs.org.
+
+
+Getting help
+------------
+
+If you find bugs in this package, you can report them here:
+
+ https://launchpad.net/launchpadlib
+
+If you want to discuss this package, join the team and mailing list here:
+
+ https://launchpad.net/~lazr-developers
+
+or send a message to:
+
+ lazr-developers@lists.launchpad.net
diff --git a/COPYING.txt b/COPYING.txt
new file mode 100644
index 0000000..fc8a5de
--- /dev/null
+++ b/COPYING.txt
@@ -0,0 +1,165 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..9c42ba9
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,5 @@
+exclude .gitignore
+global-include *.txt *.rst *.xml *.xsl *.png
+include src/launchpadlib/docs/Makefile src/launchpadlib/docs/conf.py
+prune src/launchpadlib/docs/_build
+prune .tox
diff --git a/NEWS.rst b/NEWS.rst
new file mode 100644
index 0000000..5c2cf8b
--- /dev/null
+++ b/NEWS.rst
@@ -0,0 +1,373 @@
+=====================
+NEWS for launchpadlib
+=====================
+
+1.10.17 (2022-10-15)
+====================
+- Generate coverage report.
+- Use ``pytest`` as test runner.
+- Fix doctests for Python 3.
+
+1.10.16 (2022-01-21)
+====================
+- Add ``pre-commit`` configuration.
+- Remove some obsolete scripts from ``contrib/``.
+- Apply ``black`` code formatter.
+- Publish documentation on Read the Docs.
+- Remove remnants of ``simplejson`` in favour of ``json``.
+- Apply inclusive naming via the ``woke`` ``pre-commit`` hook.
+- Optionally get credentials file from ``LP_CREDENTIALS_FILE`` environment
+ variable. [bug=737473]
+
+1.10.15.1 (2021-10-27)
+======================
+- Re-release without stray files in sdist.
+
+1.10.15 (2021-10-27)
+====================
+- Move dependencies of launchpadlib.testing to a new ``testing`` extra.
+ [bug=1019700]
+- Stop excluding MANIFEST.in from the sdist.
+- Declare support for Python 3.9 and 3.10.
+- Move code hosting to git (https://code.launchpad.net/launchpadlib).
+
+1.10.14 (2021-09-13)
+====================
+- Adjust versioning strategy to avoid importing pkg_resources, which is slow
+ in large environments.
+
+1.10.13 (2020-04-19)
+====================
+- Fix test runs under sudo.
+
+1.10.12 (2020-04-17)
+====================
+- Postpone keyring.errors import in the same way that we postpone importing
+ keyring itself.
+
+1.10.11 (2020-04-14)
+====================
+- Don't store credentials or open a browser window when running under sudo.
+ [bug=1825014,1862948]
+- Fall back to in-memory credentials store if no keyring backend is
+ available. [bug=1864204]
+
+1.10.10 (2020-02-04)
+====================
+- Fix AccessToken.from_string crash on Python 3.8. [bug=1861873]
+
+1.10.9 (2019-11-28)
+===================
+- Explicitly install version.txt; launchpadlib requires it.
+
+1.10.8 (2019-11-26)
+===================
+- Squash a deprecation warning on Python >= 3.7 in
+ launchpadlib.testing.launchpad.
+- Switch from buildout to tox.
+- Weaken hosted-files test slightly to avoid problems with zope.publisher >=
+ 4.2.2.
+
+1.10.7 (2019-05-22)
+===================
+- Change 'dev' URLs from launchpad.dev to launchpad.test.
+
+1.10.6 (2018-03-08)
+===================
+- Fix saving of credentials in python3 with gnome-keyring. [bug=1685962]
+
+1.10.5 (2017-02-02)
+===================
+- Fix AccessToken.from_string crash on Python 3. [bug=1471927]
+- Fix fallback if authorizing a token with a browser raises webbrowser.Error.
+- Stop introduction.txt doctest from writing to $HOME.
+
+1.10.4 (2016-07-12)
+===================
+- Fix _bad_oauth_token crash on Python 3. [bug=1471894]
+- Time out make_end_user_authorize_token after 15 minutes.
+- Ignore PendingDeprecationWarning from lazr.restfulclient. [bug=1473577]
+- Ask forgiveness rather than permission when creating cache directories.
+- Fix browser token authorization on OS X. [bug=1516080]
+
+1.10.3 (2014-12-05)
+===================
+- Port to Python3.
+- Detect proxies from the environment by default.
+
+1.10.2 (2012-07-05)
+===================
+- Typo in the doctest fix, discovered when trying to integrate with launchpad
+ itself. [bug=1020667]
+
+1.10.1 (2012-07-04)
+===================
+- Fix a doctest in introduction.txt so that the test suite runs with
+ python-2.7 (note the doctests only run when running integrated with
+ launchpad's test suite itself). [bug=1020667]
+
+1.10.0 (2012-06-19)
+===================
+- Add environment variable, LP_DISABLE_SSL_CERTIFICATE_VALIDATION, to
+ disable SSL certificate checks. Most useful when testing against
+ development servers.
+
+1.9.12 (2011-12-05)
+===================
+- Move keyring base64 encoding to KeyringCredential and be more
+ defensive about decoding. [bug=900307]
+
+1.9.11 (2011-11-21)
+===================
+- 1.9.10 was a bad release due to incomplete NEWS entries.
+
+- Add fake Launchpad web service for unit test.
+
+- Improve HACKING documentation.
+
+- Improve launchpadlib directory discovery on Windows.
+
+- Added script to delete spurious bugtasks or split a bugtask from a bug.
+
+- Properly handle Unicode passwords if returned by the keyring.
+
+- Base 64 encode serialized credentials before putting in keyring/wallet.
+
+1.9.10 (2011-11-21)
+===================
+- Base 64 encode serialized credentials before putting in keyring/wallet.
+
+1.9.9 (2011-07-27)
+==================
+
+- Fix a failing test for lazr.restfulclient 0.12.0.
+
+1.9.8 (2011-02-28)
+==================
+
+- Detect the error Launchpad sends when it doesn't recognize an access
+ token, and get a new token.
+
+1.9.7 (2011-02-15)
+==================
+
+- Slightly tweaked the behavior of EDGE_SERVICE_ROOT, and improved tests.
+
+1.9.6 (2011-02-14)
+==================
+
+- Added EDGE_SERVICE_ROOT and the 'edge' alias back, though they both
+ operate on production behind the scenes. Using the 'edge' alias will
+ cause a deprecation warning.
+
+1.9.5 (2011-02-08)
+==================
+
+- Fixed a bug that prevented the deprecated get_token_and_login code
+ from working, and that required that users of get_token_and_login
+ get a new token on every usage.
+
+1.9.4 (2011-01-18)
+==================
+
+- Removed references to the 'edge' service root, which is being phased out.
+
+- Fixed a minor bug in the upload_release_tarball contrib script which
+ was causing tarballs to be uploaded with the wrong media type.
+
+- The XSLT stylesheet for converting the Launchpad WADL into HTML
+ documentation has been moved back into Launchpad.
+
+1.9.3 (2011-01-10)
+==================
+
+- The keyring package import is now delayed until the keyring needs to be
+ accessed. This reduces launchapdlib users' exposure to unintended side
+ effects of importing keyring (KWallet authorization dialogs and the
+ registration of a SIGCHLD handler).
+
+1.9.2 (2011-01-07)
+==================
+
+- Added a missing import.
+
+1.9.1 (2011-01-06)
+==================
+
+- Corrected a test failure.
+
+1.9.0 (2011-01-05)
+==================
+
+- When an authorization token expires or becomes invalid, attempt to
+ acquire a new one, even in the middle of a session, rather than
+ crashing.
+
+- The HTML generated by wadl-to-refhtml.xsl now validates.
+
+- Most of the helper login methods have been deprecated. There are now
+ only two helper methods:
+
+ * Launchpad.login_anonymously, for anonymous credential-free access.
+ * Launchpad.login_with, for programs that need a credential.
+
+
+1.8.0 (2010-11-15)
+==================
+
+- Store authorization tokens in the Gnome keyring or KDE wallet, when
+ available. The credentials_file parameter of Launchpad.login_with() is now
+ ignored.
+
+- By default, Launchpad.login_with() now asks Launchpad for
+ desktop-wide integration. This removes the need for each individual
+ application to get its own OAuth token.
+
+1.7.0 (2010-09-23)
+==================
+
+- Removed "fake Launchpad browser" code that didn't work and was
+ misleading developers.
+
+- Added support for http://qastaging.launchpad.net by adding
+ astaging to the uris.
+
+1.6.5 (2010-08-23)
+==================
+
+- Make launchpadlib compatible with the latest lazr.restfulclient.
+
+1.6.4 (2010-08-18)
+==================
+
+- Test fixes.
+
+1.6.3 (2010-08-12)
+==================
+
+- Instead of making the end-user hit Enter after authorizing an
+ application to access their Launchpad account, launchpadlib will
+ automatically poll Launchpad until the user makes a decision.
+
+- launchpadlib now raises a more helpful exception when the end-user
+ explicitly denies access to a launchpadlib application.
+
+- Improved the XSLT stylesheet to reflect Launchpad's more complex
+ top-level structure. [bug=286941]
+
+- Test fixes. [bug=488448,616055]
+
+1.6.2 (2010-06-21)
+==================
+
+- Extended the optimization from version 1.6.1 to apply to Launchpad's
+ top-level collection of people.
+
+1.6.1 (2010-06-16)
+==================
+
+- Added an optimization that lets launchpadlib avoid making an HTTP
+ request in some situations.
+
+1.6.0 (2010-04-07)
+==================
+
+- Fixed a test to work against the latest version of Launchpad.
+
+1.5.8 (2010-03-25)
+==================
+
+- Use version 1.0 of the Launchpad web service by default.
+
+1.5.7 (2010-03-16)
+==================
+
+- Send a Referer header whenever making requests to the Launchpad
+ website (as opposed to the web service) to avoid falling afoul of
+ new cross-site-request-forgery countermeasures.
+
+1.5.6 (2010-03-04)
+==================
+
+- Fixed a minor bug when using login_with() to access a version of the
+ Launchpad web service other than the default.
+
+- Added a check to catch old client code that would cause newer
+ versions of launchpadlib to make nonsensical requests to
+ https://api.launchpad.dev/beta/beta/, and raise a helpful exception
+ telling the developer how to fix it.
+
+1.5.5
+=====
+
+- Added the ability to access different versions of the Launchpad web
+ service.
+
+1.5.4 (2009-12-17)
+==================
+
+- Made it easy to get anonymous access to a Launchpad instance.
+
+- Made it easy to plug in different clients that take the user's
+ Launchpad login and password for purposes of authorizing a request
+ token. The most secure technique is still the default: to open the
+ user's web browser to the appropriate Launchpad page.
+
+- Introduced a command-line script bin/launchpad-credentials-console,
+ which takes the user's Launchpad login and password, and authorizes
+ a request token on their behalf.
+
+- Introduced a command-line script bin/launchpad-request-token, which
+ creates a request token on any Launchpad installation and dumps the
+ JSON description of that token to standard output.
+
+- Shorthand service names like 'edge' should now be respected
+ everywhere in launchpadlib.
+
+1.5.3 (2009-10-22)
+==================
+
+- Moved some more code from launchpadlib into the more generic
+ lazr.restfulclient.
+
+1.5.2 (2009-10-01)
+==================
+
+- Added a number of new sample scripts from elsewhere.
+
+- Added a reference to the production Launchpad instance.
+
+- Made it easier to specify a Launchpad instance to run against.
+
+1.5.1 (2009-07-16)
+==================
+
+- Added a sample script for uploading a release tarball to Launchpad.
+
+1.5.0 (2009-07-09)
+==================
+
+- Most of launchpadlib's code has been moved to the generic
+ lazr.restfulclient library. launchpadlib now contains only code
+ specific to Launchpad. There should be no changes in functionality.
+
+- Moved bootstrap.py into the top-level directory. Having it in a
+ subdirectory with a top-level symlink was breaking installation on
+ Windows.
+
+- The notice to the end-user (that we're opening their web
+ browser) is now better formatted.
+
+1.0.1 (2009-05-30)
+==================
+
+- Correct tests for new launchpad cache behavior in librarian
+
+- Remove build dependency on setuptools_bzr because it was causing bzr to be
+ downloaded during installation of the package, which was unnecessary and
+ annoying.
+
+1.0 (2009-03-24)
+================
+
+- Initial release on PyPI
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..a1fb6fe
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,427 @@
+Metadata-Version: 2.1
+Name: launchpadlib
+Version: 1.10.17
+Summary: Script Launchpad through its web services interfaces. Officially supported.
+Home-page: https://help.launchpad.net/API/launchpadlib
+Download-URL: https://launchpad.net/launchpadlib/+download
+Author: The Launchpad developers
+Author-email: launchpadlib@lists.launchpad.net
+Maintainer: LAZR Developers
+Maintainer-email: lazr-developers@lists.launchpad.net
+License: LGPL v3
+Project-URL: Source, https://code.launchpad.net/launchpadlib
+Project-URL: Issue Tracker, https://bugs.launchpad.net/launchpadlib
+Project-URL: Documentation, https://launchpadlib.readthedocs.io/en/latest/
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Provides-Extra: docs
+Provides-Extra: testing
+Provides-Extra: test
+License-File: COPYING.txt
+
+..
+ This file is part of launchpadlib.
+
+ launchpadlib is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation, version 3 of the License.
+
+ launchpadlib is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+launchpadlib
+************
+
+See https://help.launchpad.net/API/launchpadlib .
+
+
+=====================
+NEWS for launchpadlib
+=====================
+
+1.10.17 (2022-10-15)
+====================
+- Generate coverage report.
+- Use ``pytest`` as test runner.
+- Fix doctests for Python 3.
+
+1.10.16 (2022-01-21)
+====================
+- Add ``pre-commit`` configuration.
+- Remove some obsolete scripts from ``contrib/``.
+- Apply ``black`` code formatter.
+- Publish documentation on Read the Docs.
+- Remove remnants of ``simplejson`` in favour of ``json``.
+- Apply inclusive naming via the ``woke`` ``pre-commit`` hook.
+- Optionally get credentials file from ``LP_CREDENTIALS_FILE`` environment
+ variable. [bug=737473]
+
+1.10.15.1 (2021-10-27)
+======================
+- Re-release without stray files in sdist.
+
+1.10.15 (2021-10-27)
+====================
+- Move dependencies of launchpadlib.testing to a new ``testing`` extra.
+ [bug=1019700]
+- Stop excluding MANIFEST.in from the sdist.
+- Declare support for Python 3.9 and 3.10.
+- Move code hosting to git (https://code.launchpad.net/launchpadlib).
+
+1.10.14 (2021-09-13)
+====================
+- Adjust versioning strategy to avoid importing pkg_resources, which is slow
+ in large environments.
+
+1.10.13 (2020-04-19)
+====================
+- Fix test runs under sudo.
+
+1.10.12 (2020-04-17)
+====================
+- Postpone keyring.errors import in the same way that we postpone importing
+ keyring itself.
+
+1.10.11 (2020-04-14)
+====================
+- Don't store credentials or open a browser window when running under sudo.
+ [bug=1825014,1862948]
+- Fall back to in-memory credentials store if no keyring backend is
+ available. [bug=1864204]
+
+1.10.10 (2020-02-04)
+====================
+- Fix AccessToken.from_string crash on Python 3.8. [bug=1861873]
+
+1.10.9 (2019-11-28)
+===================
+- Explicitly install version.txt; launchpadlib requires it.
+
+1.10.8 (2019-11-26)
+===================
+- Squash a deprecation warning on Python >= 3.7 in
+ launchpadlib.testing.launchpad.
+- Switch from buildout to tox.
+- Weaken hosted-files test slightly to avoid problems with zope.publisher >=
+ 4.2.2.
+
+1.10.7 (2019-05-22)
+===================
+- Change 'dev' URLs from launchpad.dev to launchpad.test.
+
+1.10.6 (2018-03-08)
+===================
+- Fix saving of credentials in python3 with gnome-keyring. [bug=1685962]
+
+1.10.5 (2017-02-02)
+===================
+- Fix AccessToken.from_string crash on Python 3. [bug=1471927]
+- Fix fallback if authorizing a token with a browser raises webbrowser.Error.
+- Stop introduction.txt doctest from writing to $HOME.
+
+1.10.4 (2016-07-12)
+===================
+- Fix _bad_oauth_token crash on Python 3. [bug=1471894]
+- Time out make_end_user_authorize_token after 15 minutes.
+- Ignore PendingDeprecationWarning from lazr.restfulclient. [bug=1473577]
+- Ask forgiveness rather than permission when creating cache directories.
+- Fix browser token authorization on OS X. [bug=1516080]
+
+1.10.3 (2014-12-05)
+===================
+- Port to Python3.
+- Detect proxies from the environment by default.
+
+1.10.2 (2012-07-05)
+===================
+- Typo in the doctest fix, discovered when trying to integrate with launchpad
+ itself. [bug=1020667]
+
+1.10.1 (2012-07-04)
+===================
+- Fix a doctest in introduction.txt so that the test suite runs with
+ python-2.7 (note the doctests only run when running integrated with
+ launchpad's test suite itself). [bug=1020667]
+
+1.10.0 (2012-06-19)
+===================
+- Add environment variable, LP_DISABLE_SSL_CERTIFICATE_VALIDATION, to
+ disable SSL certificate checks. Most useful when testing against
+ development servers.
+
+1.9.12 (2011-12-05)
+===================
+- Move keyring base64 encoding to KeyringCredential and be more
+ defensive about decoding. [bug=900307]
+
+1.9.11 (2011-11-21)
+===================
+- 1.9.10 was a bad release due to incomplete NEWS entries.
+
+- Add fake Launchpad web service for unit test.
+
+- Improve HACKING documentation.
+
+- Improve launchpadlib directory discovery on Windows.
+
+- Added script to delete spurious bugtasks or split a bugtask from a bug.
+
+- Properly handle Unicode passwords if returned by the keyring.
+
+- Base 64 encode serialized credentials before putting in keyring/wallet.
+
+1.9.10 (2011-11-21)
+===================
+- Base 64 encode serialized credentials before putting in keyring/wallet.
+
+1.9.9 (2011-07-27)
+==================
+
+- Fix a failing test for lazr.restfulclient 0.12.0.
+
+1.9.8 (2011-02-28)
+==================
+
+- Detect the error Launchpad sends when it doesn't recognize an access
+ token, and get a new token.
+
+1.9.7 (2011-02-15)
+==================
+
+- Slightly tweaked the behavior of EDGE_SERVICE_ROOT, and improved tests.
+
+1.9.6 (2011-02-14)
+==================
+
+- Added EDGE_SERVICE_ROOT and the 'edge' alias back, though they both
+ operate on production behind the scenes. Using the 'edge' alias will
+ cause a deprecation warning.
+
+1.9.5 (2011-02-08)
+==================
+
+- Fixed a bug that prevented the deprecated get_token_and_login code
+ from working, and that required that users of get_token_and_login
+ get a new token on every usage.
+
+1.9.4 (2011-01-18)
+==================
+
+- Removed references to the 'edge' service root, which is being phased out.
+
+- Fixed a minor bug in the upload_release_tarball contrib script which
+ was causing tarballs to be uploaded with the wrong media type.
+
+- The XSLT stylesheet for converting the Launchpad WADL into HTML
+ documentation has been moved back into Launchpad.
+
+1.9.3 (2011-01-10)
+==================
+
+- The keyring package import is now delayed until the keyring needs to be
+ accessed. This reduces launchapdlib users' exposure to unintended side
+ effects of importing keyring (KWallet authorization dialogs and the
+ registration of a SIGCHLD handler).
+
+1.9.2 (2011-01-07)
+==================
+
+- Added a missing import.
+
+1.9.1 (2011-01-06)
+==================
+
+- Corrected a test failure.
+
+1.9.0 (2011-01-05)
+==================
+
+- When an authorization token expires or becomes invalid, attempt to
+ acquire a new one, even in the middle of a session, rather than
+ crashing.
+
+- The HTML generated by wadl-to-refhtml.xsl now validates.
+
+- Most of the helper login methods have been deprecated. There are now
+ only two helper methods:
+
+ * Launchpad.login_anonymously, for anonymous credential-free access.
+ * Launchpad.login_with, for programs that need a credential.
+
+
+1.8.0 (2010-11-15)
+==================
+
+- Store authorization tokens in the Gnome keyring or KDE wallet, when
+ available. The credentials_file parameter of Launchpad.login_with() is now
+ ignored.
+
+- By default, Launchpad.login_with() now asks Launchpad for
+ desktop-wide integration. This removes the need for each individual
+ application to get its own OAuth token.
+
+1.7.0 (2010-09-23)
+==================
+
+- Removed "fake Launchpad browser" code that didn't work and was
+ misleading developers.
+
+- Added support for http://qastaging.launchpad.net by adding
+ astaging to the uris.
+
+1.6.5 (2010-08-23)
+==================
+
+- Make launchpadlib compatible with the latest lazr.restfulclient.
+
+1.6.4 (2010-08-18)
+==================
+
+- Test fixes.
+
+1.6.3 (2010-08-12)
+==================
+
+- Instead of making the end-user hit Enter after authorizing an
+ application to access their Launchpad account, launchpadlib will
+ automatically poll Launchpad until the user makes a decision.
+
+- launchpadlib now raises a more helpful exception when the end-user
+ explicitly denies access to a launchpadlib application.
+
+- Improved the XSLT stylesheet to reflect Launchpad's more complex
+ top-level structure. [bug=286941]
+
+- Test fixes. [bug=488448,616055]
+
+1.6.2 (2010-06-21)
+==================
+
+- Extended the optimization from version 1.6.1 to apply to Launchpad's
+ top-level collection of people.
+
+1.6.1 (2010-06-16)
+==================
+
+- Added an optimization that lets launchpadlib avoid making an HTTP
+ request in some situations.
+
+1.6.0 (2010-04-07)
+==================
+
+- Fixed a test to work against the latest version of Launchpad.
+
+1.5.8 (2010-03-25)
+==================
+
+- Use version 1.0 of the Launchpad web service by default.
+
+1.5.7 (2010-03-16)
+==================
+
+- Send a Referer header whenever making requests to the Launchpad
+ website (as opposed to the web service) to avoid falling afoul of
+ new cross-site-request-forgery countermeasures.
+
+1.5.6 (2010-03-04)
+==================
+
+- Fixed a minor bug when using login_with() to access a version of the
+ Launchpad web service other than the default.
+
+- Added a check to catch old client code that would cause newer
+ versions of launchpadlib to make nonsensical requests to
+ https://api.launchpad.dev/beta/beta/, and raise a helpful exception
+ telling the developer how to fix it.
+
+1.5.5
+=====
+
+- Added the ability to access different versions of the Launchpad web
+ service.
+
+1.5.4 (2009-12-17)
+==================
+
+- Made it easy to get anonymous access to a Launchpad instance.
+
+- Made it easy to plug in different clients that take the user's
+ Launchpad login and password for purposes of authorizing a request
+ token. The most secure technique is still the default: to open the
+ user's web browser to the appropriate Launchpad page.
+
+- Introduced a command-line script bin/launchpad-credentials-console,
+ which takes the user's Launchpad login and password, and authorizes
+ a request token on their behalf.
+
+- Introduced a command-line script bin/launchpad-request-token, which
+ creates a request token on any Launchpad installation and dumps the
+ JSON description of that token to standard output.
+
+- Shorthand service names like 'edge' should now be respected
+ everywhere in launchpadlib.
+
+1.5.3 (2009-10-22)
+==================
+
+- Moved some more code from launchpadlib into the more generic
+ lazr.restfulclient.
+
+1.5.2 (2009-10-01)
+==================
+
+- Added a number of new sample scripts from elsewhere.
+
+- Added a reference to the production Launchpad instance.
+
+- Made it easier to specify a Launchpad instance to run against.
+
+1.5.1 (2009-07-16)
+==================
+
+- Added a sample script for uploading a release tarball to Launchpad.
+
+1.5.0 (2009-07-09)
+==================
+
+- Most of launchpadlib's code has been moved to the generic
+ lazr.restfulclient library. launchpadlib now contains only code
+ specific to Launchpad. There should be no changes in functionality.
+
+- Moved bootstrap.py into the top-level directory. Having it in a
+ subdirectory with a top-level symlink was breaking installation on
+ Windows.
+
+- The notice to the end-user (that we're opening their web
+ browser) is now better formatted.
+
+1.0.1 (2009-05-30)
+==================
+
+- Correct tests for new launchpad cache behavior in librarian
+
+- Remove build dependency on setuptools_bzr because it was causing bzr to be
+ downloaded during installation of the package, which was unnecessary and
+ annoying.
+
+1.0 (2009-03-24)
+================
+
+- Initial release on PyPI
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..42c263c
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,57 @@
+Script Launchpad through its web services interfaces. Officially supported.
+
+..
+ Copyright (C) 2008-2009 Canonical Ltd.
+
+ This file is part of launchpadlib.
+
+ launchpadlib is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation, version 3 of the License.
+
+ launchpadlib is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+
+Overview
+========
+
+launchpadlib is a standalone Python library for scripting Launchpad through
+its web services interface. It is the officially supported bindings to the
+Launchpad web service, but there may be third party bindings that provide
+scriptability for other languages.
+
+Launchpad (http://launchpad.net) is a a free software hosting and development
+website, making it easy to collaborate across multiple projects. For
+information on Launchpad itself, see
+
+ https://help.launchpad.net
+
+More information on the Launchpad web service, such as user guides and
+reference documentation, are available at
+
+ https://help.launchpad.net/API
+
+Client documentation for launchpadlib is available at
+
+ https://help.launchpad.net/API/launchpadlib
+
+Please submit bug reports to
+
+ https://bugs.launchpad.net/launchpadlib
+
+
+Credential storage
+==================
+
+After authorizing an application to access Launchpad on a user's behalf,
+launchpadlib will attempt to store those credentials in the most
+system-appropriate way. That is, on Gnome it will store them in the Gnome
+keyring, on KDE it will store them in the KDE wallet or optionally it may try
+to store them on disk (filename will be obtained from ``LP_CREDENTIALS_FILE``
+environment variable if not specified in script).
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..486bbe6
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,3 @@
+[tool.black]
+line-length = 79
+target-version = ['py27']
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..fec4b1a
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,13 @@
+[bdist_wheel]
+universal = 1
+
+[flake8]
+ignore =
+ E203
+ W503
+ W504
+
+[egg_info]
+tag_build =
+tag_date = 0
+
diff --git a/setup.py b/setup.py
new file mode 100755
index 0000000..f36ca63
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,106 @@
+#!/usr/bin/env python
+
+# Copyright 2008-2009 Canonical Ltd.
+#
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by the
+# Free Software Foundation, version 3 of the License.
+#
+# launchpadlib is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+# for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+"""Setup for the launchpadlib library."""
+
+from setuptools import setup, find_packages
+
+
+# generic helpers primarily for the long_description
+def generate(*docname_or_string):
+ marker = ".. pypi description ends here"
+ res = []
+ for value in docname_or_string:
+ if value.endswith(".rst"):
+ with open(value) as f:
+ value = f.read()
+ idx = value.find(marker)
+ if idx >= 0:
+ value = value[:idx]
+ res.append(value)
+ if not value.endswith("\n"):
+ res.append("")
+ return "\n".join(res)
+
+
+# end generic helpers
+
+
+install_requires = [
+ "httplib2",
+ 'importlib-metadata; python_version < "3.8"',
+ "keyring",
+ "lazr.restfulclient>=0.9.19",
+ "lazr.uri",
+ "six",
+]
+
+setup(
+ name="launchpadlib",
+ version="1.10.17",
+ packages=find_packages("src"),
+ package_dir={"": "src"},
+ include_package_data=True,
+ zip_safe=False,
+ author="The Launchpad developers",
+ author_email="launchpadlib@lists.launchpad.net",
+ maintainer="LAZR Developers",
+ maintainer_email="lazr-developers@lists.launchpad.net",
+ download_url="https://launchpad.net/launchpadlib/+download",
+ description=open("README.rst").readline().strip(),
+ long_description=generate("src/launchpadlib/docs/index.rst", "NEWS.rst"),
+ license="LGPL v3",
+ install_requires=install_requires,
+ url="https://help.launchpad.net/API/launchpadlib",
+ project_urls={
+ "Source": "https://code.launchpad.net/launchpadlib",
+ "Issue Tracker": "https://bugs.launchpad.net/launchpadlib",
+ "Documentation": "https://launchpadlib.readthedocs.io/en/latest/",
+ },
+ classifiers=[
+ "Development Status :: 5 - Production/Stable",
+ "Intended Audience :: Developers",
+ "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", # noqa: E501
+ "Operating System :: OS Independent",
+ "Programming Language :: Python",
+ "Programming Language :: Python :: 2",
+ "Programming Language :: Python :: 2.7",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3.5",
+ "Programming Language :: Python :: 3.6",
+ "Programming Language :: Python :: 3.7",
+ "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
+ ],
+ extras_require={
+ "docs": ["Sphinx"],
+ # Dependencies useful when testing other packages with launchpadlib.
+ "testing": [
+ "testresources",
+ "wadllib",
+ ],
+ # Dependencies only needed by launchpadlib's own tests.
+ "test": [
+ "coverage",
+ 'mock; python_version < "3"',
+ "pytest",
+ ],
+ },
+ test_suite="launchpadlib.tests",
+)
diff --git a/src/launchpadlib.egg-info/PKG-INFO b/src/launchpadlib.egg-info/PKG-INFO
new file mode 100644
index 0000000..a1fb6fe
--- /dev/null
+++ b/src/launchpadlib.egg-info/PKG-INFO
@@ -0,0 +1,427 @@
+Metadata-Version: 2.1
+Name: launchpadlib
+Version: 1.10.17
+Summary: Script Launchpad through its web services interfaces. Officially supported.
+Home-page: https://help.launchpad.net/API/launchpadlib
+Download-URL: https://launchpad.net/launchpadlib/+download
+Author: The Launchpad developers
+Author-email: launchpadlib@lists.launchpad.net
+Maintainer: LAZR Developers
+Maintainer-email: lazr-developers@lists.launchpad.net
+License: LGPL v3
+Project-URL: Source, https://code.launchpad.net/launchpadlib
+Project-URL: Issue Tracker, https://bugs.launchpad.net/launchpadlib
+Project-URL: Documentation, https://launchpadlib.readthedocs.io/en/latest/
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Provides-Extra: docs
+Provides-Extra: testing
+Provides-Extra: test
+License-File: COPYING.txt
+
+..
+ This file is part of launchpadlib.
+
+ launchpadlib is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation, version 3 of the License.
+
+ launchpadlib is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+launchpadlib
+************
+
+See https://help.launchpad.net/API/launchpadlib .
+
+
+=====================
+NEWS for launchpadlib
+=====================
+
+1.10.17 (2022-10-15)
+====================
+- Generate coverage report.
+- Use ``pytest`` as test runner.
+- Fix doctests for Python 3.
+
+1.10.16 (2022-01-21)
+====================
+- Add ``pre-commit`` configuration.
+- Remove some obsolete scripts from ``contrib/``.
+- Apply ``black`` code formatter.
+- Publish documentation on Read the Docs.
+- Remove remnants of ``simplejson`` in favour of ``json``.
+- Apply inclusive naming via the ``woke`` ``pre-commit`` hook.
+- Optionally get credentials file from ``LP_CREDENTIALS_FILE`` environment
+ variable. [bug=737473]
+
+1.10.15.1 (2021-10-27)
+======================
+- Re-release without stray files in sdist.
+
+1.10.15 (2021-10-27)
+====================
+- Move dependencies of launchpadlib.testing to a new ``testing`` extra.
+ [bug=1019700]
+- Stop excluding MANIFEST.in from the sdist.
+- Declare support for Python 3.9 and 3.10.
+- Move code hosting to git (https://code.launchpad.net/launchpadlib).
+
+1.10.14 (2021-09-13)
+====================
+- Adjust versioning strategy to avoid importing pkg_resources, which is slow
+ in large environments.
+
+1.10.13 (2020-04-19)
+====================
+- Fix test runs under sudo.
+
+1.10.12 (2020-04-17)
+====================
+- Postpone keyring.errors import in the same way that we postpone importing
+ keyring itself.
+
+1.10.11 (2020-04-14)
+====================
+- Don't store credentials or open a browser window when running under sudo.
+ [bug=1825014,1862948]
+- Fall back to in-memory credentials store if no keyring backend is
+ available. [bug=1864204]
+
+1.10.10 (2020-02-04)
+====================
+- Fix AccessToken.from_string crash on Python 3.8. [bug=1861873]
+
+1.10.9 (2019-11-28)
+===================
+- Explicitly install version.txt; launchpadlib requires it.
+
+1.10.8 (2019-11-26)
+===================
+- Squash a deprecation warning on Python >= 3.7 in
+ launchpadlib.testing.launchpad.
+- Switch from buildout to tox.
+- Weaken hosted-files test slightly to avoid problems with zope.publisher >=
+ 4.2.2.
+
+1.10.7 (2019-05-22)
+===================
+- Change 'dev' URLs from launchpad.dev to launchpad.test.
+
+1.10.6 (2018-03-08)
+===================
+- Fix saving of credentials in python3 with gnome-keyring. [bug=1685962]
+
+1.10.5 (2017-02-02)
+===================
+- Fix AccessToken.from_string crash on Python 3. [bug=1471927]
+- Fix fallback if authorizing a token with a browser raises webbrowser.Error.
+- Stop introduction.txt doctest from writing to $HOME.
+
+1.10.4 (2016-07-12)
+===================
+- Fix _bad_oauth_token crash on Python 3. [bug=1471894]
+- Time out make_end_user_authorize_token after 15 minutes.
+- Ignore PendingDeprecationWarning from lazr.restfulclient. [bug=1473577]
+- Ask forgiveness rather than permission when creating cache directories.
+- Fix browser token authorization on OS X. [bug=1516080]
+
+1.10.3 (2014-12-05)
+===================
+- Port to Python3.
+- Detect proxies from the environment by default.
+
+1.10.2 (2012-07-05)
+===================
+- Typo in the doctest fix, discovered when trying to integrate with launchpad
+ itself. [bug=1020667]
+
+1.10.1 (2012-07-04)
+===================
+- Fix a doctest in introduction.txt so that the test suite runs with
+ python-2.7 (note the doctests only run when running integrated with
+ launchpad's test suite itself). [bug=1020667]
+
+1.10.0 (2012-06-19)
+===================
+- Add environment variable, LP_DISABLE_SSL_CERTIFICATE_VALIDATION, to
+ disable SSL certificate checks. Most useful when testing against
+ development servers.
+
+1.9.12 (2011-12-05)
+===================
+- Move keyring base64 encoding to KeyringCredential and be more
+ defensive about decoding. [bug=900307]
+
+1.9.11 (2011-11-21)
+===================
+- 1.9.10 was a bad release due to incomplete NEWS entries.
+
+- Add fake Launchpad web service for unit test.
+
+- Improve HACKING documentation.
+
+- Improve launchpadlib directory discovery on Windows.
+
+- Added script to delete spurious bugtasks or split a bugtask from a bug.
+
+- Properly handle Unicode passwords if returned by the keyring.
+
+- Base 64 encode serialized credentials before putting in keyring/wallet.
+
+1.9.10 (2011-11-21)
+===================
+- Base 64 encode serialized credentials before putting in keyring/wallet.
+
+1.9.9 (2011-07-27)
+==================
+
+- Fix a failing test for lazr.restfulclient 0.12.0.
+
+1.9.8 (2011-02-28)
+==================
+
+- Detect the error Launchpad sends when it doesn't recognize an access
+ token, and get a new token.
+
+1.9.7 (2011-02-15)
+==================
+
+- Slightly tweaked the behavior of EDGE_SERVICE_ROOT, and improved tests.
+
+1.9.6 (2011-02-14)
+==================
+
+- Added EDGE_SERVICE_ROOT and the 'edge' alias back, though they both
+ operate on production behind the scenes. Using the 'edge' alias will
+ cause a deprecation warning.
+
+1.9.5 (2011-02-08)
+==================
+
+- Fixed a bug that prevented the deprecated get_token_and_login code
+ from working, and that required that users of get_token_and_login
+ get a new token on every usage.
+
+1.9.4 (2011-01-18)
+==================
+
+- Removed references to the 'edge' service root, which is being phased out.
+
+- Fixed a minor bug in the upload_release_tarball contrib script which
+ was causing tarballs to be uploaded with the wrong media type.
+
+- The XSLT stylesheet for converting the Launchpad WADL into HTML
+ documentation has been moved back into Launchpad.
+
+1.9.3 (2011-01-10)
+==================
+
+- The keyring package import is now delayed until the keyring needs to be
+ accessed. This reduces launchapdlib users' exposure to unintended side
+ effects of importing keyring (KWallet authorization dialogs and the
+ registration of a SIGCHLD handler).
+
+1.9.2 (2011-01-07)
+==================
+
+- Added a missing import.
+
+1.9.1 (2011-01-06)
+==================
+
+- Corrected a test failure.
+
+1.9.0 (2011-01-05)
+==================
+
+- When an authorization token expires or becomes invalid, attempt to
+ acquire a new one, even in the middle of a session, rather than
+ crashing.
+
+- The HTML generated by wadl-to-refhtml.xsl now validates.
+
+- Most of the helper login methods have been deprecated. There are now
+ only two helper methods:
+
+ * Launchpad.login_anonymously, for anonymous credential-free access.
+ * Launchpad.login_with, for programs that need a credential.
+
+
+1.8.0 (2010-11-15)
+==================
+
+- Store authorization tokens in the Gnome keyring or KDE wallet, when
+ available. The credentials_file parameter of Launchpad.login_with() is now
+ ignored.
+
+- By default, Launchpad.login_with() now asks Launchpad for
+ desktop-wide integration. This removes the need for each individual
+ application to get its own OAuth token.
+
+1.7.0 (2010-09-23)
+==================
+
+- Removed "fake Launchpad browser" code that didn't work and was
+ misleading developers.
+
+- Added support for http://qastaging.launchpad.net by adding
+ astaging to the uris.
+
+1.6.5 (2010-08-23)
+==================
+
+- Make launchpadlib compatible with the latest lazr.restfulclient.
+
+1.6.4 (2010-08-18)
+==================
+
+- Test fixes.
+
+1.6.3 (2010-08-12)
+==================
+
+- Instead of making the end-user hit Enter after authorizing an
+ application to access their Launchpad account, launchpadlib will
+ automatically poll Launchpad until the user makes a decision.
+
+- launchpadlib now raises a more helpful exception when the end-user
+ explicitly denies access to a launchpadlib application.
+
+- Improved the XSLT stylesheet to reflect Launchpad's more complex
+ top-level structure. [bug=286941]
+
+- Test fixes. [bug=488448,616055]
+
+1.6.2 (2010-06-21)
+==================
+
+- Extended the optimization from version 1.6.1 to apply to Launchpad's
+ top-level collection of people.
+
+1.6.1 (2010-06-16)
+==================
+
+- Added an optimization that lets launchpadlib avoid making an HTTP
+ request in some situations.
+
+1.6.0 (2010-04-07)
+==================
+
+- Fixed a test to work against the latest version of Launchpad.
+
+1.5.8 (2010-03-25)
+==================
+
+- Use version 1.0 of the Launchpad web service by default.
+
+1.5.7 (2010-03-16)
+==================
+
+- Send a Referer header whenever making requests to the Launchpad
+ website (as opposed to the web service) to avoid falling afoul of
+ new cross-site-request-forgery countermeasures.
+
+1.5.6 (2010-03-04)
+==================
+
+- Fixed a minor bug when using login_with() to access a version of the
+ Launchpad web service other than the default.
+
+- Added a check to catch old client code that would cause newer
+ versions of launchpadlib to make nonsensical requests to
+ https://api.launchpad.dev/beta/beta/, and raise a helpful exception
+ telling the developer how to fix it.
+
+1.5.5
+=====
+
+- Added the ability to access different versions of the Launchpad web
+ service.
+
+1.5.4 (2009-12-17)
+==================
+
+- Made it easy to get anonymous access to a Launchpad instance.
+
+- Made it easy to plug in different clients that take the user's
+ Launchpad login and password for purposes of authorizing a request
+ token. The most secure technique is still the default: to open the
+ user's web browser to the appropriate Launchpad page.
+
+- Introduced a command-line script bin/launchpad-credentials-console,
+ which takes the user's Launchpad login and password, and authorizes
+ a request token on their behalf.
+
+- Introduced a command-line script bin/launchpad-request-token, which
+ creates a request token on any Launchpad installation and dumps the
+ JSON description of that token to standard output.
+
+- Shorthand service names like 'edge' should now be respected
+ everywhere in launchpadlib.
+
+1.5.3 (2009-10-22)
+==================
+
+- Moved some more code from launchpadlib into the more generic
+ lazr.restfulclient.
+
+1.5.2 (2009-10-01)
+==================
+
+- Added a number of new sample scripts from elsewhere.
+
+- Added a reference to the production Launchpad instance.
+
+- Made it easier to specify a Launchpad instance to run against.
+
+1.5.1 (2009-07-16)
+==================
+
+- Added a sample script for uploading a release tarball to Launchpad.
+
+1.5.0 (2009-07-09)
+==================
+
+- Most of launchpadlib's code has been moved to the generic
+ lazr.restfulclient library. launchpadlib now contains only code
+ specific to Launchpad. There should be no changes in functionality.
+
+- Moved bootstrap.py into the top-level directory. Having it in a
+ subdirectory with a top-level symlink was breaking installation on
+ Windows.
+
+- The notice to the end-user (that we're opening their web
+ browser) is now better formatted.
+
+1.0.1 (2009-05-30)
+==================
+
+- Correct tests for new launchpad cache behavior in librarian
+
+- Remove build dependency on setuptools_bzr because it was causing bzr to be
+ downloaded during installation of the package, which was unnecessary and
+ annoying.
+
+1.0 (2009-03-24)
+================
+
+- Initial release on PyPI
diff --git a/src/launchpadlib.egg-info/SOURCES.txt b/src/launchpadlib.egg-info/SOURCES.txt
new file mode 100644
index 0000000..64a4dfb
--- /dev/null
+++ b/src/launchpadlib.egg-info/SOURCES.txt
@@ -0,0 +1,44 @@
+CONTRIBUTING.rst
+COPYING.txt
+MANIFEST.in
+NEWS.rst
+README.rst
+pyproject.toml
+setup.cfg
+setup.py
+src/launchpadlib/__init__.py
+src/launchpadlib/apps.py
+src/launchpadlib/credentials.py
+src/launchpadlib/errors.py
+src/launchpadlib/launchpad.py
+src/launchpadlib/uris.py
+src/launchpadlib.egg-info/PKG-INFO
+src/launchpadlib.egg-info/SOURCES.txt
+src/launchpadlib.egg-info/dependency_links.txt
+src/launchpadlib.egg-info/not-zip-safe
+src/launchpadlib.egg-info/requires.txt
+src/launchpadlib.egg-info/top_level.txt
+src/launchpadlib/docs/CONTRIBUTING.rst
+src/launchpadlib/docs/Makefile
+src/launchpadlib/docs/NEWS.rst
+src/launchpadlib/docs/command-line.rst
+src/launchpadlib/docs/conf.py
+src/launchpadlib/docs/hosted-files.rst
+src/launchpadlib/docs/index.rst
+src/launchpadlib/docs/introduction.rst
+src/launchpadlib/docs/operations.rst
+src/launchpadlib/docs/people.rst
+src/launchpadlib/docs/toplevel.rst
+src/launchpadlib/docs/files/mugshot.png
+src/launchpadlib/testing/__init__.py
+src/launchpadlib/testing/helpers.py
+src/launchpadlib/testing/launchpad-wadl.xml
+src/launchpadlib/testing/launchpad.py
+src/launchpadlib/testing/resources.py
+src/launchpadlib/testing/testing-wadl.xml
+src/launchpadlib/testing/tests/__init__.py
+src/launchpadlib/testing/tests/test_launchpad.py
+src/launchpadlib/tests/__init__.py
+src/launchpadlib/tests/test_credential_store.py
+src/launchpadlib/tests/test_http.py
+src/launchpadlib/tests/test_launchpad.py \ No newline at end of file
diff --git a/src/launchpadlib.egg-info/dependency_links.txt b/src/launchpadlib.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/src/launchpadlib.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/src/launchpadlib.egg-info/not-zip-safe b/src/launchpadlib.egg-info/not-zip-safe
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/src/launchpadlib.egg-info/not-zip-safe
@@ -0,0 +1 @@
+
diff --git a/src/launchpadlib.egg-info/requires.txt b/src/launchpadlib.egg-info/requires.txt
new file mode 100644
index 0000000..5fdf040
--- /dev/null
+++ b/src/launchpadlib.egg-info/requires.txt
@@ -0,0 +1,22 @@
+httplib2
+keyring
+lazr.restfulclient>=0.9.19
+lazr.uri
+six
+
+[:python_version < "3.8"]
+importlib-metadata
+
+[docs]
+Sphinx
+
+[test]
+coverage
+pytest
+
+[test:python_version < "3"]
+mock
+
+[testing]
+testresources
+wadllib
diff --git a/src/launchpadlib.egg-info/top_level.txt b/src/launchpadlib.egg-info/top_level.txt
new file mode 100644
index 0000000..9dc228f
--- /dev/null
+++ b/src/launchpadlib.egg-info/top_level.txt
@@ -0,0 +1 @@
+launchpadlib
diff --git a/src/launchpadlib/__init__.py b/src/launchpadlib/__init__.py
new file mode 100644
index 0000000..fbd2090
--- /dev/null
+++ b/src/launchpadlib/__init__.py
@@ -0,0 +1,22 @@
+# Copyright 2008-2011 Canonical Ltd.
+
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by the
+# Free Software Foundation, version 3 of the License.
+#
+# launchpadlib is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+# for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+try:
+ import importlib.metadata as importlib_metadata
+except ImportError:
+ import importlib_metadata
+
+__version__ = importlib_metadata.version("launchpadlib")
diff --git a/src/launchpadlib/apps.py b/src/launchpadlib/apps.py
new file mode 100644
index 0000000..e163a7b
--- /dev/null
+++ b/src/launchpadlib/apps.py
@@ -0,0 +1,49 @@
+# Copyright 2009 Canonical Ltd.
+
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by the
+# Free Software Foundation, version 3 of the License.
+#
+# launchpadlib is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+# for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+"""Command-line applications for Launchpadlib.
+
+This module contains the code for various applications. The applications
+themselves are kept in bin/.
+"""
+
+__all__ = [
+ "RequestTokenApp",
+]
+
+import json
+
+from launchpadlib.credentials import Credentials
+from launchpadlib.uris import lookup_web_root
+
+
+class RequestTokenApp(object):
+ """An application that creates request tokens."""
+
+ def __init__(self, web_root, consumer_name, context):
+ """Initialize."""
+ self.web_root = lookup_web_root(web_root)
+ self.credentials = Credentials(consumer_name)
+ self.context = context
+
+ def run(self):
+ """Get a request token and return JSON information about it."""
+ token = self.credentials.get_request_token(
+ self.context,
+ self.web_root,
+ token_format=Credentials.DICT_TOKEN_FORMAT,
+ )
+ return json.dumps(token)
diff --git a/src/launchpadlib/credentials.py b/src/launchpadlib/credentials.py
new file mode 100644
index 0000000..5789fc0
--- /dev/null
+++ b/src/launchpadlib/credentials.py
@@ -0,0 +1,868 @@
+# Copyright 2008 Canonical Ltd.
+
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by the
+# Free Software Foundation, version 3 of the License.
+#
+# launchpadlib is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+# for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+from __future__ import print_function
+
+"""launchpadlib credentials and authentication support."""
+
+__metaclass__ = type
+__all__ = [
+ "AccessToken",
+ "AnonymousAccessToken",
+ "AuthorizeRequestTokenWithBrowser",
+ "CredentialStore",
+ "RequestTokenAuthorizationEngine",
+ "Consumer",
+ "Credentials",
+]
+
+try:
+ from cStringIO import StringIO
+except ImportError:
+ from io import StringIO
+
+import httplib2
+import json
+import os
+from select import select
+import stat
+from sys import stdin
+import time
+
+try:
+ from urllib.parse import urlencode
+except ImportError:
+ from urllib import urlencode
+try:
+ from urllib.parse import urljoin
+except ImportError:
+ from urlparse import urljoin
+import webbrowser
+from base64 import (
+ b64decode,
+ b64encode,
+)
+
+from six.moves.urllib.parse import parse_qs
+
+if bytes is str:
+ # Python 2
+ unicode_type = unicode # noqa: F821
+else:
+ unicode_type = str
+
+from lazr.restfulclient.errors import HTTPError
+from lazr.restfulclient.authorize.oauth import (
+ AccessToken as _AccessToken,
+ Consumer,
+ OAuthAuthorizer,
+ SystemWideConsumer, # Not used directly, just re-imported into here.
+)
+
+from launchpadlib import uris
+
+request_token_page = "+request-token"
+access_token_page = "+access-token"
+authorize_token_page = "+authorize-token"
+access_token_poll_time = 1
+access_token_poll_timeout = 15 * 60
+
+EXPLOSIVE_ERRORS = (MemoryError, KeyboardInterrupt, SystemExit)
+
+
+def _ssl_certificate_validation_disabled():
+ """Whether the user has disabled SSL certificate connection.
+
+ Some testing servers have broken certificates. Rather than raising an
+ error, we allow an environment variable,
+ ``LP_DISABLE_SSL_CERTIFICATE_VALIDATION`` to disable the check.
+ """
+ # XXX: Copied from lazr/restfulclient/_browser.py. Once it appears in a
+ # released version of lazr.restfulclient, depend on that new version and
+ # delete this copy.
+ return bool(os.environ.get("LP_DISABLE_SSL_CERTIFICATE_VALIDATION", False))
+
+
+def _http_post(url, headers, params):
+ """POST to ``url`` with ``headers`` and a body of urlencoded ``params``.
+
+ Wraps it up to make sure we avoid the SSL certificate validation if our
+ environment tells us to. Also, raises an error on non-200 statuses.
+ """
+ cert_disabled = _ssl_certificate_validation_disabled()
+ response, content = httplib2.Http(
+ disable_ssl_certificate_validation=cert_disabled
+ ).request(url, method="POST", headers=headers, body=urlencode(params))
+ if response.status != 200:
+ raise HTTPError(response, content)
+ return response, content
+
+
+class Credentials(OAuthAuthorizer):
+ """Standard credentials storage and usage class.
+
+ :ivar consumer: The consumer (application)
+ :type consumer: `Consumer`
+ :ivar access_token: Access information on behalf of the user
+ :type access_token: `AccessToken`
+ """
+
+ _request_token = None
+
+ URI_TOKEN_FORMAT = "uri"
+ DICT_TOKEN_FORMAT = "dict"
+ ITEM_SEPARATOR = "<BR>"
+ NEWLINE = "\n"
+
+ def serialize(self):
+ """Turn this object into a string.
+
+ This should probably be moved into OAuthAuthorizer.
+ """
+ sio = StringIO()
+ self.save(sio)
+ serialized = sio.getvalue()
+ if isinstance(serialized, unicode_type):
+ serialized = serialized.encode("utf-8")
+ return serialized
+
+ @classmethod
+ def from_string(cls, value):
+ """Create a `Credentials` object from a serialized string.
+
+ This should probably be moved into OAuthAuthorizer.
+ """
+ credentials = cls()
+ if not isinstance(value, unicode_type):
+ value = value.decode("utf-8")
+ credentials.load(StringIO(value))
+ return credentials
+
+ def get_request_token(
+ self,
+ context=None,
+ web_root=uris.STAGING_WEB_ROOT,
+ token_format=URI_TOKEN_FORMAT,
+ ):
+ """Request an OAuth token to Launchpad.
+
+ Also store the token in self._request_token.
+
+ This method must not be called on an object with no consumer
+ specified or if an access token has already been obtained.
+
+ :param context: The context of this token, that is, its scope of
+ validity within Launchpad.
+ :param web_root: The URL of the website on which the token
+ should be requested.
+ :token_format: How the token should be
+ presented. URI_TOKEN_FORMAT means just return the URL to
+ the page that authorizes the token. DICT_TOKEN_FORMAT
+ means return a dictionary describing the token
+ and the site's authentication policy.
+
+ :return: If token_format is URI_TOKEN_FORMAT, the URL for the
+ user to authorize the `AccessToken` provided by
+ Launchpad. If token_format is DICT_TOKEN_FORMAT, a dict of
+ information about the new access token.
+ """
+ assert self.consumer is not None, "Consumer not specified."
+ assert self.access_token is None, "Access token already obtained."
+ web_root = uris.lookup_web_root(web_root)
+ params = dict(
+ oauth_consumer_key=self.consumer.key,
+ oauth_signature_method="PLAINTEXT",
+ oauth_signature="&",
+ )
+ url = web_root + request_token_page
+ headers = {"Referer": web_root}
+ if token_format == self.DICT_TOKEN_FORMAT:
+ headers["Accept"] = "application/json"
+ response, content = _http_post(url, headers, params)
+ if isinstance(content, bytes):
+ content = content.decode("utf-8")
+ if token_format == self.DICT_TOKEN_FORMAT:
+ params = json.loads(content)
+ if context is not None:
+ params["lp.context"] = context
+ self._request_token = AccessToken.from_params(params)
+ return params
+ else:
+ self._request_token = AccessToken.from_string(content)
+ url = "%s%s?oauth_token=%s" % (
+ web_root,
+ authorize_token_page,
+ self._request_token.key,
+ )
+ if context is not None:
+ self._request_token.context = context
+ url += "&lp.context=%s" % context
+ return url
+
+ def exchange_request_token_for_access_token(
+ self, web_root=uris.STAGING_WEB_ROOT
+ ):
+ """Exchange the previously obtained request token for an access token.
+
+ This method must not be called unless get_request_token() has been
+ called and completed successfully.
+
+ The access token will be stored as self.access_token.
+
+ :param web_root: The base URL of the website that granted the
+ request token.
+ """
+ assert (
+ self._request_token is not None
+ ), "get_request_token() doesn't seem to have been called."
+ web_root = uris.lookup_web_root(web_root)
+ params = dict(
+ oauth_consumer_key=self.consumer.key,
+ oauth_signature_method="PLAINTEXT",
+ oauth_token=self._request_token.key,
+ oauth_signature="&%s" % self._request_token.secret,
+ )
+ url = web_root + access_token_page
+ headers = {"Referer": web_root}
+ response, content = _http_post(url, headers, params)
+ self.access_token = AccessToken.from_string(content)
+
+
+class AccessToken(_AccessToken):
+ """An OAuth access token."""
+
+ @classmethod
+ def from_params(cls, params):
+ """Create and return a new `AccessToken` from the given dict."""
+ key = params["oauth_token"]
+ secret = params["oauth_token_secret"]
+ context = params.get("lp.context")
+ return cls(key, secret, context)
+
+ @classmethod
+ def from_string(cls, query_string):
+ """Create and return a new `AccessToken` from the given string."""
+ if not isinstance(query_string, unicode_type):
+ query_string = query_string.decode("utf-8")
+ params = parse_qs(query_string, keep_blank_values=False)
+ key = params["oauth_token"]
+ assert len(key) == 1, "Query string must have exactly one oauth_token."
+ key = key[0]
+ secret = params["oauth_token_secret"]
+ assert len(secret) == 1, "Query string must have exactly one secret."
+ secret = secret[0]
+ context = params.get("lp.context")
+ if context is not None:
+ assert (
+ len(context) == 1
+ ), "Query string must have exactly one context"
+ context = context[0]
+ return cls(key, secret, context)
+
+
+class AnonymousAccessToken(_AccessToken):
+ """An OAuth access token that doesn't authenticate anybody.
+
+ This token can be used for anonymous access.
+ """
+
+ def __init__(self):
+ super(AnonymousAccessToken, self).__init__("", "")
+
+
+class CredentialStore(object):
+ """Store OAuth credentials locally.
+
+ This is a generic superclass. To implement a specific way of
+ storing credentials locally you'll need to subclass this class,
+ and implement `do_save` and `do_load`.
+ """
+
+ def __init__(self, credential_save_failed=None):
+ """Constructor.
+
+ :param credential_save_failed: A callback to be invoked if the
+ save to local storage fails. You should never invoke this
+ callback yourself! Instead, you should raise an exception
+ from do_save().
+ """
+ self.credential_save_failed = credential_save_failed
+
+ def save(self, credentials, unique_consumer_id):
+ """Save the credentials and invoke the callback on failure.
+
+ Do not override this method when subclassing. Override
+ do_save() instead.
+ """
+ try:
+ self.do_save(credentials, unique_consumer_id)
+ except EXPLOSIVE_ERRORS:
+ raise
+ except Exception as e:
+ if self.credential_save_failed is None:
+ raise e
+ self.credential_save_failed()
+ return credentials
+
+ def do_save(self, credentials, unique_consumer_id):
+ """Store newly-authorized credentials locally for later use.
+
+ :param credentials: A Credentials object to save.
+ :param unique_consumer_id: A string uniquely identifying an
+ OAuth consumer on a Launchpad instance.
+ """
+ raise NotImplementedError()
+
+ def load(self, unique_key):
+ """Retrieve credentials from a local store.
+
+ This method is the inverse of `save`.
+
+ There's no special behavior in this method--it just calls
+ `do_load`. There _is_ special behavior in `save`, and this
+ way, developers can remember to implement `do_save` and
+ `do_load`, not `do_save` and `load`.
+
+ :param unique_key: A string uniquely identifying an OAuth consumer
+ on a Launchpad instance.
+
+ :return: A `Credentials` object if one is found in the local
+ store, and None otherise.
+ """
+ return self.do_load(unique_key)
+
+ def do_load(self, unique_key):
+ """Retrieve credentials from a local store.
+
+ This method is the inverse of `do_save`.
+
+ :param unique_key: A string uniquely identifying an OAuth consumer
+ on a Launchpad instance.
+
+ :return: A `Credentials` object if one is found in the local
+ store, and None otherise.
+ """
+ raise NotImplementedError()
+
+
+class KeyringCredentialStore(CredentialStore):
+ """Store credentials in the GNOME keyring or KDE wallet.
+
+ This is a good solution for desktop applications and interactive
+ scripts. It doesn't work for non-interactive scripts, or for
+ integrating third-party websites into Launchpad.
+ """
+
+ B64MARKER = b"<B64>"
+
+ def __init__(self, credential_save_failed=None, fallback=False):
+ super(KeyringCredentialStore, self).__init__(credential_save_failed)
+ self._fallback = None
+ if fallback:
+ self._fallback = MemoryCredentialStore(credential_save_failed)
+
+ @staticmethod
+ def _ensure_keyring_imported():
+ """Ensure the keyring module is imported (postponing side effects).
+
+ The keyring module initializes the environment-dependent backend at
+ import time (nasty). We want to avoid that initialization because it
+ may do things like prompt the user to unlock their password store
+ (e.g., KWallet).
+ """
+ if "keyring" not in globals():
+ global keyring
+ import keyring
+ if "NoKeyringError" not in globals():
+ global NoKeyringError
+ try:
+ from keyring.errors import NoKeyringError
+ except ImportError:
+ NoKeyringError = RuntimeError
+
+ def do_save(self, credentials, unique_key):
+ """Store newly-authorized credentials in the keyring."""
+ self._ensure_keyring_imported()
+ serialized = credentials.serialize()
+ # Some users have reported problems with corrupted keyrings, both in
+ # Gnome and KDE, when newlines are included in the password. Avoid
+ # this problem by base 64 encoding the serialized value.
+ serialized = self.B64MARKER + b64encode(serialized)
+ try:
+ keyring.set_password(
+ "launchpadlib", unique_key, serialized.decode("utf-8")
+ )
+ except NoKeyringError as e:
+ # keyring < 21.2.0 raises RuntimeError rather than anything more
+ # specific. Make sure it's the exception we're interested in.
+ if (
+ NoKeyringError == RuntimeError
+ and "No recommended backend was available" not in str(e)
+ ):
+ raise
+ if self._fallback:
+ self._fallback.save(credentials, unique_key)
+ else:
+ raise
+
+ def do_load(self, unique_key):
+ """Retrieve credentials from the keyring."""
+ self._ensure_keyring_imported()
+ try:
+ credential_string = keyring.get_password(
+ "launchpadlib", unique_key
+ )
+ except NoKeyringError as e:
+ # keyring < 21.2.0 raises RuntimeError rather than anything more
+ # specific. Make sure it's the exception we're interested in.
+ if (
+ NoKeyringError == RuntimeError
+ and "No recommended backend was available" not in str(e)
+ ):
+ raise
+ if self._fallback:
+ return self._fallback.load(unique_key)
+ else:
+ raise
+ if credential_string is not None:
+ if isinstance(credential_string, unicode_type):
+ credential_string = credential_string.encode("utf8")
+ if credential_string.startswith(self.B64MARKER):
+ try:
+ credential_string = b64decode(
+ credential_string[len(self.B64MARKER) :]
+ )
+ except TypeError:
+ # The credential_string should be base 64 but cannot be
+ # decoded.
+ return None
+ try:
+ credentials = Credentials.from_string(credential_string)
+ return credentials
+ except Exception:
+ # If any error occurs at this point the most reasonable thing
+ # to do is return no credentials, which will require
+ # re-authorization but the user will be able to proceed.
+ return None
+ return None
+
+
+class UnencryptedFileCredentialStore(CredentialStore):
+ """Store credentials unencrypted in a file on disk.
+
+ This is a good solution for scripts that need to run without any
+ user interaction.
+ """
+
+ def __init__(self, filename, credential_save_failed=None):
+ super(UnencryptedFileCredentialStore, self).__init__(
+ credential_save_failed
+ )
+ self.filename = filename
+
+ def do_save(self, credentials, unique_key):
+ """Save the credentials to disk."""
+ credentials.save_to_path(self.filename)
+
+ def do_load(self, unique_key):
+ """Load the credentials from disk."""
+ if (
+ os.path.exists(self.filename)
+ and not os.stat(self.filename)[stat.ST_SIZE] == 0
+ ):
+ return Credentials.load_from_path(self.filename)
+ return None
+
+
+class MemoryCredentialStore(CredentialStore):
+ """CredentialStore that stores keys only in memory.
+
+ This can be used to provide a CredentialStore instance without
+ actually saving any key to persistent storage.
+ """
+
+ def __init__(self, credential_save_failed=None):
+ super(MemoryCredentialStore, self).__init__(credential_save_failed)
+ self._credentials = {}
+
+ def do_save(self, credentials, unique_key):
+ """Store the credentials in our dict"""
+ self._credentials[unique_key] = credentials
+
+ def do_load(self, unique_key):
+ """Retrieve the credentials from our dict"""
+ return self._credentials.get(unique_key)
+
+
+class RequestTokenAuthorizationEngine(object):
+ """The superclass of all request token authorizers.
+
+ This base class does not implement request token authorization,
+ since that varies depending on how you want the end-user to
+ authorize a request token. You'll need to subclass this class and
+ implement `make_end_user_authorize_token`.
+ """
+
+ UNAUTHORIZED_ACCESS_LEVEL = "UNAUTHORIZED"
+
+ def __init__(
+ self,
+ service_root,
+ application_name=None,
+ consumer_name=None,
+ allow_access_levels=None,
+ ):
+ """Base class initialization.
+
+ :param service_root: The root of the Launchpad instance being
+ used.
+
+ :param application_name: The name of the application that
+ wants to use launchpadlib. This is used in conjunction
+ with a desktop-wide integration.
+
+ If you specify this argument, your values for
+ consumer_name and allow_access_levels are ignored.
+
+ :param consumer_name: The OAuth consumer name, for an
+ application that wants its own point of integration into
+ Launchpad. In almost all cases, you want to specify
+ application_name instead and do a desktop-wide
+ integration. The exception is when you're integrating a
+ third-party website into Launchpad.
+
+ :param allow_access_levels: A list of the Launchpad access
+ levels to present to the user. ('READ_PUBLIC' and so on.)
+ Your value for this argument will be ignored during a
+ desktop-wide integration.
+ :type allow_access_levels: A list of strings.
+ """
+ self.service_root = uris.lookup_service_root(service_root)
+ self.web_root = uris.web_root_for_service_root(service_root)
+
+ if application_name is None and consumer_name is None:
+ raise ValueError(
+ "You must provide either application_name or consumer_name."
+ )
+
+ if application_name is not None and consumer_name is not None:
+ raise ValueError(
+ "You must provide only one of application_name and "
+ "consumer_name. (You provided %r and %r.)"
+ % (application_name, consumer_name)
+ )
+
+ if consumer_name is None:
+ # System-wide integration. Create a system-wide consumer
+ # and identify the application using a separate
+ # application name.
+ allow_access_levels = ["DESKTOP_INTEGRATION"]
+ consumer = SystemWideConsumer(application_name)
+ else:
+ # Application-specific integration. Use the provided
+ # consumer name to create a consumer automatically.
+ consumer = Consumer(consumer_name)
+ application_name = consumer_name
+
+ self.consumer = consumer
+ self.application_name = application_name
+
+ self.allow_access_levels = allow_access_levels or []
+
+ @property
+ def unique_consumer_id(self):
+ """Return a string identifying this consumer on this host."""
+ return self.consumer.key + "@" + self.service_root
+
+ def authorization_url(self, request_token):
+ """Return the authorization URL for a request token.
+
+ This is the URL the end-user must visit to authorize the
+ token. How exactly does this happen? That depends on the
+ subclass implementation.
+ """
+ page = "%s?oauth_token=%s" % (authorize_token_page, request_token)
+ allow_permission = "&allow_permission="
+ if len(self.allow_access_levels) > 0:
+ page += allow_permission + allow_permission.join(
+ self.allow_access_levels
+ )
+ return urljoin(self.web_root, page)
+
+ def __call__(self, credentials, credential_store):
+ """Authorize a token and associate it with the given credentials.
+
+ If the credential store runs into a problem storing the
+ credential locally, the `credential_save_failed` callback will
+ be invoked. The callback will not be invoked if there's a
+ problem authorizing the credentials.
+
+ :param credentials: A `Credentials` object. If the end-user
+ authorizes these credentials, this object will have its
+ .access_token property set.
+
+ :param credential_store: A `CredentialStore` object. If the
+ end-user authorizes the credentials, they will be
+ persisted locally using this object.
+
+ :return: If the credentials are successfully authorized, the
+ return value is the `Credentials` object originally passed
+ in. Otherwise the return value is None.
+ """
+ request_token_string = self.get_request_token(credentials)
+ # Hand off control to the end-user.
+ self.make_end_user_authorize_token(credentials, request_token_string)
+ if credentials.access_token is None:
+ # The end-user refused to authorize the application.
+ return None
+ # save() invokes the callback on failure.
+ credential_store.save(credentials, self.unique_consumer_id)
+ return credentials
+
+ def get_request_token(self, credentials):
+ """Get a new request token from the server.
+
+ :param return: The request token.
+ """
+ authorization_json = credentials.get_request_token(
+ web_root=self.web_root, token_format=Credentials.DICT_TOKEN_FORMAT
+ )
+ return authorization_json["oauth_token"]
+
+ def make_end_user_authorize_token(self, credentials, request_token):
+ """Authorize the given request token using the given credentials.
+
+ Your subclass must implement this method: it has no default
+ implementation.
+
+ Because an access token may expire or be revoked in the middle
+ of a session, this method may be called at arbitrary points in
+ a launchpadlib session, or even multiple times during a single
+ session (with a different request token each time).
+
+ In most cases, however, this method will be called at the
+ beginning of a launchpadlib session, or not at all.
+ """
+ raise NotImplementedError()
+
+
+class AuthorizeRequestTokenWithURL(RequestTokenAuthorizationEngine):
+ """Authorize using a URL.
+
+ This authorizer simply shows the URL for the user to open for
+ authorization, and waits until the server responds.
+ """
+
+ WAITING_FOR_USER = (
+ "Please open this authorization page:\n"
+ " (%s)\n"
+ "in your browser. Use your browser to authorize\n"
+ "this program to access Launchpad on your behalf."
+ )
+ WAITING_FOR_LAUNCHPAD = "Press Enter after authorizing in your browser."
+
+ def output(self, message):
+ """Display a message.
+
+ By default, prints the message to standard output. The message
+ does not require any user interaction--it's solely
+ informative.
+ """
+ print(message)
+
+ def notify_end_user_authorization_url(self, authorization_url):
+ """Notify the end-user of the URL."""
+ self.output(self.WAITING_FOR_USER % authorization_url)
+
+ def check_end_user_authorization(self, credentials):
+ """Check if the end-user authorized"""
+ try:
+ credentials.exchange_request_token_for_access_token(self.web_root)
+ except HTTPError as e:
+ if e.response.status == 403:
+ # The user decided not to authorize this
+ # application.
+ raise EndUserDeclinedAuthorization(e.content)
+ else:
+ if e.response.status != 401:
+ # There was an error accessing the server.
+ print("Unexpected response from Launchpad:")
+ print(e)
+ # The user has not made a decision yet.
+ raise EndUserNoAuthorization(e.content)
+ return credentials.access_token is not None
+
+ def wait_for_end_user_authorization(self, credentials):
+ """Wait for the end-user to authorize"""
+ self.output(self.WAITING_FOR_LAUNCHPAD)
+ stdin.readline()
+ self.check_end_user_authorization(credentials)
+
+ def make_end_user_authorize_token(self, credentials, request_token):
+ """Have the end-user authorize the token using a URL."""
+ authorization_url = self.authorization_url(request_token)
+ self.notify_end_user_authorization_url(authorization_url)
+ self.wait_for_end_user_authorization(credentials)
+
+
+class AuthorizeRequestTokenWithBrowser(AuthorizeRequestTokenWithURL):
+ """Authorize using a URL that pops-up automatically in a browser.
+
+ This authorizer simply opens up the end-user's web browser to a
+ Launchpad URL and lets the end-user authorize the request token
+ themselves.
+
+ This is the same as its superclass, except this class also
+ performs the browser automatic opening of the URL.
+ """
+
+ WAITING_FOR_USER = (
+ "The authorization page:\n"
+ " (%s)\n"
+ "should be opening in your browser. Use your browser to authorize\n"
+ "this program to access Launchpad on your behalf."
+ )
+ TIMEOUT_MESSAGE = "Press Enter to continue or wait (%d) seconds..."
+ TIMEOUT = 5
+ TERMINAL_BROWSERS = (
+ "www-browser",
+ "links",
+ "links2",
+ "lynx",
+ "elinks",
+ "elinks-lite",
+ "netrik",
+ "w3m",
+ )
+ WAITING_FOR_LAUNCHPAD = (
+ "Waiting to hear from Launchpad about your decision..."
+ )
+
+ def __init__(
+ self,
+ service_root,
+ application_name,
+ consumer_name=None,
+ credential_save_failed=None,
+ allow_access_levels=None,
+ ):
+ """Constructor.
+
+ :param service_root: See `RequestTokenAuthorizationEngine`.
+ :param application_name: See `RequestTokenAuthorizationEngine`.
+ :param consumer_name: The value of this argument is
+ ignored. If we have the capability to open the end-user's
+ web browser, we must be running on the end-user's computer,
+ so we should do a full desktop integration.
+ :param credential_save_failed: See `RequestTokenAuthorizationEngine`.
+ :param allow_access_levels: The value of this argument is
+ ignored, for the same reason as consumer_name.
+ """
+ # It doesn't look like we're doing anything here, but we
+ # are discarding the passed-in values for consumer_name and
+ # allow_access_levels.
+ super(AuthorizeRequestTokenWithBrowser, self).__init__(
+ service_root, application_name, None, credential_save_failed
+ )
+
+ def notify_end_user_authorization_url(self, authorization_url):
+ """Notify the end-user of the URL."""
+ super(
+ AuthorizeRequestTokenWithBrowser, self
+ ).notify_end_user_authorization_url(authorization_url)
+
+ try:
+ browser_obj = webbrowser.get()
+ browser = getattr(browser_obj, "basename", None)
+ console_browser = browser in self.TERMINAL_BROWSERS
+ except webbrowser.Error:
+ browser_obj = None
+ console_browser = False
+
+ if console_browser:
+ self.output(self.TIMEOUT_MESSAGE % self.TIMEOUT)
+ # Wait a little time before attempting to launch browser,
+ # give users the chance to press a key to skip it anyway.
+ rlist, _, _ = select([stdin], [], [], self.TIMEOUT)
+ if rlist:
+ stdin.readline()
+
+ if browser_obj is not None:
+ webbrowser.open(authorization_url)
+
+ def wait_for_end_user_authorization(self, credentials):
+ """Wait for the end-user to authorize"""
+ self.output(self.WAITING_FOR_LAUNCHPAD)
+ start_time = time.time()
+ while credentials.access_token is None:
+ time.sleep(access_token_poll_time)
+ try:
+ if self.check_end_user_authorization(credentials):
+ break
+ except EndUserNoAuthorization:
+ pass
+ if time.time() >= start_time + access_token_poll_timeout:
+ raise TokenAuthorizationTimedOut(
+ "Timed out after %d seconds." % access_token_poll_timeout
+ )
+
+
+class TokenAuthorizationException(Exception):
+ pass
+
+
+class RequestTokenAlreadyAuthorized(TokenAuthorizationException):
+ pass
+
+
+class EndUserAuthorizationFailed(TokenAuthorizationException):
+ """Superclass exception for all failures of end-user authorization"""
+
+ pass
+
+
+class EndUserDeclinedAuthorization(EndUserAuthorizationFailed):
+ """End-user declined authorization"""
+
+ pass
+
+
+class EndUserNoAuthorization(EndUserAuthorizationFailed):
+ """End-user did not perform any authorization"""
+
+ pass
+
+
+class TokenAuthorizationTimedOut(EndUserNoAuthorization):
+ """End-user did not perform any authorization in timeout period"""
+
+ pass
+
+
+class ClientError(TokenAuthorizationException):
+ pass
+
+
+class ServerError(TokenAuthorizationException):
+ pass
+
+
+class NoLaunchpadAccount(TokenAuthorizationException):
+ pass
+
+
+class TooManyAuthenticationFailures(TokenAuthorizationException):
+ pass
diff --git a/src/launchpadlib/docs/CONTRIBUTING.rst b/src/launchpadlib/docs/CONTRIBUTING.rst
new file mode 100644
index 0000000..137032a
--- /dev/null
+++ b/src/launchpadlib/docs/CONTRIBUTING.rst
@@ -0,0 +1,40 @@
+..
+ This file is part of lazr.launchpadlib.
+
+ lazr.launchpadlib is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation, version 3 of the License.
+
+ lazr.launchpadlib is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with lazr.launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+============
+Contributing
+============
+
+To run this project's tests, use `tox <https://tox.readthedocs.io/en/latest/>`_.
+
+To update the `project's documentation
+<https://launchpadlib.readthedocs.io/en/latest/>`_ you need to trigger a manual
+build on the project's dashboard on https://readthedocs.org.
+
+
+Getting help
+------------
+
+If you find bugs in this package, you can report them here:
+
+ https://launchpad.net/launchpadlib
+
+If you want to discuss this package, join the team and mailing list here:
+
+ https://launchpad.net/~lazr-developers
+
+or send a message to:
+
+ lazr-developers@lists.launchpad.net
diff --git a/src/launchpadlib/docs/Makefile b/src/launchpadlib/docs/Makefile
new file mode 100644
index 0000000..7f97011
--- /dev/null
+++ b/src/launchpadlib/docs/Makefile
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+SPHINXPROJ = launchpadlib
+SOURCEDIR = .
+BUILDDIR = _build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file
diff --git a/src/launchpadlib/docs/NEWS.rst b/src/launchpadlib/docs/NEWS.rst
new file mode 100644
index 0000000..5c2cf8b
--- /dev/null
+++ b/src/launchpadlib/docs/NEWS.rst
@@ -0,0 +1,373 @@
+=====================
+NEWS for launchpadlib
+=====================
+
+1.10.17 (2022-10-15)
+====================
+- Generate coverage report.
+- Use ``pytest`` as test runner.
+- Fix doctests for Python 3.
+
+1.10.16 (2022-01-21)
+====================
+- Add ``pre-commit`` configuration.
+- Remove some obsolete scripts from ``contrib/``.
+- Apply ``black`` code formatter.
+- Publish documentation on Read the Docs.
+- Remove remnants of ``simplejson`` in favour of ``json``.
+- Apply inclusive naming via the ``woke`` ``pre-commit`` hook.
+- Optionally get credentials file from ``LP_CREDENTIALS_FILE`` environment
+ variable. [bug=737473]
+
+1.10.15.1 (2021-10-27)
+======================
+- Re-release without stray files in sdist.
+
+1.10.15 (2021-10-27)
+====================
+- Move dependencies of launchpadlib.testing to a new ``testing`` extra.
+ [bug=1019700]
+- Stop excluding MANIFEST.in from the sdist.
+- Declare support for Python 3.9 and 3.10.
+- Move code hosting to git (https://code.launchpad.net/launchpadlib).
+
+1.10.14 (2021-09-13)
+====================
+- Adjust versioning strategy to avoid importing pkg_resources, which is slow
+ in large environments.
+
+1.10.13 (2020-04-19)
+====================
+- Fix test runs under sudo.
+
+1.10.12 (2020-04-17)
+====================
+- Postpone keyring.errors import in the same way that we postpone importing
+ keyring itself.
+
+1.10.11 (2020-04-14)
+====================
+- Don't store credentials or open a browser window when running under sudo.
+ [bug=1825014,1862948]
+- Fall back to in-memory credentials store if no keyring backend is
+ available. [bug=1864204]
+
+1.10.10 (2020-02-04)
+====================
+- Fix AccessToken.from_string crash on Python 3.8. [bug=1861873]
+
+1.10.9 (2019-11-28)
+===================
+- Explicitly install version.txt; launchpadlib requires it.
+
+1.10.8 (2019-11-26)
+===================
+- Squash a deprecation warning on Python >= 3.7 in
+ launchpadlib.testing.launchpad.
+- Switch from buildout to tox.
+- Weaken hosted-files test slightly to avoid problems with zope.publisher >=
+ 4.2.2.
+
+1.10.7 (2019-05-22)
+===================
+- Change 'dev' URLs from launchpad.dev to launchpad.test.
+
+1.10.6 (2018-03-08)
+===================
+- Fix saving of credentials in python3 with gnome-keyring. [bug=1685962]
+
+1.10.5 (2017-02-02)
+===================
+- Fix AccessToken.from_string crash on Python 3. [bug=1471927]
+- Fix fallback if authorizing a token with a browser raises webbrowser.Error.
+- Stop introduction.txt doctest from writing to $HOME.
+
+1.10.4 (2016-07-12)
+===================
+- Fix _bad_oauth_token crash on Python 3. [bug=1471894]
+- Time out make_end_user_authorize_token after 15 minutes.
+- Ignore PendingDeprecationWarning from lazr.restfulclient. [bug=1473577]
+- Ask forgiveness rather than permission when creating cache directories.
+- Fix browser token authorization on OS X. [bug=1516080]
+
+1.10.3 (2014-12-05)
+===================
+- Port to Python3.
+- Detect proxies from the environment by default.
+
+1.10.2 (2012-07-05)
+===================
+- Typo in the doctest fix, discovered when trying to integrate with launchpad
+ itself. [bug=1020667]
+
+1.10.1 (2012-07-04)
+===================
+- Fix a doctest in introduction.txt so that the test suite runs with
+ python-2.7 (note the doctests only run when running integrated with
+ launchpad's test suite itself). [bug=1020667]
+
+1.10.0 (2012-06-19)
+===================
+- Add environment variable, LP_DISABLE_SSL_CERTIFICATE_VALIDATION, to
+ disable SSL certificate checks. Most useful when testing against
+ development servers.
+
+1.9.12 (2011-12-05)
+===================
+- Move keyring base64 encoding to KeyringCredential and be more
+ defensive about decoding. [bug=900307]
+
+1.9.11 (2011-11-21)
+===================
+- 1.9.10 was a bad release due to incomplete NEWS entries.
+
+- Add fake Launchpad web service for unit test.
+
+- Improve HACKING documentation.
+
+- Improve launchpadlib directory discovery on Windows.
+
+- Added script to delete spurious bugtasks or split a bugtask from a bug.
+
+- Properly handle Unicode passwords if returned by the keyring.
+
+- Base 64 encode serialized credentials before putting in keyring/wallet.
+
+1.9.10 (2011-11-21)
+===================
+- Base 64 encode serialized credentials before putting in keyring/wallet.
+
+1.9.9 (2011-07-27)
+==================
+
+- Fix a failing test for lazr.restfulclient 0.12.0.
+
+1.9.8 (2011-02-28)
+==================
+
+- Detect the error Launchpad sends when it doesn't recognize an access
+ token, and get a new token.
+
+1.9.7 (2011-02-15)
+==================
+
+- Slightly tweaked the behavior of EDGE_SERVICE_ROOT, and improved tests.
+
+1.9.6 (2011-02-14)
+==================
+
+- Added EDGE_SERVICE_ROOT and the 'edge' alias back, though they both
+ operate on production behind the scenes. Using the 'edge' alias will
+ cause a deprecation warning.
+
+1.9.5 (2011-02-08)
+==================
+
+- Fixed a bug that prevented the deprecated get_token_and_login code
+ from working, and that required that users of get_token_and_login
+ get a new token on every usage.
+
+1.9.4 (2011-01-18)
+==================
+
+- Removed references to the 'edge' service root, which is being phased out.
+
+- Fixed a minor bug in the upload_release_tarball contrib script which
+ was causing tarballs to be uploaded with the wrong media type.
+
+- The XSLT stylesheet for converting the Launchpad WADL into HTML
+ documentation has been moved back into Launchpad.
+
+1.9.3 (2011-01-10)
+==================
+
+- The keyring package import is now delayed until the keyring needs to be
+ accessed. This reduces launchapdlib users' exposure to unintended side
+ effects of importing keyring (KWallet authorization dialogs and the
+ registration of a SIGCHLD handler).
+
+1.9.2 (2011-01-07)
+==================
+
+- Added a missing import.
+
+1.9.1 (2011-01-06)
+==================
+
+- Corrected a test failure.
+
+1.9.0 (2011-01-05)
+==================
+
+- When an authorization token expires or becomes invalid, attempt to
+ acquire a new one, even in the middle of a session, rather than
+ crashing.
+
+- The HTML generated by wadl-to-refhtml.xsl now validates.
+
+- Most of the helper login methods have been deprecated. There are now
+ only two helper methods:
+
+ * Launchpad.login_anonymously, for anonymous credential-free access.
+ * Launchpad.login_with, for programs that need a credential.
+
+
+1.8.0 (2010-11-15)
+==================
+
+- Store authorization tokens in the Gnome keyring or KDE wallet, when
+ available. The credentials_file parameter of Launchpad.login_with() is now
+ ignored.
+
+- By default, Launchpad.login_with() now asks Launchpad for
+ desktop-wide integration. This removes the need for each individual
+ application to get its own OAuth token.
+
+1.7.0 (2010-09-23)
+==================
+
+- Removed "fake Launchpad browser" code that didn't work and was
+ misleading developers.
+
+- Added support for http://qastaging.launchpad.net by adding
+ astaging to the uris.
+
+1.6.5 (2010-08-23)
+==================
+
+- Make launchpadlib compatible with the latest lazr.restfulclient.
+
+1.6.4 (2010-08-18)
+==================
+
+- Test fixes.
+
+1.6.3 (2010-08-12)
+==================
+
+- Instead of making the end-user hit Enter after authorizing an
+ application to access their Launchpad account, launchpadlib will
+ automatically poll Launchpad until the user makes a decision.
+
+- launchpadlib now raises a more helpful exception when the end-user
+ explicitly denies access to a launchpadlib application.
+
+- Improved the XSLT stylesheet to reflect Launchpad's more complex
+ top-level structure. [bug=286941]
+
+- Test fixes. [bug=488448,616055]
+
+1.6.2 (2010-06-21)
+==================
+
+- Extended the optimization from version 1.6.1 to apply to Launchpad's
+ top-level collection of people.
+
+1.6.1 (2010-06-16)
+==================
+
+- Added an optimization that lets launchpadlib avoid making an HTTP
+ request in some situations.
+
+1.6.0 (2010-04-07)
+==================
+
+- Fixed a test to work against the latest version of Launchpad.
+
+1.5.8 (2010-03-25)
+==================
+
+- Use version 1.0 of the Launchpad web service by default.
+
+1.5.7 (2010-03-16)
+==================
+
+- Send a Referer header whenever making requests to the Launchpad
+ website (as opposed to the web service) to avoid falling afoul of
+ new cross-site-request-forgery countermeasures.
+
+1.5.6 (2010-03-04)
+==================
+
+- Fixed a minor bug when using login_with() to access a version of the
+ Launchpad web service other than the default.
+
+- Added a check to catch old client code that would cause newer
+ versions of launchpadlib to make nonsensical requests to
+ https://api.launchpad.dev/beta/beta/, and raise a helpful exception
+ telling the developer how to fix it.
+
+1.5.5
+=====
+
+- Added the ability to access different versions of the Launchpad web
+ service.
+
+1.5.4 (2009-12-17)
+==================
+
+- Made it easy to get anonymous access to a Launchpad instance.
+
+- Made it easy to plug in different clients that take the user's
+ Launchpad login and password for purposes of authorizing a request
+ token. The most secure technique is still the default: to open the
+ user's web browser to the appropriate Launchpad page.
+
+- Introduced a command-line script bin/launchpad-credentials-console,
+ which takes the user's Launchpad login and password, and authorizes
+ a request token on their behalf.
+
+- Introduced a command-line script bin/launchpad-request-token, which
+ creates a request token on any Launchpad installation and dumps the
+ JSON description of that token to standard output.
+
+- Shorthand service names like 'edge' should now be respected
+ everywhere in launchpadlib.
+
+1.5.3 (2009-10-22)
+==================
+
+- Moved some more code from launchpadlib into the more generic
+ lazr.restfulclient.
+
+1.5.2 (2009-10-01)
+==================
+
+- Added a number of new sample scripts from elsewhere.
+
+- Added a reference to the production Launchpad instance.
+
+- Made it easier to specify a Launchpad instance to run against.
+
+1.5.1 (2009-07-16)
+==================
+
+- Added a sample script for uploading a release tarball to Launchpad.
+
+1.5.0 (2009-07-09)
+==================
+
+- Most of launchpadlib's code has been moved to the generic
+ lazr.restfulclient library. launchpadlib now contains only code
+ specific to Launchpad. There should be no changes in functionality.
+
+- Moved bootstrap.py into the top-level directory. Having it in a
+ subdirectory with a top-level symlink was breaking installation on
+ Windows.
+
+- The notice to the end-user (that we're opening their web
+ browser) is now better formatted.
+
+1.0.1 (2009-05-30)
+==================
+
+- Correct tests for new launchpad cache behavior in librarian
+
+- Remove build dependency on setuptools_bzr because it was causing bzr to be
+ downloaded during installation of the package, which was unnecessary and
+ annoying.
+
+1.0 (2009-03-24)
+================
+
+- Initial release on PyPI
diff --git a/src/launchpadlib/docs/command-line.rst b/src/launchpadlib/docs/command-line.rst
new file mode 100644
index 0000000..4f8d6e9
--- /dev/null
+++ b/src/launchpadlib/docs/command-line.rst
@@ -0,0 +1,40 @@
+********************
+Command-line scripts
+********************
+
+Launchpad includes one command-line script to make Launchpad
+integration easier for third-party libraries that aren't written in
+Python.
+
+This file tests the workflow underlying the command-line script as
+best it can.
+
+RequestTokenApp
+===============
+
+This class is called by the command-line script
+launchpad-request-token. It creates a request token on a given
+Launchpad installation, and returns a JSON description of the request
+token and the available access levels.
+
+ >>> import json
+ >>> from launchpadlib.apps import RequestTokenApp
+
+ >>> web_root = "http://launchpad.test:8085/"
+ >>> consumer_name = "consumer"
+ >>> token_app = RequestTokenApp(web_root, consumer_name, "context")
+ >>> token_json = json.loads(token_app.run())
+
+ >>> for param in sorted(token_json.keys()):
+ ... print(param)
+ access_levels
+ lp.context
+ oauth_token
+ oauth_token_consumer
+ oauth_token_secret
+
+ >>> print(token_json['lp.context'])
+ context
+
+ >>> print(token_json['oauth_token_consumer'])
+ consumer
diff --git a/src/launchpadlib/docs/conf.py b/src/launchpadlib/docs/conf.py
new file mode 100644
index 0000000..05da684
--- /dev/null
+++ b/src/launchpadlib/docs/conf.py
@@ -0,0 +1,174 @@
+# -*- coding: utf-8 -*-
+#
+# launchpadlib documentation build configuration file, created by
+# sphinx-quickstart on Tue Nov 5 23:48:15 2019.
+#
+# This file is execfile()d with the current directory set to its
+# containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+from launchpadlib import __version__
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- General configuration ------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = []
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ["_templates"]
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+# source_suffix = ['.rst', '.md']
+source_suffix = ".rst"
+
+# The master toctree document.
+master_doc = "index"
+
+# General information about the project.
+project = u"launchpadlib"
+copyright = u"2008-2019, Canonical Ltd."
+author = u"LAZR Developers <lazr-developers@lists.launchpad.net>"
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = __version__
+# The full version, including alpha/beta/rc tags.
+release = __version__
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This patterns also effect to html_static_path and html_extra_path
+exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = "sphinx"
+
+# If true, `todo` and `todoList` produce output, else they produce nothing.
+todo_include_todos = False
+
+
+# -- Options for HTML output ----------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#
+html_theme = "alabaster"
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+#
+# html_theme_options = {}
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = []
+
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# This is required for the alabaster theme
+# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
+html_sidebars = {
+ "**": [
+ "relations.html", # needs 'show_related': True theme option to display
+ "searchbox.html",
+ ]
+}
+
+
+# -- Options for HTMLHelp output ------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = "launchpadlibdoc"
+
+
+# -- Options for LaTeX output ---------------------------------------------
+
+latex_elements = {
+ # The paper size ('letterpaper' or 'a4paper').
+ #
+ # 'papersize': 'letterpaper',
+ # The font size ('10pt', '11pt' or '12pt').
+ #
+ # 'pointsize': '10pt',
+ # Additional stuff for the LaTeX preamble.
+ #
+ # 'preamble': '',
+ # Latex figure (float) alignment
+ #
+ # 'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+# author, documentclass [howto, manual, or own class]).
+latex_documents = [
+ (
+ master_doc,
+ "launchpadlib.tex",
+ u"launchpadlib Documentation",
+ u"LAZR Developers \\textless{}lazr-developers@lists.launchpad.net\\textgreater{}", # noqa: E501
+ "manual",
+ ),
+]
+
+
+# -- Options for manual page output ---------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ (master_doc, "launchpadlib", u"launchpadlib Documentation", [author], 1)
+]
+
+
+# -- Options for Texinfo output -------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+texinfo_documents = [
+ (
+ master_doc,
+ "launchpadlib",
+ u"launchpadlib Documentation",
+ author,
+ "launchpadlib",
+ "One line description of project.",
+ "Miscellaneous",
+ ),
+]
diff --git a/src/launchpadlib/docs/files/mugshot.png b/src/launchpadlib/docs/files/mugshot.png
new file mode 100644
index 0000000..94a7e76
--- /dev/null
+++ b/src/launchpadlib/docs/files/mugshot.png
Binary files differ
diff --git a/src/launchpadlib/docs/hosted-files.rst b/src/launchpadlib/docs/hosted-files.rst
new file mode 100644
index 0000000..1ba1beb
--- /dev/null
+++ b/src/launchpadlib/docs/hosted-files.rst
@@ -0,0 +1,103 @@
+************
+Hosted files
+************
+
+The Launchpad web service sets restrictions on what kinds of documents
+can be written to a particular file. This test shows what happens when
+you try to upload a non-image for a field that expects an image.
+
+ >>> from launchpadlib.testing.helpers import salgado_with_full_permissions
+ >>> launchpad = salgado_with_full_permissions.login()
+ >>> from launchpadlib.errors import HTTPError
+
+ >>> mugshot = launchpad.me.mugshot
+ >>> file_handle = mugshot.open("w", "image/png", "nonimage.txt")
+ >>> file_handle.content_type
+ 'image/png'
+ >>> file_handle.filename
+ 'nonimage.txt'
+ >>> file_handle.write(b"Not an image.")
+ >>> try:
+ ... file_handle.close()
+ ... except HTTPError as e:
+ ... print(e.content.decode())
+ <BLANKLINE>
+ The file uploaded was not recognized as an image; please
+ check it and retry.
+
+Of course, uploading an image works fine.
+
+ >>> import os
+ >>> def load_image(filename):
+ ... image_file = os.path.join(
+ ... os.path.dirname(__file__), 'files', filename)
+ ... with open(image_file, "rb") as f:
+ ... return f.read()
+ >>> image = load_image("mugshot.png")
+ >>> len(image)
+ 2260
+
+ >>> file_handle = mugshot.open("w", "image/png", "a-mugshot.png")
+ >>> file_handle.write(image)
+ >>> file_handle.close()
+
+
+== Error handling ==
+
+The server may set restrictions on what kinds of documents can be
+written to a particular file.
+
+ >>> file_handle = mugshot.open("w", "image/png", "nonimage.txt")
+ >>> file_handle.content_type
+ 'image/png'
+ >>> file_handle.filename
+ 'nonimage.txt'
+ >>> file_handle.write(b"Not an image.")
+ >>> file_handle.close()
+ Traceback (most recent call last):
+ ...
+ lazr.restfulclient.errors.BadRequest: HTTP Error 400: Bad Request
+ ...
+
+== Caching ==
+
+Hosted file resources implement the normal server-side caching
+mechanism.
+
+ >>> file_handle = mugshot.open("w", "image/png", "image.png")
+ >>> file_handle.write(image)
+ >>> file_handle.close()
+
+ >>> import httplib2
+ >>> httplib2.debuglevel = 1
+ >>> launchpad = salgado_with_full_permissions.login()
+ send: ...
+ >>> mugshot = launchpad.me.mugshot
+ send: ...
+
+The first request for a file retrieves the file from the server.
+
+ >>> len(mugshot.open().read())
+ send: ...
+ reply: 'HTTP/1.1 303 See Other...
+ reply: 'HTTP/1.1 200 OK...
+ 2260
+
+The second request retrieves the file from the cache. After receiving
+the 303 request with its Location header, no further HTTP requests are
+issued because the Librarian's Cache-Control: headers tell us we
+already have a fresh copy.
+
+ >>> len(mugshot.open().read())
+ send: ...
+ reply: 'HTTP/1.1 303 See Other...
+ header: Location...
+ 2260
+
+Finally, some cleanup code that deletes the mugshot.
+
+ >>> mugshot.delete()
+ send: b'DELETE...
+ reply: 'HTTP/1.1 200...
+
+ >>> httplib2.debuglevel = 0
diff --git a/src/launchpadlib/docs/index.rst b/src/launchpadlib/docs/index.rst
new file mode 100644
index 0000000..c37698b
--- /dev/null
+++ b/src/launchpadlib/docs/index.rst
@@ -0,0 +1,33 @@
+..
+ This file is part of launchpadlib.
+
+ launchpadlib is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation, version 3 of the License.
+
+ launchpadlib is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+launchpadlib
+************
+
+See https://help.launchpad.net/API/launchpadlib .
+
+.. pypi description ends here
+
+.. toctree::
+ :glob:
+
+ introduction
+ operations
+ toplevel
+ people
+ hosted-files
+ command-line
+ CONTRIBUTING
+ NEWS
diff --git a/src/launchpadlib/docs/introduction.rst b/src/launchpadlib/docs/introduction.rst
new file mode 100644
index 0000000..0bb321e
--- /dev/null
+++ b/src/launchpadlib/docs/introduction.rst
@@ -0,0 +1,415 @@
+************
+launchpadlib
+************
+
+launchpadlib is the standalone Python language bindings to Launchpad's web
+services API. It is officially supported by Canonical, although third party
+packages may be available to provide bindings to other programming languages.
+
+Set up
+======
+
+launchpadlib writes to $HOME, so isolate ourselves.
+
+ >>> from fixtures import (
+ ... EnvironmentVariable,
+ ... TempDir,
+ ... )
+ >>> tempdir_fixture = TempDir()
+ >>> tempdir_fixture.setUp()
+ >>> home_fixture = EnvironmentVariable('HOME', tempdir_fixture.path)
+ >>> home_fixture.setUp()
+
+OAuth authentication
+====================
+
+The Launchpad API requires user authentication via OAuth, and launchpadlib
+provides a high level interface to OAuth for the most common use cases.
+Several pieces of information are necessary to complete the OAuth request:
+
+ * A consumer key, which is unique to the application using the API
+ * An access token, which represents the user to the web service
+ * An access token secret, essentially a password for the token
+
+Consumer keys are hard-baked into the application. They are generated by the
+application developer and registered with Launchpad independently of the use
+of the application. Since consumer keys are arbitrary, a registered consumer
+key can be paired with a secret, but most open source applications will forgo
+this since it's not really a secret anyway.
+
+The access token cannot be provided directly. Instead, the application
+generates an unauthenticated request token, exchanging this for an access
+token and a secret after obtaining approval to do so from the user. This
+permission is typically gained by redirecting the user through their trusted
+web browser, then back to the application.
+
+This entire exchange is managed by launchpadlib's credentials classes.
+Credentials can be stored in a file, though the security of this depends on
+the implementation of the file object. In the simplest case, the application
+will request a new access token every time.
+
+ >>> from launchpadlib.credentials import Consumer
+ >>> consumer = Consumer('launchpad-library')
+ >>> consumer.key
+ 'launchpad-library'
+ >>> consumer.secret
+ ''
+
+Salgado has full access to the Launchpad API. Out of band, the application
+itself obtains Salgado's approval to access the Launchpad API on his behalf.
+How the application does this is up to the application, provided it conforms
+to the OAuth protocol. Once this happens, we have Salgado's credentials for
+accessing Launchpad.
+
+ >>> from launchpadlib.credentials import AccessToken
+ >>> access_token = AccessToken('salgado-change-anything', 'test')
+
+And now these credentials are used to access the root service on Salgado's
+behalf.
+
+ >>> from launchpadlib.credentials import Credentials
+ >>> credentials = Credentials(
+ ... consumer_name=consumer.key, consumer_secret=consumer.secret,
+ ... access_token=access_token)
+
+ >>> from launchpadlib.testing.helpers import (
+ ... TestableLaunchpad as Launchpad)
+ >>> launchpad = Launchpad(credentials=credentials)
+ >>> list(launchpad.people)
+ [...]
+ >>> list(launchpad.bugs)
+ [...]
+
+If available, the Gnome keyring or KDE wallet will be used to store access
+tokens. If a keyring/wallet is not available, the application can store the
+credentials on the file system, so that the next time Salgado interacts with
+the application, he won't have to go through the whole OAuth request dance.
+
+ >>> import os
+ >>> import tempfile
+ >>> fd, path = tempfile.mkstemp('.credentials')
+ >>> os.close(fd)
+
+Once Salgado's credentials are obtained for the first time, just set the
+appropriate instance variables and use the save() method.
+
+ >>> credentials.consumer = consumer
+ >>> credentials.access_token = access_token
+ >>> credentials_file = open(path, 'w')
+ >>> credentials.save(credentials_file)
+ >>> credentials_file.close()
+
+And the credentials are perfectly valid for accessing Launchpad.
+
+ >>> launchpad = Launchpad(credentials=credentials)
+ >>> list(launchpad.people)
+ [...]
+ >>> list(launchpad.bugs)
+ [...]
+
+The credentials can also be retrieved from the file, so that the OAuth request
+dance can be avoided.
+
+ >>> credentials = Credentials()
+ >>> credentials_file = open(path)
+ >>> credentials.load(credentials_file)
+ >>> credentials_file.close()
+ >>> credentials.consumer.key
+ 'launchpad-library'
+ >>> credentials.consumer.secret
+ ''
+ >>> credentials.access_token.key
+ 'salgado-change-anything'
+ >>> credentials.access_token.secret
+ 'test'
+
+These credentials too, are perfectly usable to access Launchpad.
+
+ >>> launchpad = Launchpad(credentials=credentials)
+ >>> list(launchpad.people)
+ [...]
+ >>> list(launchpad.bugs)
+ [...]
+
+The security of the stored credentials is left up to the file-like object.
+Here, the application decides to use a dubious encryption algorithm to hide
+Salgado's credentials.
+
+ >>> import io
+ >>> from codecs import EncodedFile
+ >>> encrypted_file = io.BytesIO()
+ >>> stream = EncodedFile(encrypted_file, 'rot_13', 'ascii')
+ >>> credentials.save(stream)
+ >>> _ = stream.seek(0, 0)
+ >>> print(''.join(sorted([line.decode() for line in encrypted_file])))
+ [1]
+ <BLANKLINE>
+ <BLANKLINE>
+ npprff_frperg = grfg
+ npprff_gbxra = fnytnqb-punatr-nalguvat
+ pbafhzre_frperg =
+ pbafhzre_xrl = ynhapucnq-yvoenel
+
+ >>> _ = stream.seek(0)
+ >>> credentials = Credentials()
+ >>> credentials.load(stream)
+ >>> credentials.consumer.key
+ 'launchpad-library'
+ >>> credentials.consumer.secret
+ ''
+ >>> credentials.access_token.key
+ 'salgado-change-anything'
+ >>> credentials.access_token.secret
+ 'test'
+
+
+Anonymous access
+================
+
+An anonymous access token doesn't authenticate any particular
+user. Using it will give a client read-only access to the public parts
+of the Launchpad dataset.
+
+ >>> from launchpadlib.credentials import AnonymousAccessToken
+ >>> anonymous_token = AnonymousAccessToken()
+
+ >>> from launchpadlib.credentials import Credentials
+ >>> credentials = Credentials(
+ ... consumer_name="a consumer", access_token=anonymous_token)
+ >>> launchpad = Launchpad(credentials=credentials)
+
+ >>> salgado = launchpad.people['salgado']
+ >>> print(salgado.display_name)
+ Guilherme Salgado
+
+An anonymous client can't modify the dataset, or read any data that's
+permission-controlled or scoped to a particular user.
+
+ >>> launchpad.me
+ Traceback (most recent call last):
+ ...
+ lazr.restfulclient.errors.Unauthorized: HTTP Error 401: Unauthorized
+ ...
+
+ >>> salgado.display_name = "This won't work."
+ >>> salgado.lp_save()
+ Traceback (most recent call last):
+ ...
+ lazr.restfulclient.errors.Unauthorized: HTTP Error 401: Unauthorized
+ ...
+
+Convenience
+===========
+
+When you want anonymous access, a convenience method is available for
+setting up a web service connection in one function call. All you have
+to provide is the consumer name.
+
+ >>> launchpad = Launchpad.login_anonymously(
+ ... 'launchpad-library', service_root="test_dev")
+ >>> list(launchpad.people)
+ [...]
+
+ >>> launchpad.me
+ Traceback (most recent call last):
+ ...
+ lazr.restfulclient.errors.Unauthorized: HTTP Error 401: Unauthorized
+ ...
+
+Otherwise, the application should obtain authorization from the user
+and get a new set of credentials directly from
+Launchpad.
+
+Unfortunately, we can't test this entire process because it requires
+opening up a web browser, but we can test the first step, which is to
+get a request token.
+
+ >>> import launchpadlib.credentials
+ >>> credentials = Credentials('consumer')
+
+ >>> authorization_url = credentials.get_request_token(
+ ... context='firefox', web_root='test_dev')
+ >>> print(authorization_url)
+ http://launchpad.test:8085/+authorize-token?oauth_token=...&lp.context=firefox
+
+We use 'test_dev' as a shorthand for the root URL of the Launchpad
+installation. It's defined in the 'uris' module as
+'http://launchpad.test:8085/', and the launchpadlib code knows how to
+dereference it before using it as a URL.
+
+Information about the request token is kept in the _request_token
+attribute of the Credentials object.
+
+ >>> credentials._request_token.key is not None
+ True
+ >>> credentials._request_token.secret is not None
+ True
+ >>> print(credentials._request_token.context)
+ firefox
+
+Now the user must authorize that token, and this is the part we can't
+test--it requires opening a web browser. Once the token is authorized
+on the server side, we can call exchange_request_token_for_access_token()
+on our Credentials object, which will then be ready to use.
+
+The dictionary request token
+============================
+
+By default, get_request_token returns the URL that the user needs to
+use when granting access to the token. But you can specify a different
+token_format and get a dictionary instead.
+
+ >>> credentials = Credentials('consumer')
+ >>> dictionary = credentials.get_request_token(
+ ... context='firefox', web_root='test_dev',
+ ... token_format=Credentials.DICT_TOKEN_FORMAT)
+
+The dictionary has useful information about the token and about the
+levels of authentication Launchpad offers.
+
+ >>> for param in sorted(dictionary.keys()):
+ ... print(param)
+ access_levels
+ lp.context
+ oauth_token
+ oauth_token_consumer
+ oauth_token_secret
+
+The _request_token attribute of the Credentials object has the same
+fields set as if you had asked for the default URI token format.
+
+ >>> credentials._request_token.key is not None
+ True
+ >>> credentials._request_token.secret is not None
+ True
+ >>> print(credentials._request_token.context)
+ firefox
+
+
+Credentials file errors
+=======================
+
+If the credentials file is empty, loading it raises an exception.
+
+ >>> credentials = Credentials()
+ >>> credentials.load(io.StringIO())
+ Traceback (most recent call last):
+ ...
+ lazr.restfulclient.errors.CredentialsFileError: No configuration for
+ version 1
+
+It is an error to save a credentials file when no consumer or access token is
+available.
+
+ >>> credentials.consumer = None
+ >>> credentials.save(io.StringIO())
+ Traceback (most recent call last):
+ ...
+ lazr.restfulclient.errors.CredentialsFileError: No consumer
+
+ >>> credentials.consumer = consumer
+ >>> credentials.access_token = None
+ >>> credentials.save(io.StringIO())
+ Traceback (most recent call last):
+ ...
+ lazr.restfulclient.errors.CredentialsFileError: No access token
+
+The credentials file is not intended to be edited, but because it's human
+readable, that's of course possible. If the credentials file gets corrupted,
+an error is raised.
+
+ >>> credentials_file = io.StringIO("""\
+ ... [1]
+ ... #consumer_key: aardvark
+ ... consumer_secret: badger
+ ... access_token: caribou
+ ... access_secret: dingo
+ ... """)
+ >>> credentials.load(credentials_file)
+ Traceback (most recent call last):
+ ...
+ configparser.NoOptionError: No option 'consumer_key' in section: '1'
+
+ >>> credentials_file = io.StringIO("""\
+ ... [1]
+ ... consumer_key: aardvark
+ ... #consumer_secret: badger
+ ... access_token: caribou
+ ... access_secret: dingo
+ ... """)
+ >>> credentials.load(credentials_file)
+ Traceback (most recent call last):
+ ...
+ configparser.NoOptionError: No option 'consumer_secret' in section: '1'
+
+ >>> credentials_file = io.StringIO("""\
+ ... [1]
+ ... consumer_key: aardvark
+ ... consumer_secret: badger
+ ... #access_token: caribou
+ ... access_secret: dingo
+ ... """)
+ >>> credentials.load(credentials_file)
+ Traceback (most recent call last):
+ ...
+ configparser.NoOptionError: No option 'access_token' in section: '1'
+
+ >>> credentials_file = io.StringIO("""\
+ ... [1]
+ ... consumer_key: aardvark
+ ... consumer_secret: badger
+ ... access_token: caribou
+ ... #access_secret: dingo
+ ... """)
+ >>> credentials.load(credentials_file)
+ Traceback (most recent call last):
+ ...
+ configparser.NoOptionError: No option 'access_secret' in section: '1'
+
+
+Bad credentials
+===============
+
+The application is not allowed to access Launchpad with a bad access token.
+
+ >>> access_token = AccessToken('bad', 'no-secret')
+ >>> credentials = Credentials(
+ ... consumer_name=consumer.key, consumer_secret=consumer.secret,
+ ... access_token=access_token)
+ >>> launchpad = Launchpad(credentials=credentials)
+ Traceback (most recent call last):
+ ...
+ lazr.restfulclient.errors.Unauthorized: HTTP Error 401: Unauthorized
+ ...
+
+The application is not allowed to access Launchpad with a consumer
+name that doesn't match the credentials.
+
+ >>> access_token = AccessToken('salgado-change-anything', 'test')
+ >>> credentials = Credentials(
+ ... consumer_name='not-the-launchpad-library',
+ ... access_token=access_token)
+ >>> launchpad = Launchpad(credentials=credentials)
+ Traceback (most recent call last):
+ ...
+ lazr.restfulclient.errors.Unauthorized: HTTP Error 401: Unauthorized
+ ...
+
+The application is not allowed to access Launchpad with a bad access secret.
+
+ >>> access_token = AccessToken('hgm2VK35vXD6rLg5pxWw', 'bad-secret')
+ >>> credentials = Credentials(
+ ... consumer_name=consumer.key, consumer_secret=consumer.secret,
+ ... access_token=access_token)
+ >>> launchpad = Launchpad(credentials=credentials)
+ Traceback (most recent call last):
+ ...
+ lazr.restfulclient.errors.Unauthorized: HTTP Error 401: Unauthorized
+ ...
+
+Clean up
+========
+
+ >>> os.remove(path)
+ >>> home_fixture.cleanUp()
+ >>> tempdir_fixture.cleanUp()
diff --git a/src/launchpadlib/docs/operations.rst b/src/launchpadlib/docs/operations.rst
new file mode 100644
index 0000000..0bceb4b
--- /dev/null
+++ b/src/launchpadlib/docs/operations.rst
@@ -0,0 +1,27 @@
+****************
+Named operations
+****************
+
+launchpadlib can transparently determine the size of the list even
+when the size is not directly provided, but is only available through
+a link.
+
+ >>> from launchpadlib.testing.helpers import salgado_with_full_permissions
+ >>> launchpad = salgado_with_full_permissions.login(version="devel")
+
+ >>> results = launchpad.people.find(text='s')
+ >>> 'total_size' in results._wadl_resource.representation.keys()
+ False
+ >>> 'total_size_link' in results._wadl_resource.representation.keys()
+ True
+ >>> len(results) > 1
+ True
+
+Of course, launchpadlib can also determine the size when the size _is_
+directly provided.
+
+ >>> results = launchpad.people.find(text='salgado')
+ >>> 'total_size' in results._wadl_resource.representation.keys()
+ True
+ >>> len(results) == 1
+ True
diff --git a/src/launchpadlib/docs/people.rst b/src/launchpadlib/docs/people.rst
new file mode 100644
index 0000000..83a98c8
--- /dev/null
+++ b/src/launchpadlib/docs/people.rst
@@ -0,0 +1,223 @@
+****************
+People and Teams
+****************
+
+The Launchpad web service, like Launchpad itself, exposes a unified
+interface to people and teams. In other words, people and teams
+occupy the same namespace. You treat people and teams as the same
+type of object, and need to inspect the object to know whether you're
+dealing with a person or a team.
+
+
+People
+======
+
+You can access Launchpad people through the web service interface.
+The list of people is available from the service root.
+
+ >>> from launchpadlib.testing.helpers import salgado_with_full_permissions
+ >>> launchpad = salgado_with_full_permissions.login()
+ >>> people = launchpad.people
+
+The list of people is not fetched until you actually use data.
+
+ >>> print(people._wadl_resource.representation)
+ None
+
+ >>> len(people)
+ 4
+
+ >>> print(people._wadl_resource.representation)
+ {...}
+
+The 'me' attribute is also available from the service root. It's a
+quick way to get a reference to your own user account.
+
+ >>> me = launchpad.me
+ >>> print(me.name)
+ salgado
+
+You can find a person by name.
+
+ >>> salgado = launchpad.people['salgado']
+ >>> print(salgado.name)
+ salgado
+ >>> print(salgado.display_name)
+ Guilherme Salgado
+ >>> salgado.is_team
+ False
+
+But if no person by that name is registered, you get the expected KeyError.
+
+ >>> launchpad.people['not-a-registered-person']
+ Traceback (most recent call last):
+ ...
+ KeyError: 'not-a-registered-person'
+
+It's not possible to slice a single person from the top-level
+collection of people. launchpadlib will try to use the value you pass
+in as a person's name, which will almost always fail.
+
+ >>> launchpad.people[1]
+ Traceback (most recent call last):
+ ...
+ KeyError: 1
+
+You can find a person by email.
+
+ >>> email = salgado.preferred_email_address.email
+ >>> salgado = launchpad.people.getByEmail(email=email)
+ >>> print(salgado.name)
+ salgado
+
+Besides a name and a display name, a person has many other attributes that you
+can read.
+
+ XXX 05-Jun-2008 BarryWarsaw Some of these attributes are links to further
+ collections and are not yet tested. Tests will be added in future
+ branches.
+
+ >>> salgado.karma
+ 0
+ >>> print(salgado.homepage_content)
+ None
+ >>> #salgado.mugshot
+ >>> #salgado.languages
+ >>> salgado.hide_email_addresses
+ False
+ >>> salgado.date_created
+ datetime.datetime(2005, 6, 6, 8, 59, 51, 596025, ...)
+ >>> print(salgado.time_zone)
+ UTC
+ >>> salgado.is_valid
+ True
+ >>> #salgado.wiki_names
+ >>> #salgado.irc_nicknames
+ >>> #salgado.jabber_ids
+ >>> #salgado.team_memberships
+ >>> #salgado.open_membership_invitations
+ >>> #salgado.teams_participated_in
+ >>> #salgado.teams_indirectly_participated_in
+ >>> #salgado.confirmed_email_addresses
+ >>> #salgado.preferred_email_address
+ >>> print(salgado.mailing_list_auto_subscribe_policy)
+ Ask me when I join a team
+ >>> print(salgado.visibility)
+ Public
+
+
+Teams
+=====
+
+You also access teams using the same interface.
+
+ >>> team = launchpad.people['ubuntu-team']
+ >>> print(team.name)
+ ubuntu-team
+ >>> print(team.display_name)
+ Ubuntu Team
+ >>> team.is_team
+ True
+
+Regular people have team attributes, but they're not used.
+
+ >>> print(salgado.team_owner)
+ None
+
+You can find out how a person has membership in a team.
+
+ # XXX: salgado, 2008-08-01: Commented because method has been Unexported;
+ # it should be re-enabled after the operation is exported again.
+ # >>> path = salgado.findPathToTeam(
+ # ... team=launchpad.people['mailing-list-experts'])
+ # >>> [team.name for team in path]
+ # [u'admins', u'mailing-list-experts']
+
+You can create a new team through the web interface. The simplest case of
+this requires only the new team's name, owner and display name.
+
+ >>> launchpad.people['bassists']
+ Traceback (most recent call last):
+ ...
+ KeyError: 'bassists'
+
+ >>> bassists = launchpad.people.newTeam(
+ ... name='bassists', display_name='Awesome Rock Bass Players')
+ >>> print(bassists.name)
+ bassists
+ >>> print(bassists.display_name)
+ Awesome Rock Bass Players
+ >>> bassists.is_team
+ True
+
+And of course, that team is now accessible directly.
+
+ >>> bassists = launchpad.people['bassists']
+ >>> print(bassists.name)
+ bassists
+ >>> print(bassists.display_name)
+ Awesome Rock Bass Players
+
+You cannot create the same team twice.
+
+ >>> launchpad.people.newTeam(name='bassists', display_name='Bass Gods')
+ Traceback (most recent call last):
+ ...
+ lazr.restfulclient.errors.BadRequest: HTTP Error 400: Bad Request
+ ...
+
+Actually, the exception contains other useful information.
+
+ >>> from launchpadlib.errors import HTTPError
+ >>> try:
+ ... launchpad.people.newTeam(
+ ... name='bassists', display_name='Bass Gods')
+ ... except HTTPError as e:
+ ... error = e
+ >>> error.response['status']
+ '400'
+ >>> print(error.content.decode())
+ name: bassists is already in use by another person or team.
+
+Besides a name and a display name, a team has many other attributes that you
+can read.
+
+ >>> bassists.karma
+ 0
+ >>> print(bassists.homepage_content)
+ None
+ >>> bassists.hide_email_addresses
+ False
+ >>> bassists.date_created
+ datetime.datetime(...)
+ >>> print(bassists.time_zone)
+ UTC
+ >>> bassists.is_valid
+ True
+ >>> #bassists.team_memberships
+ >>> #bassists.open_membership_invitations
+ >>> #bassists.teams_participated_in
+ >>> #bassists.teams_indirectly_participated_in
+ >>> #bassists.confirmed_email_addresses
+ >>> #bassists.team_owner
+ >>> #bassists.preferred_email_address
+ >>> #bassists.members
+ >>> #bassists.admins
+ >>> #bassists.participants
+ >>> #bassists.deactivated_members
+ >>> #bassists.expired_members
+ >>> #bassists.invited_members
+ >>> #bassists.member_memberships
+ >>> #bassists.proposed_members
+ >>> print(bassists.visibility)
+ Public
+ >>> print(bassists.team_description)
+ None
+ >>> print(bassists.subscription_policy)
+ Moderated Team
+ >>> print(bassists.renewal_policy)
+ invite them to apply for renewal
+ >>> print(bassists.default_membership_period)
+ None
+ >>> print(bassists.default_renewal_period)
+ None
diff --git a/src/launchpadlib/docs/toplevel.rst b/src/launchpadlib/docs/toplevel.rst
new file mode 100644
index 0000000..67c480a
--- /dev/null
+++ b/src/launchpadlib/docs/toplevel.rst
@@ -0,0 +1,121 @@
+*********************
+Top-level collections
+*********************
+
+The launchpad web service's top-level collections provide access to
+Launchpad-wide objects like projects and people.
+
+ >>> import httplib2
+ >>> httplib2.debuglevel = 1
+
+ >>> from launchpadlib.testing.helpers import salgado_with_full_permissions
+ >>> launchpad = salgado_with_full_permissions.login()
+ send: ...
+ ...
+
+It's possible to do key-based lookups on the top-level
+collections. The bug collection does lookups by bug ID.
+
+ >>> bug = launchpad.bugs[1]
+ send: b'GET /.../bugs/1 ...'
+ ...
+
+To avoid triggering an HTTP request when simply looking up an object,
+you can use a different syntax:
+
+ >>> bug = launchpad.bugs(1)
+
+The HTTP request will happen when you need information that can only
+be obtained from the web service.
+
+ >>> print(bug.id)
+ send: b'GET /.../bugs/1 ...'
+ ...
+ 1
+
+Let's look at some more collections. The project collection does
+lookups by project name.
+
+ >>> project = launchpad.projects('firefox')
+ >>> print(project.name)
+ send: b'GET /.../firefox ...'
+ ...
+ firefox
+
+The project group collection does lookups by project group name.
+
+ >>> group = launchpad.project_groups('gnome')
+ >>> print(group.name)
+ send: b'GET /.../gnome ...'
+ ...
+ gnome
+
+The distribution collection does lookups by distribution name.
+
+ >>> distribution = launchpad.distributions('ubuntu')
+ >>> print(distribution.name)
+ send: b'GET /.../ubuntu ...'
+ ...
+ ubuntu
+
+The person collection does lookups by a person's Launchpad
+name.
+
+ >>> person = launchpad.people('salgado')
+ >>> print(person.name)
+ send: b'GET /.../~salgado ...'
+ ...
+ salgado
+
+ >>> team = launchpad.people('rosetta-admins')
+ >>> print(team.name)
+ send: b'GET /1.0/~rosetta-admins ...'
+ ...
+ rosetta-admins
+
+How does launchpadlib know that 'salgado' is a person and
+'rosetta-admins' is a team?
+
+ >>> print(person.resource_type_link)
+ http://.../1.0/#person
+ >>> 'default_membership_period' in person.lp_attributes
+ False
+
+ >>> print(team.resource_type_link)
+ http://.../1.0/#team
+ >>> 'default_membership_period' in team.lp_attributes
+ True
+
+The truth is that it doesn't know, not before making that HTTP
+request. Until an HTTP request is made, launchpadlib assumes
+everything in launchpad.people[] is a team (since a team has strictly
+more capabilities than a person).
+
+ >>> person2 = launchpad.people('salgado')
+ >>> 'default_membership_period' in person2.lp_attributes
+ True
+
+But accessing any attribute of an object--even trying to see what kind
+of object 'salgado' is--will trigger the HTTP request that will
+determine that 'salgado' is actually a person.
+
+ >>> print(person2.resource_type_link)
+ send: b'GET /.../~salgado ...'
+ ...
+ http://.../1.0/#person
+
+ >>> 'default_membership_period' in person2.lp_attributes
+ False
+
+Accessing an attribute of an object that might be a team will trigger
+the HTTP request, and then cause an error if the object turns out not
+to be a team.
+
+ >>> person3 = launchpad.people('salgado')
+ >>> person3.default_membership_period
+ Traceback (most recent call last):
+ AttributeError: ...api.launchpad.../~salgado object has no attribute 'default_membership_period'
+
+Cleanup.
+
+ >>> httplib2.debuglevel = 0
diff --git a/src/launchpadlib/errors.py b/src/launchpadlib/errors.py
new file mode 100644
index 0000000..87b6500
--- /dev/null
+++ b/src/launchpadlib/errors.py
@@ -0,0 +1,20 @@
+# Copyright 2008 Canonical Ltd.
+
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by the
+# Free Software Foundation, version 3 of the License.
+#
+# launchpadlib is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+# for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+
+"""Reimport errors from restfulclient for convenience's sake."""
+
+from lazr.restfulclient.errors import * # noqa: F401, F403
diff --git a/src/launchpadlib/launchpad.py b/src/launchpadlib/launchpad.py
new file mode 100644
index 0000000..d8c6ba6
--- /dev/null
+++ b/src/launchpadlib/launchpad.py
@@ -0,0 +1,805 @@
+# Copyright 2008-2009 Canonical Ltd.
+
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by the
+# Free Software Foundation, version 3 of the License.
+#
+# launchpadlib is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+# for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+"""Root Launchpad API class."""
+
+__metaclass__ = type
+__all__ = [
+ "Launchpad",
+]
+
+import errno
+import os
+
+try:
+ from urllib.parse import urlsplit
+except ImportError:
+ from urlparse import urlsplit
+import warnings
+
+try:
+ from httplib2 import proxy_info_from_environment
+except ImportError:
+ from httplib2 import ProxyInfo
+
+ proxy_info_from_environment = ProxyInfo.from_environment
+
+from lazr.restfulclient.resource import ( # noqa: F401
+ CollectionWithKeyBasedLookup,
+ HostedFile, # Re-import for client convenience
+ ScalarValue, # Re-import for client convenience
+ ServiceRoot,
+)
+from lazr.restfulclient.authorize.oauth import SystemWideConsumer
+from lazr.restfulclient._browser import RestfulHttp
+from launchpadlib.credentials import (
+ AccessToken,
+ AnonymousAccessToken,
+ AuthorizeRequestTokenWithBrowser,
+ AuthorizeRequestTokenWithURL,
+ Consumer,
+ Credentials,
+ MemoryCredentialStore,
+ KeyringCredentialStore,
+ UnencryptedFileCredentialStore,
+)
+from launchpadlib import uris
+
+
+# Import old constants for backwards compatibility
+from launchpadlib.uris import ( # noqa: F401
+ STAGING_SERVICE_ROOT,
+ EDGE_SERVICE_ROOT,
+)
+
+OAUTH_REALM = "https://api.launchpad.net"
+
+
+class PersonSet(CollectionWithKeyBasedLookup):
+ """A custom subclass capable of person lookup by username."""
+
+ def _get_url_from_id(self, key):
+ """Transform a username into the URL to a person resource."""
+ return str(self._root._root_uri.ensureSlash()) + "~" + str(key)
+
+ # The only way to determine whether a string corresponds to a
+ # person or a team object is to ask the server, so looking up an
+ # entry from the PersonSet always requires making an HTTP request.
+ collection_of = "team"
+
+
+class BugSet(CollectionWithKeyBasedLookup):
+ """A custom subclass capable of bug lookup by bug ID."""
+
+ def _get_url_from_id(self, key):
+ """Transform a bug ID into the URL to a bug resource."""
+ return str(self._root._root_uri.ensureSlash()) + "bugs/" + str(key)
+
+ collection_of = "bug"
+
+
+class PillarSet(CollectionWithKeyBasedLookup):
+ """A custom subclass capable of lookup by pillar name.
+
+ Projects, project groups, and distributions are all pillars.
+ """
+
+ def _get_url_from_id(self, key):
+ """Transform a project name into the URL to a project resource."""
+ return str(self._root._root_uri.ensureSlash()) + str(key)
+
+ # The subclasses for projects, project groups, and distributions
+ # all define this property differently.
+ collection_of = None
+
+
+class ProjectSet(PillarSet):
+ """A custom subclass for accessing the collection of projects."""
+
+ collection_of = "project"
+
+
+class ProjectGroupSet(PillarSet):
+ """A custom subclass for accessing the collection of project groups."""
+
+ collection_of = "project_group"
+
+
+class DistributionSet(PillarSet):
+ """A custom subclass for accessing the collection of project groups."""
+
+ collection_of = "distribution"
+
+
+class LaunchpadOAuthAwareHttp(RestfulHttp):
+ """Detects expired/invalid OAuth tokens and tries to get a new token."""
+
+ def __init__(self, launchpad, authorization_engine, *args):
+ self.launchpad = launchpad
+ self.authorization_engine = authorization_engine
+ super(LaunchpadOAuthAwareHttp, self).__init__(*args)
+
+ def _bad_oauth_token(self, response, content):
+ """Helper method to detect an error caused by a bad OAuth token."""
+ return response.status == 401 and (
+ content.startswith(b"Expired token")
+ or content.startswith(b"Invalid token")
+ or content.startswith(b"Unknown access token")
+ )
+
+ def _request(self, *args):
+ response, content = super(LaunchpadOAuthAwareHttp, self)._request(
+ *args
+ )
+ return self.retry_on_bad_token(response, content, *args)
+
+ def retry_on_bad_token(self, response, content, *args):
+ """If the response indicates a bad token, get a new token and retry.
+
+ Otherwise, just return the response.
+ """
+ if (
+ self._bad_oauth_token(response, content)
+ and self.authorization_engine is not None
+ ):
+ # This access token is bad. Scrap it and create a new one.
+ self.launchpad.credentials.access_token = None
+ self.authorization_engine(
+ self.launchpad.credentials, self.launchpad.credential_store
+ )
+ # Retry the request with the new credentials.
+ return self._request(*args)
+ return response, content
+
+
+class Launchpad(ServiceRoot):
+ """Root Launchpad API class.
+
+ :ivar credentials: The credentials instance used to access Launchpad.
+ :type credentials: `Credentials`
+ """
+
+ DEFAULT_VERSION = "1.0"
+
+ RESOURCE_TYPE_CLASSES = {
+ "bugs": BugSet,
+ "distributions": DistributionSet,
+ "people": PersonSet,
+ "project_groups": ProjectGroupSet,
+ "projects": ProjectSet,
+ }
+ RESOURCE_TYPE_CLASSES.update(ServiceRoot.RESOURCE_TYPE_CLASSES)
+
+ def __init__(
+ self,
+ credentials,
+ authorization_engine,
+ credential_store,
+ service_root=uris.STAGING_SERVICE_ROOT,
+ cache=None,
+ timeout=None,
+ proxy_info=proxy_info_from_environment,
+ version=DEFAULT_VERSION,
+ ):
+ """Root access to the Launchpad API.
+
+ :param credentials: The credentials used to access Launchpad.
+ :type credentials: `Credentials`
+ :param authorization_engine: The object used to get end-user input
+ for authorizing OAuth request tokens. Used when an OAuth
+ access token expires or becomes invalid during a
+ session, or is discovered to be invalid once launchpadlib
+ starts up.
+ :type authorization_engine: `RequestTokenAuthorizationEngine`
+ :param service_root: The URL to the root of the web service.
+ :type service_root: string
+ """
+ service_root = uris.lookup_service_root(service_root)
+ if service_root.endswith(version) or service_root.endswith(
+ version + "/"
+ ):
+ error = (
+ "It looks like you're using a service root that "
+ "incorporates the name of the web service version "
+ '("%s"). Please use one of the constants from '
+ "launchpadlib.uris instead, or at least remove "
+ "the version name from the root URI." % version
+ )
+ raise ValueError(error)
+
+ self.credential_store = credential_store
+
+ # We already have an access token, but it might expire or
+ # become invalid during use. Store the authorization engine in
+ # case we need to authorize a new token during use.
+ self.authorization_engine = authorization_engine
+
+ super(Launchpad, self).__init__(
+ credentials, service_root, cache, timeout, proxy_info, version
+ )
+
+ def httpFactory(self, credentials, cache, timeout, proxy_info):
+ return LaunchpadOAuthAwareHttp(
+ self,
+ self.authorization_engine,
+ credentials,
+ cache,
+ timeout,
+ proxy_info,
+ )
+
+ @classmethod
+ def _is_sudo(cls):
+ return {"SUDO_USER", "SUDO_UID", "SUDO_GID"} & set(os.environ.keys())
+
+ @classmethod
+ def authorization_engine_factory(cls, *args):
+ if cls._is_sudo():
+ # Do not try to open browser window under sudo;
+ # we probably don't have access to the X session,
+ # and some browsers (e.g. chromium) won't run as root
+ # LP: #1825014
+ return AuthorizeRequestTokenWithURL(*args)
+ return AuthorizeRequestTokenWithBrowser(*args)
+
+ @classmethod
+ def credential_store_factory(cls, credential_save_failed):
+ if cls._is_sudo():
+ # Do not try to store credentials under sudo;
+ # it can be problematic with shared sudo access,
+ # and we may not have access to the normal keyring provider
+ # LP: #1862948
+ return MemoryCredentialStore(credential_save_failed)
+ return KeyringCredentialStore(credential_save_failed, fallback=True)
+
+ @classmethod
+ def login(
+ cls,
+ consumer_name,
+ token_string,
+ access_secret,
+ service_root=uris.STAGING_SERVICE_ROOT,
+ cache=None,
+ timeout=None,
+ proxy_info=proxy_info_from_environment,
+ authorization_engine=None,
+ allow_access_levels=None,
+ max_failed_attempts=None,
+ credential_store=None,
+ credential_save_failed=None,
+ version=DEFAULT_VERSION,
+ ):
+ """Convenience method for setting up access credentials.
+
+ When all three pieces of credential information (the consumer
+ name, the access token and the access secret) are available, this
+ method can be used to quickly log into the service root.
+
+ This method is deprecated as of launchpadlib version
+ 1.9.0. You should use Launchpad.login_anonymously() for
+ anonymous access, and Launchpad.login_with() for all other
+ purposes.
+
+ :param consumer_name: the application name.
+ :type consumer_name: string
+ :param token_string: the access token, as appropriate for the
+ `AccessToken` constructor
+ :type token_string: string
+ :param access_secret: the access token's secret, as appropriate for
+ the `AccessToken` constructor
+ :type access_secret: string
+ :param service_root: The URL to the root of the web service.
+ :type service_root: string
+ :param authorization_engine: See `Launchpad.__init__`. If you don't
+ provide an authorization engine, a default engine will be
+ constructed using your values for `service_root` and
+ `credential_save_failed`.
+ :param allow_access_levels: This argument is ignored, and only
+ present to preserve backwards compatibility.
+ :param max_failed_attempts: This argument is ignored, and only
+ present to preserve backwards compatibility.
+ :return: The web service root
+ :rtype: `Launchpad`
+ """
+ cls._warn_of_deprecated_login_method("login")
+ access_token = AccessToken(token_string, access_secret)
+ credentials = Credentials(
+ consumer_name=consumer_name, access_token=access_token
+ )
+ if authorization_engine is None:
+ authorization_engine = cls.authorization_engine_factory(
+ service_root, consumer_name, allow_access_levels
+ )
+ if credential_store is None:
+ credential_store = cls.credential_store_factory(
+ credential_save_failed
+ )
+ return cls(
+ credentials,
+ authorization_engine,
+ credential_store,
+ service_root,
+ cache,
+ timeout,
+ proxy_info,
+ version,
+ )
+
+ @classmethod
+ def get_token_and_login(
+ cls,
+ consumer_name,
+ service_root=uris.STAGING_SERVICE_ROOT,
+ cache=None,
+ timeout=None,
+ proxy_info=proxy_info_from_environment,
+ authorization_engine=None,
+ allow_access_levels=[],
+ max_failed_attempts=None,
+ credential_store=None,
+ credential_save_failed=None,
+ version=DEFAULT_VERSION,
+ ):
+ """Get credentials from Launchpad and log into the service root.
+
+ This method is deprecated as of launchpadlib version
+ 1.9.0. You should use Launchpad.login_anonymously() for
+ anonymous access and Launchpad.login_with() for all other
+ purposes.
+
+ :param consumer_name: Either a consumer name, as appropriate for
+ the `Consumer` constructor, or a premade Consumer object.
+ :type consumer_name: string
+ :param service_root: The URL to the root of the web service.
+ :type service_root: string
+ :param authorization_engine: See `Launchpad.__init__`. If you don't
+ provide an authorization engine, a default engine will be
+ constructed using your values for `service_root` and
+ `credential_save_failed`.
+ :param allow_access_levels: This argument is ignored, and only
+ present to preserve backwards compatibility.
+ :return: The web service root
+ :rtype: `Launchpad`
+ """
+ cls._warn_of_deprecated_login_method("get_token_and_login")
+ return cls._authorize_token_and_login(
+ consumer_name,
+ service_root,
+ cache,
+ timeout,
+ proxy_info,
+ authorization_engine,
+ allow_access_levels,
+ credential_store,
+ credential_save_failed,
+ version,
+ )
+
+ @classmethod
+ def _authorize_token_and_login(
+ cls,
+ consumer_name,
+ service_root,
+ cache,
+ timeout,
+ proxy_info,
+ authorization_engine,
+ allow_access_levels,
+ credential_store,
+ credential_save_failed,
+ version,
+ ):
+ """Authorize a request token. Log in with the resulting access token.
+
+ This is the private, non-deprecated implementation of the
+ deprecated method get_token_and_login(). Once
+ get_token_and_login() is removed, this code can be streamlined
+ and moved into its other call site, login_with().
+ """
+ if isinstance(consumer_name, Consumer):
+ consumer = consumer_name
+ else:
+ # Create a system-wide consumer. lazr.restfulclient won't
+ # do this automatically, but launchpadlib's default is to
+ # do a desktop-wide integration.
+ consumer = SystemWideConsumer(consumer_name)
+
+ # Create the credentials with no Consumer, then set its .consumer
+ # property directly.
+ credentials = Credentials(None)
+ credentials.consumer = consumer
+ if authorization_engine is None:
+ authorization_engine = cls.authorization_engine_factory(
+ service_root, consumer_name, None, allow_access_levels
+ )
+ if credential_store is None:
+ credential_store = cls.credential_store_factory(
+ credential_save_failed
+ )
+ else:
+ # A credential store was passed in, so we won't be using
+ # any provided value for credential_save_failed. But at
+ # least make sure we weren't given a conflicting value,
+ # since that makes the calling code look confusing.
+ cls._assert_login_argument_consistency(
+ "credential_save_failed",
+ credential_save_failed,
+ credential_store.credential_save_failed,
+ "credential_store",
+ )
+
+ # Try to get the credentials out of the credential store.
+ cached_credentials = credential_store.load(
+ authorization_engine.unique_consumer_id
+ )
+ if cached_credentials is None:
+ # They're not there. Acquire new credentials using the
+ # authorization engine.
+ credentials = authorization_engine(credentials, credential_store)
+ else:
+ # We acquired credentials. But, the application name
+ # wasn't stored along with the credentials, because in a
+ # desktop integration scenario, a single set of
+ # credentials may be shared by many applications. We need
+ # to set the application name for this specific instance
+ # of the credentials.
+ credentials = cached_credentials
+ credentials.consumer.application_name = (
+ authorization_engine.application_name
+ )
+
+ return cls(
+ credentials,
+ authorization_engine,
+ credential_store,
+ service_root,
+ cache,
+ timeout,
+ proxy_info,
+ version,
+ )
+
+ @classmethod
+ def login_anonymously(
+ cls,
+ consumer_name,
+ service_root=uris.STAGING_SERVICE_ROOT,
+ launchpadlib_dir=None,
+ timeout=None,
+ proxy_info=proxy_info_from_environment,
+ version=DEFAULT_VERSION,
+ ):
+ """Get access to Launchpad without providing any credentials."""
+ (
+ service_root,
+ launchpadlib_dir,
+ cache_path,
+ service_root_dir,
+ ) = cls._get_paths(service_root, launchpadlib_dir)
+ token = AnonymousAccessToken()
+ credentials = Credentials(consumer_name, access_token=token)
+ return cls(
+ credentials,
+ None,
+ None,
+ service_root=service_root,
+ cache=cache_path,
+ timeout=timeout,
+ proxy_info=proxy_info,
+ version=version,
+ )
+
+ @classmethod
+ def login_with(
+ cls,
+ application_name=None,
+ service_root=uris.STAGING_SERVICE_ROOT,
+ launchpadlib_dir=None,
+ timeout=None,
+ proxy_info=proxy_info_from_environment,
+ authorization_engine=None,
+ allow_access_levels=None,
+ max_failed_attempts=None,
+ credentials_file=None,
+ version=DEFAULT_VERSION,
+ consumer_name=None,
+ credential_save_failed=None,
+ credential_store=None,
+ ):
+ """Log in to Launchpad, possibly acquiring and storing credentials.
+
+ Use this method to get a `Launchpad` object. If the end-user
+ has no cached Launchpad credential, their browser will open
+ and they'll be asked to log in and authorize a desktop
+ integration. The authorized Launchpad credential will be
+ stored securely: in the GNOME keyring, the KDE Wallet, or in
+ an encrypted file on disk.
+
+ The next time your program (or any other program run by that
+ user on the same computer) invokes this method, the end-user
+ will be prompted to unlock their keyring (or equivalent), and
+ the credential will be retrieved from local storage and
+ reused.
+
+ You can customize this behavior in three ways:
+
+ 1. Pass in a filename to `credentials_file`. The end-user's
+ credential will be written to that file, and on subsequent
+ runs read from that file. Alternatively the filename can be
+ given in the LP_CREDENTIALS_FILE environment variable.
+
+ 2. Subclass `CredentialStore` and pass in an instance of the
+ subclass as `credential_store`. This lets you change how
+ the end-user's credential is stored and retrieved locally.
+
+ 3. Subclass `RequestTokenAuthorizationEngine` and pass in an
+ instance of the subclass as `authorization_engine`. This
+ lets you change change what happens when the end-user needs
+ to authorize the Launchpad credential.
+
+ :param application_name: The application name. This is *not*
+ the OAuth consumer name. Unless a consumer_name is also
+ provided, the OAuth consumer will be a system-wide
+ consumer representing the end-user's computer as a whole.
+ :type application_name: string
+
+ :param service_root: The URL to the root of the web service.
+ :type service_root: string. Can either be the full URL to a service
+ or one of the short service names.
+
+ :param launchpadlib_dir: The directory used to store cached
+ data obtained from Launchpad. The cache is shared by all
+ consumers, and each Launchpad service root has its own
+ cache.
+ :type launchpadlib_dir: string
+
+ :param authorization_engine: A strategy for getting the
+ end-user to authorize an OAuth request token, for
+ exchanging the request token for an access token, and for
+ storing the access token locally so that it can be
+ reused. By default, launchpadlib will open the end-user's
+ web browser to have them authorize the request token.
+ :type authorization_engine: `RequestTokenAuthorizationEngine`
+
+ :param allow_access_levels: The acceptable access levels for
+ this application.
+
+ This argument is used to construct the default
+ `authorization_engine`, so if you pass in your own
+ `authorization_engine` any value for this argument will be
+ ignored. This argument will also be ignored unless you
+ also specify `consumer_name`.
+
+ :type allow_access_levels: list of strings
+
+ :param max_failed_attempts: Ignored; only present for
+ backwards compatibility.
+
+ :param credentials_file: The path to a file in which to store
+ this user's OAuth access token.
+
+ :param version: The version of the Launchpad web service to use.
+
+ :param consumer_name: The consumer name, as appropriate for
+ the `Consumer` constructor. You probably don't want to
+ provide this, since providing it will prevent you from
+ taking advantage of desktop-wide integration.
+ :type consumer_name: string
+
+ :param credential_save_failed: a callback that is called upon
+ a failure to save the credentials locally. This argument is
+ used to construct the default `credential_store`, so if
+ you pass in your own `credential_store` any value for
+ this argument will be ignored.
+ :type credential_save_failed: A callable
+
+ :param credential_store: A strategy for storing an OAuth
+ access token locally. By default, tokens are stored in the
+ GNOME keyring (or equivalent). If `credentials_file` is
+ provided, then tokens are stored unencrypted in that file.
+ :type credential_store: `CredentialStore`
+
+ :return: A web service root authorized as the end-user.
+ :rtype: `Launchpad`
+
+ """
+ (
+ service_root,
+ launchpadlib_dir,
+ cache_path,
+ service_root_dir,
+ ) = cls._get_paths(service_root, launchpadlib_dir)
+
+ if (
+ application_name is None
+ and consumer_name is None
+ and authorization_engine is None
+ ):
+ raise ValueError(
+ "At least one of application_name, consumer_name, or "
+ "authorization_engine must be provided."
+ )
+
+ if credentials_file is None:
+ credentials_file = os.environ.get("LP_CREDENTIALS_FILE")
+
+ if credentials_file is not None and credential_store is not None:
+ raise ValueError(
+ "At most one of credentials_file and credential_store "
+ "must be provided."
+ )
+
+ if credential_store is None:
+ if credentials_file is not None:
+ # The end-user wants credentials stored in an
+ # unencrypted file.
+ credential_store = UnencryptedFileCredentialStore(
+ credentials_file, credential_save_failed
+ )
+ else:
+ credential_store = cls.credential_store_factory(
+ credential_save_failed
+ )
+ else:
+ # A credential store was passed in, so we won't be using
+ # any provided value for credential_save_failed. But at
+ # least make sure we weren't given a conflicting value,
+ # since that makes the calling code look confusing.
+ cls._assert_login_argument_consistency(
+ "credential_save_failed",
+ credential_save_failed,
+ credential_store.credential_save_failed,
+ "credential_store",
+ )
+ credential_store = credential_store
+
+ if authorization_engine is None:
+ authorization_engine = cls.authorization_engine_factory(
+ service_root,
+ application_name,
+ consumer_name,
+ allow_access_levels,
+ )
+ else:
+ # An authorization engine was passed in, so we won't be
+ # using any provided values for application_name,
+ # consumer_name, or allow_access_levels. But at least make
+ # sure we weren't given conflicting values, since that
+ # makes the calling code look confusing.
+ cls._assert_login_argument_consistency(
+ "application_name",
+ application_name,
+ authorization_engine.application_name,
+ )
+
+ cls._assert_login_argument_consistency(
+ "consumer_name",
+ consumer_name,
+ authorization_engine.consumer.key,
+ )
+
+ cls._assert_login_argument_consistency(
+ "allow_access_levels",
+ allow_access_levels,
+ authorization_engine.allow_access_levels,
+ )
+
+ return cls._authorize_token_and_login(
+ authorization_engine.consumer,
+ service_root,
+ cache_path,
+ timeout,
+ proxy_info,
+ authorization_engine,
+ allow_access_levels,
+ credential_store,
+ credential_save_failed,
+ version,
+ )
+
+ @classmethod
+ def _warn_of_deprecated_login_method(cls, name):
+ warnings.warn(
+ (
+ "The Launchpad.%s() method is deprecated. You should use "
+ "Launchpad.login_anonymous() for anonymous access and "
+ "Launchpad.login_with() for all other purposes."
+ )
+ % name,
+ DeprecationWarning,
+ )
+
+ @classmethod
+ def _assert_login_argument_consistency(
+ cls,
+ argument_name,
+ argument_value,
+ object_value,
+ object_name="authorization engine",
+ ):
+ """Helper to find conflicting values passed into the login methods.
+
+ Many of the arguments to login_with are used to build other
+ objects--the authorization engine or the credential store. If
+ these objects are provided directly, many of the arguments
+ become redundant. We'll allow redundant arguments through, but
+ if a argument *conflicts* with the corresponding value in the
+ provided object, we raise an error.
+ """
+ inconsistent_value_message = (
+ "Inconsistent values given for %s: "
+ "(%r passed in, versus %r in %s). "
+ "You don't need to pass in %s if you pass in %s, "
+ "so just omit that argument."
+ )
+ if argument_value is not None and argument_value != object_value:
+ raise ValueError(
+ inconsistent_value_message
+ % (
+ argument_name,
+ argument_value,
+ object_value,
+ object_name,
+ argument_name,
+ object_name,
+ )
+ )
+
+ @classmethod
+ def _get_paths(cls, service_root, launchpadlib_dir=None):
+ """Locate launchpadlib-related user paths and ensure they exist.
+
+ This is a helper function used by login_with() and
+ login_anonymously().
+
+ :param service_root: The service root the user wants to
+ connect to. This may be an alias (which will be
+ dereferenced to a URL and returned) or a URL (which will
+ be returned as is).
+ :param launchpadlib_dir: The user's base launchpadlib
+ directory, if known. This may be modified, expanded, or
+ determined from the environment if missing. A definitive
+ value will be returned.
+
+ :return: A 4-tuple:
+ (service_root_uri, launchpadlib_dir, cache_dir, service_root_dir)
+ """
+ if launchpadlib_dir is None:
+ launchpadlib_dir = os.path.join("~", ".launchpadlib")
+ launchpadlib_dir = os.path.expanduser(launchpadlib_dir)
+ if launchpadlib_dir[:1] == "~":
+ raise ValueError(
+ "Must set $HOME or pass 'launchpadlib_dir' to "
+ "indicate location to store cached data"
+ )
+ try:
+ os.makedirs(launchpadlib_dir, 0o700)
+ except OSError as err:
+ if err.errno != errno.EEXIST:
+ raise
+ os.chmod(launchpadlib_dir, 0o700)
+ # Determine the real service root.
+ service_root = uris.lookup_service_root(service_root)
+ # Each service root has its own cache and credential dirs.
+ scheme, host_name, path, query, fragment = urlsplit(service_root)
+ service_root_dir = os.path.join(launchpadlib_dir, host_name)
+ cache_path = os.path.join(service_root_dir, "cache")
+ try:
+ os.makedirs(cache_path, 0o700)
+ except OSError as err:
+ if err.errno != errno.EEXIST:
+ raise
+ return (service_root, launchpadlib_dir, cache_path, service_root_dir)
diff --git a/src/launchpadlib/testing/__init__.py b/src/launchpadlib/testing/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/launchpadlib/testing/__init__.py
diff --git a/src/launchpadlib/testing/helpers.py b/src/launchpadlib/testing/helpers.py
new file mode 100644
index 0000000..e625f5e
--- /dev/null
+++ b/src/launchpadlib/testing/helpers.py
@@ -0,0 +1,233 @@
+# Copyright 2008 Canonical Ltd.
+
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# launchpadlib is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with launchpadlib. If not, see
+# <http://www.gnu.org/licenses/>.
+
+"""launchpadlib testing helpers."""
+
+
+__metaclass__ = type
+__all__ = [
+ "BadSaveKeyring",
+ "fake_keyring",
+ "FauxSocketModule",
+ "InMemoryKeyring",
+ "NoNetworkAuthorizationEngine",
+ "NoNetworkLaunchpad",
+ "TestableLaunchpad",
+ "nopriv_read_nonprivate",
+ "salgado_read_nonprivate",
+ "salgado_with_full_permissions",
+]
+
+from contextlib import contextmanager
+
+import launchpadlib
+from launchpadlib.launchpad import Launchpad
+from launchpadlib.credentials import (
+ AccessToken,
+ Credentials,
+ RequestTokenAuthorizationEngine,
+)
+
+
+missing = object()
+
+
+def assert_keyring_not_imported():
+ assert (
+ getattr(launchpadlib.credentials, "keyring", missing) is missing
+ ), "During tests the real keyring module should never be imported."
+
+
+class NoNetworkAuthorizationEngine(RequestTokenAuthorizationEngine):
+ """An authorization engine that doesn't open a web browser.
+
+ You can use this to test the creation of Launchpad objects and the
+ storing of credentials. You can't use it to interact with the web
+ service, since it only pretends to authorize its OAuth request tokens.
+ """
+
+ ACCESS_TOKEN_KEY = "access_key:84"
+
+ def __init__(self, *args, **kwargs):
+ super(NoNetworkAuthorizationEngine, self).__init__(*args, **kwargs)
+ # Set up some instrumentation.
+ self.request_tokens_obtained = 0
+ self.access_tokens_obtained = 0
+
+ def get_request_token(self, credentials):
+ """Pretend to get a request token from the server.
+
+ We do this by simply returning a static token ID.
+ """
+ self.request_tokens_obtained += 1
+ return "request_token:42"
+
+ def make_end_user_authorize_token(self, credentials, request_token):
+ """Pretend to exchange a request token for an access token.
+
+ We do this by simply setting the access_token property.
+ """
+ credentials.access_token = AccessToken(
+ self.ACCESS_TOKEN_KEY, "access_secret:168"
+ )
+ self.access_tokens_obtained += 1
+
+
+class NoNetworkLaunchpad(Launchpad):
+ """A Launchpad instance for tests with no network access.
+
+ It's only useful for making sure that certain methods were called.
+ It can't be used to interact with the API.
+ """
+
+ def __init__(
+ self,
+ credentials,
+ authorization_engine,
+ credential_store,
+ service_root,
+ cache,
+ timeout,
+ proxy_info,
+ version,
+ ):
+ self.credentials = credentials
+ self.authorization_engine = authorization_engine
+ self.credential_store = credential_store
+ self.passed_in_args = dict(
+ service_root=service_root,
+ cache=cache,
+ timeout=timeout,
+ proxy_info=proxy_info,
+ version=version,
+ )
+
+ @classmethod
+ def authorization_engine_factory(cls, *args):
+ return NoNetworkAuthorizationEngine(*args)
+
+
+class TestableLaunchpad(Launchpad):
+ """A base class for talking to the testing root service."""
+
+ def __init__(
+ self,
+ credentials,
+ authorization_engine=None,
+ credential_store=None,
+ service_root="test_dev",
+ cache=None,
+ timeout=None,
+ proxy_info=None,
+ version=Launchpad.DEFAULT_VERSION,
+ ):
+ """Provide test-friendly defaults.
+
+ :param authorization_engine: Defaults to None, since a test
+ environment can't use an authorization engine.
+ :param credential_store: Defaults to None, since tests
+ generally pass in fully-formed Credentials objects.
+ :param service_root: Defaults to 'test_dev'.
+ """
+ super(TestableLaunchpad, self).__init__(
+ credentials,
+ authorization_engine,
+ credential_store,
+ service_root=service_root,
+ cache=cache,
+ timeout=timeout,
+ proxy_info=proxy_info,
+ version=version,
+ )
+
+
+@contextmanager
+def fake_keyring(fake):
+ """A context manager which injects a testing keyring implementation."""
+ # The real keyring package should never be imported during tests.
+ assert_keyring_not_imported()
+ launchpadlib.credentials.keyring = fake
+ launchpadlib.credentials.NoKeyringError = RuntimeError
+ try:
+ yield
+ finally:
+ del launchpadlib.credentials.keyring
+ del launchpadlib.credentials.NoKeyringError
+
+
+class FauxSocketModule:
+ """A socket module replacement that provides a fake hostname."""
+
+ def gethostname(self):
+ return "HOSTNAME"
+
+
+class BadSaveKeyring:
+ """A keyring that generates errors when saving passwords."""
+
+ def get_password(self, service, username):
+ return None
+
+ def set_password(self, service, username, password):
+ raise RuntimeError
+
+
+class InMemoryKeyring:
+ """A keyring that saves passwords only in memory."""
+
+ def __init__(self):
+ self.data = {}
+
+ def set_password(self, service, username, password):
+ self.data[service, username] = password
+
+ def get_password(self, service, username):
+ return self.data.get((service, username))
+
+
+class KnownTokens:
+ """Known access token/secret combinations."""
+
+ def __init__(self, token_string, access_secret):
+ self.token_string = token_string
+ self.access_secret = access_secret
+ self.token = AccessToken(token_string, access_secret)
+ self.credentials = Credentials(
+ consumer_name="launchpad-library", access_token=self.token
+ )
+
+ def login(
+ self,
+ cache=None,
+ timeout=None,
+ proxy_info=None,
+ version=Launchpad.DEFAULT_VERSION,
+ ):
+ """Create a Launchpad object using these credentials."""
+ return TestableLaunchpad(
+ self.credentials,
+ cache=cache,
+ timeout=timeout,
+ proxy_info=proxy_info,
+ version=version,
+ )
+
+
+salgado_with_full_permissions = KnownTokens("salgado-change-anything", "test")
+salgado_read_nonprivate = KnownTokens("salgado-read-nonprivate", "secret")
+nopriv_read_nonprivate = KnownTokens("nopriv-read-nonprivate", "mystery")
diff --git a/src/launchpadlib/testing/launchpad-wadl.xml b/src/launchpadlib/testing/launchpad-wadl.xml
new file mode 100644
index 0000000..f138c26
--- /dev/null
+++ b/src/launchpadlib/testing/launchpad-wadl.xml
@@ -0,0 +1,37799 @@
+<?xml version="1.0"?>
+<!DOCTYPE application [
+ <!ENTITY nbsp "\&#160;">
+]>
+<wadl:application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://research.sun.com/wadl/2006/10" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wadl="http://research.sun.com/wadl/2006/10" xsi:schemaLocation="http://research.sun.com/wadl/2006/10/wadl.xsd">
+
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml" title="About this service">The Launchpad web service allows automated
+ clients to access most of the functionality available on the
+ Launchpad web site. For help getting started, see
+ <a href="https://help.launchpad.net/API/">the help wiki.</a></wadl:doc>
+
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml" title="About version 1.0">This version of the web service removes unnecessary
+ named operations. It was introduced in March 2010, and its
+ end-of-life date is April 2015, the same as the server version
+ of the Ubuntu release "Lucid Lynx".</wadl:doc>
+
+ <!--There is one "service root" resource, located (as you'd expect)
+ at the service root. This very document is the WADL
+ representation of the "service root" resource.-->
+ <wadl:resources base="https://api.launchpad.test/1.0/">
+ <wadl:resource path="" type="#service-root"/>
+ </wadl:resources>
+
+ <!--A "service root" resource responds to GET.-->
+ <wadl:resource_type id="service-root">
+ <wadl:doc>The root of the web service.</wadl:doc>
+ <wadl:method name="GET" id="service-root-get">
+ <wadl:response>
+ <wadl:representation href="#service-root-json"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="service-root-wadl"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <!--The JSON representation of a "service root" resource contains a
+ number of links to collection-type resources.-->
+ <wadl:representation mediaType="application/json" id="service-root-json">
+
+ <wadl:param style="plain" name="archives_collection_link" path="$['archives_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archives"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="branches_collection_link" path="$['branches_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branches"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="bug_trackers_collection_link" path="$['bug_trackers_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_trackers"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="bugs_collection_link" path="$['bugs_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bugs"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="builders_collection_link" path="$['builders_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#builders"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="charm_bases_collection_link" path="$['charm_bases_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_bases"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="charm_recipes_collection_link" path="$['charm_recipes_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipes"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="countries_collection_link" path="$['countries_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#countries"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="cves_collection_link" path="$['cves_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#cves"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="distributions_collection_link" path="$['distributions_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distributions"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="git_repositories_collection_link" path="$['git_repositories_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_repositories"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="languages_collection_link" path="$['languages_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#languages"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="livefses_collection_link" path="$['livefses_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#livefses"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="me_link" path="$['me_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="packagesets_collection_link" path="$['packagesets_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#packagesets"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="people_collection_link" path="$['people_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#people"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="pillars_link" path="$['pillars_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#pillars"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="polls_collection_link" path="$['polls_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#polls"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="processors_collection_link" path="$['processors_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#processors"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="project_groups_collection_link" path="$['project_groups_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_groups"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="projects_collection_link" path="$['projects_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#projects"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="questions_collection_link" path="$['questions_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#questions"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="services_link" path="$['services_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#service_factory"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="snap_bases_collection_link" path="$['snap_bases_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_bases"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="snappy_serieses_collection_link" path="$['snappy_serieses_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snappy_serieses"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="snaps_collection_link" path="$['snaps_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snaps"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="specifications_collection_link" path="$['specifications_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#specifications"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="temporary_blobs_collection_link" path="$['temporary_blobs_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#temporary_blobs"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="translation_groups_collection_link" path="$['translation_groups_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#translation_groups"/>
+ </wadl:param>
+
+
+ <wadl:param style="plain" name="translation_import_queue_entries_collection_link" path="$['translation_import_queue_entries_collection_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#translation_import_queue_entries"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>The link to the WADL description of this resource.</wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--In addition to the service root, this document describes all the
+ types of resources you might encounter as you browse this web
+ service.-->
+
+ <!--Begin resource_type definitions for collection resources.-->
+
+ <wadl:resource_type id="archives">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Interface for ArchiveSet
+</wadl:doc>
+ <wadl:method name="GET" id="archives-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="archives-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="branches">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Interface representing the set of branches.
+</wadl:doc>
+ <wadl:method name="GET" id="branches-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="branches-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method id="branches-getByUrls" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Finds branches by URL.</p>
+<p>Either from the external specified in Branch.url, from the URL on
+<a class="rst-reference external" href="http://bazaar.launchpad.net/" target="_top">http://bazaar.launchpad.net/</a>, or from the lp: URL.</p>
+<p>This is a frontend shim to IBranchLookup.getByUrls to allow it to be
+exported over the API. If you want to call this from within the
+Launchpad app, use the IBranchLookup version instead.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param urls:</th><td class="rst-field-body">An iterable of URLs expressed as strings.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A dictionary mapping URLs to branches. If the URL has no
+associated branch, the URL will map to None.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getByUrls">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="urls" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>A list of URLs of branches</p>
+<p>These can be URLs external to Launchpad, lp: URLs, or <a class="rst-reference external" href="http://bazaar.launchpad.net/" target="_top">http://bazaar.launchpad.net/</a> URLs, or any mix of all these different kinds.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="branches-getByUniqueName" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Find a branch by its ~owner/product/name unique name.</p>
+<p>Return None if no match was found.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getByUniqueName">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="unique_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Branch unique name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="branches-getByUrl" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Find a branch by URL.</p>
+<p>Either from the external specified in Branch.url, from the URL on
+<a class="rst-reference external" href="http://bazaar.launchpad.net/" target="_top">http://bazaar.launchpad.net/</a> or the lp: URL.</p>
+<p>This is a frontend shim to IBranchLookup.getByUrl to allow it to be
+exported over the API. If you want to call this from within the
+Launchpad app, use the IBranchLookup version instead.</p>
+<p>Return None if no match was found.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getByUrl">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="url" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Branch URL
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch-full"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="bug_trackers">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>A set of IBugTracker's.</p>
+<p>Each BugTracker is a distinct instance of a bug tracking tool. For
+example, bugzilla.mozilla.org is distinct from bugzilla.gnome.org.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="bug_trackers-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug_trackers-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method id="bug_trackers-getByName" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get a BugTracker by its name.</p>
+<p>If no tracker with the given name exists, return default.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getByName">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The bug tracker name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="bug_trackers-queryByBaseURL" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return one or None BugTracker's by baseurl
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="queryByBaseURL">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="base_url" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The base URL of the bug tracker
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="bug_trackers-ensureBugTracker" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Make sure that there is a bugtracker for the given base url.</p>
+<p>If not, create one using the given attributes.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="ensureBugTracker">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="base_url" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Location</p>
+<p>The top-level URL for the bug tracker, or an upstream email address. This must be accurate so that Launchpad can link to external bug reports.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_tracker_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug Tracker Type
+</wadl:doc>
+
+ <wadl:option value="Bugzilla"/>
+ <wadl:option value="Debbugs"/>
+ <wadl:option value="Roundup"/>
+ <wadl:option value="Trac"/>
+ <wadl:option value="SourceForge or SourceForge derivative"/>
+ <wadl:option value="Mantis"/>
+ <wadl:option value="Request Tracker (RT)"/>
+ <wadl:option value="Email Address"/>
+ <wadl:option value="Savane"/>
+ <wadl:option value="PHP Project Bugtracker"/>
+ <wadl:option value="Google Code"/>
+ <wadl:option value="GitHub Issues"/>
+ <wadl:option value="GitLab Issues"/>
+ </wadl:param>
+ <wadl:param style="query" name="title" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>A descriptive label for this tracker to show in listings.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="summary" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A brief introduction or overview of this bug tracker instance.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="contact_details" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Contact details</p>
+<p>The contact details for the external bug tracker (so that, for example, its administrators can be contacted about a security breach).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>A URL-friendly name for the bug tracker, such as &quot;mozilla-bugs&quot;.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="builders">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Collections of builders.</p>
+<p>IBuilderSet provides access to all Builders in the system,
+and also acts as a Factory to allow the creation of new Builders.
+Methods on this interface should deal with the set of Builders:
+methods that affect a single Builder should be on IBuilder.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="builders-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#builder-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="builders-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method id="builders-getByName" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Retrieve a builder by name
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getByName">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Builder name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#builder-full"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="charm_bases">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Interface representing the set of bases for charms.
+</wadl:doc>
+ <wadl:method name="GET" id="charm_bases-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#charm_base-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="charm_bases-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="charm_recipes">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A utility to create and access charm recipes.
+</wadl:doc>
+ <wadl:method name="GET" id="charm_recipes-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#charm_recipe-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="charm_recipes-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="countries">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A container for countries.
+</wadl:doc>
+ <wadl:method name="GET" id="countries-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#country-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="countries-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method id="countries-getByName" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return a country by its name.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getByName">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#country-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="countries-getByCode" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return a country by its code.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getByCode">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="code" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Code
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#country-full"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="cves">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The set of ICve objects.
+</wadl:doc>
+ <wadl:method name="GET" id="cves-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#cve-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="cves-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="distributions">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Interface for DistrosSet
+</wadl:doc>
+ <wadl:method name="GET" id="distributions-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="distributions-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="git_repositories">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Interface representing the set of Git repositories.
+</wadl:doc>
+ <wadl:method name="GET" id="git_repositories-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#git_repository-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="git_repositories-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="languages">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The collection of languages.</p>
+<p>The standard get method will return only the visible languages.
+If you want to access all languages known to Launchpad, use
+the getAllLanguages method.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="languages-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#language-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="languages-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method id="languages-getAllLanguages" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return a result set of all ILanguages from Launchpad.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getAllLanguages">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#language-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="livefses">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A utility to create and access live filesystems.
+</wadl:doc>
+ <wadl:method name="GET" id="livefses-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#livefs-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="livefses-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="bugs">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Application root for malone.
+</wadl:doc>
+ <wadl:method name="GET" id="bugs-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bugs-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method id="bugs-searchTasks" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search the IBugTasks reported on this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">search_params:</th><td class="rst-field-body">a BugTaskSearchParams object</td>
+</tr>
+</tbody>
+</table>
+<p>Return an iterable of matching results.</p>
+<p>Note: milestone is currently ignored for all IBugTargets
+except IProduct.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchTasks">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="bug_reporter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_cve" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs associated with a CVE
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_targeted" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs targeted to a series
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status_upstream" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status upstream</p>
+<p>Indicates the status of any remote watches associated with the bug. Possible values include: pending_bugwatch, hide_upstream, resolved_upstream, and open_upstream.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>String or list of strings for tags to search. To exclude, prepend a '-', e.g. '-unwantedtag'</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_duplicates" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs marked as duplicate,
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="nominated_for" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been modified since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="structural_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been created since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_patch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs with patches available.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_commenter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="assignee" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only bugs with the given status value or list of values.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="affected_user" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID or search text.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of fields by which the results are ordered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="tags_combinator" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags combination</p>
+<p>Search for any or all of the tags specified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Any"/>
+ <wadl:option value="All"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Component</p>
+<p>Distribution package archive grouping. E.g. main, universe, multiverse</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="importance" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Importance</p>
+<p>Show only bugs with the given importance or list of importances.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>Show only bugs with the given information type or list of information types.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that were created before the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="milestone" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone</p>
+<p>Show only bug tasks targeted to this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="linked_branches" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that are linked to branches or for bugs that are not linked to branches.
+</wadl:doc>
+
+ <wadl:option value="Show all bugs"/>
+ <wadl:option value="Show only Bugs with linked Branches"/>
+ <wadl:option value="Show only Bugs without linked Branches"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_no_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Exclude bugs with packages specified
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="bugs-createBug" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create a bug (with an appropriate bugtask) and return it.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param target:</th><td class="rst-field-body">The Project, Distribution or DistributionSourcePackage
+affected by this bug.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param title:</th><td class="rst-field-body">The title shown in bug listings.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param description:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The description of the issue.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param information_type:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Set the bug's information type to one
+different from the project's default. The type must conform
+to the project's bug sharing policy. (optional)</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param tags:</th><td class="rst-field-body">A list of bug tags. (optional)</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param security_related:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Is this bug's information type
+Private Security? (deprecated)</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param tags:</th><td class="rst-field-body">Is this bug's information type Private
+user data. (deprecated)</td>
+</tr>
+</tbody>
+</table>
+<p>Things to note when using this factory:</p>
+<blockquote>
+<ul class="rst-simple">
+<li>The reporter will be subscribed to the bug.</li>
+<li>Only people that the project shares with will see the bug
+when the bug's information type is Proprietary, Private, or
+Private Security.</li>
+</ul>
+</blockquote>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="createBug">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="title" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A one-line summary of the problem.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="description" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A detailed description of the problem,
+including the steps required to reproduce it.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>Space-separated keywords for classifying this bug report.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>The type of information contained in this bug report.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Public Security"/>
+ <wadl:option value="Private Security"/>
+ <wadl:option value="Private"/>
+ <wadl:option value="Proprietary"/>
+ <wadl:option value="Embargoed"/>
+ </wadl:param>
+ <wadl:param style="query" name="security_related" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+This bug is a security vulnerability.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="private" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>This bug report should be private</p>
+<p>Private bug reports are visible only to their subscribers.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="target" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The project, distribution or source package that has this bug.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_target"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="packagesets">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+An interface for multiple package sets.
+</wadl:doc>
+ <wadl:method name="GET" id="packagesets-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#packageset-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="packagesets-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method id="packagesets-getByName" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the single package set with the given name (if any).</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param distroseries:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the distroseries to which the new packageset
+is related.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">the name of the package set sought.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">An IPackageset instance.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raise NoSuchPackageSet:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if no package set is found.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getByName">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="distroseries" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution series</p>
+<p>The distroseries to which this package set is related.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Valid package set name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#packageset-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="packagesets-getBySeries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the package sets associated with the given distroseries.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param distroseries:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">A DistroSeries.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">An iterable collection of IPackageset instances.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBySeries">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="distroseries" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution series</p>
+<p>The distroseries to which this package set is related.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#packageset-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="packagesets-setsIncludingSource" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get the package sets that include this source package.</p>
+<p>Return all package sets that directly or indirectly include the
+given source package name.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param sourcepackagename:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the included source package name; can be
+either a string or a ISourcePackageName.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param distroseries:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the IDistroSeries in which to look for sets.
+If omitted, matching package sets from all series will be
+returned.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param direct_inclusion:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if this flag is set to True, then only
+package sets that directly include this source package name will
+be considered.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises NoSuchSourcePackageName:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if a source package with the given
+name cannot be found.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A (potentially empty) sequence of IPackageset instances.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="setsIncludingSource">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="sourcepackagename" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="distroseries" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution series</p>
+<p>The distroseries to which this package set is related.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="direct_inclusion" required="false">
+
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#packageset-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="packagesets-new" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create a new package set.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">the name of the package set to be created.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param description:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the description for the package set to be created.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param owner:</th><td class="rst-field-body">the owner of the package set to be created.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param distroseries:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the distroseries to which the new packageset
+is related.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param related_set:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the newly created package set is to be related to
+related_set (by being placed in the same package group).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises DuplicatePackagesetName:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if a package set with the same name
+exists in distroseries already.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a newly created IPackageset.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="new">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="description" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Package set description
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Person</p>
+<p>The person who owns this package set.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="related_set" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Related package set</p>
+<p>The new package set will share the package set group with this one.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#packageset"/>
+ </wadl:param>
+ <wadl:param style="query" name="distroseries" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distroseries</p>
+<p>The distribution series to which the packageset is related.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Valid package set name
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#packageset"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="people">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Combined schema for operations on a group of Persons.
+</wadl:doc>
+ <wadl:method name="GET" id="people-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#person-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="people-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method id="people-getByEmail" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the person with the given email address.</p>
+<p>Return None if there is no person with the given email address.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getByEmail">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="email" required="true">
+
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#person-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="people-findTeam" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return all Teams whose name, displayname or email address
+match &lt;text&gt;.</p>
+<p>The results will be ordered using the default ordering specified in
+Person._defaultOrder.</p>
+<p>While we don't have Full Text Indexes in the emailaddress table, we'll
+be trying to match the text only against the beginning of an email
+address.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="findTeam">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="text" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search text
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#person-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="people-findPerson" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return all non-merged Persons with at least one email address whose
+name, displayname or email address match &lt;text&gt;.</p>
+<p>If text is an empty string, all persons with at least one email
+address will be returned.</p>
+<p>The results will be ordered using the default ordering specified in
+Person._defaultOrder.</p>
+<p>If exclude_inactive_accounts is True, any accounts whose
+account_status is any of INACTIVE_ACCOUNT_STATUSES will not be in the
+returned set.</p>
+<p>If must_have_email is True, only people with one or more email
+addresses are returned.</p>
+<p>While we don't have Full Text Indexes in the emailaddress table, we'll
+be trying to match the text only against the beginning of an email
+address.</p>
+<p>If created_before or created_after are not None, they are used to
+restrict the search to the dates provided.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="findPerson">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Created before
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="text" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search text
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_after" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Created after
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#person-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="people-find" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return all non-merged Persons and Teams whose name, displayname or
+email address match &lt;text&gt;.</p>
+<p>The results will be ordered using the default ordering specified in
+Person._defaultOrder.</p>
+<p>While we don't have Full Text Indexes in the emailaddress table, we'll
+be trying to match the text only against the beginning of an email
+address.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="find">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="text" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search text
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#person-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="people-newTeam" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Create and return a new Team with given arguments.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="newTeam">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>A short unique name, beginning with a lower-case letter or number, and containing only letters, numbers, dots, hyphens, or plus signs.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="display_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>Your name as you would like it displayed throughout Launchpad. Most people use their full name here.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="team_description" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Team Description</p>
+<p>Obsolete. Use description.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="default_membership_period" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Subscription period</p>
+<p>Number of days a new subscription lasts before expiring. You can customize the length of an individual subscription when approving it. Leave this empty or set to 0 for subscriptions to never expire.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="default_renewal_period" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Self renewal period</p>
+<p>Number of days members can renew their own membership. The number can be from 1 to 3650 (10 years).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="subscription_policy" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Membership policy</p>
+<p>Obsolete: use membership_policy</p>
+
+</wadl:doc>
+
+ <wadl:option value="Open Team"/>
+ <wadl:option value="Delegated Team"/>
+ <wadl:option value="Moderated Team"/>
+ <wadl:option value="Restricted Team"/>
+ </wadl:param>
+ <wadl:param style="query" name="membership_policy" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Membership policy
+</wadl:doc>
+
+ <wadl:option value="Open Team"/>
+ <wadl:option value="Delegated Team"/>
+ <wadl:option value="Moderated Team"/>
+ <wadl:option value="Restricted Team"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="polls">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The set of Poll objects.
+</wadl:doc>
+ <wadl:method name="GET" id="polls-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#poll-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="polls-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="processors">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Operations related to Processor instances.
+</wadl:doc>
+ <wadl:method name="GET" id="processors-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#processor-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="processors-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="projects">
+
+ <wadl:method name="GET" id="projects-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="projects-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method id="projects-licensing_search" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return an iterator over products that need to be reviewed.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="licensing_search">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="active" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is the project active
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="subscription_expires_before" required="false" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Subscription expired before
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_subscription" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Has a commercial subscription
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="project_reviewed" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is the project licence reviewed
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_after" required="false" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Created after date
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="subscription_modified_after" required="false" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Subscription modified after
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Created before date
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="subscription_modified_before" required="false" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Subscription modified before
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="licenses" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Licenses
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search text
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="subscription_expires_after" required="false" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Subscription expires after
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#project-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="projects-latest" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the latest projects registered in Launchpad.</p>
+<p>The supplied user determines which objects are visible.</p>
+<p>If the quantity is not specified or is a value that is not 'None'
+then the set of projects returned is limited to that value (the
+default quantity is 5). If quantity is 'None' then all projects are
+returned. For the web service it is not possible to specify the
+quantity, so all projects are returned, latest first.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="latest">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#project-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="projects-search" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search through the Registry database for products that match the
+query terms. text is a piece of text in the title / summary /
+description fields of product.</p>
+<p>This call eager loads data appropriate for web API; caution may be
+needed for other callers.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="search">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search text
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#project-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="projects-new_project" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create and return a brand new Product.</p>
+<p>See IProduct for a description of the parameters.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="new_project">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>At least one lowercase letter or number, followed by letters, numbers, dots, hyphens or pluses. Keep this name short; it is used in URLs as shown above.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="display_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>The name of the project as it would appear in a
+paragraph.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="title" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>The project title. Should be just a few words.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="summary" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A short paragraph to introduce the project's work.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="description" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Details about the project's work, highlights, goals, and how to contribute. Use plain text, paragraphs are preserved and URLs are linked in pages. Don't repeat the Summary.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="project_group" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Part of</p>
+<p>Project group. This is an overarching initiative that includes several related projects. For example, the Mozilla Project produces Firefox, Thunderbird and Gecko. This information is used to group those projects in a coherent way. If you make this project part of a group, the group preferences and decisions around bug tracking, translation and security policy will apply to this project.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_group"/>
+ </wadl:param>
+ <wadl:param style="query" name="home_page_url" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Homepage URL</p>
+<p>The project home page. Please include
+the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="screenshots_url" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Screenshots URL</p>
+<p>The full URL for screenshots of this project,
+if available. Please include the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="download_url" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Download URL</p>
+<p>The full URL where downloads for this project
+are located, if available. Please include the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="freshmeat_project" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Freshmeat Project</p>
+<p>The Freshmeat project name for
+this project, if it is in freshmeat. [DEPRECATED]</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="wiki_url" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Wiki URL</p>
+<p>The full URL of this project's wiki, if it has
+one. Please include the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="sourceforge_project" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Sourceforge Project</p>
+<p>The SourceForge project name for
+this project, if it is in sourceforge.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="programming_lang" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Programming Languages</p>
+<p>A comma delimited list of programming
+languages used for this project.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="project_reviewed" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Project reviewed</p>
+<p>Whether or not this project has been reviewed. If you looked at the project and how it uses Launchpad, you reviewed it.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="licenses" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Licences
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="license_info" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description of additional licences</p>
+<p>Description of licences that do not appear in the list above.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="registrant" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registrant</p>
+<p>This person registered the project in Launchpad.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bug Supervisor</p>
+<p>The Launchpad id of the person or team (preferred) responsible for bug management.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="driver" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Driver</p>
+<p>This person or team will be able to set feature goals for and approve bug targeting or backporting for ANY major series in this project. You might want to leave this blank and just appoint a team for each specific series, rather than having one project team that does it all.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="project_groups">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The collection of projects.
+</wadl:doc>
+ <wadl:method name="GET" id="project_groups-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_group-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="project_groups-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method id="project_groups-search" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search through the Registry database for projects that match the
+query terms. text is a piece of text in the title / summary /
+description fields of project (and possibly product). soyuz,
+bazaar, malone etc are hints as to whether the search should
+be limited to projects that are active in those Launchpad
+applications.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="search">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search text
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_group-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="questions">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A utility that contain all the questions published in Launchpad.
+</wadl:doc>
+ <wadl:method name="GET" id="questions-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#question-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="questions-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="snap_bases">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Interface representing the set of bases for snaps.
+</wadl:doc>
+ <wadl:method name="GET" id="snap_bases-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snap_base-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="snap_bases-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="snaps">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A utility to create and access snap packages.
+</wadl:doc>
+ <wadl:method name="GET" id="snaps-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snap-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="snaps-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="snappy_serieses">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Interface representing the set of snappy series.
+</wadl:doc>
+ <wadl:method name="GET" id="snappy_serieses-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snappy_series-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="snappy_serieses-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="specifications">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A container for specifications.
+</wadl:doc>
+ <wadl:method name="GET" id="specifications-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#specification-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="specifications-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="temporary_blobs">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A tool to create temporary blobs.
+</wadl:doc>
+ <wadl:method name="GET" id="temporary_blobs-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#temporary_blob-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="temporary_blobs-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method id="temporary_blobs-fetch" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Retrieve a TemporaryBlobStorage by uuid.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="fetch">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="token" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+UUID
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="translation_groups">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A container for translation groups.
+</wadl:doc>
+ <wadl:method name="GET" id="translation_groups-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_group-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="translation_groups-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+
+
+ <wadl:resource_type id="translation_import_queue_entries">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A set of files to be imported into Rosetta.
+</wadl:doc>
+ <wadl:method name="GET" id="translation_import_queue_entries-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_import_queue_entry-page"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="translation_import_queue_entries-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method id="translation_import_queue_entries-getFirstEntryToImport" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the first entry of the queue ready to be imported.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param target:</th><td class="rst-field-body">IPerson, IProduct, IProductSeries, IDistribution,
+IDistroSeries or ISourcePackage the import entries are attached to
+or None to get all entries available.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getFirstEntryToImport">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="target" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#object_with_translation_imports"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_import_queue_entry-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="translation_import_queue_entries-getAllEntries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return all entries this import queue has.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">arg target:</th><td class="rst-field-body">IPerson, IProduct, IProductSeries, IDistribution,
+IDistroSeries or ISourcePackage the import entries are attached to
+or None to get all entries available.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg import_status:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">RosettaImportStatus entry.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg file_extensions:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Sequence of filename suffixes to match, usually
+'po' or 'pot'.</td>
+</tr>
+</tbody>
+</table>
+<p>If any of target, status or file_extension are given, the returned
+entries are filtered based on those values.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getAllEntries">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="import_status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The status of the import.
+</wadl:doc>
+
+ <wadl:option value="Approved"/>
+ <wadl:option value="Imported"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Failed"/>
+ <wadl:option value="Needs Review"/>
+ <wadl:option value="Blocked"/>
+ <wadl:option value="Needs Information"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_import_queue_entry-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="translation_import_queue_entries-getRequestTargets" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>List Product`s and `DistroSeries with pending imports.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">arg status:</th><td class="rst-field-body">Filter by RosettaImportStatus.</td>
+</tr>
+</tbody>
+</table>
+<p>All returned items will implement IHasTranslationImports.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getRequestTargets">
+ <wadl:doc>The name of the operation being invoked.</wadl:doc>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The status of the import.
+</wadl:doc>
+
+ <wadl:option value="Approved"/>
+ <wadl:option value="Imported"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Failed"/>
+ <wadl:option value="Needs Review"/>
+ <wadl:option value="Blocked"/>
+ <wadl:option value="Needs Information"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#object_with_translation_imports-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <!--End resource_type definitions for collection resources.-->
+
+ <!--Begin representation and resource_type definitions for entry
+ resources and the collections that contain them. -->
+
+ <wadl:resource_type id="access_token">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A personal access token for the webservice API.
+</wadl:doc>
+ <wadl:method name="GET" id="access_token-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#access_token-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="access_token-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="access_token-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="access_token-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#access_token-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="access_token-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#access_token-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="access_token-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#access_token"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Creation date</p>
+<p>When the token was created.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_expires" path="$['date_expires']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Expiry date</p>
+<p>When the token should expire or was revoked.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_used" path="$['date_last_used']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date last used</p>
+<p>When the token was last used.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A short description of the token.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The person who created the token.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="revoked_by_link" path="$['revoked_by_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Revoked by</p>
+<p>The person who revoked the token, if any.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="scopes" path="$['scopes']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Scopes</p>
+<p>A list of scopes granted by the token.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="target_link" path="$['target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Target</p>
+<p>The target for which the token was issued.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#access_token_target"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="access_token-diff">
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A short description of the token.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="access_token-page-resource">
+ <wadl:method name="GET" id="access_token-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#access_token-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="access_token-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#access_token-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#access_token-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#access_token"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="access_token_target">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+An object that can be a target for access tokens.
+</wadl:doc>
+ <wadl:method name="GET" id="access_token_target-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#access_token_target-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="access_token_target-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="access_token_target-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="access_token_target-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#access_token_target-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="access_token_target-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#access_token_target-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="access_token_target-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#access_token_target"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="access_token_target-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="access_token_target-page-resource">
+ <wadl:method name="GET" id="access_token_target-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#access_token_target-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="access_token_target-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#access_token_target-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#access_token_target-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#access_token_target"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="archive_dependency">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+ArchiveDependency interface.
+</wadl:doc>
+ <wadl:method name="GET" id="archive_dependency-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_dependency-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="archive_dependency-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="archive_dependency-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="archive_dependency-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_dependency-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="archive_dependency-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_dependency-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="archive_dependency-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive_dependency"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Target archive</p>
+<p>The archive that has this dependency.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="component_name" path="$['component_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Instant when the dependency was created.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="dependency_link" path="$['dependency_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The archive set as a dependency.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Pocket
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="snap_base_link" path="$['snap_base_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Target snap base</p>
+<p>The snap base that has this dependency.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_base"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Archive dependency title.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="archive_dependency-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="archive_dependency-page-resource">
+ <wadl:method name="GET" id="archive_dependency-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#archive_dependency-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="archive_dependency-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#archive_dependency-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#archive_dependency-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive_dependency"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="archive">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Main Archive interface.
+</wadl:doc>
+ <wadl:method name="GET" id="archive-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="archive-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="archive-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="archive-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="archive-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="archive-getPublishedBinaries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>All IBinaryPackagePublishingHistory target to this archive.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">binary name filter (exact match or SQL LIKE controlled
+by 'exact_match' argument).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param version:</th><td class="rst-field-body">binary version filter (always exact match).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">PackagePublishingStatus filter, can be a list.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param distroarchseries:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">IDistroArchSeries filter, can be a list.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param pocket:</th><td class="rst-field-body">PackagePublishingPocket filter.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param exact_match:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">either or not filter source names by exact
+matching.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param created_since_date:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Only return publications created on or
+after this date.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param ordered:</th><td class="rst-field-body">Normally publications are ordered by binary package
+name and then ID order (creation order). If this parameter is
+False then the results will be unordered. This will make the
+operation much quicker to return results if you don't care about
+ordering.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param order_by_date:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Order publications by descending creation date
+and then by descending ID. This is suitable for applications
+that need to catch up with publications since their last run.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param include_removed:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True, include publications that have been
+removed from disk as well as those that have not.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param only_unpublished:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True, only include publications that
+have never been published to disk.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param component_name:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">component filter. Only return binaries that are
+in this component.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A collection containing BinaryPackagePublishingHistory.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getPublishedBinaries"/>
+ <wadl:param style="query" name="version" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Version
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="binary_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Binary Package Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Package Publishing Status</p>
+<p>The status of this publishing record</p>
+
+</wadl:doc>
+
+ <wadl:option value="Pending"/>
+ <wadl:option value="Published"/>
+ <wadl:option value="Superseded"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Obsolete"/>
+ </wadl:param>
+ <wadl:param style="query" name="component_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="distro_arch_series" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Distro Arch Series
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_arch_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="ordered" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Ordered</p>
+<p>Return ordered results by default, but specifying False will return results more quickly.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="pocket" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The pocket into which this entry is published</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since_date" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Created Since Date</p>
+<p>Return entries whose date_created is greater than or equal to this date.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="exact_match" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Whether or not to filter binary names by exact matching.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by_date" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Order by creation date</p>
+<p>Return newest results first. This is recommended for applications that need to catch up with publications since their last run.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#binary_package_publishing_history-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-getBuildRecords" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return build records in the context it is implemented.</p>
+<p>It excludes build records generated by Gina (imported from a external
+repository), where IBuild.datebuilt is null and IBuild.buildstate
+is BuildStatus.FULLYBUILT.</p>
+<p>The result is simply not filtered if the optional filters are omitted
+by call sites.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param build_state:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">optional BuildStatus value for filtering build
+records;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">optional string for filtering build source package name.
+Sub-string matching is allowed via SQL LIKE.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param pocket:</th><td class="rst-field-body">optional PackagePublishingPocket value for filtering
+build records;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param arch_tag:</th><td class="rst-field-body">optional string for filtering build source packages
+by their architecture tag;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param user:</th><td class="rst-field-body">optional IPerson corresponding to the user performing
+the request. It will filter out build records for which the user
+have no 'view' permission.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param binary_only:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">optional boolean indicating whether only
+BinaryPackageBuild objects should be returned, or more general
+PackageBuild objects (which may include, for example,
+SourcePackageRecipeBuild objects.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a result set containing IPackageBuild records ordered by
+descending IPackageBuild.date_finished except when builds are
+filtered by BuildStatus.NEEDSBUILD, in this case records
+are ordered by descending BuildQueue.lastscore
+(dispatching order).</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBuildRecords"/>
+ <wadl:param style="query" name="build_state" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build status</p>
+<p>The status of this build record</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="query" name="pocket" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The pocket into which this entry is published</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="query" name="source_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#build-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-getComponentsForQueueAdmin" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return IArchivePermission for the person's queue admin
+components.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">An IPerson.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A list of IArchivePermission records.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getComponentsForQueueAdmin"/>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_permission-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-getPermissionsForPerson" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the IArchivePermission records applicable to the person.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">An IPerson</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A list of IArchivePermission records.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getPermissionsForPerson"/>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_permission-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-getPublishedSources" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All ISourcePackagePublishingHistory target to this archive.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getPublishedSources"/>
+ <wadl:param style="query" name="version" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Version
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="source_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="distro_series" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Distroseries name
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Package Publishing Status</p>
+<p>The status of this publishing record</p>
+
+</wadl:doc>
+
+ <wadl:option value="Pending"/>
+ <wadl:option value="Published"/>
+ <wadl:option value="Superseded"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Obsolete"/>
+ </wadl:param>
+ <wadl:param style="query" name="component_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="pocket" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The pocket into which this entry is published</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since_date" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Created Since Date</p>
+<p>Return entries whose date_created is greater than or equal to this date.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="exact_match" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Exact Match</p>
+<p>Whether or not to filter source names by exact matching.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by_date" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Order by creation date</p>
+<p>Return newest results first. This is recommended for applications that need to catch up with publications since their last run. If not specified, results are ordered by source package name (lexicographically), then by descending version and then descending ID.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package_publishing_history-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-getPackagesetsForSourceUploader" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The package set based permissions for a given source and uploader.</p>
+<dl class="rst-docutils">
+<dt>Return the IArchivePermission records that</dt>
+<dd><ul class="rst-first rst-last rst-simple">
+<li>apply to this archive</li>
+<li><dl class="rst-first rst-docutils">
+<dt>relate to</dt>
+<dd><ul class="rst-first rst-last">
+<li>package sets that include the given source package name</li>
+<li>the given person</li>
+</ul>
+</dd>
+</dl>
+</li>
+</ul>
+</dd>
+</dl>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param sourcepackagename:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the source package name; can be
+either a string or a ISourcePackageName.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">An IPerson for whom you want to find out which
+package sets they have access to.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises NoSuchSourcePackageName:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if a source package with the
+given name could not be found.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">ArchivePermission records for the package sets that
+include the given source package name and to which the given
+person may upload.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getPackagesetsForSourceUploader"/>
+ <wadl:param style="query" name="sourcepackagename" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_permission-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-getArchiveDependency" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the IArchiveDependency object for the given dependency.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param dependency:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">is an IArchive object.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">IArchiveDependency or None if a corresponding object
+could not be found.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getArchiveDependency"/>
+ <wadl:param style="query" name="dependency" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_dependency-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-isSourceUploadAllowed" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>True if the person is allowed to upload the given source package.</p>
+<dl class="rst-docutils">
+<dt>Return True if there exists a permission that combines</dt>
+<dd><ul class="rst-first rst-last rst-simple">
+<li>this archive</li>
+<li>a package set that includes the given source package name</li>
+<li>the given person or a team they are a member of</li>
+</ul>
+</dd>
+</dl>
+<p>If the source package name is included by <em>any</em> package set with
+an explicit permission then only such explicit permissions will
+be considered.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param sourcepackagename:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the source package name; can be
+either a string or a ISourcePackageName.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">An IPerson for whom you want to find out which
+package sets they have access to.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param distroseries:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The IDistroSeries for which to check
+permissions. If none is supplied then currentseries in
+the archive's distribution is assumed.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises NoSuchSourcePackageName:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if a source package with the
+given name could not be found.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">True if the person is allowed to upload the source package.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="isSourceUploadAllowed"/>
+ <wadl:param style="query" name="distroseries" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The distro series
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="sourcepackagename" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="archive-getUploadersForComponent" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return IArchivePermission records for the component's uploaders.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param component_name:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An IComponent or textual name for the
+component.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A list of IArchivePermission records.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getUploadersForComponent"/>
+ <wadl:param style="query" name="component_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component Name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_permission-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-getPackagesetsForSource" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>All package set based permissions for the given source.</p>
+<p>This method is meant to aid the process of &quot;debugging&quot; package set
+based archive permission since It allows the listing of permissions
+for the given source package in this archive (irrespective of the
+principal).</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param sourcepackagename:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the source package name; can be
+either a string or a ISourcePackageName.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param direct_permissions:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If set only package sets that directly
+include the given source will be considered.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises NoSuchSourcePackageName:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if a source package with the
+given name could not be found.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">ArchivePermission records for the package sets that
+include the given source package name and apply to the
+archive in question.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getPackagesetsForSource"/>
+ <wadl:param style="query" name="sourcepackagename" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="direct_permissions" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Ignore package set hierarchy
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_permission-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-getUploadersForPackageset" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The ArchivePermission records for uploaders to the package set.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param packageset:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An IPackageset.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param direct_permissions:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True, only consider permissions granted
+directly for the package set at hand. Otherwise, include any
+uploaders for package sets that include this one.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">ArchivePermission records for all the uploaders who are
+authorized to upload to the named source package set.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getUploadersForPackageset"/>
+ <wadl:param style="query" name="packageset" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Package set
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#packageset"/>
+ </wadl:param>
+ <wadl:param style="query" name="direct_permissions" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Ignore package set hierarchy
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_permission-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-getBuildSummariesForSourceIds" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return a dictionary containing a summary of the build statuses.</p>
+<p>Only information for sources belonging to the current archive will
+be returned. See
+IPublishingSet.getBuildStatusSummariesForSourceIdsAndArchive() for
+details.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param source_ids:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">A list of source publishing history record ids.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">type source_ids:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body"><tt class="rst-docutils literal">list</tt></td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A dict consisting of the overall status summaries for the
+given ids that belong in the archive.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBuildSummariesForSourceIds"/>
+ <wadl:param style="query" name="source_ids" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of source publishing history record ids.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="archive-getPackagesetsForUploader" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The ArchivePermission records for the person's package sets.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">An IPerson for whom you want to find out which
+package sets they have access to.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">ArchivePermission records for all the package sets that
+'person' is allowed to upload to.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getPackagesetsForUploader"/>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_permission-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-getUploadersForPackage" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return IArchivePermission records for the package's uploaders.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param source_package_name:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An ISourcePackageName or textual name
+for the source package.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A list of IArchivePermission records.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getUploadersForPackage"/>
+ <wadl:param style="query" name="source_package_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source Package Name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_permission-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-checkUpload" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Wrapper around checkUpload for the web service API.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="checkUpload"/>
+ <wadl:param style="query" name="distroseries" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The distro series
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="strict_component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Strict component
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="pocket" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The pocket into which this entry is published</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="query" name="sourcepackagename" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="archive-getBuildCounters" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return a dictionary containing the build counters for an archive.</p>
+<p>This is necessary currently because the IArchive.failed_builds etc.
+counters are not in use.</p>
+<p>The returned dictionary contains the follwoing keys and values:</p>
+<blockquote>
+<ul class="rst-simple">
+<li>'total': total number of builds (includes SUPERSEDED);</li>
+<li>'pending': number of builds in BUILDING or NEEDSBUILD state;</li>
+<li>'failed': number of builds in FAILEDTOBUILD, MANUALDEPWAIT,
+CHROOTWAIT and FAILEDTOUPLOAD state;</li>
+<li>'succeeded': number of SUCCESSFULLYBUILT builds.</li>
+<li>'superseded': number of SUPERSEDED builds.</li>
+</ul>
+</blockquote>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param include_needsbuild:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Indicates whether to include builds with
+the status NEEDSBUILD in the pending and total counts. This is
+useful in situations where a build that hasn't started isn't
+considered a build by the user.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">type include_needsbuild:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body"><tt class="rst-docutils literal">bool</tt></td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a dictionary with the 4 keys specified above.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">rtype:</th><td class="rst-field-body"><tt class="rst-docutils literal">dict</tt>.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBuildCounters"/>
+ <wadl:param style="query" name="include_needsbuild" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Include builds with state NEEDSBUILD
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="archive-getQueueAdminsForComponent" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return IArchivePermission records for authorized queue admins.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param component_name:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An IComponent or textual name for the
+component.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A list of IArchivePermission records.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getQueueAdminsForComponent"/>
+ <wadl:param style="query" name="component_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component Name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_permission-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-deleteQueueAdmin" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Revoke permission for the person to administer distroseries queues.</p>
+<p>The supplied person will lose permission to administer the
+distroseries queue for packages in the supplied component.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">An IPerson whose permission should be revoked.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param component:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An IComponent or textual component name.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="deleteQueueAdmin"/>
+ <wadl:param style="query" name="component_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="archive-newComponentUploader" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add permission for a person to upload to a component.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">An IPerson whom should be given permission.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param component:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An IComponent or textual component name.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">An IArchivePermission which is the newly-created
+permission.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises InvalidComponent:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if this archive is a PPA and the component
+is not 'main'.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="newComponentUploader"/>
+ <wadl:param style="query" name="component_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive_permission"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-syncSources" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Synchronise (copy) named sources into this archive from another.</p>
+<p>DEPRECATED: syncSource and syncSources are deprecated, and will
+be removed entirely in the future. Use the asynchronous
+copyPackage method instead, and poll getPublishedSources if you
+need to await completion.</p>
+<p>It will copy the most recent PUBLISHED versions of the named
+sources to the destination archive if necessary.</p>
+<p>This operation will only succeeds when all requested packages
+are synchronised between the archives. If any of the requested
+copies cannot be performed, the whole operation will fail. There
+will be no partial changes of the destination archive.</p>
+<p>If the source or target distribution has a development series alias,
+then it may be used as the source or target distroseries name
+respectively; but note that this will always be resolved to the true
+development series of that distribution, which may not match the
+alias in the respective published archives.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param source_names:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">a list of string names of packages to copy.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param from_archive:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the source archive from which to copy.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param to_pocket:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the target pocket (as a string).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param to_series:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the target distroseries (as a string).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param from_series:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the source distroseries (as a string).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param include_binaries:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">optional boolean, controls whether or not
+the published binaries for each given source should also be
+copied along with the source.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">the IPerson who requests the sync.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises NoSuchSourcePackageName:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if the source name is invalid</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises PocketNotFound:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if the pocket name is invalid</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises NoSuchDistroSeries:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if the distro series name is invalid</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises CannotCopy:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if there is a problem copying.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="syncSources"/>
+ <wadl:param style="query" name="source_names" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package names
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="from_series" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distroseries name</p>
+<p>The distro series to copy packages from.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="include_binaries" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Include Binaries</p>
+<p>Whether or not to copy binaries already built for this source</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="from_archive" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="query" name="to_series" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distroseries name</p>
+<p>The distro series to copy packages into.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="to_pocket" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Pocket name
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="archive-deleteComponentUploader" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Revoke permission for the person to upload to the component.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">An IPerson whose permission should be revoked.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param component:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An IComponent or textual component name.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="deleteComponentUploader"/>
+ <wadl:param style="query" name="component_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="archive-deletePackagesetUploader" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Revoke upload permissions for a person.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">An IPerson for whom you want to revoke permission.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param packageset:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An IPackageset.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param explicit:</th><td class="rst-field-body">The value of the 'explicit' flag for the permission
+to be revoked.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="deletePackagesetUploader"/>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="explicit" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Explicit
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="packageset" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Package set
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#packageset"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="archive-newSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create a new subscribtion to this archive.</p>
+<p>Create an ArchiveSubscriber record which allows an IPerson to
+access a private repository.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param subscriber:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An IPerson who is allowed to access the
+repository for this archive.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param registrant:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An IPerson who created this subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param date_expires:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">When the subscription should expire; None if
+it should not expire (default).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param description:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An option textual description of the subscription
+being created.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The IArchiveSubscriber that was created.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="newSubscription"/>
+ <wadl:param style="query" name="description" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Free text describing this subscription.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="date_expires" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date of Expiration</p>
+<p>The timestamp when the subscription will expire.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="subscriber" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Subscriber</p>
+<p>The person who is subscribed.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive_subscriber"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-newPackagesetUploader" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a package set based permission for a person.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">An IPerson for whom you want to add permission.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param packageset:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An IPackageset.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param explicit:</th><td class="rst-field-body">True if the package set in question requires
+specialist skills for proper handling.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new ArchivePermission, or the existing one if it
+already exists.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="newPackagesetUploader"/>
+ <wadl:param style="query" name="explicit" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Explicit
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="packageset" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Package set
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#packageset"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive_permission"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-deletePackageUploader" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Revoke permission for the person to upload the package.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">An IPerson whose permission should be revoked.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param source_package_name:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An ISourcePackageName or textual package
+name.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="deletePackageUploader"/>
+ <wadl:param style="query" name="source_package_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source Package Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="archive-newQueueAdmin" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add permission for a person to administer a distroseries queue.</p>
+<p>The supplied person will gain permission to administer the
+distroseries queue for packages in the supplied component.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">An IPerson whom should be given permission.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param component:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An IComponent or textual component name.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">An IArchivePermission which is the newly-created
+permission.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="newQueueAdmin"/>
+ <wadl:param style="query" name="component_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive_permission"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="archive-syncSource" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Synchronise (copy) a single named source into this archive.</p>
+<p>DEPRECATED: syncSource and syncSources are deprecated, and will
+be removed entirely in the future. Use the asynchronous
+copyPackage method instead, and poll getPublishedSources if you
+need to await completion.</p>
+<p>Copy a specific version of a named source to the destination
+archive if necessary.</p>
+<p>If the source distribution has a development series alias, then it
+may be used as the source distroseries name; but note that this will
+always be resolved to the true development series of that
+distribution, which may not match the alias in the published source
+archive.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param source_name:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">a string name of the package to copy.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param version:</th><td class="rst-field-body">the version of the package to copy.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param from_archive:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the source archive from which to copy.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param to_pocket:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the target pocket (as a string).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param to_series:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the target distroseries (as a string).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param include_binaries:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">optional boolean, controls whether or not
+the published binaries for each given source should also be
+copied along with the source.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">the IPerson who requests the sync.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises NoSuchSourcePackageName:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if the source name is invalid</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises PocketNotFound:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if the pocket name is invalid</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises NoSuchDistroSeries:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if the distro series name is invalid</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises CannotCopy:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if there is a problem copying.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="syncSource"/>
+ <wadl:param style="query" name="source_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="include_binaries" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Include Binaries</p>
+<p>Whether or not to copy binaries already built for this source</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="version" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Version
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="from_archive" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="query" name="to_series" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Distroseries name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="to_pocket" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Pocket name
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="archive-newPackageUploader" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add permisson for a person to upload a package to this archive.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">An IPerson whom should be given permission.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param source_package_name:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An ISourcePackageName or textual package
+name.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">An IArchivePermission which is the newly-created
+permission.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="newPackageUploader"/>
+ <wadl:param style="query" name="source_package_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source Package Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive_permission"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="archive-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="authorized_size" path="$['authorized_size']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Authorized size</p>
+<p>Maximum size, in MiB, allowed for the archive.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="dependencies_collection_link" path="$['dependencies_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Archive dependencies recorded for this archive.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive_dependency-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A short description of the archive. URLs are allowed and will be rendered as links.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="displayname" path="$['displayname']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display name</p>
+<p>A short title for the archive.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The distribution that uses or is used by this archive.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="external_dependencies" path="$['external_dependencies']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>External dependencies</p>
+<p>Newline-separated list of repositories to be used to retrieve any external build-dependencies when building packages in the archive, in the format:
+deb http[s]://[user:pass&#64;]&lt;host&gt;[/path] %(series)s[-pocket] [components]
+The series variable is replaced with the series name of the context build.
+NOTE: This is for migration of OEM PPAs only!</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>At least one lowercase letter or number, followed by letters, numbers, dots, hyphens or pluses. Keep this name short; it is used in URLs.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The archive owner.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="private" path="$['private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Private</p>
+<p>Restrict access to the archive to its owner and subscribers. This can only be changed if the archive has never had any sources published.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="reference" path="$['reference']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Reference</p>
+<p>A string to uniquely identify the archive.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="relative_build_score" path="$['relative_build_score']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Relative build score</p>
+<p>A delta to apply to all build scores for the archive. Builds with a higher score will build sooner.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="require_virtualized" path="$['require_virtualized']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Require virtualized builders</p>
+<p>Only build the archive's packages on virtual builders.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="signing_key_fingerprint" path="$['signing_key_fingerprint']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Archive signing key fingerprint</p>
+<p>A OpenPGP signing key fingerprint (40 chars) for this PPA or None if there is no signing key available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="suppress_subscription_notifications" path="$['suppress_subscription_notifications']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Suppress subscription notifications</p>
+<p>Whether subscribers to private PPAs get emails about their subscriptions. Has no effect on a public PPA.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="archive-diff">
+ <wadl:param style="plain" required="false" name="authorized_size" path="$['authorized_size']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Authorized size</p>
+<p>Maximum size, in MiB, allowed for the archive.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A short description of the archive. URLs are allowed and will be rendered as links.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="displayname" path="$['displayname']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display name</p>
+<p>A short title for the archive.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The distribution that uses or is used by this archive.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="external_dependencies" path="$['external_dependencies']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>External dependencies</p>
+<p>Newline-separated list of repositories to be used to retrieve any external build-dependencies when building packages in the archive, in the format:
+deb http[s]://[user:pass&#64;]&lt;host&gt;[/path] %(series)s[-pocket] [components]
+The series variable is replaced with the series name of the context build.
+NOTE: This is for migration of OEM PPAs only!</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>At least one lowercase letter or number, followed by letters, numbers, dots, hyphens or pluses. Keep this name short; it is used in URLs.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The archive owner.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="private" path="$['private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Private</p>
+<p>Restrict access to the archive to its owner and subscribers. This can only be changed if the archive has never had any sources published.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="relative_build_score" path="$['relative_build_score']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Relative build score</p>
+<p>A delta to apply to all build scores for the archive. Builds with a higher score will build sooner.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="require_virtualized" path="$['require_virtualized']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Require virtualized builders</p>
+<p>Only build the archive's packages on virtual builders.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="signing_key_fingerprint" path="$['signing_key_fingerprint']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Archive signing key fingerprint</p>
+<p>A OpenPGP signing key fingerprint (40 chars) for this PPA or None if there is no signing key available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="suppress_subscription_notifications" path="$['suppress_subscription_notifications']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Suppress subscription notifications</p>
+<p>Whether subscribers to private PPAs get emails about their subscriptions. Has no effect on a public PPA.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="archive-page-resource">
+ <wadl:method name="GET" id="archive-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#archive-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="archive-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#archive-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#archive-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="archive_permission">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The interface for ArchivePermission.
+</wadl:doc>
+ <wadl:method name="GET" id="archive_permission-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_permission-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="archive_permission-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="archive_permission-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="archive_permission-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_permission-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="archive_permission-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_permission-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="archive_permission-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive_permission"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Archive</p>
+<p>The archive that this permission is for.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="component_name" path="$['component_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Created</p>
+<p>The timestamp when the permission was created.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_series_name" path="$['distro_series_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The name of the distro series associated with the package set.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distroseries_link" path="$['distroseries_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distro series</p>
+<p>The distro series that this permission is for (only for pocket permissions).</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="explicit" path="$['explicit']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Explicit</p>
+<p>Set this flag for package sets with high-profile packages requiring specialist skills for proper handling.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="package_set_name" path="$['package_set_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Package set name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="permission" path="$['permission']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The permission type being granted.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="person_link" path="$['person_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Person</p>
+<p>The person or team being granted the permission.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The pocket that this permission is for.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="source_package_name" path="$['source_package_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source Package Name
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="archive_permission-diff">
+ <wadl:param style="plain" required="false" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Archive</p>
+<p>The archive that this permission is for.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="component_name" path="$['component_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Created</p>
+<p>The timestamp when the permission was created.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distro_series_name" path="$['distro_series_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The name of the distro series associated with the package set.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distroseries_link" path="$['distroseries_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distro series</p>
+<p>The distro series that this permission is for (only for pocket permissions).</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="explicit" path="$['explicit']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Explicit</p>
+<p>Set this flag for package sets with high-profile packages requiring specialist skills for proper handling.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="package_set_name" path="$['package_set_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Package set name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="permission" path="$['permission']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The permission type being granted.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="person_link" path="$['person_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Person</p>
+<p>The person or team being granted the permission.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The pocket that this permission is for.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="source_package_name" path="$['source_package_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source Package Name
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="archive_permission-page-resource">
+ <wadl:method name="GET" id="archive_permission-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#archive_permission-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="archive_permission-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#archive_permission-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#archive_permission-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive_permission"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="archive_subscriber">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+An interface for archive subscribers.
+</wadl:doc>
+ <wadl:method name="GET" id="archive_subscriber-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_subscriber-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="archive_subscriber-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="archive_subscriber-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="archive_subscriber-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_subscriber-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="archive_subscriber-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive_subscriber-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="archive_subscriber-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive_subscriber"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Archive</p>
+<p>The archive for this subscription.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Created</p>
+<p>The timestamp when the subscription was created.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_expires" path="$['date_expires']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date of Expiration</p>
+<p>The timestamp when the subscription will expire.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Free text describing this subscription.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registrant</p>
+<p>The person who registered this subscription.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The status of this subscription.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Active"/>
+ <wadl:option value="Expired"/>
+ <wadl:option value="Cancelled"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="subscriber_link" path="$['subscriber_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Subscriber</p>
+<p>The person who is subscribed.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="archive_subscriber-diff">
+ <wadl:param style="plain" required="false" name="date_expires" path="$['date_expires']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date of Expiration</p>
+<p>The timestamp when the subscription will expire.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Free text describing this subscription.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The status of this subscription.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Active"/>
+ <wadl:option value="Expired"/>
+ <wadl:option value="Cancelled"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="archive_subscriber-page-resource">
+ <wadl:method name="GET" id="archive_subscriber-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#archive_subscriber-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="archive_subscriber-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#archive_subscriber-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#archive_subscriber-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive_subscriber"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="build">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A Build interface
+</wadl:doc>
+ <wadl:method name="GET" id="build-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#build-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="build-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="build-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="build-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#build-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="build-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#build-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="build-retry" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Restore the build record to its initial state.</p>
+<p>Build record loses its history, is moved to NEEDSBUILD and a new
+non-scored BuildQueue entry is created for it.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="retry"/>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="build-rescore" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Change the build's score.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="rescore"/>
+ <wadl:param style="query" name="score" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Score
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="build-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#build"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="arch_tag" path="$['arch_tag']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Architecture tag
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Archive</p>
+<p>The Archive context for this build.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="build_log_url" path="$['build_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build Log URL</p>
+<p>A URL for the build log. None if there is no log available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="builder_link" path="$['builder_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Builder</p>
+<p>The builder assigned to this job.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#builder"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="buildstate" path="$['buildstate']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current status of the job.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_be_cancelled" path="$['can_be_cancelled']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can Be Cancelled</p>
+<p>Whether or not this build record can be cancelled.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_be_rescored" path="$['can_be_rescored']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can Be Rescored</p>
+<p>Whether or not this build record can be rescored manually.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_be_retried" path="$['can_be_retried']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can Be Retried</p>
+<p>Whether or not this build record can be retried.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="changesfile_url" path="$['changesfile_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Changes File URL</p>
+<p>The URL for the changes file for this build. Will be None if the build was imported by Gina.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="current_source_publication_link" path="$['current_source_publication_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source publication</p>
+<p>The current source publication for this build.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_publishing_history"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_first_dispatched" path="$['date_first_dispatched']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date finished</p>
+<p>The actual build start time. Set when the build is dispatched the first time and not changed in subsequent build attempts.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datebuilt" path="$['datebuilt']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date finished</p>
+<p>The timestamp when the build farm job was finished.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datecreated" path="$['datecreated']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date created</p>
+<p>The timestamp when the build farm job was created.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="dependencies" path="$['dependencies']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependencies</p>
+<p>Debian-like dependency line that must be satisfied before attempting to build this request.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution</p>
+<p>Shortcut for its distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The build targeted pocket.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="score" path="$['score']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Score of the related job (if any)
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="source_package_name" path="$['source_package_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="source_package_version" path="$['source_package_version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package version
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Title
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="upload_log_url" path="$['upload_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Upload Log URL</p>
+<p>A URL for failed upload logs.Will be None if there was no failure.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="build-diff">
+ <wadl:param style="plain" required="false" name="arch_tag" path="$['arch_tag']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Architecture tag
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="build_log_url" path="$['build_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build Log URL</p>
+<p>A URL for the build log. None if there is no log available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="buildstate" path="$['buildstate']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current status of the job.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="changesfile_url" path="$['changesfile_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Changes File URL</p>
+<p>The URL for the changes file for this build. Will be None if the build was imported by Gina.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="dependencies" path="$['dependencies']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependencies</p>
+<p>Debian-like dependency line that must be satisfied before attempting to build this request.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution</p>
+<p>Shortcut for its distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The build targeted pocket.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Title
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="upload_log_url" path="$['upload_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Upload Log URL</p>
+<p>A URL for failed upload logs.Will be None if there was no failure.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="build-page-resource">
+ <wadl:method name="GET" id="build-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#build-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="build-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#build-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#build-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#build"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="binary_package_publishing_history">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A binary package publishing record.
+</wadl:doc>
+ <wadl:method name="GET" id="binary_package_publishing_history-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#binary_package_publishing_history-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="binary_package_publishing_history-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="binary_package_publishing_history-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="binary_package_publishing_history-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#binary_package_publishing_history-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="binary_package_publishing_history-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#binary_package_publishing_history-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="binary_package_publishing_history-getDownloadCounts" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get detailed download counts for this binary.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param start_date:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The optional first date to return.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param end_date:</th><td class="rst-field-body">The optional last date to return.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getDownloadCounts"/>
+ <wadl:param style="query" name="start_date" required="false" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Start date
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="end_date" required="false" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+End date
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#binary_package_release_download_count-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="binary_package_publishing_history-getDownloadCount" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get the download count of this binary package in this archive.</p>
+<p>This is currently only meaningful for PPAs.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getDownloadCount"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="binary_package_publishing_history-getDailyDownloadTotals" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get the daily download counts for this binary.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param start_date:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The optional first date to return.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param end_date:</th><td class="rst-field-body">The optional last date to return.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getDailyDownloadTotals"/>
+ <wadl:param style="query" name="start_date" required="false" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Start date
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="end_date" required="false" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+End date
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="binary_package_publishing_history-requestDeletion" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Delete this source and its binaries.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param removed_by:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">IPerson responsible for the removal.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param removal_comment:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">optional text describing the removal reason.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="requestDeletion"/>
+ <wadl:param style="query" name="removal_comment" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Removal comment
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="binary_package_publishing_history-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#binary_package_publishing_history"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="architecture_specific" path="$['architecture_specific']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Architecture Specific
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Archive</p>
+<p>The context archive for this publication.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="binary_package_name" path="$['binary_package_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Binary Package Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="binary_package_version" path="$['binary_package_version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Binary Package Version
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="build_link" path="$['build_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build</p>
+<p>The build that produced this binary package.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#build"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="component_name" path="$['component_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="copied_from_archive_link" path="$['copied_from_archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Original archive ID where this package was copied from.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="creator_link" path="$['creator_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Publication Creator</p>
+<p>The IPerson who created this publication.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Created</p>
+<p>The date on which this record was created</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_made_pending" path="$['date_made_pending']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Made Pending</p>
+<p>The date on which this record was set as pending removal</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_published" path="$['date_published']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Published</p>
+<p>The date on which this record was published</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_removed" path="$['date_removed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Removed</p>
+<p>The date on which this record was removed from the published set</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_superseded" path="$['date_superseded']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Superseded</p>
+<p>The date on which this record was marked superseded</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>Text representation of the current record.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_arch_series_link" path="$['distro_arch_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distro Arch Series</p>
+<p>The distroarchseries being published into</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_arch_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="phased_update_percentage" path="$['phased_update_percentage']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The percentage of users for whom this package should be recommended, or None to publish the update for everyone
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The pocket into which this entry is published</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="priority_name" path="$['priority_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Priority Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="removal_comment" path="$['removal_comment']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Removal Comment</p>
+<p>Reason why this publication is going to be removed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="removed_by_link" path="$['removed_by_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Removed By</p>
+<p>The Person responsible for the removal</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="scheduled_deletion_date" path="$['scheduled_deletion_date']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Scheduled Deletion Date</p>
+<p>The date on which this record is scheduled for deletion</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="section_name" path="$['section_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Section Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="source_package_name" path="$['source_package_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source Package Name</p>
+<p>The source package name that built this binary.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="source_package_version" path="$['source_package_version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source Package Version</p>
+<p>The source package version that built this binary.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The status of this publishing record</p>
+
+</wadl:doc>
+
+ <wadl:option value="Pending"/>
+ <wadl:option value="Published"/>
+ <wadl:option value="Superseded"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Obsolete"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="binary_package_publishing_history-diff">
+ <wadl:param style="plain" required="false" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Created</p>
+<p>The date on which this record was created</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_made_pending" path="$['date_made_pending']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Made Pending</p>
+<p>The date on which this record was set as pending removal</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_published" path="$['date_published']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Published</p>
+<p>The date on which this record was published</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_removed" path="$['date_removed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Removed</p>
+<p>The date on which this record was removed from the published set</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_superseded" path="$['date_superseded']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Superseded</p>
+<p>The date on which this record was marked superseded</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>Text representation of the current record.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distro_arch_series_link" path="$['distro_arch_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distro Arch Series</p>
+<p>The distroarchseries being published into</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_arch_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="removal_comment" path="$['removal_comment']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Removal Comment</p>
+<p>Reason why this publication is going to be removed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="removed_by_link" path="$['removed_by_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Removed By</p>
+<p>The Person responsible for the removal</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="scheduled_deletion_date" path="$['scheduled_deletion_date']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Scheduled Deletion Date</p>
+<p>The date on which this record is scheduled for deletion</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The status of this publishing record</p>
+
+</wadl:doc>
+
+ <wadl:option value="Pending"/>
+ <wadl:option value="Published"/>
+ <wadl:option value="Superseded"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Obsolete"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="binary_package_publishing_history-page-resource">
+ <wadl:method name="GET" id="binary_package_publishing_history-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#binary_package_publishing_history-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="binary_package_publishing_history-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#binary_package_publishing_history-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#binary_package_publishing_history-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#binary_package_publishing_history"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="binary_package_release_download_count">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Daily download count of a binary package release in an archive.
+</wadl:doc>
+ <wadl:method name="GET" id="binary_package_release_download_count-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#binary_package_release_download_count-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="binary_package_release_download_count-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="binary_package_release_download_count-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="binary_package_release_download_count-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#binary_package_release_download_count-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="binary_package_release_download_count-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#binary_package_release_download_count-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="binary_package_release_download_count-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#binary_package_release_download_count"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Archive
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="binary_package_name" path="$['binary_package_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Binary package name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="binary_package_version" path="$['binary_package_version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Binary package version
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="count" path="$['count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Number of downloads
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="country_link" path="$['country_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Country
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#country"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="day" path="$['day']" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Day of the downloads
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="binary_package_release_download_count-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="binary_package_release_download_count-page-resource">
+ <wadl:method name="GET" id="binary_package_release_download_count-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#binary_package_release_download_count-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="binary_package_release_download_count-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#binary_package_release_download_count-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#binary_package_release_download_count-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#binary_package_release_download_count"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="branch">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A Bazaar branch.
+</wadl:doc>
+ <wadl:method name="GET" id="branch-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="branch-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="branch-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="branch-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="branch-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="DELETE" id="branch-delete"/>
+
+ <wadl:method id="branch-getMergeProposals" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return matching BranchMergeProposals.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getMergeProposals"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of merge proposal statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="merged_revnos" required="false">
+
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_merge_proposal-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="branch-canBeDeleted" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can this branch be deleted in its current state.</p>
+<p>A branch is considered deletable if it has no revisions and is not
+linked to any bugs, specs, productseries, or code imports.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="canBeDeleted"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="branch-getSubscription" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the BranchSubscription for this person.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscription"/>
+ <wadl:param style="query" name="person" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The person to search for
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_subscription-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="branch-composePublicURL" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return a public URL for the branch using the given protocol.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param scheme:</th><td class="rst-field-body">a protocol name accepted by the public
+code-hosting API. (As a legacy issue, 'sftp' is also
+accepted).</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="composePublicURL"/>
+ <wadl:param style="query" name="scheme" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+URL scheme
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="branch-isPersonTrustedReviewer" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return true if the reviewer is a trusted reviewer.</p>
+<p>The reviewer is trusted if they are either own the branch, or are in
+the team that owns the branch, or they are in the review team for the
+branch.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="isPersonTrustedReviewer"/>
+ <wadl:param style="query" name="reviewer" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A person for which the reviewer status is in question.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="branch-linkBug" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Link a bug to this branch.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param bug:</th><td class="rst-field-body">IBug to link.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param registrant:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">IPerson linking the bug.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="linkBug"/>
+ <wadl:param style="query" name="bug" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="branch-subscribe" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Subscribe this person to the branch.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">The Person to subscribe.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param notification_level:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The kinds of branch changes that cause
+notification.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param max_diff_lines:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The maximum number of lines of diff that may
+appear in a notification.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param code_review_level:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The kinds of code review activity that cause
+notification.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param subscribed_by:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The person who is subscribing the subscriber.
+Most often the subscriber themselves.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">new or existing BranchSubscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="subscribe"/>
+ <wadl:param style="query" name="max_diff_lines" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The max number of lines for diff email.
+</wadl:doc>
+
+ <wadl:option value="Don't send diffs"/>
+ <wadl:option value="500 lines"/>
+ <wadl:option value="1000 lines"/>
+ <wadl:option value="5000 lines"/>
+ <wadl:option value="Send entire diff"/>
+ </wadl:param>
+ <wadl:param style="query" name="notification_level" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The level of notification to subscribe to.
+</wadl:doc>
+
+ <wadl:option value="No email"/>
+ <wadl:option value="Branch attribute notifications only"/>
+ <wadl:option value="Branch revision notifications only"/>
+ <wadl:option value="Branch attribute and revision notifications"/>
+ </wadl:param>
+ <wadl:param style="query" name="code_review_level" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The level of code review notification emails.
+</wadl:doc>
+
+ <wadl:option value="No email"/>
+ <wadl:option value="Status changes only"/>
+ <wadl:option value="Email about all changes"/>
+ </wadl:param>
+ <wadl:param style="query" name="person" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The person to subscribe.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_subscription-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="branch-requestMirror" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Request that this branch be mirrored on the next run of the branch
+puller.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="requestMirror"/>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="branch-unlinkSpecification" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Unlink an ISpecification to a branch.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param spec:</th><td class="rst-field-body">ISpecification to unlink.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param user:</th><td class="rst-field-body">IPerson unlinking the spec.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="unlinkSpecification"/>
+ <wadl:param style="query" name="spec" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#specification"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="branch-setTarget" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Set the target of the branch to be project or source_package.</p>
+<p>Only one of project or source_package can be set, and if neither
+is set, the branch gets moved into the junk namespace of the branch
+owner.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">raise:</th><td class="rst-field-body">BranchTargetError if both project and source_package are
+set, or if either the project or source_package fail to be
+adapted to an IBranchTarget.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="setTarget"/>
+ <wadl:param style="query" name="project" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The project the branch belongs to.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project"/>
+ </wadl:param>
+ <wadl:param style="query" name="source_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The source package the branch belongs to.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="branch-unlinkBug" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Unlink a bug to this branch.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param bug:</th><td class="rst-field-body">IBug to unlink.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param user:</th><td class="rst-field-body">IPerson unlinking the bug.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="unlinkBug"/>
+ <wadl:param style="query" name="bug" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="branch-linkSpecification" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Link an ISpecification to a branch.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param spec:</th><td class="rst-field-body">ISpecification to link.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param registrant:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">IPerson unlinking the spec.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="linkSpecification"/>
+ <wadl:param style="query" name="spec" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#specification"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="branch-setOwner" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Set the owner of the branch to be new_owner.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="setOwner"/>
+ <wadl:param style="query" name="new_owner" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The new owner of the branch.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="branch-unsubscribe" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remove the person's subscription to this branch.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">The person or team to unsubscribe from the branch.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param unsubscribed_by:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The person doing the unsubscribing.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="unsubscribe"/>
+ <wadl:param style="query" name="person" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The person to unsubscribe
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="branch-createMergeProposal" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create a new BranchMergeProposal with this branch as the source.</p>
+<p>Both the target_branch and the prerequisite_branch, if it is there,
+must be branches with the same target as the source branch.</p>
+<p>Personal branches (a.k.a. junk branches) cannot specify landing
+targets.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="createMergeProposal"/>
+ <wadl:param style="query" name="commit_message" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Commit message</p>
+<p>Message to use when committing this merge.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="needs_review" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Needs review</p>
+<p>If True the proposal needs review.Otherwise, it will be work in progress.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="reviewers" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="initial_comment" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Initial comment</p>
+<p>Registrant's initial description of proposal.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="target_branch" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="query" name="review_types" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="prerequisite_branch" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="branch-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="branch_format" path="$['branch_format']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Branch Format
+</wadl:doc>
+
+ <wadl:option value="!Unrecognized!"/>
+ <wadl:option value="Fake Bazaar Branch 4 marker"/>
+ <wadl:option value="Bazaar-NG Branch Reference Format 1
+"/>
+ <wadl:option value="Bazaar-NG branch format 5
+"/>
+ <wadl:option value="Bazaar Branch Format 6 (bzr 0.15)
+"/>
+ <wadl:option value="Bazaar Branch Format 7 (needs bzr 1.6)
+"/>
+ <wadl:option value="Bazaar Branch Format 8 (needs bzr 1.15)
+"/>
+ <wadl:option value="Bazaar-NG Loom branch format 1
+"/>
+ <wadl:option value="Bazaar-NG Loom branch format 6
+"/>
+ <wadl:option value="Bazaar-NG Loom branch format 7
+"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="branch_type" path="$['branch_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Branch Type
+</wadl:doc>
+
+ <wadl:option value="Hosted"/>
+ <wadl:option value="Mirrored"/>
+ <wadl:option value="Imported"/>
+ <wadl:option value="Remote"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bzr_identity" path="$['bzr_identity']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bazaar Identity</p>
+<p>The bzr branch path as accessed by Launchpad. If the branch is associated with a product as the primary development focus, then the result should be lp:product. If the branch is related to a series, then lp:product/series. Otherwise the result is lp:~user/product/branch-name.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="code_import_link" path="$['code_import_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The associated CodeImport, if any.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_import"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="control_format" path="$['control_format']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Control Directory
+</wadl:doc>
+
+ <wadl:option value="!Unrecognized!"/>
+ <wadl:option value="Bazaar-NG branch, format 0.0.4
+"/>
+ <wadl:option value="Bazaar-NG branch, format 5
+"/>
+ <wadl:option value="Bazaar-NG branch, format 6
+"/>
+ <wadl:option value="Bazaar-NG meta directory, format 1
+"/>
+ <wadl:option value="Bazaar meta directory, format 1 (with colocated branches)
+"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_modified" path="$['date_last_modified']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Last Modified
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="dependent_branches_collection_link" path="$['dependent_branches_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependent Branches</p>
+<p>A collection of the merge proposals that are dependent on this branch.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A short description of the changes in this branch.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display name</p>
+<p>The branch unique_name.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="explicitly_private" path="$['explicitly_private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Keep branch confidential</p>
+<p>Make this branch visible only to its subscribers.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="information_type" path="$['information_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>The type of information contained in this branch.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Public Security"/>
+ <wadl:option value="Private Security"/>
+ <wadl:option value="Private"/>
+ <wadl:option value="Proprietary"/>
+ <wadl:option value="Embargoed"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="landing_candidates_collection_link" path="$['landing_candidates_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Landing Candidates</p>
+<p>A collection of the merge proposals where this branch is the target branch.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="landing_targets_collection_link" path="$['landing_targets_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Landing Targets</p>
+<p>A collection of the merge proposals where this branch is the source branch.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="last_mirror_attempt" path="$['last_mirror_attempt']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Last time a mirror of this branch was attempted.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="last_mirrored" path="$['last_mirrored']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Last time this branch was successfully mirrored.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="last_scanned" path="$['last_scanned']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Last time this branch was successfully scanned.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="last_scanned_id" path="$['last_scanned_id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Last scanned revision ID</p>
+<p>The head revision ID of the branch when last successfully scanned.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="lifecycle_status" path="$['lifecycle_status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="Experimental"/>
+ <wadl:option value="Development"/>
+ <wadl:option value="Mature"/>
+ <wadl:option value="Merged"/>
+ <wadl:option value="Abandoned"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="linked_bugs_collection_link" path="$['linked_bugs_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The bugs linked to this branch.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="mirror_status_message" path="$['mirror_status_message']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The last message we got when mirroring this branch.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>Keep very short, unique, and descriptive, because it will be used in URLs. Examples: main, devel, release-1.0, gnome-vfs.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>Either yourself or an exclusive team you are a member of. This controls who can modify the branch.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="private" path="$['private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Branch is confidential</p>
+<p>This branch is visible only to its subscribers.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="project_link" path="$['project_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Project</p>
+<p>The project this branch belongs to.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="recipes_collection_link" path="$['recipes_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All recipes associated with the object.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The user that registered the branch.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="repository_format" path="$['repository_format']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Repository Format
+</wadl:doc>
+
+ <wadl:option value="!Unrecognized!"/>
+ <wadl:option value="Fake Bazaar repository 4 marker"/>
+ <wadl:option value="Fake Bazaar repository 5 marker"/>
+ <wadl:option value="Fake Bazaar repository 6 marker"/>
+ <wadl:option value="Bazaar-NG Repository format 7"/>
+ <wadl:option value="Bazaar-NG Knit Repository Format 1"/>
+ <wadl:option value="Bazaar Knit Repository Format 3 (bzr 0.15)
+"/>
+ <wadl:option value="Bazaar Knit Repository Format 4 (bzr 1.0)
+"/>
+ <wadl:option value="Bazaar pack repository format 1 (needs bzr 0.92)
+"/>
+ <wadl:option value="Bazaar pack repository format 1 with subtree support (needs bzr 0.92)
+"/>
+ <wadl:option value="Bazaar pack repository format 1 with rich root (needs bzr 1.0)
+"/>
+ <wadl:option value="Bazaar RepositoryFormatKnitPack5 (bzr 1.6)
+"/>
+ <wadl:option value="Bazaar RepositoryFormatKnitPack5RichRoot (bzr 1.6)
+"/>
+ <wadl:option value="Bazaar RepositoryFormatKnitPack5RichRoot (bzr 1.6.1)
+"/>
+ <wadl:option value="Bazaar RepositoryFormatKnitPack6 (bzr 1.9)
+"/>
+ <wadl:option value="Bazaar RepositoryFormatKnitPack6RichRoot (bzr 1.9)
+"/>
+ <wadl:option value="Bazaar development format 0 (needs bzr.dev from before 1.3)
+"/>
+ <wadl:option value="Bazaar development format 0 with subtree support (needs bzr.dev from before 1.3)
+"/>
+ <wadl:option value="Bazaar development format 1 (needs bzr.dev from before 1.6)
+"/>
+ <wadl:option value="Bazaar development format 1 with subtree support (needs bzr.dev from before 1.6)
+"/>
+ <wadl:option value="Bazaar development format 2 (needs bzr.dev from before 1.8)
+"/>
+ <wadl:option value="Bazaar development format 2 with subtree support (needs bzr.dev from before 1.8)
+"/>
+ <wadl:option value="Bazaar development format 8
+"/>
+ <wadl:option value="Bazaar development format - group compression and chk inventory (needs bzr.dev from 1.14)
+"/>
+ <wadl:option value="Bazaar development format - chk repository with bencode revision serialization (needs bzr.dev from 1.16)
+"/>
+ <wadl:option value="Bazaar repository format 2a (needs bzr 1.16 or later)
+"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="reviewer_link" path="$['reviewer_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Review Team</p>
+<p>The reviewer of a branch is the person or exclusive team that is responsible for reviewing proposals and merging into this branch.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="revision_count" path="$['revision_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Revision count</p>
+<p>The revision number of the tip of the branch.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="sourcepackage_link" path="$['sourcepackage_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The ISourcePackage that this branch belongs to. None if not a package branch.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="spec_links_collection_link" path="$['spec_links_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Specification linked to this branch.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#specification_branch-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="subscribers_collection_link" path="$['subscribers_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Persons subscribed to this branch.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="subscriptions_collection_link" path="$['subscriptions_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+BranchSubscriptions associated to this branch.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_subscription-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="unique_name" path="$['unique_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Unique name</p>
+<p>Unique name of the branch, including the owner and project names.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="url" path="$['url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Branch URL</p>
+<p>The external location where the Bazaar branch is hosted. It is None when the branch is hosted by Launchpad.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="webhooks_collection_link" path="$['webhooks_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Webhooks for this target.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="whiteboard" path="$['whiteboard']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Whiteboard</p>
+<p>Notes on the current status of the branch.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="branch-diff">
+ <wadl:param style="plain" required="false" name="code_import_link" path="$['code_import_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The associated CodeImport, if any.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_import"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_last_modified" path="$['date_last_modified']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Last Modified
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A short description of the changes in this branch.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="explicitly_private" path="$['explicitly_private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Keep branch confidential</p>
+<p>Make this branch visible only to its subscribers.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="lifecycle_status" path="$['lifecycle_status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="Experimental"/>
+ <wadl:option value="Development"/>
+ <wadl:option value="Mature"/>
+ <wadl:option value="Merged"/>
+ <wadl:option value="Abandoned"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>Keep very short, unique, and descriptive, because it will be used in URLs. Examples: main, devel, release-1.0, gnome-vfs.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="reviewer_link" path="$['reviewer_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Review Team</p>
+<p>The reviewer of a branch is the person or exclusive team that is responsible for reviewing proposals and merging into this branch.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="url" path="$['url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Branch URL</p>
+<p>The external location where the Bazaar branch is hosted. It is None when the branch is hosted by Launchpad.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="whiteboard" path="$['whiteboard']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Whiteboard</p>
+<p>Notes on the current status of the branch.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="branch-page-resource">
+ <wadl:method name="GET" id="branch-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#branch-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="branch-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#branch-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#branch-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="branch_merge_proposal">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Branch merge proposals show intent of landing one branch on another.
+</wadl:doc>
+ <wadl:method name="GET" id="branch_merge_proposal-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_merge_proposal-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="branch_merge_proposal-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="branch_merge_proposal-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="branch_merge_proposal-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_merge_proposal-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="branch_merge_proposal-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_merge_proposal-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="branch_merge_proposal-getComment" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the CodeReviewComment with the specified ID.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises WrongBranchMergeProposal:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if the comment with this ID is not
+on this merge proposal.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getComment"/>
+ <wadl:param style="query" name="id" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A CodeReviewComment ID.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#code_review_comment-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="branch_merge_proposal-createComment" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create an ICodeReviewComment associated with this merge proposal.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param owner:</th><td class="rst-field-body">The person who the message is from.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param subject:</th><td class="rst-field-body">The subject line to use for the message.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param content:</th><td class="rst-field-body">The text to use for the message content. If
+unspecified, the text of the merge proposal is used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param parent:</th><td class="rst-field-body">The previous CodeReviewComment in the thread. If
+unspecified, the root message is used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param previewdiff_id:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the inline comments PreviewDiff ID context.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param inline_comments:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">a dictionary containing the draft inline
+comments keyed by the diff line number.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="createComment"/>
+ <wadl:param style="query" name="inline_comments" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="vote" required="false">
+
+
+ <wadl:option value="Approve"/>
+ <wadl:option value="Needs Fixing"/>
+ <wadl:option value="Needs Information"/>
+ <wadl:option value="Abstain"/>
+ <wadl:option value="Disapprove"/>
+ <wadl:option value="Needs Resubmitting"/>
+ </wadl:param>
+ <wadl:param style="query" name="review_type" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="content" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="parent" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_review_comment"/>
+ </wadl:param>
+ <wadl:param style="query" name="subject" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="previewdiff_id" required="false">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_review_comment"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="branch_merge_proposal-setStatus" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Set the state of the merge proposal to the specified status.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">The new status of the merge proposal.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param user:</th><td class="rst-field-body">The user making the change.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param revision_id:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The revision id to provide to the underlying
+status change method.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="setStatus"/>
+ <wadl:param style="query" name="status" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The new status of the merge proposal.
+</wadl:doc>
+
+ <wadl:option value="Work in progress"/>
+ <wadl:option value="Needs review"/>
+ <wadl:option value="Approved"/>
+ <wadl:option value="Rejected"/>
+ <wadl:option value="Merged"/>
+ <wadl:option value="Code failed to merge"/>
+ <wadl:option value="Queued"/>
+ <wadl:option value="Superseded"/>
+ </wadl:param>
+ <wadl:param style="query" name="revid" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+An optional parameter for specifying the revision of the branch for the status change.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="branch_merge_proposal-nominateReviewer" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Set the specified person as a reviewer.</p>
+<p>If they are not already a reviewer, a vote is created. Otherwise,
+the details are updated.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="nominateReviewer"/>
+ <wadl:param style="query" name="reviewer" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A reviewer.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="review_type" required="false">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#code_review_vote_reference-full"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="branch_merge_proposal-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="address" path="$['address']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The email address for this proposal.</p>
+<p>Any emails sent to this address will resultin comments being added.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="all_comments_collection_link" path="$['all_comments_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All messages discussing this merge proposal
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_review_comment-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="commit_message" path="$['commit_message']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Commit message</p>
+<p>The commit message that should be used when merging the source branch.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_merged" path="$['date_merged']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date merged</p>
+<p>The date that the source branch was merged into the target branch</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_review_requested" path="$['date_review_requested']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date review requested
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_reviewed" path="$['date_reviewed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date reviewed
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A detailed description of the changes that are being addressed by the branch being proposed to be merged.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="merge_reporter_link" path="$['merge_reporter_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Merge reporter</p>
+<p>The user that marked the branch as merged.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="merged_revision_id" path="$['merged_revision_id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Merged revision ID</p>
+<p>The revision ID on the target branch which contains the merge from the source branch (currently Git only).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="merged_revno" path="$['merged_revno']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Merged revision number</p>
+<p>The revision number on the target branch which contains the merge from the source branch (Bazaar only).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="prerequisite_branch_link" path="$['prerequisite_branch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Prerequisite branch</p>
+<p>The branch that the source branch branched from. If this branch is the same as the target branch, then leave this field blank.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="prerequisite_git_path" path="$['prerequisite_git_path']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Prerequisite Git branch path</p>
+<p>The path of the Git branch that the source branch branched from. If this branch is the same as the target branch, then leave this field blank.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="prerequisite_git_repository_link" path="$['prerequisite_git_repository_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Prerequisite Git repository</p>
+<p>The Git repository containing the branch that the source branch branched from. If this branch is the same as the target branch, then leave this field blank.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_repository"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="preview_diff_link" path="$['preview_diff_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The current diff of the source branch against the target branch.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#preview_diff"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="preview_diffs_collection_link" path="$['preview_diffs_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All preview diffs for this merge proposal.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#preview_diff-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="private" path="$['private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Proposal is confidential</p>
+<p>If True, this proposal is visible only to subscribers.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="queue_status" path="$['queue_status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current state of the proposal.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Work in progress"/>
+ <wadl:option value="Needs review"/>
+ <wadl:option value="Approved"/>
+ <wadl:option value="Rejected"/>
+ <wadl:option value="Merged"/>
+ <wadl:option value="Code failed to merge"/>
+ <wadl:option value="Queued"/>
+ <wadl:option value="Superseded"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Person</p>
+<p>The person who registered the merge proposal.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="reviewed_revid" path="$['reviewed_revid']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The revision id that has been approved by the reviewer.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="reviewer_link" path="$['reviewer_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Review person or team</p>
+<p>The person that accepted (or rejected) the code for merging.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="source_branch_link" path="$['source_branch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source branch</p>
+<p>The branch that has code to land.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="source_git_path" path="$['source_git_path']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source Git branch path</p>
+<p>The path of the Git branch that has code to land.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="source_git_repository_link" path="$['source_git_repository_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source Git repository</p>
+<p>The Git repository that has code to land.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_repository"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="superseded_by_link" path="$['superseded_by_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Superseded by</p>
+<p>The branch merge proposal that supersedes this one.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="supersedes_link" path="$['supersedes_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Supersedes</p>
+<p>The branch merge proposal that this one supersedes.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="target_branch_link" path="$['target_branch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Target branch</p>
+<p>The branch that the source branch will be merged into.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="target_git_path" path="$['target_git_path']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Target Git branch path</p>
+<p>The path of the Git branch that the source branch will be merged into.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="target_git_repository_link" path="$['target_git_repository_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Target Git repository</p>
+<p>The Git repository that the source branch will be merged into.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_repository"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="votes_collection_link" path="$['votes_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The votes cast or expected for this proposal
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_review_vote_reference-page-resource"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="branch_merge_proposal-diff">
+ <wadl:param style="plain" required="false" name="commit_message" path="$['commit_message']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Commit message</p>
+<p>The commit message that should be used when merging the source branch.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A detailed description of the changes that are being addressed by the branch being proposed to be merged.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="reviewed_revid" path="$['reviewed_revid']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The revision id that has been approved by the reviewer.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="branch_merge_proposal-page-resource">
+ <wadl:method name="GET" id="branch_merge_proposal-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#branch_merge_proposal-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="branch_merge_proposal-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#branch_merge_proposal-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#branch_merge_proposal-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="branch_subscription">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The relationship between a person and a branch.
+</wadl:doc>
+ <wadl:method name="GET" id="branch_subscription-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_subscription-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="branch_subscription-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="branch_subscription-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="branch_subscription-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_subscription-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="branch_subscription-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_subscription-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="branch_subscription-canBeUnsubscribedByUser" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Can the user unsubscribe the subscriber from the branch?
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="canBeUnsubscribedByUser"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="branch_subscription-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_subscription"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="branch_link" path="$['branch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Branch ID
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="max_diff_lines" path="$['max_diff_lines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Generated Diff Size Limit</p>
+<p>Diffs greater than the specified number of lines will not be sent to the subscriber. The subscriber will still receive an email with the new revision details even if the diff is larger than the specified number of lines.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Don't send diffs"/>
+ <wadl:option value="500 lines"/>
+ <wadl:option value="1000 lines"/>
+ <wadl:option value="5000 lines"/>
+ <wadl:option value="Send entire diff"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="notification_level" path="$['notification_level']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Notification Level</p>
+<p>Attribute notifications are sent when branch details are changed such as lifecycle status and name. Revision notifications are generated when new branch revisions are found due to the branch being updated through either pushes to the hosted branches or the mirrored branches being updated.</p>
+
+</wadl:doc>
+
+ <wadl:option value="No email"/>
+ <wadl:option value="Branch attribute notifications only"/>
+ <wadl:option value="Branch revision notifications only"/>
+ <wadl:option value="Branch attribute and revision notifications"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="person_link" path="$['person_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Person</p>
+<p>Enter the launchpad id, or email address of the person you wish to subscribe to this branch. If you are unsure, use the &quot;Choose...&quot; option to find the person in Launchpad. You can only subscribe someone who is a registered user of the system.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="review_level" path="$['review_level']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Code review Level</p>
+<p>Control the kind of review activity that triggers notifications.</p>
+
+</wadl:doc>
+
+ <wadl:option value="No email"/>
+ <wadl:option value="Status changes only"/>
+ <wadl:option value="Email about all changes"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="subscribed_by_link" path="$['subscribed_by_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Subscribed by</p>
+<p>The person who created this subscription.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="branch_subscription-diff">
+ <wadl:param style="plain" required="false" name="max_diff_lines" path="$['max_diff_lines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Generated Diff Size Limit</p>
+<p>Diffs greater than the specified number of lines will not be sent to the subscriber. The subscriber will still receive an email with the new revision details even if the diff is larger than the specified number of lines.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Don't send diffs"/>
+ <wadl:option value="500 lines"/>
+ <wadl:option value="1000 lines"/>
+ <wadl:option value="5000 lines"/>
+ <wadl:option value="Send entire diff"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="notification_level" path="$['notification_level']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Notification Level</p>
+<p>Attribute notifications are sent when branch details are changed such as lifecycle status and name. Revision notifications are generated when new branch revisions are found due to the branch being updated through either pushes to the hosted branches or the mirrored branches being updated.</p>
+
+</wadl:doc>
+
+ <wadl:option value="No email"/>
+ <wadl:option value="Branch attribute notifications only"/>
+ <wadl:option value="Branch revision notifications only"/>
+ <wadl:option value="Branch attribute and revision notifications"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="review_level" path="$['review_level']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Code review Level</p>
+<p>Control the kind of review activity that triggers notifications.</p>
+
+</wadl:doc>
+
+ <wadl:option value="No email"/>
+ <wadl:option value="Status changes only"/>
+ <wadl:option value="Email about all changes"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="branch_subscription-page-resource">
+ <wadl:method name="GET" id="branch_subscription-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#branch_subscription-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="branch_subscription-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#branch_subscription-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#branch_subscription-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_subscription"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="bug_activity">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A log of all things that have happened to a bug.
+</wadl:doc>
+ <wadl:method name="GET" id="bug_activity-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_activity-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="bug_activity-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug_activity-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug_activity-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_activity-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug_activity-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_activity-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="bug_activity-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_activity"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_link" path="$['bug_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datechanged" path="$['datechanged']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Changed</p>
+<p>The date on which this activity occurred.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="message" path="$['message']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Message</p>
+<p>Additional information about what changed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="newvalue" path="$['newvalue']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>New Value</p>
+<p>The value after the change.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="oldvalue" path="$['oldvalue']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Old Value</p>
+<p>The value before the change.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="person_link" path="$['person_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Person</p>
+<p>The person's Launchpad ID or email address.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="whatchanged" path="$['whatchanged']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>What Changed</p>
+<p>The property of the bug that changed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="bug_activity-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="bug_activity-page-resource">
+ <wadl:method name="GET" id="bug_activity-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug_activity-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="bug_activity-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug_activity-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug_activity-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_activity"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="bug_attachment">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>A file attachment to an IBug.</p>
+<p>Launchpadlib example of accessing content of an attachment:</p>
+<pre class="rst-literal-block">
+for attachment in bug.attachments:
+ buffer = attachment.data.open()
+ for line in buffer:
+ print line
+ buffer.close()
+</pre>
+<p>Launchpadlib example of accessing metadata about an attachment:</p>
+<pre class="rst-literal-block">
+attachment = bug.attachments[0]
+print &quot;title:&quot;, attachment.title
+print &quot;ispatch:&quot;, attachment.type
+</pre>
+<p>For information about the file-like object returned by
+attachment.data.open() see lazr.restfulclient's documentation of the
+HostedFile object.</p>
+<p>Details about the message associated with an attachment can be found on
+the &quot;message&quot; attribute:</p>
+<pre class="rst-literal-block">
+message = attachment.message
+print &quot;subject:&quot;, message.subject.encode('utf-8')
+print &quot;owner:&quot;, message.owner.display_name.encode('utf-8')
+print &quot;created:&quot;, message.date_created
+</pre>
+
+</wadl:doc>
+ <wadl:method name="GET" id="bug_attachment-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_attachment-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="bug_attachment-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug_attachment-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug_attachment-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_attachment-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug_attachment-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_attachment-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="bug_attachment-removeFromBug" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Remove the attachment from the bug.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="removeFromBug"/>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="bug_attachment-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_attachment"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_link" path="$['bug_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The bug the attachment belongs to.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="data_link" path="$['data_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The attachment content.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="message_link" path="$['message_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The message that was created when we added this attachment.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#message"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>A short and descriptive description of the attachment</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="type" path="$['type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Attachment Type</p>
+<p>The type of the attachment, for example Patch or Unspecified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Patch"/>
+ <wadl:option value="Unspecified"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="bug_attachment-diff">
+ <wadl:param style="plain" required="false" name="bug_link" path="$['bug_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The bug the attachment belongs to.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="message_link" path="$['message_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The message that was created when we added this attachment.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#message"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>A short and descriptive description of the attachment</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="type" path="$['type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Attachment Type</p>
+<p>The type of the attachment, for example Patch or Unspecified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Patch"/>
+ <wadl:option value="Unspecified"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="bug_attachment-page-resource">
+ <wadl:method name="GET" id="bug_attachment-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug_attachment-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="bug_attachment-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug_attachment-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug_attachment-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_attachment"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="bug_branch">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A branch linked to a bug.
+</wadl:doc>
+ <wadl:method name="GET" id="bug_branch-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_branch-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="bug_branch-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug_branch-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug_branch-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_branch-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug_branch-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_branch-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="bug_branch-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_branch"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="branch_link" path="$['branch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Branch
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_link" path="$['bug_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug #
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="bug_branch-diff">
+ <wadl:param style="plain" required="false" name="branch_link" path="$['branch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Branch
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="bug_branch-page-resource">
+ <wadl:method name="GET" id="bug_branch-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug_branch-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="bug_branch-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug_branch-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug_branch-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_branch"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="bug">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The core bug entry.
+</wadl:doc>
+ <wadl:method name="GET" id="bug-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="bug-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="bug-getNominations" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return a list of all IBugNominations for this bug.</p>
+<p>The list is ordered by IBugNominations.target.bugtargetdisplayname.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param target:</th><td class="rst-field-body">An IProduct or IDistribution. Only nominations
+for this target are returned.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param nominations:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The list of nominations to search through.
+If none is given, the bug's nominations are looked through.
+This can be useful when having to call this method multiple
+times, to avoid getting the list of nominations each time.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getNominations"/>
+ <wadl:param style="query" name="nominations" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Nominations to search through.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="target" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Target
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_target"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_nomination-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="bug-getNominationFor" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the IBugNomination for the target.</p>
+<p>If no nomination is found, a NotFoundError is raised.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param nomination_target:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An IDistroSeries or IProductSeries.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getNominationFor"/>
+ <wadl:param style="query" name="target" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Target
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_target"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_nomination-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="bug-getVisibleLinkedBranches" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return all the branches linked to the bug that user can see.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getVisibleLinkedBranches"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="bug-isExpirable" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Is this bug eligible for expiration and was it last updated
+more than X days ago?</p>
+<p>If days_old is None the default number of days without activity
+is used.</p>
+<p>Returns True or False.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="isExpirable"/>
+ <wadl:param style="query" name="days_old" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Number of days of inactivity for which to check.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="bug-canBeNominatedFor" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can this bug nominated for this target?</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">nomination_target:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An IDistroSeries or IProductSeries.</td>
+</tr>
+</tbody>
+</table>
+<p>Returns True or False.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="canBeNominatedFor"/>
+ <wadl:param style="query" name="target" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Target
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_target"/>
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="bug-subscribe" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Subscribe person to the bug.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">the subscriber.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param subscribed_by:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the person who created the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param suppress_notify:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">a flag to suppress notify call.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param level:</th><td class="rst-field-body">The BugNotificationLevel for the new subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">an IBugSubscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="subscribe"/>
+ <wadl:param style="query" name="level" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Level
+</wadl:doc>
+
+ <wadl:option value="Lifecycle"/>
+ <wadl:option value="Details"/>
+ <wadl:option value="Discussion"/>
+ </wadl:param>
+ <wadl:param style="query" name="person" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="bug-linkBranch" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Associate a branch with this bug.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param branch:</th><td class="rst-field-body">The branch being linked to.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param registrant:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The user linking the branch.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="linkBranch"/>
+ <wadl:param style="query" name="branch" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="bug-newMessage" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Create a new message, and link it to this object.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="newMessage"/>
+ <wadl:param style="query" name="content" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Message
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="subject" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Subject
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#message"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="bug-unsubscribeFromDupes" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Remove this person's subscription from all dupes of this bug.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="unsubscribeFromDupes"/>
+ <wadl:param style="query" name="person" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="bug-unsubscribe" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Remove this person's subscription to this bug.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="unsubscribe"/>
+ <wadl:param style="query" name="person" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="bug-setCommentVisibility" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Set the visible attribute on a bug comment. This is restricted
+to Launchpad admins, and will return a HTTP Error 401: Unauthorized
+error for non-admin callers.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="setCommentVisibility"/>
+ <wadl:param style="query" name="visible" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show this comment?
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="comment_number" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The number of the comment in the list of messages.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="bug-unlinkBranch" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Unlink a branch from this bug.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param branch:</th><td class="rst-field-body">The branch being unlinked from.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param user:</th><td class="rst-field-body">The user unlinking the branch.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="unlinkBranch"/>
+ <wadl:param style="query" name="branch" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="bug-isUserAffected" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is :user: marked as affected by this bug?
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="isUserAffected"/>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="bug-linkCVE" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Ensure that this CVE is linked to this bug.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="linkCVE"/>
+ <wadl:param style="query" name="cve" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+CVE
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#cve"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="bug-markUserAffected" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Mark :user: as affected by this bug.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="markUserAffected"/>
+ <wadl:param style="query" name="affected" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Does this bug affect you?
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="bug-addNomination" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Nominate a bug for an IDistroSeries or IProductSeries.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">owner:</th><td class="rst-field-body">An IPerson.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">target:</th><td class="rst-field-body">An IDistroSeries or IProductSeries.</td>
+</tr>
+</tbody>
+</table>
+<p>This method creates and returns a BugNomination. (See
+lp.bugs.model.bugnomination.BugNomination.)</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addNomination"/>
+ <wadl:param style="query" name="target" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Target
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_target"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_nomination"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="bug-addAttachment" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Attach a file to this bug.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">owner:</th><td class="rst-field-body">An IPerson.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">data:</th><td class="rst-field-body">A file-like object, or a bytes.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">description:</th><td class="rst-field-body">A brief description of the attachment.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">comment:</th><td class="rst-field-body">An IMessage or string.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">filename:</th><td class="rst-field-body">A string.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">is_patch:</th><td class="rst-field-body">A boolean.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="multipart/form-data">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addAttachment"/>
+ <wadl:param style="query" name="data" required="true" type="binary">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="query" name="content_type" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="is_patch" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="comment" required="true">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="filename" required="true">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="description" required="false">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_attachment"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="bug-addTask" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create a new bug task on this bug.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises IllegalTarget:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if the bug task cannot be added to the bug.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addTask"/>
+ <wadl:param style="query" name="target" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Target</p>
+<p>The software in which this bug should be fixed.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_target"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_task"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="bug-addWatch" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Create a new watch for this bug on the given remote bug and bug
+tracker, owned by the person given as the owner.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addWatch"/>
+ <wadl:param style="query" name="bug_tracker" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bug System</p>
+<p>You can register new bug trackers from the Launchpad Bugs home page.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker"/>
+ </wadl:param>
+ <wadl:param style="query" name="remote_bug" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remote Bug</p>
+<p>The bug number of this bug in the remote bug tracker.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_watch"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="bug-unlinkCVE" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Ensure that any links between this bug and the given CVE are
+removed.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="unlinkCVE"/>
+ <wadl:param style="query" name="cve" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+CVE
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#cve"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="bug-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="activity_collection_link" path="$['activity_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Log of activity that has occurred on this bug.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_activity-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="attachments_collection_link" path="$['attachments_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of bug attachments.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_attachment-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_tasks_collection_link" path="$['bug_tasks_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+BugTasks on this bug, sorted upstream, then by ubuntu, then by other distroseries.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_task-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_watches_collection_link" path="$['bug_watches_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All bug watches associated with this bug.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_watch-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_expire" path="$['can_expire']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Can the Incomplete bug expire? Expiration may happen when the bug permits expiration, and a bugtask cannot be confirmed.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="cves_collection_link" path="$['cves_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+CVE entries related to this bug.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#cve-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_message" path="$['date_last_message']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date of last bug message
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_updated" path="$['date_last_updated']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Last Updated
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_made_private" path="$['date_made_private']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Made Private
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A detailed description of the problem,
+including the steps required to reproduce it.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="duplicate_of_link" path="$['duplicate_of_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Duplicate Of
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="duplicates_collection_link" path="$['duplicates_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+MultiJoin of bugs which are dupes of this one.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="heat" path="$['heat']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The 'heat' of the bug
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="id" path="$['id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="information_type" path="$['information_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>The type of information contained in this bug report.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Public Security"/>
+ <wadl:option value="Private Security"/>
+ <wadl:option value="Private"/>
+ <wadl:option value="Proprietary"/>
+ <wadl:option value="Embargoed"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="latest_patch_uploaded" path="$['latest_patch_uploaded']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date when the most recent patch was uploaded.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="linked_branches_collection_link" path="$['linked_branches_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bazaar branches associated with this bug, usually branches on which this bug is being fixed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_branch-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="message_count" path="$['message_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The number of comments on this bug
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="messages_collection_link" path="$['messages_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The messages related to this object, in reverse order of creation (so newest first).
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#message-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Nickname</p>
+<p>A short and unique name.
+Add one only if you often need to retype the URL
+but have trouble remembering the bug number.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="number_of_duplicates" path="$['number_of_duplicates']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The number of bugs marked as duplicates of this bug
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="other_users_affected_count_with_dupes" path="$['other_users_affected_count_with_dupes']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The number of users affected by this bug (including duplicates), excluding the current user
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The owner's IPerson
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="private" path="$['private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>This bug report should be private</p>
+<p>Private bug reports are visible only to their subscribers.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="security_related" path="$['security_related']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+This bug is a security vulnerability.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="subscriptions_collection_link" path="$['subscriptions_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Subscriptions
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="tags" path="$['tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>Space-separated keywords for classifying this bug report.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A one-line summary of the problem.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="users_affected_collection_link" path="$['users_affected_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The number of users affected by this bug (not including duplicates)
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="users_affected_count" path="$['users_affected_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The number of users affected by this bug (not including duplicates)
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="users_affected_count_with_dupes" path="$['users_affected_count_with_dupes']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The number of users affected by this bug (including duplicates)
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="users_affected_with_dupes_collection_link" path="$['users_affected_with_dupes_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Users affected (including duplicates)
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="users_unaffected_collection_link" path="$['users_unaffected_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Users explicitly marked as unaffected (not including duplicates)
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="users_unaffected_count" path="$['users_unaffected_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The number of users unaffected by this bug
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="who_made_private_link" path="$['who_made_private_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Who Made Private</p>
+<p>The person who set this bug private.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="bug-diff">
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A detailed description of the problem,
+including the steps required to reproduce it.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="duplicate_of_link" path="$['duplicate_of_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Duplicate Of
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Nickname</p>
+<p>A short and unique name.
+Add one only if you often need to retype the URL
+but have trouble remembering the bug number.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="private" path="$['private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>This bug report should be private</p>
+<p>Private bug reports are visible only to their subscribers.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="security_related" path="$['security_related']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+This bug is a security vulnerability.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="tags" path="$['tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>Space-separated keywords for classifying this bug report.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A one-line summary of the problem.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="bug-page-resource">
+ <wadl:method name="GET" id="bug-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="bug-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="bug_link_target">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>An entity which can be linked to bugs.</p>
+<p>Examples include an ISpecification.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="bug_link_target-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_link_target-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="bug_link_target-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug_link_target-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug_link_target-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_link_target-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug_link_target-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_link_target-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="bug_link_target-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_link_target"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="bug_link_target-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="bug_link_target-page-resource">
+ <wadl:method name="GET" id="bug_link_target-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug_link_target-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="bug_link_target-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug_link_target-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug_link_target-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_link_target"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="bug_nomination">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>A nomination for a bug to be fixed in a specific series.</p>
+<p>A nomination can apply to an IDistroSeries or an IProductSeries.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="bug_nomination-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_nomination-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="bug_nomination-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug_nomination-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug_nomination-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_nomination-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug_nomination-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_nomination-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="bug_nomination-canApprove" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is this person allowed to approve the nomination?
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="canApprove"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="bug_nomination-decline" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Decline this bug for fixing in a series.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">decliner:</th><td class="rst-field-body">The IPerson that declines this nomination.</td>
+</tr>
+</tbody>
+</table>
+<p>The status is set to DECLINED.</p>
+<p>If called on a nomination that is in APPROVED state, a
+BugNominationStatusError is raised. If the nomination was
+already DECLINED, this method is a noop.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="decline"/>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="bug_nomination-approve" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Approve this bug for fixing in a series.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">approver:</th><td class="rst-field-body">The IPerson that approves this nomination and that
+will own the created bugtasks.</td>
+</tr>
+</tbody>
+</table>
+<p>The status is set to APPROVED and the appropriate IBugTask(s)
+are created for the nomination target.</p>
+<p>A nomination in any state can be approved. If the nomination is
+/already/ approved, this method is a noop.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="approve"/>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="bug_nomination-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_nomination"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_link" path="$['bug_link']">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Submitted</p>
+<p>The date on which this nomination was submitted.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_decided" path="$['date_decided']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Decided</p>
+<p>The date on which this nomination was approved or declined.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="decider_link" path="$['decider_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Decided By
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distroseries_link" path="$['distroseries_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Series
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Submitter
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="productseries_link" path="$['productseries_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Series
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="Nominated"/>
+ <wadl:option value="Approved"/>
+ <wadl:option value="Declined"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="target_link" path="$['target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The IProductSeries or IDistroSeries of this nomination.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_target"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="bug_nomination-diff">
+ <wadl:param style="plain" required="false" name="target_link" path="$['target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The IProductSeries or IDistroSeries of this nomination.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_target"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="bug_nomination-page-resource">
+ <wadl:method name="GET" id="bug_nomination-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug_nomination-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="bug_nomination-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug_nomination-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug_nomination-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_nomination"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="bug_subscription">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The relationship between a person and a bug.
+</wadl:doc>
+ <wadl:method name="GET" id="bug_subscription-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_subscription-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="bug_subscription-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug_subscription-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug_subscription-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_subscription-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug_subscription-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_subscription-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="bug_subscription-canBeUnsubscribedByUser" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Can the user unsubscribe the subscriber from the bug?
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="canBeUnsubscribedByUser"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="bug_subscription-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_link" path="$['bug_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date subscribed
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="person_link" path="$['person_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Person</p>
+<p>The person's Launchpad ID or email address.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="subscribed_by_link" path="$['subscribed_by_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Subscribed by</p>
+<p>The person who created this subscription.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="bug_subscription-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="bug_subscription-page-resource">
+ <wadl:method name="GET" id="bug_subscription-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug_subscription-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="bug_subscription-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug_subscription-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug_subscription-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="bug_subscription_filter">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A bug subscription filter.
+</wadl:doc>
+ <wadl:method name="GET" id="bug_subscription_filter-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_subscription_filter-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="bug_subscription_filter-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug_subscription_filter-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug_subscription_filter-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_subscription_filter-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug_subscription_filter-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_subscription_filter-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="DELETE" id="bug_subscription_filter-delete"/>
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="bug_subscription_filter-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription_filter"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_notification_level" path="$['bug_notification_level']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bug notification level</p>
+<p>The volume and type of bug notifications this subscription will generate.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Lifecycle"/>
+ <wadl:option value="Details"/>
+ <wadl:option value="Discussion"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A short description of this filter
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="find_all_tags" path="$['find_all_tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Find all tags</p>
+<p>If enabled, all tags must match, else at least one tag must match.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="importances" path="$['importances']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The importances interested in (empty for all)
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="information_types" path="$['information_types']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The information types interested in (empty for all)
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="statuses" path="$['statuses']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The statuses interested in (empty for all)
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="structural_subscription_link" path="$['structural_subscription_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Structural subscription
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="tags" path="$['tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The tags interested in
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="bug_subscription_filter-diff">
+ <wadl:param style="plain" required="false" name="bug_notification_level" path="$['bug_notification_level']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bug notification level</p>
+<p>The volume and type of bug notifications this subscription will generate.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Lifecycle"/>
+ <wadl:option value="Details"/>
+ <wadl:option value="Discussion"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A short description of this filter
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="find_all_tags" path="$['find_all_tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Find all tags</p>
+<p>If enabled, all tags must match, else at least one tag must match.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="importances" path="$['importances']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The importances interested in (empty for all)
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="information_types" path="$['information_types']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The information types interested in (empty for all)
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="statuses" path="$['statuses']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The statuses interested in (empty for all)
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="tags" path="$['tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The tags interested in
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="bug_subscription_filter-page-resource">
+ <wadl:method name="GET" id="bug_subscription_filter-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug_subscription_filter-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="bug_subscription_filter-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug_subscription_filter-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug_subscription_filter-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription_filter"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="bug_target">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>An entity on which a bug can be reported.</p>
+<p>Examples include an IDistribution, an IDistroSeries and an
+IProduct.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="bug_target-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_target-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="bug_target-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug_target-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug_target-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_target-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug_target-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_target-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="bug_target-searchTasks" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search the IBugTasks reported on this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">search_params:</th><td class="rst-field-body">a BugTaskSearchParams object</td>
+</tr>
+</tbody>
+</table>
+<p>Return an iterable of matching results.</p>
+<p>Note: milestone is currently ignored for all IBugTargets
+except IProduct.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchTasks"/>
+ <wadl:param style="query" name="bug_reporter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_cve" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs associated with a CVE
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_targeted" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs targeted to a series
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status_upstream" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status upstream</p>
+<p>Indicates the status of any remote watches associated with the bug. Possible values include: pending_bugwatch, hide_upstream, resolved_upstream, and open_upstream.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>String or list of strings for tags to search. To exclude, prepend a '-', e.g. '-unwantedtag'</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_duplicates" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs marked as duplicate,
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="nominated_for" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been modified since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="structural_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been created since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_patch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs with patches available.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_commenter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="assignee" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only bugs with the given status value or list of values.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="affected_user" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID or search text.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of fields by which the results are ordered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="tags_combinator" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags combination</p>
+<p>Search for any or all of the tags specified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Any"/>
+ <wadl:option value="All"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Component</p>
+<p>Distribution package archive grouping. E.g. main, universe, multiverse</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="importance" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Importance</p>
+<p>Show only bugs with the given importance or list of importances.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>Show only bugs with the given information type or list of information types.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that were created before the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="milestone" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone</p>
+<p>Show only bug tasks targeted to this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="linked_branches" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that are linked to branches or for bugs that are not linked to branches.
+</wadl:doc>
+
+ <wadl:option value="Show all bugs"/>
+ <wadl:option value="Show only Bugs with linked Branches"/>
+ <wadl:option value="Show only Bugs without linked Branches"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_no_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Exclude bugs with packages specified
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="bug_target-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_target"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Helpful guidelines for reporting a bug</p>
+<p>These guidelines will be shown to everyone reporting a bug and should be text or a bulleted list with your particular requirements, if any.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="bug_target-diff">
+ <wadl:param style="plain" required="false" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Helpful guidelines for reporting a bug</p>
+<p>These guidelines will be shown to everyone reporting a bug and should be text or a bulleted list with your particular requirements, if any.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="bug_target-page-resource">
+ <wadl:method name="GET" id="bug_target-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug_target-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="bug_target-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug_target-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug_target-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_target"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="bug_task">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A bug needing fixing in a particular product or package.
+</wadl:doc>
+ <wadl:method name="GET" id="bug_task-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="bug_task-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug_task-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug_task-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug_task-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="bug_task-findSimilarBugs" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the list of possible duplicates for this BugTask.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="findSimilarBugs"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="bug_task-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_task"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="assignee_link" path="$['assignee_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Assigned to
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_link" path="$['bug_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_target_display_name" path="$['bug_target_display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The short, descriptive name of the target
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_target_name" path="$['bug_target_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The target as presented in mail notifications
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_watch_link" path="$['bug_watch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remote Bug Details</p>
+<p>Select the bug watch that represents this task in the relevant bug tracker. If none of the bug watches represents this particular bug task, leave it as (None). Linking the remote bug watch with the task in this way means that a change in the remote bug status will change the status of this bug task in Launchpad.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_watch"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_assigned" path="$['date_assigned']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Assigned</p>
+<p>The date on which this task was assigned to someone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_closed" path="$['date_closed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Closed</p>
+<p>The date on which this task was marked Fix Released, Invalid, Won't Fix, Expired or Opinion.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_confirmed" path="$['date_confirmed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Confirmed</p>
+<p>The date on which this task was marked Confirmed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Created</p>
+<p>The date on which this task was created.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_fix_committed" path="$['date_fix_committed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Fix Committed</p>
+<p>The date on which this task was marked Fix Committed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_fix_released" path="$['date_fix_released']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Fix Released</p>
+<p>The date on which this task was marked Fix Released.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_in_progress" path="$['date_in_progress']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date In Progress</p>
+<p>The date on which this task was marked In Progress.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_incomplete" path="$['date_incomplete']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Incomplete</p>
+<p>The date on which this task was marked Incomplete.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_left_closed" path="$['date_left_closed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date left closed</p>
+<p>The date on which this task was last reopened.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_left_new" path="$['date_left_new']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date left new</p>
+<p>The date on which this task was marked with a status higher than New.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_triaged" path="$['date_triaged']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Triaged</p>
+<p>The date on which this task was marked Triaged.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="importance" path="$['importance']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Importance
+</wadl:doc>
+
+ <wadl:option value="Unknown"/>
+ <wadl:option value="Undecided"/>
+ <wadl:option value="Critical"/>
+ <wadl:option value="High"/>
+ <wadl:option value="Medium"/>
+ <wadl:option value="Low"/>
+ <wadl:option value="Wishlist"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_complete" path="$['is_complete']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+True or False depending on whether or not there is more work required on this bug task.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="milestone_link" path="$['milestone_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Milestone
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The owner
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="related_tasks_collection_link" path="$['related_tasks_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+IBugTasks related to this one, namely other IBugTasks on the same IBug.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_task-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="New"/>
+ <wadl:option value="Incomplete"/>
+ <wadl:option value="Opinion"/>
+ <wadl:option value="Invalid"/>
+ <wadl:option value="Won't Fix"/>
+ <wadl:option value="Expired"/>
+ <wadl:option value="Confirmed"/>
+ <wadl:option value="Triaged"/>
+ <wadl:option value="In Progress"/>
+ <wadl:option value="Fix Committed"/>
+ <wadl:option value="Fix Released"/>
+ <wadl:option value="Unknown"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="target_link" path="$['target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Target</p>
+<p>The software in which this bug should be fixed.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_target"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The title of the bug related to this bugtask
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="bug_task-diff">
+ <wadl:param style="plain" required="false" name="assignee_link" path="$['assignee_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Assigned to
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_watch_link" path="$['bug_watch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remote Bug Details</p>
+<p>Select the bug watch that represents this task in the relevant bug tracker. If none of the bug watches represents this particular bug task, leave it as (None). Linking the remote bug watch with the task in this way means that a change in the remote bug status will change the status of this bug task in Launchpad.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_watch"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="importance" path="$['importance']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Importance
+</wadl:doc>
+
+ <wadl:option value="Unknown"/>
+ <wadl:option value="Undecided"/>
+ <wadl:option value="Critical"/>
+ <wadl:option value="High"/>
+ <wadl:option value="Medium"/>
+ <wadl:option value="Low"/>
+ <wadl:option value="Wishlist"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="milestone_link" path="$['milestone_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Milestone
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="New"/>
+ <wadl:option value="Incomplete"/>
+ <wadl:option value="Opinion"/>
+ <wadl:option value="Invalid"/>
+ <wadl:option value="Won't Fix"/>
+ <wadl:option value="Expired"/>
+ <wadl:option value="Confirmed"/>
+ <wadl:option value="Triaged"/>
+ <wadl:option value="In Progress"/>
+ <wadl:option value="Fix Committed"/>
+ <wadl:option value="Fix Released"/>
+ <wadl:option value="Unknown"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="target_link" path="$['target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Target</p>
+<p>The software in which this bug should be fixed.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_target"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="bug_task-page-resource">
+ <wadl:method name="GET" id="bug_task-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="bug_task-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug_task-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug_task-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_task"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="bug_tracker_component">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The software component in the remote bug tracker.</p>
+<p>Most bug trackers organize bug reports by the software 'component'
+they affect. This class provides a mapping of this upstream component
+to the corresponding source package in the distro.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="bug_tracker_component-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker_component-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="bug_tracker_component-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug_tracker_component-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug_tracker_component-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker_component-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug_tracker_component-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker_component-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="bug_tracker_component-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker_component"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="component_group_link" path="$['component_group_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component Group
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker_component_group"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_source_package_link" path="$['distro_source_package_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution Source Package</p>
+<p>The distribution source package object that should be linked to this component.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution_source_package"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_visible" path="$['is_visible']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Is Visible?</p>
+<p>Should the component be shown in the Launchpad web interface?</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of a software component as shown in Launchpad.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="bug_tracker_component-diff">
+ <wadl:param style="plain" required="false" name="component_group_link" path="$['component_group_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component Group
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker_component_group"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distro_source_package_link" path="$['distro_source_package_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution Source Package</p>
+<p>The distribution source package object that should be linked to this component.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution_source_package"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="is_visible" path="$['is_visible']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Is Visible?</p>
+<p>Should the component be shown in the Launchpad web interface?</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of a software component as shown in Launchpad.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="bug_tracker_component-page-resource">
+ <wadl:method name="GET" id="bug_tracker_component-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug_tracker_component-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="bug_tracker_component-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug_tracker_component-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug_tracker_component-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker_component"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="bug_tracker_component_group">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>A collection of components in a remote bug tracker.</p>
+<p>Some bug trackers organize sets of components into higher level groups,
+such as Bugzilla's 'product'.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="bug_tracker_component_group-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker_component_group-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="bug_tracker_component_group-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug_tracker_component_group-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug_tracker_component_group-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker_component_group-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug_tracker_component_group-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker_component_group-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="bug_tracker_component_group-addComponent" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Adds a component to be tracked as part of this component group
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addComponent"/>
+ <wadl:param style="query" name="component_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The name of the remote software component to be added
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="bug_tracker_component_group-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker_component_group"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_tracker_link" path="$['bug_tracker_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+BugTracker
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="components_collection_link" path="$['components_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Components.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker_component-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of the bug tracker product.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="bug_tracker_component_group-diff">
+ <wadl:param style="plain" required="false" name="bug_tracker_link" path="$['bug_tracker_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+BugTracker
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of the bug tracker product.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="bug_tracker_component_group-page-resource">
+ <wadl:method name="GET" id="bug_tracker_component_group-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug_tracker_component_group-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="bug_tracker_component_group-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug_tracker_component_group-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug_tracker_component_group-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker_component_group"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="bug_tracker">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>A remote bug system.</p>
+<p>Launchpadlib example: What bug tracker is used for a distro source
+package?</p>
+<pre class="rst-literal-block">
+product = source_package.upstream_product
+if product:
+ tracker = product.bug_tracker
+ if not tracker:
+ project = product.project_group
+ if project:
+ tracker = project.bug_tracker
+if tracker:
+ print &quot;%s at %s&quot; %(tracker.bug_tracker_type, tracker.base_url)
+</pre>
+
+</wadl:doc>
+ <wadl:method name="GET" id="bug_tracker-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="bug_tracker-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug_tracker-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug_tracker-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug_tracker-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="bug_tracker-getAllRemoteComponentGroups" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return collection of all component groups for this bug tracker
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getAllRemoteComponentGroups"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker_component_group-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="bug_tracker-getRemoteComponentGroup" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Retrieve a given component group registered with the bug tracker.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param component_group_name:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Name of the component group to retrieve.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getRemoteComponentGroup"/>
+ <wadl:param style="query" name="component_group_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The name of the remote component group
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker_component_group-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="bug_tracker-addRemoteComponentGroup" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Adds a new component group to the bug tracker
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addRemoteComponentGroup"/>
+ <wadl:param style="query" name="component_group_name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The name of the remote component group
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_tracker_component_group-full"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="bug_tracker-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Updates for this bug tracker are enabled
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="base_url" path="$['base_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Location</p>
+<p>The top-level URL for the bug tracker, or an upstream email address. This must be accurate so that Launchpad can link to external bug reports.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="base_url_aliases" path="$['base_url_aliases']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Location aliases</p>
+<p>A list of URLs or email addresses that all lead to the same bug tracker, or commonly seen typos, separated by whitespace.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_tracker_type" path="$['bug_tracker_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug Tracker Type
+</wadl:doc>
+
+ <wadl:option value="Bugzilla"/>
+ <wadl:option value="Debbugs"/>
+ <wadl:option value="Roundup"/>
+ <wadl:option value="Trac"/>
+ <wadl:option value="SourceForge or SourceForge derivative"/>
+ <wadl:option value="Mantis"/>
+ <wadl:option value="Request Tracker (RT)"/>
+ <wadl:option value="Email Address"/>
+ <wadl:option value="Savane"/>
+ <wadl:option value="PHP Project Bugtracker"/>
+ <wadl:option value="Google Code"/>
+ <wadl:option value="GitHub Issues"/>
+ <wadl:option value="GitLab Issues"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="contact_details" path="$['contact_details']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Contact details</p>
+<p>The contact details for the external bug tracker (so that, for example, its administrators can be contacted about a security breach).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="has_lp_plugin" path="$['has_lp_plugin']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+This bug tracker has a Launchpad plugin installed.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>A URL-friendly name for the bug tracker, such as &quot;mozilla-bugs&quot;.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Owner
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A brief introduction or overview of this bug tracker instance.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>A descriptive label for this tracker to show in listings.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="watches_collection_link" path="$['watches_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The remote watches on this bug tracker.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_watch-page-resource"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="bug_tracker-diff">
+ <wadl:param style="plain" required="false" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Updates for this bug tracker are enabled
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="base_url" path="$['base_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Location</p>
+<p>The top-level URL for the bug tracker, or an upstream email address. This must be accurate so that Launchpad can link to external bug reports.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="base_url_aliases" path="$['base_url_aliases']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Location aliases</p>
+<p>A list of URLs or email addresses that all lead to the same bug tracker, or commonly seen typos, separated by whitespace.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_tracker_type" path="$['bug_tracker_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug Tracker Type
+</wadl:doc>
+
+ <wadl:option value="Bugzilla"/>
+ <wadl:option value="Debbugs"/>
+ <wadl:option value="Roundup"/>
+ <wadl:option value="Trac"/>
+ <wadl:option value="SourceForge or SourceForge derivative"/>
+ <wadl:option value="Mantis"/>
+ <wadl:option value="Request Tracker (RT)"/>
+ <wadl:option value="Email Address"/>
+ <wadl:option value="Savane"/>
+ <wadl:option value="PHP Project Bugtracker"/>
+ <wadl:option value="Google Code"/>
+ <wadl:option value="GitHub Issues"/>
+ <wadl:option value="GitLab Issues"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="contact_details" path="$['contact_details']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Contact details</p>
+<p>The contact details for the external bug tracker (so that, for example, its administrators can be contacted about a security breach).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="has_lp_plugin" path="$['has_lp_plugin']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+This bug tracker has a Launchpad plugin installed.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>A URL-friendly name for the bug tracker, such as &quot;mozilla-bugs&quot;.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Owner
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A brief introduction or overview of this bug tracker instance.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>A descriptive label for this tracker to show in listings.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="bug_tracker-page-resource">
+ <wadl:method name="GET" id="bug_tracker-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug_tracker-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="bug_tracker-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug_tracker-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug_tracker-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="bug_watch">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A bug on a remote system.
+</wadl:doc>
+ <wadl:method name="GET" id="bug_watch-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_watch-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="bug_watch-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="bug_watch-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug_watch-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_watch-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug_watch-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_watch-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="bug_watch-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_watch"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_link" path="$['bug_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_tasks_collection_link" path="$['bug_tasks_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The tasks which this watch will affect. In Launchpad, a bug watch can be linked to one or more tasks, and if it is linked and we notice a status change in the watched bug then we will try to update the Launchpad bug task accordingly.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_task-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_tracker_link" path="$['bug_tracker_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bug System</p>
+<p>You can register new bug trackers from the Launchpad Bugs home page.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_changed" path="$['date_last_changed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Last Changed
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_checked" path="$['date_last_checked']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Last Checked
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_next_checked" path="$['date_next_checked']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Next Check
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="last_error_type" path="$['last_error_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Last Error Type
+</wadl:doc>
+
+ <wadl:option value="Unknown"/>
+ <wadl:option value="Bug Not Found"/>
+ <wadl:option value="Connection Error"/>
+ <wadl:option value="Invalid Bug ID"/>
+ <wadl:option value="Timeout"/>
+ <wadl:option value="Unparsable Bug"/>
+ <wadl:option value="Unparsable Bug Tracker Version"/>
+ <wadl:option value="Unsupported Bugtracker"/>
+ <wadl:option value="Private Remote Bug"/>
+ <wadl:option value="Synchronisation succeeded"/>
+ <wadl:option value="Unable to import comments"/>
+ <wadl:option value="Unable to push comments"/>
+ <wadl:option value="Unable to set link remote bug to Launchpad"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Owner
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="remote_bug" path="$['remote_bug']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remote Bug</p>
+<p>The bug number of this bug in the remote bug tracker.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="remote_importance" path="$['remote_importance']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Remote Importance
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="remote_status" path="$['remote_status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Remote Status
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug watch title
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="url" path="$['url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The URL at which to view the remote bug.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="bug_watch-diff">
+ <wadl:param style="plain" required="false" name="bug_tracker_link" path="$['bug_tracker_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bug System</p>
+<p>You can register new bug trackers from the Launchpad Bugs home page.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_last_changed" path="$['date_last_changed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Last Changed
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_last_checked" path="$['date_last_checked']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Last Checked
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_next_checked" path="$['date_next_checked']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Next Check
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="last_error_type" path="$['last_error_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Last Error Type
+</wadl:doc>
+
+ <wadl:option value="Unknown"/>
+ <wadl:option value="Bug Not Found"/>
+ <wadl:option value="Connection Error"/>
+ <wadl:option value="Invalid Bug ID"/>
+ <wadl:option value="Timeout"/>
+ <wadl:option value="Unparsable Bug"/>
+ <wadl:option value="Unparsable Bug Tracker Version"/>
+ <wadl:option value="Unsupported Bugtracker"/>
+ <wadl:option value="Private Remote Bug"/>
+ <wadl:option value="Synchronisation succeeded"/>
+ <wadl:option value="Unable to import comments"/>
+ <wadl:option value="Unable to push comments"/>
+ <wadl:option value="Unable to set link remote bug to Launchpad"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="remote_bug" path="$['remote_bug']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remote Bug</p>
+<p>The bug number of this bug in the remote bug tracker.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="remote_importance" path="$['remote_importance']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Remote Importance
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="remote_status" path="$['remote_status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Remote Status
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="bug_watch-page-resource">
+ <wadl:method name="GET" id="bug_watch-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug_watch-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="bug_watch-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug_watch-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug_watch-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_watch"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="build_farm_job">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Operations that jobs for the build farm must implement.
+</wadl:doc>
+ <wadl:method name="GET" id="build_farm_job-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#build_farm_job-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="build_farm_job-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="build_farm_job-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="build_farm_job-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#build_farm_job-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="build_farm_job-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#build_farm_job-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="build_farm_job-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#build_farm_job"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="build_log_url" path="$['build_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build Log URL</p>
+<p>A URL for the build log. None if there is no log available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="builder_link" path="$['builder_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Builder</p>
+<p>The builder assigned to this job.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#builder"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="buildstate" path="$['buildstate']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current status of the job.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_first_dispatched" path="$['date_first_dispatched']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date finished</p>
+<p>The actual build start time. Set when the build is dispatched the first time and not changed in subsequent build attempts.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datebuilt" path="$['datebuilt']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date finished</p>
+<p>The timestamp when the build farm job was finished.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datecreated" path="$['datecreated']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date created</p>
+<p>The timestamp when the build farm job was created.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="dependencies" path="$['dependencies']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependencies</p>
+<p>Debian-like dependency line that must be satisfied before attempting to build this request.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Title
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="build_farm_job-diff">
+ <wadl:param style="plain" required="false" name="build_log_url" path="$['build_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build Log URL</p>
+<p>A URL for the build log. None if there is no log available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="buildstate" path="$['buildstate']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current status of the job.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="dependencies" path="$['dependencies']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependencies</p>
+<p>Debian-like dependency line that must be satisfied before attempting to build this request.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Title
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="build_farm_job-page-resource">
+ <wadl:method name="GET" id="build_farm_job-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#build_farm_job-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="build_farm_job-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#build_farm_job-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#build_farm_job-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#build_farm_job"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="builder">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build-worker information and state.</p>
+<p>Builder instance represents a single builder worker machine within the
+Launchpad Auto Build System. It should specify a 'processor' on which the
+machine is based and is able to build packages for; a URL, by which the
+machine is accessed through an XML-RPC interface; name, title for entity
+identification and browsing purposes; an LP-like owner which has
+unrestricted access to the instance; the build worker machine status
+representation, including the field/properties: virtualized, builderok,
+status, failnotes and currentjob.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="builder-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#builder-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="builder-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="builder-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="builder-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#builder-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="builder-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#builder-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="builder-getBuildRecords" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return build records in the context it is implemented.</p>
+<p>It excludes build records generated by Gina (imported from a external
+repository), where IBuild.datebuilt is null and IBuild.buildstate
+is BuildStatus.FULLYBUILT.</p>
+<p>The result is simply not filtered if the optional filters are omitted
+by call sites.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param build_state:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">optional BuildStatus value for filtering build
+records;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">optional string for filtering build source package name.
+Sub-string matching is allowed via SQL LIKE.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param pocket:</th><td class="rst-field-body">optional PackagePublishingPocket value for filtering
+build records;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param arch_tag:</th><td class="rst-field-body">optional string for filtering build source packages
+by their architecture tag;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param user:</th><td class="rst-field-body">optional IPerson corresponding to the user performing
+the request. It will filter out build records for which the user
+have no 'view' permission.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param binary_only:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">optional boolean indicating whether only
+BinaryPackageBuild objects should be returned, or more general
+PackageBuild objects (which may include, for example,
+SourcePackageRecipeBuild objects.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a result set containing IPackageBuild records ordered by
+descending IPackageBuild.date_finished except when builds are
+filtered by BuildStatus.NEEDSBUILD, in this case records
+are ordered by descending BuildQueue.lastscore
+(dispatching order).</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBuildRecords"/>
+ <wadl:param style="query" name="build_state" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build status</p>
+<p>The status of this build record</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="query" name="pocket" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The pocket into which this entry is published</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="query" name="source_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#build-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="builder-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#builder"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Publicly Visible</p>
+<p>Whether or not to present the builder publicly.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="clean_status" path="$['clean_status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Clean status</p>
+<p>The readiness of the worker to take a job. Only internal build infrastructure bots need to or should write to this.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Clean"/>
+ <wadl:option value="Dirty"/>
+ <wadl:option value="Cleaning"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_clean_status_changed" path="$['date_clean_status_changed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date clean status changed</p>
+<p>The date the builder's clean status last changed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="failnotes" path="$['failnotes']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Failure Notes</p>
+<p>The reason for a builder not being ok</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="failure_count" path="$['failure_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Failure Count</p>
+<p>Number of consecutive failures for this builder.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="manual" path="$['manual']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Manual Mode</p>
+<p>The auto-build system does not dispatch jobs automatically for worker in manual mode.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>Builder Worker Name used for reference purposes</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>Builder owner, a Launchpad member which will be responsible for this device.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>The builder worker title. Should be just a few words.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="url" path="$['url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>URL</p>
+<p>The URL to the build machine, used as a unique identifier. Includes protocol, host and port only, e.g.: <a class="rst-reference external" href="http://farm.com:8221/" target="_top">http://farm.com:8221/</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="version" path="$['version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Version</p>
+<p>The version of launchpad-buildd on the worker.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="virtualized" path="$['virtualized']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Virtualized</p>
+<p>Whether or not the builder is a virtual Xen instance.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="vm_host" path="$['vm_host']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>VM host</p>
+<p>The machine hostname hosting the virtual buildd-worker, e.g.: foobar-host.ppa</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="vm_reset_protocol" path="$['vm_reset_protocol']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>VM reset protocol</p>
+<p>The protocol version for resetting the VM.</p>
+
+</wadl:doc>
+
+ <wadl:option value="1.1"/>
+ <wadl:option value="2.0"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="builder-diff">
+ <wadl:param style="plain" required="false" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Publicly Visible</p>
+<p>Whether or not to present the builder publicly.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="failnotes" path="$['failnotes']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Failure Notes</p>
+<p>The reason for a builder not being ok</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="failure_count" path="$['failure_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Failure Count</p>
+<p>Number of consecutive failures for this builder.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="manual" path="$['manual']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Manual Mode</p>
+<p>The auto-build system does not dispatch jobs automatically for worker in manual mode.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>Builder Worker Name used for reference purposes</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>Builder owner, a Launchpad member which will be responsible for this device.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>The builder worker title. Should be just a few words.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="url" path="$['url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>URL</p>
+<p>The URL to the build machine, used as a unique identifier. Includes protocol, host and port only, e.g.: <a class="rst-reference external" href="http://farm.com:8221/" target="_top">http://farm.com:8221/</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="version" path="$['version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Version</p>
+<p>The version of launchpad-buildd on the worker.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="virtualized" path="$['virtualized']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Virtualized</p>
+<p>Whether or not the builder is a virtual Xen instance.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="vm_host" path="$['vm_host']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>VM host</p>
+<p>The machine hostname hosting the virtual buildd-worker, e.g.: foobar-host.ppa</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="vm_reset_protocol" path="$['vm_reset_protocol']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>VM reset protocol</p>
+<p>The protocol version for resetting the VM.</p>
+
+</wadl:doc>
+
+ <wadl:option value="1.1"/>
+ <wadl:option value="2.0"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="builder-page-resource">
+ <wadl:method name="GET" id="builder-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#builder-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="builder-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#builder-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#builder-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#builder"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="charm_base">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A base for charms.
+</wadl:doc>
+ <wadl:method name="GET" id="charm_base-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#charm_base-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="charm_base-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="charm_base-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="charm_base-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#charm_base-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="charm_base-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#charm_base-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="charm_base-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_base"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="build_snap_channels" path="$['build_snap_channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source snap channels for builds</p>
+<p>A dictionary mapping snap names to channels to use when building charm recipes that specify this base. The special '_byarch' key may have a mapping of architecture names to mappings of snap names to channels, which if present override the channels declared at the top level when building for those architectures.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Distro series
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="processors_collection_link" path="$['processors_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Processors</p>
+<p>The architectures that the charm base supports.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#processor-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registrant</p>
+<p>The person who registered this base.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="charm_base-diff">
+ <wadl:param style="plain" required="false" name="build_snap_channels" path="$['build_snap_channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source snap channels for builds</p>
+<p>A dictionary mapping snap names to channels to use when building charm recipes that specify this base. The special '_byarch' key may have a mapping of architecture names to mappings of snap names to channels, which if present override the channels declared at the top level when building for those architectures.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="charm_base-page-resource">
+ <wadl:method name="GET" id="charm_base-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#charm_base-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="charm_base-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#charm_base-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#charm_base-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_base"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="charm_recipe_build">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A build record for a charm recipe.
+</wadl:doc>
+ <wadl:method name="GET" id="charm_recipe_build-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#charm_recipe_build-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="charm_recipe_build-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="charm_recipe_build-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="charm_recipe_build-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#charm_recipe_build-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="charm_recipe_build-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#charm_recipe_build-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="charm_recipe_build-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipe_build"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="arch_tag" path="$['arch_tag']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Architecture tag
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Archive</p>
+<p>The Archive context for this build.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="build_log_url" path="$['build_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build Log URL</p>
+<p>A URL for the build log. None if there is no log available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="builder_link" path="$['builder_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Builder</p>
+<p>The builder assigned to this job.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#builder"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="buildstate" path="$['buildstate']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current status of the job.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_be_cancelled" path="$['can_be_cancelled']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can be cancelled</p>
+<p>Whether this build record can be cancelled.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_be_rescored" path="$['can_be_rescored']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can be rescored</p>
+<p>Whether this build record can be rescored manually.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_be_retried" path="$['can_be_retried']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can be retried</p>
+<p>Whether this build record can be retried.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="channels" path="$['channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source snap channels to use for this build.</p>
+<p>A dictionary mapping snap names to channels to use for this build. Currently only 'charmcraft', 'core', 'core18', 'core20', and 'core22' keys are supported.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_first_dispatched" path="$['date_first_dispatched']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date finished</p>
+<p>The actual build start time. Set when the build is dispatched the first time and not changed in subsequent build attempts.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datebuilt" path="$['datebuilt']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date finished</p>
+<p>The timestamp when the build farm job was finished.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datecreated" path="$['datecreated']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date created</p>
+<p>The timestamp when the build farm job was created.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="dependencies" path="$['dependencies']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependencies</p>
+<p>Debian-like dependency line that must be satisfied before attempting to build this request.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution</p>
+<p>Shortcut for its distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_arch_series_link" path="$['distro_arch_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The series and architecture for which to build.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_arch_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution series</p>
+<p>Shortcut for its distribution series.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The build targeted pocket.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="recipe_link" path="$['recipe_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The charm recipe to build.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipe"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="requester_link" path="$['requester_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The person who requested this build.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="revision_id" path="$['revision_id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Revision ID</p>
+<p>The revision ID of the branch used for this build, if available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="score" path="$['score']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Score of the related build farm job (if any).
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_upload_error_message" path="$['store_upload_error_message']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Store upload error message</p>
+<p>The error message, if any, from the last attempt to upload this charm recipe build to Charmhub.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_upload_revision" path="$['store_upload_revision']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Store revision</p>
+<p>The revision assigned to this charm recipe build by Charmhub.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_upload_status" path="$['store_upload_status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Store upload status
+</wadl:doc>
+
+ <wadl:option value="Unscheduled"/>
+ <wadl:option value="Pending"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Failed to release to channels"/>
+ <wadl:option value="Uploaded"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Title
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="upload_log_url" path="$['upload_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Upload Log URL</p>
+<p>A URL for failed upload logs.Will be None if there was no failure.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="charm_recipe_build-diff">
+ <wadl:param style="plain" required="false" name="build_log_url" path="$['build_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build Log URL</p>
+<p>A URL for the build log. None if there is no log available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="buildstate" path="$['buildstate']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current status of the job.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="channels" path="$['channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source snap channels to use for this build.</p>
+<p>A dictionary mapping snap names to channels to use for this build. Currently only 'charmcraft', 'core', 'core18', 'core20', and 'core22' keys are supported.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="dependencies" path="$['dependencies']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependencies</p>
+<p>Debian-like dependency line that must be satisfied before attempting to build this request.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution</p>
+<p>Shortcut for its distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution series</p>
+<p>Shortcut for its distribution series.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The build targeted pocket.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="store_upload_status" path="$['store_upload_status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Store upload status
+</wadl:doc>
+
+ <wadl:option value="Unscheduled"/>
+ <wadl:option value="Pending"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Failed to release to channels"/>
+ <wadl:option value="Uploaded"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Title
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="upload_log_url" path="$['upload_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Upload Log URL</p>
+<p>A URL for failed upload logs.Will be None if there was no failure.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="charm_recipe_build-page-resource">
+ <wadl:method name="GET" id="charm_recipe_build-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#charm_recipe_build-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="charm_recipe_build-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#charm_recipe_build-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#charm_recipe_build-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipe_build"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="charm_recipe_build_request">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A request to build a charm recipe.
+</wadl:doc>
+ <wadl:method name="GET" id="charm_recipe_build_request-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#charm_recipe_build_request-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="charm_recipe_build_request-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="charm_recipe_build_request-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="charm_recipe_build_request-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#charm_recipe_build_request-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="charm_recipe_build_request-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#charm_recipe_build_request-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="charm_recipe_build_request-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipe_build_request"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="builds_collection_link" path="$['builds_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Builds produced by this request
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipe_build-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_finished" path="$['date_finished']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The time when this request finished
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_requested" path="$['date_requested']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The time when this request was made
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="error_message" path="$['error_message']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Error message
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="recipe_link" path="$['recipe_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Charm recipe
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipe"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="Pending"/>
+ <wadl:option value="Failed"/>
+ <wadl:option value="Completed"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="charm_recipe_build_request-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="charm_recipe_build_request-page-resource">
+ <wadl:method name="GET" id="charm_recipe_build_request-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#charm_recipe_build_request-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="charm_recipe_build_request-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#charm_recipe_build_request-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#charm_recipe_build_request-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipe_build_request"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="charm_recipe">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A buildable charm recipe.
+</wadl:doc>
+ <wadl:method name="GET" id="charm_recipe-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#charm_recipe-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="charm_recipe-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="charm_recipe-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="charm_recipe-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#charm_recipe-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="charm_recipe-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#charm_recipe-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="charm_recipe-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipe"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="auto_build" path="$['auto_build']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Automatically build when branch changes</p>
+<p>Whether this charm recipe is built automatically when its branch changes.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="auto_build_channels" path="$['auto_build_channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source snap channels for automatic builds</p>
+<p>A dictionary mapping snap names to channels to use when building this charm recipe. Currently only 'charmcraft', 'core', 'core18', 'core20', and 'core22' keys are supported.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="build_path" path="$['build_path']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build path</p>
+<p>Subdirectory within the branch containing metadata.yaml.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="builds_collection_link" path="$['builds_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>All builds of this charm recipe.</p>
+<p>All builds of this charm recipe, sorted in descending order of finishing (or starting if not completed successfully).</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipe_build-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_upload_to_store" path="$['can_upload_to_store']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can upload to Charmhub</p>
+<p>Whether everything is set up to allow uploading builds of this charm recipe to Charmhub.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="completed_builds_collection_link" path="$['completed_builds_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Completed builds of this charm recipe.</p>
+<p>Completed builds of this charm recipe, sorted in descending order of finishing.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipe_build-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_modified" path="$['date_last_modified']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date last modified
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A description of the charm recipe.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="failed_build_requests_collection_link" path="$['failed_build_requests_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Failed build requests for this charm recipe.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipe_build_request-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="git_ref_link" path="$['git_ref_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Git branch</p>
+<p>The Git branch containing a charm recipe.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_ref"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="information_type" path="$['information_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information type</p>
+<p>The type of information contained in this charm recipe.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Public Security"/>
+ <wadl:option value="Private Security"/>
+ <wadl:option value="Private"/>
+ <wadl:option value="Proprietary"/>
+ <wadl:option value="Embargoed"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_stale" path="$['is_stale']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Charm recipe is stale and is due to be rebuilt.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Charm recipe name</p>
+<p>The name of the charm recipe.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The owner of this charm recipe.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pending_build_requests_collection_link" path="$['pending_build_requests_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Pending build requests for this charm recipe.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipe_build_request-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pending_builds_collection_link" path="$['pending_builds_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pending builds of this charm recipe.</p>
+<p>Pending builds of this charm recipe, sorted in descending order of creation.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipe_build-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="private" path="$['private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Private</p>
+<p>Whether this charm recipe is private.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="project_link" path="$['project_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The project that this charm recipe is associated with
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registrant</p>
+<p>The person who registered this charm recipe.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="require_virtualized" path="$['require_virtualized']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Require virtualized builders</p>
+<p>Only build this charm recipe on virtual builders.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_channels" path="$['store_channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Store channels</p>
+<p>Channels to release this charm to after uploading it to the store. A channel is defined by a combination of an optional track, a risk, and an optional branch, e.g. '2.1/stable/fix-123', '2.1/stable', 'stable/fix-123', or 'stable'.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_name" path="$['store_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registered store name</p>
+<p>The registered name of this charm in the store.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_upload" path="$['store_upload']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Automatically upload to store</p>
+<p>Whether builds of this charm recipe are automatically uploaded to the store.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="webhooks_collection_link" path="$['webhooks_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Webhooks for this target.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook-page-resource"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="charm_recipe-diff">
+ <wadl:param style="plain" required="false" name="auto_build" path="$['auto_build']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Automatically build when branch changes</p>
+<p>Whether this charm recipe is built automatically when its branch changes.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="auto_build_channels" path="$['auto_build_channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source snap channels for automatic builds</p>
+<p>A dictionary mapping snap names to channels to use when building this charm recipe. Currently only 'charmcraft', 'core', 'core18', 'core20', and 'core22' keys are supported.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="build_path" path="$['build_path']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build path</p>
+<p>Subdirectory within the branch containing metadata.yaml.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A description of the charm recipe.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="git_ref_link" path="$['git_ref_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Git branch</p>
+<p>The Git branch containing a charm recipe.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_ref"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="information_type" path="$['information_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information type</p>
+<p>The type of information contained in this charm recipe.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Public Security"/>
+ <wadl:option value="Private Security"/>
+ <wadl:option value="Private"/>
+ <wadl:option value="Proprietary"/>
+ <wadl:option value="Embargoed"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Charm recipe name</p>
+<p>The name of the charm recipe.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The owner of this charm recipe.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="private" path="$['private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Private</p>
+<p>Whether this charm recipe is private.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="project_link" path="$['project_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The project that this charm recipe is associated with
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="require_virtualized" path="$['require_virtualized']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Require virtualized builders</p>
+<p>Only build this charm recipe on virtual builders.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="store_channels" path="$['store_channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Store channels</p>
+<p>Channels to release this charm to after uploading it to the store. A channel is defined by a combination of an optional track, a risk, and an optional branch, e.g. '2.1/stable/fix-123', '2.1/stable', 'stable/fix-123', or 'stable'.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="store_name" path="$['store_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registered store name</p>
+<p>The registered name of this charm in the store.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="store_upload" path="$['store_upload']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Automatically upload to store</p>
+<p>Whether builds of this charm recipe are automatically uploaded to the store.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="charm_recipe-page-resource">
+ <wadl:method name="GET" id="charm_recipe-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#charm_recipe-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="charm_recipe-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#charm_recipe-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#charm_recipe-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#charm_recipe"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="code_import">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A code import to a Bazaar Branch.
+</wadl:doc>
+ <wadl:method name="GET" id="code_import-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#code_import-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="code_import-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="code_import-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="code_import-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#code_import-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="code_import-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#code_import-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="code_import-requestImport" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Request that an import be tried soon.</p>
+<p>This method will schedule an import to happen soon for this branch.</p>
+<p>The import must be in the Reviewed state, if not then a
+CodeImportNotInReviewedState error will be thrown. If using the
+API then a status code of 400 will result.</p>
+<p>If the import is already running then a CodeImportAlreadyRunning
+error will be thrown. If using the API then a status code of
+400 will result.</p>
+<p>The two cases can be distinguished over the API by seeing if the
+exception names appear in the body of the response.</p>
+<p>If used over the API and the request has already been made then this
+method will silently do nothing.
+If called internally then the error_if_already_requested parameter
+controls whether a CodeImportAlreadyRequested exception will be
+thrown in that situation.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">None</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="requestImport"/>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="code_import-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_import"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="branch_link" path="$['branch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Branch</p>
+<p>The Bazaar branch produced by the import system.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="cvs_module" path="$['cvs_module']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Module</p>
+<p>The path to import within the repository. Usually, it is the name of the project.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="cvs_root" path="$['cvs_root']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Repository</p>
+<p>The CVSROOT. Example: :pserver:anonymous&#64;anoncvs.gnome.org:/cvs/gnome</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_successful" path="$['date_last_successful']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Last successful
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="git_repository_link" path="$['git_repository_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Git repository</p>
+<p>The Git repository produced by the import system.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_repository"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="rcs_type" path="$['rcs_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Type of RCS</p>
+<p>The revision control system to import from.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Concurrent Versions System"/>
+ <wadl:option value="Subversion via CSCVS"/>
+ <wadl:option value="Subversion via bzr-svn"/>
+ <wadl:option value="Git"/>
+ <wadl:option value="Mercurial"/>
+ <wadl:option value="Bazaar"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="review_status" path="$['review_status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Review Status</p>
+<p>Only reviewed imports are processed.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Pending Review"/>
+ <wadl:option value="Invalid"/>
+ <wadl:option value="Reviewed"/>
+ <wadl:option value="Suspended"/>
+ <wadl:option value="Failed"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="target_rcs_type" path="$['target_rcs_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Type of target RCS</p>
+<p>The revision control system to import to.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Bazaar"/>
+ <wadl:option value="Git"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="url" path="$['url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>URL</p>
+<p>The URL of the VCS branch.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="code_import-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="code_import-page-resource">
+ <wadl:method name="GET" id="code_import-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#code_import-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="code_import-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#code_import-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#code_import-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_import"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="code_review_comment">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A link between a merge proposal and a message.
+</wadl:doc>
+ <wadl:method name="GET" id="code_review_comment-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#code_review_comment-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="code_review_comment-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="code_review_comment-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="code_review_comment-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#code_review_comment-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="code_review_comment-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#code_review_comment-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="code_review_comment-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_review_comment"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="as_quoted_email" path="$['as_quoted_email']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The message as quoted in email.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="author_link" path="$['author_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Comment Author
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="branch_merge_proposal_link" path="$['branch_merge_proposal_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The branch merge proposal
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="content" path="$['content']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All the text/plain chunks joined together as a unicode string.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_deleted" path="$['date_deleted']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+When this message was deleted
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_edited" path="$['date_last_edited']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+When this message was last edited
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="id" path="$['id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>DB ID</p>
+<p>The tracking number for this comment.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="message_body" path="$['message_body']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Deprecated. Use &quot;content&quot; attribute instead.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The title of the comment
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="vote" path="$['vote']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Review
+</wadl:doc>
+
+ <wadl:option value="Approve"/>
+ <wadl:option value="Needs Fixing"/>
+ <wadl:option value="Needs Information"/>
+ <wadl:option value="Abstain"/>
+ <wadl:option value="Disapprove"/>
+ <wadl:option value="Needs Resubmitting"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="vote_tag" path="$['vote_tag']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Vote tag
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="code_review_comment-diff">
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The title of the comment
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="vote" path="$['vote']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Review
+</wadl:doc>
+
+ <wadl:option value="Approve"/>
+ <wadl:option value="Needs Fixing"/>
+ <wadl:option value="Needs Information"/>
+ <wadl:option value="Abstain"/>
+ <wadl:option value="Disapprove"/>
+ <wadl:option value="Needs Resubmitting"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="vote_tag" path="$['vote_tag']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Vote tag
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="code_review_comment-page-resource">
+ <wadl:method name="GET" id="code_review_comment-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#code_review_comment-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="code_review_comment-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#code_review_comment-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#code_review_comment-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_review_comment"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="code_review_vote_reference">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>A reference to a vote on a IBranchMergeProposal.</p>
+<p>There is at most one reference to a vote for each reviewer on a given
+branch merge proposal.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="code_review_vote_reference-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#code_review_vote_reference-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="code_review_vote_reference-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="code_review_vote_reference-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="code_review_vote_reference-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#code_review_vote_reference-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="code_review_vote_reference-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#code_review_vote_reference-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="DELETE" id="code_review_vote_reference-delete"/>
+
+ <wadl:method id="code_review_vote_reference-claimReview" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Change a pending review into a review for claimant.</p>
+<p>Pending team reviews can be claimed by members of that team. This
+allows reviews to be moved of the general team todo list, and onto a
+personal todo list.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param claimant:</th><td class="rst-field-body">The person claiming the team review.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises ClaimReviewFailed:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If the claimant already has a
+personal review, if the reviewer is not a team, if the
+claimant is not in the reviewer team, or if the review is
+not pending.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="claimReview"/>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="code_review_vote_reference-reassignReview" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Reassign a pending review to someone else.</p>
+<p>Pending reviews can be reassigned to someone else.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param reviewer:</th><td class="rst-field-body">The person to assign the pending review to.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises ReviewNotPending:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If the review is not pending.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises ReassignReviewFailed:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If the reviewer is an individual and
+already has a personal review.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="reassignReview"/>
+ <wadl:param style="query" name="reviewer" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The person or team to assign to do the review.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="code_review_vote_reference-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_review_vote_reference"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="branch_merge_proposal_link" path="$['branch_merge_proposal_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The merge proposal that is the subject of this vote
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="comment_link" path="$['comment_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The code review comment that contains the most recent vote.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_review_comment"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_pending" path="$['is_pending']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is the pending?
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The person who originally registered this vote
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="review_type" path="$['review_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Review type</p>
+<p>Lowercase keywords describing the type of review.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="reviewer_link" path="$['reviewer_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Reviewer</p>
+<p>A person who you want to review this.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="code_review_vote_reference-diff">
+ <wadl:param style="plain" required="false" name="branch_merge_proposal_link" path="$['branch_merge_proposal_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The merge proposal that is the subject of this vote
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="comment_link" path="$['comment_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The code review comment that contains the most recent vote.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_review_comment"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The person who originally registered this vote
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="review_type" path="$['review_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Review type</p>
+<p>Lowercase keywords describing the type of review.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="reviewer_link" path="$['reviewer_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Reviewer</p>
+<p>A person who you want to review this.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="code_review_vote_reference-page-resource">
+ <wadl:method name="GET" id="code_review_vote_reference-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#code_review_vote_reference-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="code_review_vote_reference-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#code_review_vote_reference-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#code_review_vote_reference-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_review_vote_reference"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="commercial_subscription">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>A Commercial Subscription for a Product.</p>
+<p>If the product has a licence which does not qualify for free
+hosting, a subscription needs to be purchased.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="commercial_subscription-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#commercial_subscription-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="commercial_subscription-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="commercial_subscription-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="commercial_subscription-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#commercial_subscription-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="commercial_subscription-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#commercial_subscription-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="commercial_subscription-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#commercial_subscription"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Created</p>
+<p>The date the first subscription was applied.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_expires" path="$['date_expires']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Expiration Date</p>
+<p>The expiration date of the subscription.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_modified" path="$['date_last_modified']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Modified</p>
+<p>The date the subscription was modified.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_starts" path="$['date_starts']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Beginning of Subscription</p>
+<p>The date the subscription starts.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_active" path="$['is_active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether this subscription is active.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="product_link" path="$['product_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Product which has commercial subscription</p>
+<p>Project for which this commercial subscription is applied.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="purchaser_link" path="$['purchaser_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Purchaser</p>
+<p>Person who purchased the voucher.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registrant</p>
+<p>Person who redeemed the voucher.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="commercial_subscription-diff">
+ <wadl:param style="plain" required="false" name="date_expires" path="$['date_expires']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Expiration Date</p>
+<p>The expiration date of the subscription.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_last_modified" path="$['date_last_modified']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Modified</p>
+<p>The date the subscription was modified.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_starts" path="$['date_starts']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Beginning of Subscription</p>
+<p>The date the subscription starts.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="commercial_subscription-page-resource">
+ <wadl:method name="GET" id="commercial_subscription-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#commercial_subscription-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="commercial_subscription-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#commercial_subscription-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#commercial_subscription-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#commercial_subscription"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="country">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The country description.
+</wadl:doc>
+ <wadl:method name="GET" id="country-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#country-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="country-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="country-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="country-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#country-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="country-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#country-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="country-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#country"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Description
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="iso3166code2" path="$['iso3166code2']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+iso3166code2
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="iso3166code3" path="$['iso3166code3']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+iso3166code3
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Country name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Country title
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="country-diff">
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Description
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Country name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Country title
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="country-page-resource">
+ <wadl:method name="GET" id="country-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#country-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="country-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#country-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#country-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#country"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="cve">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A single CVE database entry.
+</wadl:doc>
+ <wadl:method name="GET" id="cve-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#cve-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="cve-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="cve-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="cve-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#cve-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="cve-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#cve-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="cve-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#cve"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bugs_collection_link" path="$['bugs_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bugs related to this CVE entry.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_modified" path="$['date_modified']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Modified
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>A description of the CVE issue. This will be updated regularly from the CVE database.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>A very brief name describing the ref and state.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="sequence" path="$['sequence']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>CVE Sequence Number</p>
+<p>Should take the form XXXX-XXXX, all digits.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Current CVE State</p>
+<p>Whether or not the vulnerability has been reviewed and assigned a full CVE number, or is still considered a Candidate, or is deprecated.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Candidate"/>
+ <wadl:option value="Entry"/>
+ <wadl:option value="Deprecated"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>A title for the CVE</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="url" path="$['url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>URL</p>
+<p>Return a URL to the site that has the CVE data for this CVE reference.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="cve-diff">
+ <wadl:param style="plain" required="false" name="date_modified" path="$['date_modified']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Modified
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>A description of the CVE issue. This will be updated regularly from the CVE database.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>A very brief name describing the ref and state.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="sequence" path="$['sequence']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>CVE Sequence Number</p>
+<p>Should take the form XXXX-XXXX, all digits.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Current CVE State</p>
+<p>Whether or not the vulnerability has been reviewed and assigned a full CVE number, or is still considered a Candidate, or is deprecated.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Candidate"/>
+ <wadl:option value="Entry"/>
+ <wadl:option value="Deprecated"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>A title for the CVE</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="url" path="$['url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>URL</p>
+<p>Return a URL to the site that has the CVE data for this CVE reference.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="cve-page-resource">
+ <wadl:method name="GET" id="cve-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#cve-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="cve-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#cve-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#cve-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#cve"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="distribution">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>An operating system distribution.</p>
+<p>Launchpadlib example: retrieving the current version of a package in a
+particular distroseries.</p>
+<pre class="rst-literal-block">
+ubuntu = launchpad.distributions[&quot;ubuntu&quot;]
+archive = ubuntu.main_archive
+series = ubuntu.current_series
+print(archive.getPublishedSources(exact_match=True,
+ source_name=&quot;apport&quot;,
+ distro_series=series)[0].source_package_version)
+</pre>
+
+</wadl:doc>
+ <wadl:method name="GET" id="distribution-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="distribution-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="distribution-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="distribution-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="distribution-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="distribution-getBuildRecords" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return build records in the context it is implemented.</p>
+<p>It excludes build records generated by Gina (imported from a external
+repository), where IBuild.datebuilt is null and IBuild.buildstate
+is BuildStatus.FULLYBUILT.</p>
+<p>The result is simply not filtered if the optional filters are omitted
+by call sites.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param build_state:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">optional BuildStatus value for filtering build
+records;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">optional string for filtering build source package name.
+Sub-string matching is allowed via SQL LIKE.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param pocket:</th><td class="rst-field-body">optional PackagePublishingPocket value for filtering
+build records;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param arch_tag:</th><td class="rst-field-body">optional string for filtering build source packages
+by their architecture tag;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param user:</th><td class="rst-field-body">optional IPerson corresponding to the user performing
+the request. It will filter out build records for which the user
+have no 'view' permission.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param binary_only:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">optional boolean indicating whether only
+BinaryPackageBuild objects should be returned, or more general
+PackageBuild objects (which may include, for example,
+SourcePackageRecipeBuild objects.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a result set containing IPackageBuild records ordered by
+descending IPackageBuild.date_finished except when builds are
+filtered by BuildStatus.NEEDSBUILD, in this case records
+are ordered by descending BuildQueue.lastscore
+(dispatching order).</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBuildRecords"/>
+ <wadl:param style="query" name="build_state" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build status</p>
+<p>The status of this build record</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="query" name="pocket" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The pocket into which this entry is published</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="query" name="source_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#build-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-userHasBugSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is user subscribed, directly or via a team, to bug mail?
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="userHasBugSubscriptions"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="distribution-searchTasks" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search the IBugTasks reported on this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">search_params:</th><td class="rst-field-body">a BugTaskSearchParams object</td>
+</tr>
+</tbody>
+</table>
+<p>Return an iterable of matching results.</p>
+<p>Note: milestone is currently ignored for all IBugTargets
+except IProduct.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchTasks"/>
+ <wadl:param style="query" name="bug_reporter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_cve" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs associated with a CVE
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_targeted" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs targeted to a series
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status_upstream" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status upstream</p>
+<p>Indicates the status of any remote watches associated with the bug. Possible values include: pending_bugwatch, hide_upstream, resolved_upstream, and open_upstream.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>String or list of strings for tags to search. To exclude, prepend a '-', e.g. '-unwantedtag'</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_duplicates" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs marked as duplicate,
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="nominated_for" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been modified since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="structural_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been created since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_patch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs with patches available.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_commenter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="assignee" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only bugs with the given status value or list of values.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="affected_user" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID or search text.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of fields by which the results are ordered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="tags_combinator" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags combination</p>
+<p>Search for any or all of the tags specified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Any"/>
+ <wadl:option value="All"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Component</p>
+<p>Distribution package archive grouping. E.g. main, universe, multiverse</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="importance" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Importance</p>
+<p>Show only bugs with the given importance or list of importances.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>Show only bugs with the given information type or list of information types.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that were created before the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="milestone" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone</p>
+<p>Show only bug tasks targeted to this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="linked_branches" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that are linked to branches or for bugs that are not linked to branches.
+</wadl:doc>
+
+ <wadl:option value="Show all bugs"/>
+ <wadl:option value="Show only Bugs with linked Branches"/>
+ <wadl:option value="Show only Bugs without linked Branches"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_no_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Exclude bugs with packages specified
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-getMirrorByName" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the mirror with the given name for this distribution or None
+if it's not found.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getMirrorByName"/>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution_mirror-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-getSubscription" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the subscription for person, if it exists.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscription"/>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-searchSourcePackages" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search for source packages that correspond to the given text.</p>
+<p>This method just decorates the result of searchSourcePackageCaches()
+to return DistributionSourcePackages.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchSourcePackages"/>
+ <wadl:param style="query" name="source_match" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package name substring match
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution_source_package-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-getSourcePackage" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return a DistributionSourcePackage with the given name for this
+distribution, or None.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSourcePackage"/>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Package name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution_source_package-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-getDevelopmentSeries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the DistroSeries which are marked as in development.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getDevelopmentSeries"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_series-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-getCountryMirror" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the country DNS mirror for a country and content type.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getCountryMirror"/>
+ <wadl:param style="query" name="country" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Location</p>
+<p>The country in which this mirror is based.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#country"/>
+ </wadl:param>
+ <wadl:param style="query" name="mirror_type" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Content</p>
+<p>Choose &quot;CD Image&quot; if this mirror contains CD images of this distribution. Choose &quot;Archive&quot; if this is a mirror of packages for this distribution.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Archive"/>
+ <wadl:option value="CD Image"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution_mirror-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-getTranslationImportQueueEntries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return entries in the translation import queue for this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg import_status:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">RosettaImportStatus DB Schema entry.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg file_extension:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">String with the file type extension, usually 'po'
+or 'pot'.</td>
+</tr>
+</tbody>
+</table>
+<p>If one of both of 'import_status' or 'file_extension' are given, the
+returned entries are filtered based on those values.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getTranslationImportQueueEntries"/>
+ <wadl:param style="query" name="file_extension" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Filename extension</p>
+<p>Show only entries with this filename suffix</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="import_status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only entries with this status</p>
+
+</wadl:doc>
+
+ <wadl:option value="Approved"/>
+ <wadl:option value="Imported"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Failed"/>
+ <wadl:option value="Needs Review"/>
+ <wadl:option value="Blocked"/>
+ <wadl:option value="Needs Information"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_import_queue_entry-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-getSeries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the series with the name or version given.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param name_or_version:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The IDistroSeries.name or
+IDistroSeries.version.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSeries"/>
+ <wadl:param style="query" name="name_or_version" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Name or version
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_series-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-getSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return all the subscriptions with the specified levels.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A sequence of IStructuralSubscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscriptions"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-getArchive" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the distribution archive with the given name.</p>
+<p>Only distribution archives are considered -- PPAs will not be found.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">The name of the archive, e.g. 'partner'</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getArchive"/>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Archive name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-getMilestone" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return a milestone with the given name for this object, or None.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getMilestone"/>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#milestone-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-addBugSubscriptionFilter" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription filter for this structure.</p>
+<p>This method is used to create a new IBugSubscriptionFilter for the
+target. It will initially allow all notifications to be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription filter.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscriptionFilter"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription_filter"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-addOfficialBugTag" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Add tag to the official bug tags of this target.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addOfficialBugTag"/>
+ <wadl:param style="query" name="tag" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The official bug tag
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="distribution-removeBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remove a subscription to bugs from this structure.</p>
+<p>This will delete all associated filters.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be unsubscribed. If omitted,
+unsubscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">unsubscribed_by:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The IPerson removing the subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="removeBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to unsubscribe. If omitted, the requesting user will be unsubscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="distribution-addBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription for this structure.</p>
+<p>This method is used to create a new IStructuralSubscription for the
+target. This initially has a single filter which will allow all
+notifications will be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution-removeOfficialBugTag" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Remove tag from the official bug tags of this target.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="removeOfficialBugTag"/>
+ <wadl:param style="query" name="tag" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The official bug tag
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="distribution-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this item is active.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active_milestones_collection_link" path="$['active_milestones_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The visible and active milestones associated with this object, ordered by date expected.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="all_milestones_collection_link" path="$['all_milestones_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All milestones associated with this object, ordered by date expected.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_mirrors_collection_link" path="$['archive_mirrors_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All enabled and official ARCHIVE mirrors of this Distribution.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution_mirror-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archives_collection_link" path="$['archives_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A sequence of the distribution's primary, partner and debug archives.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Helpful guidelines for reporting a bug</p>
+<p>These guidelines will be shown to everyone reporting a bug and should be text or a bulleted list with your particular requirements, if any.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_supervisor_link" path="$['bug_supervisor_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bug Supervisor</p>
+<p>The Launchpad id of the person or team (preferred) responsible for bug management.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="cdimage_mirrors_collection_link" path="$['cdimage_mirrors_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All enabled and official RELEASE mirrors of this Distribution.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution_mirror-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="current_series_link" path="$['current_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Current series</p>
+<p>The current development series of this distribution. Note that all maintainerships refer to the current series. When people ask about the state of packages in the distribution, we should interpret that query in the context of the currentseries.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date created</p>
+<p>The date this distribution was registered.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="default_traversal_policy" path="$['default_traversal_policy']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Default traversal policy</p>
+<p>The type of object that /{distro}/{name} URLs for this distribution resolve to.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Series"/>
+ <wadl:option value="Source package"/>
+ <wadl:option value="OCI project"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="derivatives_collection_link" path="$['derivatives_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+This Distribution's derivatives
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Details about the distributions's work, highlights, goals, and how to contribute. Use plain text, paragraphs are preserved and URLs are linked in pages. Don't repeat the Summary.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="development_series_alias" path="$['development_series_alias']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Alias for development series</p>
+<p>If set, an alias for the current development series in this distribution.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>The displayable name of the distribution.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="domain_name" path="$['domain_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Web site URL</p>
+<p>The distro's web site URL.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="driver_link" path="$['driver_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Driver</p>
+<p>The person or team responsible for decisions about features and bugs that will be targeted for any series in this distribution. Note that you can also specify a driver on each series whose permissions will be limited to that specific series.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="homepage_content" path="$['homepage_content']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Homepage Content</p>
+<p>The content of this distribution's home page. Edit this and it will be displayed for all the world to see. It is NOT a wiki so you cannot undo changes.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="icon_link" path="$['icon_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Icon</p>
+<p>A small image of exactly 14x14 pixels and at most 5kb in size, that can be used to identify this distribution. The icon will be displayed everywhere we list the distribution and link to it.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="logo_link" path="$['logo_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Logo</p>
+<p>An image of exactly 64x64 pixels that will be displayed in the heading of all pages related to this distribution. It should be no bigger than 50kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="main_archive_link" path="$['main_archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Distribution Main Archive.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="members_link" path="$['members_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Members</p>
+<p>The distro's members team.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="mirror_admin_link" path="$['mirror_admin_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Mirror Administrator</p>
+<p>The person or team that has the rights to review and mark this distribution's mirrors as official.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="mugshot_link" path="$['mugshot_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Brand</p>
+<p>A large image of exactly 192x192 pixels, that will be displayed on this distribution's home page in Launchpad. It should be no bigger than 100kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The distro's name.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="oci_project_admin_link" path="$['oci_project_admin_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>OCI Project Administrator</p>
+<p>The person or team that has the rights to manage OCI Projects for this distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_answers" path="$['official_answers']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+People can ask questions in Launchpad Answers
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_blueprints" path="$['official_blueprints']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+This project uses blueprints
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_bug_tags" path="$['official_bug_tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Official Bug Tags</p>
+<p>The list of bug tags defined as official.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_bugs" path="$['official_bugs']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bugs in this project are tracked in Launchpad
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_codehosting" path="$['official_codehosting']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Code for this project is published in Bazaar branches on Launchpad
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_packages" path="$['official_packages']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Packages are tracked in Launchpad
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The restricted team, moderated team, or person who maintains the distribution information in Launchpad.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="redirect_default_traversal" path="$['redirect_default_traversal']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Redirect the default traversal</p>
+<p>If true, the default traversal is for migration and redirects to a different canonical URL.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="redirect_release_uploads" path="$['redirect_release_uploads']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Redirect release pocket uploads</p>
+<p>Redirect release pocket uploads to proposed pocket</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registrant</p>
+<p>The distro's registrant.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="series_collection_link" path="$['series_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+DistroSeries inside this Distribution
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A short paragraph to introduce the goals and highlights of the distribution.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="supports_mirrors" path="$['supports_mirrors']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Enable mirror listings and probes
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="supports_ppas" path="$['supports_ppas']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Enable PPA creation and publication
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>The distro's title.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="vcs" path="$['vcs']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>VCS</p>
+<p>Version control system for this distribution's code.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Bazaar"/>
+ <wadl:option value="Git"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="distribution-diff">
+ <wadl:param style="plain" required="false" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this item is active.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Helpful guidelines for reporting a bug</p>
+<p>These guidelines will be shown to everyone reporting a bug and should be text or a bulleted list with your particular requirements, if any.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_supervisor_link" path="$['bug_supervisor_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bug Supervisor</p>
+<p>The Launchpad id of the person or team (preferred) responsible for bug management.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="current_series_link" path="$['current_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Current series</p>
+<p>The current development series of this distribution. Note that all maintainerships refer to the current series. When people ask about the state of packages in the distribution, we should interpret that query in the context of the currentseries.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date created</p>
+<p>The date this distribution was registered.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="default_traversal_policy" path="$['default_traversal_policy']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Default traversal policy</p>
+<p>The type of object that /{distro}/{name} URLs for this distribution resolve to.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Series"/>
+ <wadl:option value="Source package"/>
+ <wadl:option value="OCI project"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Details about the distributions's work, highlights, goals, and how to contribute. Use plain text, paragraphs are preserved and URLs are linked in pages. Don't repeat the Summary.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="development_series_alias" path="$['development_series_alias']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Alias for development series</p>
+<p>If set, an alias for the current development series in this distribution.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>The displayable name of the distribution.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="domain_name" path="$['domain_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Web site URL</p>
+<p>The distro's web site URL.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="driver_link" path="$['driver_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Driver</p>
+<p>The person or team responsible for decisions about features and bugs that will be targeted for any series in this distribution. Note that you can also specify a driver on each series whose permissions will be limited to that specific series.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="homepage_content" path="$['homepage_content']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Homepage Content</p>
+<p>The content of this distribution's home page. Edit this and it will be displayed for all the world to see. It is NOT a wiki so you cannot undo changes.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="icon_link" path="$['icon_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Icon</p>
+<p>A small image of exactly 14x14 pixels and at most 5kb in size, that can be used to identify this distribution. The icon will be displayed everywhere we list the distribution and link to it.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="logo_link" path="$['logo_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Logo</p>
+<p>An image of exactly 64x64 pixels that will be displayed in the heading of all pages related to this distribution. It should be no bigger than 50kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="members_link" path="$['members_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Members</p>
+<p>The distro's members team.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="mirror_admin_link" path="$['mirror_admin_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Mirror Administrator</p>
+<p>The person or team that has the rights to review and mark this distribution's mirrors as official.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="mugshot_link" path="$['mugshot_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Brand</p>
+<p>A large image of exactly 192x192 pixels, that will be displayed on this distribution's home page in Launchpad. It should be no bigger than 100kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The distro's name.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="oci_project_admin_link" path="$['oci_project_admin_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>OCI Project Administrator</p>
+<p>The person or team that has the rights to manage OCI Projects for this distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="official_answers" path="$['official_answers']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+People can ask questions in Launchpad Answers
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="official_blueprints" path="$['official_blueprints']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+This project uses blueprints
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="official_bug_tags" path="$['official_bug_tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Official Bug Tags</p>
+<p>The list of bug tags defined as official.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="official_bugs" path="$['official_bugs']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bugs in this project are tracked in Launchpad
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="official_codehosting" path="$['official_codehosting']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Code for this project is published in Bazaar branches on Launchpad
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="official_packages" path="$['official_packages']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Packages are tracked in Launchpad
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The restricted team, moderated team, or person who maintains the distribution information in Launchpad.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="redirect_default_traversal" path="$['redirect_default_traversal']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Redirect the default traversal</p>
+<p>If true, the default traversal is for migration and redirects to a different canonical URL.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="redirect_release_uploads" path="$['redirect_release_uploads']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Redirect release pocket uploads</p>
+<p>Redirect release pocket uploads to proposed pocket</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A short paragraph to introduce the goals and highlights of the distribution.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="supports_mirrors" path="$['supports_mirrors']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Enable mirror listings and probes
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="supports_ppas" path="$['supports_ppas']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Enable PPA creation and publication
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>The distro's title.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="vcs" path="$['vcs']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>VCS</p>
+<p>Version control system for this distribution's code.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Bazaar"/>
+ <wadl:option value="Git"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="distribution-page-resource">
+ <wadl:method name="GET" id="distribution-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#distribution-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="distribution-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#distribution-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#distribution-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="distribution_mirror">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A mirror of a given distribution.
+</wadl:doc>
+ <wadl:method name="GET" id="distribution_mirror-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution_mirror-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="distribution_mirror-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="distribution_mirror-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="distribution_mirror-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution_mirror-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="distribution_mirror-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution_mirror-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="distribution_mirror-isOfficial" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return True if this is an official mirror.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="isOfficial"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="distribution_mirror-getOverallFreshness" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return this mirror's overall freshness.</p>
+<p>For ARCHIVE mirrors, the overall freshness is the worst freshness of
+all of this mirror's content objects (MirrorDistroArchSeries,
+MirrorDistroSeriesSource or MirrorCDImageDistroSeriess).</p>
+<p>For RELEASE mirrors, the overall freshness is either UPTODATE, if the
+mirror contains all ISO images that it should or UNKNOWN if it doesn't
+contain one or more ISO images.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getOverallFreshness"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="distribution_mirror-canTransitionToCountryMirror" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Verify if a mirror can be set as a country mirror or return
+False.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="canTransitionToCountryMirror"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="distribution_mirror-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution_mirror"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="content" path="$['content']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Content</p>
+<p>Choose &quot;CD Image&quot; if this mirror contains CD images of this distribution. Choose &quot;Archive&quot; if this is a mirror of packages for this distribution.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Archive"/>
+ <wadl:option value="CD Image"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="country_link" path="$['country_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Location</p>
+<p>The country in which this mirror is based.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#country"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="country_dns_mirror" path="$['country_dns_mirror']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Country DNS Mirror</p>
+<p>Whether this is a country mirror in DNS.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Created</p>
+<p>The date on which this mirror was registered.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_reviewed" path="$['date_reviewed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date reviewed</p>
+<p>The date on which this mirror was last reviewed by a mirror admin.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Description
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="displayname" path="$['displayname']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Organisation</p>
+<p>The name of the organization hosting this mirror.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution</p>
+<p>The distribution that is mirrored</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="enabled" path="$['enabled']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+This mirror was probed successfully.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="ftp_base_url" path="$['ftp_base_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>FTP URL</p>
+<p>e.g.: <a class="rst-reference external" href="ftp://archive.ubuntu.com/ubuntu/" target="_top">ftp://archive.ubuntu.com/ubuntu/</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="http_base_url" path="$['http_base_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>HTTP URL</p>
+<p>e.g.: <a class="rst-reference external" href="http://archive.ubuntu.com/ubuntu/" target="_top">http://archive.ubuntu.com/ubuntu/</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="https_base_url" path="$['https_base_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+HTTPS URL
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>A short and unique name for this mirror.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_candidate" path="$['official_candidate']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Apply to be an official mirror of this distribution
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The person who is set as the current administrator of thismirror.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="reviewer_link" path="$['reviewer_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Reviewer</p>
+<p>The person who last reviewed this mirror.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="rsync_base_url" path="$['rsync_base_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Rsync URL</p>
+<p>e.g.: rsync://archive.ubuntu.com/ubuntu/</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="speed" path="$['speed']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Link Speed
+</wadl:doc>
+
+ <wadl:option value="128 Kbps"/>
+ <wadl:option value="256 Kbps"/>
+ <wadl:option value="512 Kbps"/>
+ <wadl:option value="1 Mbps"/>
+ <wadl:option value="2 Mbps"/>
+ <wadl:option value="10 Mbps"/>
+ <wadl:option value="45 Mbps"/>
+ <wadl:option value="100 Mbps"/>
+ <wadl:option value="1 Gbps"/>
+ <wadl:option value="2 Gbps"/>
+ <wadl:option value="4 Gbps"/>
+ <wadl:option value="10 Gbps"/>
+ <wadl:option value="20 Gbps"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current status of a mirror's registration.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Pending review"/>
+ <wadl:option value="Unofficial"/>
+ <wadl:option value="Official"/>
+ <wadl:option value="Broken"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="whiteboard" path="$['whiteboard']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Whiteboard</p>
+<p>Notes on the current status of the mirror (only visible to admins and the mirror's registrant).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="distribution_mirror-diff">
+ <wadl:param style="plain" required="false" name="content" path="$['content']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Content</p>
+<p>Choose &quot;CD Image&quot; if this mirror contains CD images of this distribution. Choose &quot;Archive&quot; if this is a mirror of packages for this distribution.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Archive"/>
+ <wadl:option value="CD Image"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="country_link" path="$['country_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Location</p>
+<p>The country in which this mirror is based.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#country"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="country_dns_mirror" path="$['country_dns_mirror']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Country DNS Mirror</p>
+<p>Whether this is a country mirror in DNS.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Description
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="displayname" path="$['displayname']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Organisation</p>
+<p>The name of the organization hosting this mirror.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="ftp_base_url" path="$['ftp_base_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>FTP URL</p>
+<p>e.g.: <a class="rst-reference external" href="ftp://archive.ubuntu.com/ubuntu/" target="_top">ftp://archive.ubuntu.com/ubuntu/</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="http_base_url" path="$['http_base_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>HTTP URL</p>
+<p>e.g.: <a class="rst-reference external" href="http://archive.ubuntu.com/ubuntu/" target="_top">http://archive.ubuntu.com/ubuntu/</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="https_base_url" path="$['https_base_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+HTTPS URL
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>A short and unique name for this mirror.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="official_candidate" path="$['official_candidate']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Apply to be an official mirror of this distribution
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The person who is set as the current administrator of thismirror.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="rsync_base_url" path="$['rsync_base_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Rsync URL</p>
+<p>e.g.: rsync://archive.ubuntu.com/ubuntu/</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="speed" path="$['speed']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Link Speed
+</wadl:doc>
+
+ <wadl:option value="128 Kbps"/>
+ <wadl:option value="256 Kbps"/>
+ <wadl:option value="512 Kbps"/>
+ <wadl:option value="1 Mbps"/>
+ <wadl:option value="2 Mbps"/>
+ <wadl:option value="10 Mbps"/>
+ <wadl:option value="45 Mbps"/>
+ <wadl:option value="100 Mbps"/>
+ <wadl:option value="1 Gbps"/>
+ <wadl:option value="2 Gbps"/>
+ <wadl:option value="4 Gbps"/>
+ <wadl:option value="10 Gbps"/>
+ <wadl:option value="20 Gbps"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current status of a mirror's registration.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Pending review"/>
+ <wadl:option value="Unofficial"/>
+ <wadl:option value="Official"/>
+ <wadl:option value="Broken"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="whiteboard" path="$['whiteboard']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Whiteboard</p>
+<p>Notes on the current status of the mirror (only visible to admins and the mirror's registrant).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="distribution_mirror-page-resource">
+ <wadl:method name="GET" id="distribution_mirror-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#distribution_mirror-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="distribution_mirror-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#distribution_mirror-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#distribution_mirror-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution_mirror"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="distribution_source_package">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Represents a source package in a distribution.</p>
+<p>Create IDistributionSourcePackages by invoking
+IDistribution.getSourcePackage().</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="distribution_source_package-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution_source_package-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="distribution_source_package-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="distribution_source_package-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="distribution_source_package-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution_source_package-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="distribution_source_package-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution_source_package-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="distribution_source_package-userHasBugSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is user subscribed, directly or via a team, to bug mail?
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="userHasBugSubscriptions"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="distribution_source_package-getSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return all the subscriptions with the specified levels.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A sequence of IStructuralSubscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscriptions"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution_source_package-getSubscription" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the subscription for person, if it exists.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscription"/>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution_source_package-searchTasks" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search the IBugTasks reported on this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">search_params:</th><td class="rst-field-body">a BugTaskSearchParams object</td>
+</tr>
+</tbody>
+</table>
+<p>Return an iterable of matching results.</p>
+<p>Note: milestone is currently ignored for all IBugTargets
+except IProduct.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchTasks"/>
+ <wadl:param style="query" name="bug_reporter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_cve" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs associated with a CVE
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_targeted" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs targeted to a series
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status_upstream" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status upstream</p>
+<p>Indicates the status of any remote watches associated with the bug. Possible values include: pending_bugwatch, hide_upstream, resolved_upstream, and open_upstream.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>String or list of strings for tags to search. To exclude, prepend a '-', e.g. '-unwantedtag'</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_duplicates" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs marked as duplicate,
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="nominated_for" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been modified since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="structural_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been created since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_patch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs with patches available.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_commenter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="assignee" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only bugs with the given status value or list of values.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="affected_user" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID or search text.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of fields by which the results are ordered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="tags_combinator" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags combination</p>
+<p>Search for any or all of the tags specified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Any"/>
+ <wadl:option value="All"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Component</p>
+<p>Distribution package archive grouping. E.g. main, universe, multiverse</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="importance" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Importance</p>
+<p>Show only bugs with the given importance or list of importances.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>Show only bugs with the given information type or list of information types.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that were created before the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="milestone" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone</p>
+<p>Show only bug tasks targeted to this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="linked_branches" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that are linked to branches or for bugs that are not linked to branches.
+</wadl:doc>
+
+ <wadl:option value="Show all bugs"/>
+ <wadl:option value="Show only Bugs with linked Branches"/>
+ <wadl:option value="Show only Bugs without linked Branches"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_no_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Exclude bugs with packages specified
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution_source_package-getBranches" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Returns all branches with the given lifecycle status.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">A list of statuses to filter with.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param visible_by_user:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Normally the user who is asking.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param modified_since:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If set, filters the branches being returned
+to those that have been modified since the specified date/time.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param eager_load:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True load related objects for the whole
+collection.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">A list of IBranch.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBranches"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of branch lifecycle statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Limit the branches to those modified since this date.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution_source_package-getMergeProposals" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Returns all merge proposals of a given status.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">A list of statuses to filter with.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param visible_by_user:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Normally the user who is asking.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param eager_load:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True, load related objects for the whole
+collection.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">A list of IBranchMergeProposal.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getMergeProposals"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of merge proposal statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_merge_proposal-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution_source_package-addBugSubscriptionFilter" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription filter for this structure.</p>
+<p>This method is used to create a new IBugSubscriptionFilter for the
+target. It will initially allow all notifications to be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription filter.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscriptionFilter"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription_filter"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution_source_package-addBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription for this structure.</p>
+<p>This method is used to create a new IStructuralSubscription for the
+target. This initially has a single filter which will allow all
+notifications will be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution_source_package-newCodeImport" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create a new code import.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param registrant:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The IPerson to record as the registrant of the
+import.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param branch_name:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The name of the branch or repository to create.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param rcs_type:</th><td class="rst-field-body">The type of the foreign VCS.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param target_rcs_type:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The type of the branch or repository to
+create (Bazaar or Git).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param url:</th><td class="rst-field-body">The URL to import from if the VCS type uses a single URL
+(i.e. isn't CVS).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param cvs_root:</th><td class="rst-field-body">The CVSROOT for a CVS import.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param cvs_module:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The module to import for a CVS import.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param owner:</th><td class="rst-field-body">Who should own the created branch or repository, or
+None for it to be the same as the registrant, or the caller over
+the API.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">An instance of ICodeImport.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="newCodeImport"/>
+ <wadl:param style="query" name="target_rcs_type" required="false">
+
+
+ <wadl:option value="Bazaar"/>
+ <wadl:option value="Git"/>
+ </wadl:param>
+ <wadl:param style="query" name="cvs_root" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+CVS root URL
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="url" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Foreign VCS URL
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Owner of the resulting branch
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="rcs_type" required="false">
+
+
+ <wadl:option value="Concurrent Versions System"/>
+ <wadl:option value="Subversion via CSCVS"/>
+ <wadl:option value="Subversion via bzr-svn"/>
+ <wadl:option value="Git"/>
+ <wadl:option value="Mercurial"/>
+ <wadl:option value="Bazaar"/>
+ </wadl:param>
+ <wadl:param style="query" name="cvs_module" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+CVS module to import
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="branch_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Name of branch to create
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_import"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distribution_source_package-removeBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remove a subscription to bugs from this structure.</p>
+<p>This will delete all associated filters.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be unsubscribed. If omitted,
+unsubscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">unsubscribed_by:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The IPerson removing the subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="removeBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to unsubscribe. If omitted, the requesting user will be unsubscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="distribution_source_package-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution_source_package"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Helpful guidelines for reporting a bug</p>
+<p>These guidelines will be shown to everyone reporting a bug and should be text or a bulleted list with your particular requirements, if any.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Display name for this package.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The distribution.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The source package name as text
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_bug_tags" path="$['official_bug_tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Official Bug Tags</p>
+<p>The list of bug tags defined as official.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Title for this package.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="upstream_product_link" path="$['upstream_product_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The upstream product to which this package is linked.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="distribution_source_package-diff">
+ <wadl:param style="plain" required="false" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Helpful guidelines for reporting a bug</p>
+<p>These guidelines will be shown to everyone reporting a bug and should be text or a bulleted list with your particular requirements, if any.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The distribution.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="distribution_source_package-page-resource">
+ <wadl:method name="GET" id="distribution_source_package-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#distribution_source_package-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="distribution_source_package-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#distribution_source_package-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#distribution_source_package-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution_source_package"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="distro_arch_series">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+An architecture for a distroseries.
+</wadl:doc>
+ <wadl:method name="GET" id="distro_arch_series-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_arch_series-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="distro_arch_series-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="distro_arch_series-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="distro_arch_series-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_arch_series-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="distro_arch_series-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_arch_series-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="distro_arch_series-getBuildRecords" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return build records in the context it is implemented.</p>
+<p>It excludes build records generated by Gina (imported from a external
+repository), where IBuild.datebuilt is null and IBuild.buildstate
+is BuildStatus.FULLYBUILT.</p>
+<p>The result is simply not filtered if the optional filters are omitted
+by call sites.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param build_state:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">optional BuildStatus value for filtering build
+records;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">optional string for filtering build source package name.
+Sub-string matching is allowed via SQL LIKE.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param pocket:</th><td class="rst-field-body">optional PackagePublishingPocket value for filtering
+build records;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param arch_tag:</th><td class="rst-field-body">optional string for filtering build source packages
+by their architecture tag;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param user:</th><td class="rst-field-body">optional IPerson corresponding to the user performing
+the request. It will filter out build records for which the user
+have no 'view' permission.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param binary_only:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">optional boolean indicating whether only
+BinaryPackageBuild objects should be returned, or more general
+PackageBuild objects (which may include, for example,
+SourcePackageRecipeBuild objects.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a result set containing IPackageBuild records ordered by
+descending IPackageBuild.date_finished except when builds are
+filtered by BuildStatus.NEEDSBUILD, in this case records
+are ordered by descending BuildQueue.lastscore
+(dispatching order).</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBuildRecords"/>
+ <wadl:param style="query" name="build_state" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build status</p>
+<p>The status of this build record</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="query" name="pocket" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The pocket into which this entry is published</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="query" name="source_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#build-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="distro_arch_series-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_arch_series"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="architecture_tag" path="$['architecture_tag']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Architecture Tag</p>
+<p>The architecture tag, or short piece of text that identifies this architecture. All binary packages in the archive will use this tag in their filename. Please get it correct. It should really never be changed!</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="chroot_url" path="$['chroot_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build chroot URL</p>
+<p>The URL to the current build chroot for this distroarchseries.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display name</p>
+<p>The display name of this distroarchseries.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distroseries_link" path="$['distroseries_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The context distroseries
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_nominated_arch_indep" path="$['is_nominated_arch_indep']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Is Nominated Arch Independent</p>
+<p>True if this distroarchseries is the NominatedArchIndep one.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="main_archive_link" path="$['main_archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Main Archive</p>
+<p>The main archive of the distroarchseries.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official" path="$['official']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Official Support</p>
+<p>Indicate whether or not this port has official support from the vendor of the distribution.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The person who registered this port.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="package_count" path="$['package_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Package Count</p>
+<p>A cache of the number of packages published in the RELEASE pocket of this port.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="processor_link" path="$['processor_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Processor
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#processor"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="supports_virtualized" path="$['supports_virtualized']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>PPA support available</p>
+<p>Indicate whether or not this port has support for building PPA packages.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>The title of this distroarchseries.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="distro_arch_series-diff">
+ <wadl:param style="plain" required="false" name="architecture_tag" path="$['architecture_tag']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Architecture Tag</p>
+<p>The architecture tag, or short piece of text that identifies this architecture. All binary packages in the archive will use this tag in their filename. Please get it correct. It should really never be changed!</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display name</p>
+<p>The display name of this distroarchseries.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distroseries_link" path="$['distroseries_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The context distroseries
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="is_nominated_arch_indep" path="$['is_nominated_arch_indep']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Is Nominated Arch Independent</p>
+<p>True if this distroarchseries is the NominatedArchIndep one.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="main_archive_link" path="$['main_archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Main Archive</p>
+<p>The main archive of the distroarchseries.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="official" path="$['official']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Official Support</p>
+<p>Indicate whether or not this port has official support from the vendor of the distribution.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The person who registered this port.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="package_count" path="$['package_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Package Count</p>
+<p>A cache of the number of packages published in the RELEASE pocket of this port.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>The title of this distroarchseries.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="distro_arch_series-page-resource">
+ <wadl:method name="GET" id="distro_arch_series-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#distro_arch_series-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="distro_arch_series-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#distro_arch_series-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#distro_arch_series-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_arch_series"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="distro_arch_series_filter">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>A filter for packages to be included in or excluded from a DAS.</p>
+<p>Since package sets can include other package sets, a single package set
+is flexible enough for this. However, one might reasonably want to
+either include some packages (&quot;this architecture is obsolescent or
+experimental and we only want to build a few packages for it&quot;) or
+exclude some packages (&quot;this architecture can't handle some packages so
+we want to make them go away centrally&quot;).</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="distro_arch_series_filter-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_arch_series_filter-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="distro_arch_series_filter-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="distro_arch_series_filter-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="distro_arch_series_filter-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_arch_series_filter-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="distro_arch_series_filter-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_arch_series_filter-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="distro_arch_series_filter-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_arch_series_filter"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="creator_link" path="$['creator_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Creator</p>
+<p>The user who created this filter.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date created</p>
+<p>The time when this filter was created.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_modified" path="$['date_last_modified']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date last modified</p>
+<p>The time when this filter was last modified.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distroarchseries_link" path="$['distroarchseries_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distro arch series</p>
+<p>The distro arch series that this filter is for.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_arch_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="packageset_link" path="$['packageset_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Package set</p>
+<p>The package set to be included in or excluded from this distro arch series.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#packageset"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="sense" path="$['sense']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Sense</p>
+<p>Whether the filter represents packages to include or exclude from the distro arch series.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Include"/>
+ <wadl:option value="Exclude"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="distro_arch_series_filter-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="distro_arch_series_filter-page-resource">
+ <wadl:method name="GET" id="distro_arch_series_filter-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#distro_arch_series_filter-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="distro_arch_series_filter-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#distro_arch_series_filter-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#distro_arch_series_filter-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_arch_series_filter"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="distro_series_difference_comment">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A comment for a distroseries difference record.
+</wadl:doc>
+ <wadl:method name="GET" id="distro_series_difference_comment-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_series_difference_comment-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="distro_series_difference_comment-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="distro_series_difference_comment-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="distro_series_difference_comment-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_series_difference_comment-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="distro_series_difference_comment-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_series_difference_comment-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="distro_series_difference_comment-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series_difference_comment"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="body_text" path="$['body_text']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Comment text</p>
+<p>The comment text for the related distro series difference.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="comment_author_link" path="$['comment_author_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The author of the comment.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="comment_date" path="$['comment_date']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Comment date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="source_package_name" path="$['source_package_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source package name</p>
+<p>Name of the source package that this comment is for.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="distro_series_difference_comment-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="distro_series_difference_comment-page-resource">
+ <wadl:method name="GET" id="distro_series_difference_comment-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#distro_series_difference_comment-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="distro_series_difference_comment-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#distro_series_difference_comment-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#distro_series_difference_comment-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series_difference_comment"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="distro_series_difference">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+An interface for a package difference between two distroseries.
+</wadl:doc>
+ <wadl:method name="GET" id="distro_series_difference-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_series_difference-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="distro_series_difference-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="distro_series_difference-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="distro_series_difference-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_series_difference-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="distro_series_difference-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_series_difference-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="distro_series_difference-unblocklist" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Removes this difference from the blocklist and adds a comment on
+this difference.</p>
+<p>The status will be updated based on the versions.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param commenter:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The requestor IPerson.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param comment:</th><td class="rst-field-body">The comment string.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The created DistroSeriesDifferenceComment object.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="unblocklist"/>
+ <wadl:param style="query" name="comment" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Comment text
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="distro_series_difference-blocklist" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Blocklists this version or all versions of this source package and
+adds a comment on this difference.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param commenter:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The requestor IPerson.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param comment:</th><td class="rst-field-body">The comment string.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param all:</th><td class="rst-field-body">Indicates whether all versions of this package should
+be blocklisted or just the current (default).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The created DistroSeriesDifferenceComment object.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="blocklist"/>
+ <wadl:param style="query" name="all" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="comment" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Comment text
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="distro_series_difference-requestPackageDiffs" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Requests IPackageDiffs for the derived and parent version.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">raises DistroSeriesDifferenceError:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">When package diffs
+cannot be requested.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="requestPackageDiffs"/>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="distro_series_difference-addComment" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Add a comment on this difference.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addComment"/>
+ <wadl:param style="query" name="comment" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Comment text
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="distro_series_difference-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series_difference"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="base_version" path="$['base_version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Base version</p>
+<p>The common base version of the package for differences with different versions in the parent and derived series.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="derived_series_link" path="$['derived_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Derived series</p>
+<p>The distribution series which identifies the derived series with the difference.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="package_diff_status" path="$['package_diff_status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Package diff status</p>
+<p>The status of the diff between the base version and the derived version.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Pending"/>
+ <wadl:option value="Completed"/>
+ <wadl:option value="Failed"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="package_diff_url" path="$['package_diff_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Package diff url</p>
+<p>The url for the diff between the base version and the derived version.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="parent_package_diff_status" path="$['parent_package_diff_status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Parent package diff status</p>
+<p>The status of the diff between the base version and the parent version.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Pending"/>
+ <wadl:option value="Completed"/>
+ <wadl:option value="Failed"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="parent_package_diff_url" path="$['parent_package_diff_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Parent package diff url</p>
+<p>The url for the diff between the base version and the parent version.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="parent_series_link" path="$['parent_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Parent series</p>
+<p>The distribution series which identifies the parent series with the difference.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="parent_source_version" path="$['parent_source_version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Parent source version</p>
+<p>The version of the most recent source publishing in the parent series.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="source_version" path="$['source_version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source version</p>
+<p>The version of the most recent source publishing in the derived series.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="sourcepackagename" path="$['sourcepackagename']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source Package Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distro series difference status.</p>
+<p>The current status of this difference.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs attention"/>
+ <wadl:option value="Blocklisted current version"/>
+ <wadl:option value="Blocklisted always"/>
+ <wadl:option value="Resolved"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="distro_series_difference-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="distro_series_difference-page-resource">
+ <wadl:method name="GET" id="distro_series_difference-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#distro_series_difference-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="distro_series_difference-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#distro_series_difference-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#distro_series_difference-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series_difference"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="distro_series">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A series of an operating system distribution.
+</wadl:doc>
+ <wadl:method name="GET" id="distro_series-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_series-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="distro_series-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="distro_series-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="distro_series-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_series-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="distro_series-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_series-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="distro_series-getBuildRecords" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return build records in the context it is implemented.</p>
+<p>It excludes build records generated by Gina (imported from a external
+repository), where IBuild.datebuilt is null and IBuild.buildstate
+is BuildStatus.FULLYBUILT.</p>
+<p>The result is simply not filtered if the optional filters are omitted
+by call sites.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param build_state:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">optional BuildStatus value for filtering build
+records;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">optional string for filtering build source package name.
+Sub-string matching is allowed via SQL LIKE.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param pocket:</th><td class="rst-field-body">optional PackagePublishingPocket value for filtering
+build records;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param arch_tag:</th><td class="rst-field-body">optional string for filtering build source packages
+by their architecture tag;</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param user:</th><td class="rst-field-body">optional IPerson corresponding to the user performing
+the request. It will filter out build records for which the user
+have no 'view' permission.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param binary_only:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">optional boolean indicating whether only
+BinaryPackageBuild objects should be returned, or more general
+PackageBuild objects (which may include, for example,
+SourcePackageRecipeBuild objects.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a result set containing IPackageBuild records ordered by
+descending IPackageBuild.date_finished except when builds are
+filtered by BuildStatus.NEEDSBUILD, in this case records
+are ordered by descending BuildQueue.lastscore
+(dispatching order).</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBuildRecords"/>
+ <wadl:param style="query" name="build_state" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build status</p>
+<p>The status of this build record</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="query" name="pocket" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The pocket into which this entry is published</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="query" name="source_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source package name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#build-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distro_series-userHasBugSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is user subscribed, directly or via a team, to bug mail?
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="userHasBugSubscriptions"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="distro_series-searchTasks" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search the IBugTasks reported on this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">search_params:</th><td class="rst-field-body">a BugTaskSearchParams object</td>
+</tr>
+</tbody>
+</table>
+<p>Return an iterable of matching results.</p>
+<p>Note: milestone is currently ignored for all IBugTargets
+except IProduct.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchTasks"/>
+ <wadl:param style="query" name="bug_reporter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_cve" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs associated with a CVE
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_targeted" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs targeted to a series
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status_upstream" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status upstream</p>
+<p>Indicates the status of any remote watches associated with the bug. Possible values include: pending_bugwatch, hide_upstream, resolved_upstream, and open_upstream.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>String or list of strings for tags to search. To exclude, prepend a '-', e.g. '-unwantedtag'</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_duplicates" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs marked as duplicate,
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="nominated_for" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been modified since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="structural_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been created since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_patch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs with patches available.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_commenter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="assignee" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only bugs with the given status value or list of values.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="affected_user" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID or search text.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of fields by which the results are ordered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="tags_combinator" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags combination</p>
+<p>Search for any or all of the tags specified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Any"/>
+ <wadl:option value="All"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Component</p>
+<p>Distribution package archive grouping. E.g. main, universe, multiverse</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="importance" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Importance</p>
+<p>Show only bugs with the given importance or list of importances.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>Show only bugs with the given information type or list of information types.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that were created before the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="milestone" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone</p>
+<p>Show only bug tasks targeted to this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="linked_branches" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that are linked to branches or for bugs that are not linked to branches.
+</wadl:doc>
+
+ <wadl:option value="Show all bugs"/>
+ <wadl:option value="Show only Bugs with linked Branches"/>
+ <wadl:option value="Show only Bugs without linked Branches"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_no_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Exclude bugs with packages specified
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distro_series-getSubscription" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the subscription for person, if it exists.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscription"/>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distro_series-getDistroArchSeries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the distroarchseries for this distroseries with the
+given architecturetag.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getDistroArchSeries"/>
+ <wadl:param style="query" name="archtag" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The architecture tag
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_arch_series-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distro_series-getPackageUploads" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get package upload records for this distribution series.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">Filter results by this PackageUploadStatus, or list
+of statuses.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param created_since_date:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If specified, only returns items uploaded
+since the timestamp supplied.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param archive:</th><td class="rst-field-body">Filter results for this IArchive.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param pocket:</th><td class="rst-field-body">Filter results by this PackagePublishingPocket or a
+list of PackagePublishingPocket.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param custom_type:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Filter results by this
+PackageUploadCustomFormat.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">Filter results by this file name or package name.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param version:</th><td class="rst-field-body">Filter results by this version number string.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param exact_match:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True, look for exact string matches on the
+name and version filters. If False, look for a substring
+match so that e.g. a package &quot;kspreadsheetplusplus&quot; would match
+the search string &quot;spreadsheet&quot;. Defaults to False.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A result set containing IPackageUpload.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getPackageUploads"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Package Upload Status</p>
+<p>Return only items that have this status.</p>
+
+</wadl:doc>
+
+ <wadl:option value="New"/>
+ <wadl:option value="Unapproved"/>
+ <wadl:option value="Accepted"/>
+ <wadl:option value="Done"/>
+ <wadl:option value="Rejected"/>
+ </wadl:param>
+ <wadl:param style="query" name="archive" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Archive</p>
+<p>Return only items for this archive.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="query" name="exact_match" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Exact match</p>
+<p>Whether to filter name and version by exact matching.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="version" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Package version
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_since_date" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Created Since Timestamp</p>
+<p>Return items that are more recent than this timestamp.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="pocket" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>Return only items targeted to this pocket</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="query" name="custom_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Custom Type</p>
+<p>Return only items with custom files of this type.</p>
+
+</wadl:doc>
+
+ <wadl:option value="raw-installer"/>
+ <wadl:option value="raw-translations"/>
+ <wadl:option value="raw-dist-upgrader"/>
+ <wadl:option value="raw-ddtp-tarball"/>
+ <wadl:option value="raw-translations-static"/>
+ <wadl:option value="meta-data"/>
+ <wadl:option value="uefi"/>
+ <wadl:option value="signing"/>
+ </wadl:param>
+ <wadl:param style="query" name="name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Package or file name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#package_upload-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distro_series-getSourcePackage" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return a source package in this distro series by name.</p>
+<p>The name given may be a string or an ISourcePackageName-providing
+object. The source package may not be published in the distro series.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSourcePackage"/>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The name of the source package
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distro_series-getTranslationTemplates" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return an iterator over all its translation templates.</p>
+<p>The returned templates are either obsolete or current.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A sequence of IPOTemplate.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getTranslationTemplates"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_template-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distro_series-getTranslationImportQueueEntries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return entries in the translation import queue for this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg import_status:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">RosettaImportStatus DB Schema entry.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg file_extension:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">String with the file type extension, usually 'po'
+or 'pot'.</td>
+</tr>
+</tbody>
+</table>
+<p>If one of both of 'import_status' or 'file_extension' are given, the
+returned entries are filtered based on those values.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getTranslationImportQueueEntries"/>
+ <wadl:param style="query" name="file_extension" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Filename extension</p>
+<p>Show only entries with this filename suffix</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="import_status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only entries with this status</p>
+
+</wadl:doc>
+
+ <wadl:option value="Approved"/>
+ <wadl:option value="Imported"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Failed"/>
+ <wadl:option value="Needs Review"/>
+ <wadl:option value="Blocked"/>
+ <wadl:option value="Needs Information"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_import_queue_entry-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distro_series-getParentSeries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Get all parent DistroSeries.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getParentSeries"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_series-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distro_series-getSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return all the subscriptions with the specified levels.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A sequence of IStructuralSubscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscriptions"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distro_series-getDerivedSeries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Get all DistroSeries derived from this one.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getDerivedSeries"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#distro_series-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distro_series-addBugSubscriptionFilter" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription filter for this structure.</p>
+<p>This method is used to create a new IBugSubscriptionFilter for the
+target. It will initially allow all notifications to be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription filter.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscriptionFilter"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription_filter"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distro_series-initDerivedDistroSeries" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Initialize this series from parents.</p>
+<p>This method performs checks and then creates a job to populate
+the new distroseries.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param parents:</th><td class="rst-field-body">The list of parent ids this series will derive
+from.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param architectures:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The architectures to copy to the derived
+series. If not specified, all of the architectures are copied.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param archindep_archtag:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The architecture tag used to build
+architecture-independent packages. If not specified, one from
+the parents' will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param packagesets:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The packagesets to copy to the derived series.
+If not specified, all of the packagesets are copied.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param rebuild:</th><td class="rst-field-body">Whether binaries will be copied to the derived
+series. If it's true, they will not be, and if it's false, they
+will be.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param overlays:</th><td class="rst-field-body">A list of booleans indicating, for each parent, if
+the parent/child relationship should be an overlay.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param overlay_pockets:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The list of pockets names to use for overlay
+relationships.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param overlay_components:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The list of components names to use for
+overlay relationships.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="initDerivedDistroSeries"/>
+ <wadl:param style="query" name="packagesets" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The list of packagesets to copy to the derived distroseries
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="overlay_pockets" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The list of overlay pockets.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="overlays" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The list of booleans indicating, for each parent, if the parent/child relationship should be an overlay.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="archindep_archtag" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Architecture tag to build architecture-independent packages.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="rebuild" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+If binaries will be copied to the derived distroseries.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="architectures" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The list of architectures to copy to the derived distroseries.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="overlay_components" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The list of overlay components.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="parents" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The list of parents to derive from.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="distro_series-newMilestone" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Create a new milestone for this DistroSeries.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="newMilestone"/>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>Only letters, numbers, and simple punctuation are allowed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="date_targeted" required="false" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Targeted</p>
+<p>Example: 2005-11-24</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="summary" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A summary of the features and status of this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="code_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Code name</p>
+<p>An alternative name for the milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="distro_series-removeBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remove a subscription to bugs from this structure.</p>
+<p>This will delete all associated filters.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be unsubscribed. If omitted,
+unsubscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">unsubscribed_by:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The IPerson removing the subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="removeBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to unsubscribe. If omitted, the requesting user will be unsubscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="distro_series-addBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription for this structure.</p>
+<p>This method is used to create a new IStructuralSubscription for the
+target. This initially has a single filter which will allow all
+notifications will be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="distro_series-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this series is stable and supported, or under current development. This excludes series which are experimental or obsolete.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active_milestones_collection_link" path="$['active_milestones_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The visible and active milestones associated with this object, ordered by date expected.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="advertise_by_hash" path="$['advertise_by_hash']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Advertise by-hash directories</p>
+<p>Advertise by-hash directories with a flag in the Release file so
+that apt uses them by default. Only effective if
+publish_by_hash is also set.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="all_milestones_collection_link" path="$['all_milestones_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All milestones associated with this object, ordered by date expected.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="architectures_collection_link" path="$['architectures_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Enabled architectures</p>
+<p>All architectures in this series with the 'enabled' flag set.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_arch_series-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Helpful guidelines for reporting a bug</p>
+<p>These guidelines will be shown to everyone reporting a bug and should be text or a bulleted list with your particular requirements, if any.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="changeslist" path="$['changeslist']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Email changes to</p>
+<p>The mailing list or other email address that Launchpad should notify about new uploads.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="component_names" path="$['component_names']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The series component names
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date this series was registered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datereleased" path="$['datereleased']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date released
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A detailed description of this series, with information on the architectures covered, the availability of security updates and any other relevant information.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="displayname" path="$['displayname']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display name</p>
+<p>The series displayname.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution</p>
+<p>The distribution for which this is a series.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="driver_link" path="$['driver_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Driver</p>
+<p>The person or team responsible for decisions about features and bugs that will be targeted to this series of the distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="drivers_collection_link" path="$['drivers_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of the people or teams who are drivers for this series. This list is made up of any drivers or owners from this series and the parent drivers.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="fullseriesname" path="$['fullseriesname']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Series full name</p>
+<p>The series full name, e.g. Ubuntu Warty</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="include_long_descriptions" path="$['include_long_descriptions']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Include long descriptions in Packages rather than in Translation-en</p>
+<p>If True, write long descriptions to the per-architecture
+Packages files; if False, write them to a Translation-en
+file common across architectures instead. Using a common
+file reduces the bandwidth footprint of enabling multiarch
+on clients, which requires downloading Packages files for
+multiple architectures.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="index_compressors" path="$['index_compressors']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Compression types to use for published index files</p>
+<p>A list of compression types to use for published index files
+(Packages, Sources, etc.).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="language_pack_full_export_requested" path="$['language_pack_full_export_requested']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Request a full language pack export</p>
+<p>Whether next language pack generation will be a full export. This
+information is useful when update packs are too big and want to
+merge all those changes in the base pack.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="main_archive_link" path="$['main_archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Distribution Main Archive
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of this series.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="nominatedarchindep_link" path="$['nominatedarchindep_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+DistroArchSeries designed to build architecture-independent packages whithin this distroseries context.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_arch_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_bug_tags" path="$['official_bug_tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Official Bug Tags</p>
+<p>The list of bug tags defined as official.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owning team of the derived series</p>
+<p>This attribute mirrors the owner of the distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="parent_series_link" path="$['parent_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Parent series</p>
+<p>The series from which this one was branched.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="publish_by_hash" path="$['publish_by_hash']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Publish by-hash directories</p>
+<p>Publish archive index files in by-hash directories so that apt
+can retrieve them based on their hash, avoiding race conditions
+between InRelease and other files during mirror updates.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Registrant
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="Experimental"/>
+ <wadl:option value="Active Development"/>
+ <wadl:option value="Pre-release Freeze"/>
+ <wadl:option value="Current Stable Release"/>
+ <wadl:option value="Supported"/>
+ <wadl:option value="Obsolete"/>
+ <wadl:option value="Future"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="suite_names" path="$['suite_names']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The series pocket names
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A single paragraph that explains the goals of of this series and the intended users. For example: &quot;The 2.0 series of Apache represents the current stable series, and is recommended for all new deployments&quot;.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="supported" path="$['supported']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Supported</p>
+<p>Whether or not this series is currently supported.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>The title of this series. It should be distinctive and designed to look good at the top of a page.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="version" path="$['version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Version</p>
+<p>The version string for this series.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="distro_series-diff">
+ <wadl:param style="plain" required="false" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this series is stable and supported, or under current development. This excludes series which are experimental or obsolete.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="advertise_by_hash" path="$['advertise_by_hash']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Advertise by-hash directories</p>
+<p>Advertise by-hash directories with a flag in the Release file so
+that apt uses them by default. Only effective if
+publish_by_hash is also set.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Helpful guidelines for reporting a bug</p>
+<p>These guidelines will be shown to everyone reporting a bug and should be text or a bulleted list with your particular requirements, if any.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="changeslist" path="$['changeslist']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Email changes to</p>
+<p>The mailing list or other email address that Launchpad should notify about new uploads.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date this series was registered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="datereleased" path="$['datereleased']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date released
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A detailed description of this series, with information on the architectures covered, the availability of security updates and any other relevant information.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="displayname" path="$['displayname']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display name</p>
+<p>The series displayname.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution</p>
+<p>The distribution for which this is a series.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="driver_link" path="$['driver_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Driver</p>
+<p>The person or team responsible for decisions about features and bugs that will be targeted to this series of the distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="fullseriesname" path="$['fullseriesname']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Series full name</p>
+<p>The series full name, e.g. Ubuntu Warty</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="include_long_descriptions" path="$['include_long_descriptions']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Include long descriptions in Packages rather than in Translation-en</p>
+<p>If True, write long descriptions to the per-architecture
+Packages files; if False, write them to a Translation-en
+file common across architectures instead. Using a common
+file reduces the bandwidth footprint of enabling multiarch
+on clients, which requires downloading Packages files for
+multiple architectures.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="index_compressors" path="$['index_compressors']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Compression types to use for published index files</p>
+<p>A list of compression types to use for published index files
+(Packages, Sources, etc.).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="language_pack_full_export_requested" path="$['language_pack_full_export_requested']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Request a full language pack export</p>
+<p>Whether next language pack generation will be a full export. This
+information is useful when update packs are too big and want to
+merge all those changes in the base pack.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="main_archive_link" path="$['main_archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Distribution Main Archive
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of this series.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="nominatedarchindep_link" path="$['nominatedarchindep_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+DistroArchSeries designed to build architecture-independent packages whithin this distroseries context.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_arch_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="publish_by_hash" path="$['publish_by_hash']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Publish by-hash directories</p>
+<p>Publish archive index files in by-hash directories so that apt
+can retrieve them based on their hash, avoiding race conditions
+between InRelease and other files during mirror updates.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Registrant
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="Experimental"/>
+ <wadl:option value="Active Development"/>
+ <wadl:option value="Pre-release Freeze"/>
+ <wadl:option value="Current Stable Release"/>
+ <wadl:option value="Supported"/>
+ <wadl:option value="Obsolete"/>
+ <wadl:option value="Future"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A single paragraph that explains the goals of of this series and the intended users. For example: &quot;The 2.0 series of Apache represents the current stable series, and is recommended for all new deployments&quot;.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="supported" path="$['supported']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Supported</p>
+<p>Whether or not this series is currently supported.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>The title of this series. It should be distinctive and designed to look good at the top of a page.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="version" path="$['version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Version</p>
+<p>The version string for this series.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="distro_series-page-resource">
+ <wadl:method name="GET" id="distro_series-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#distro_series-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="distro_series-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#distro_series-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#distro_series-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="email_address">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The object that stores the IPerson's emails.
+</wadl:doc>
+ <wadl:method name="GET" id="email_address-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#email_address-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="email_address-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="email_address-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="email_address-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#email_address-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="email_address-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#email_address-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="email_address-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#email_address"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="email" path="$['email']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Email Address
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="person_link" path="$['person_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="email_address-diff">
+ <wadl:param style="plain" required="false" name="person_link" path="$['person_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="email_address-page-resource">
+ <wadl:method name="GET" id="email_address-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#email_address-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="email_address-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#email_address-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#email_address-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#email_address"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="faq">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>A document containing the answer to a commonly asked question.</p>
+<p>The answer can be in the document itself or can be hosted on a separate
+web site and referred to by URL.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="faq-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#faq-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="faq-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="faq-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="faq-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#faq-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="faq-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#faq-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="faq-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#faq"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="faq-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="faq-page-resource">
+ <wadl:method name="GET" id="faq-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#faq-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="faq-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#faq-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#faq-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#faq"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="faq_target">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+An object that can contain a FAQ document.
+</wadl:doc>
+ <wadl:method name="GET" id="faq_target-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#faq_target-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="faq_target-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="faq_target-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="faq_target-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#faq_target-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="faq_target-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#faq_target-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="faq_target-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#faq_target"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="faq_target-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="faq_target-page-resource">
+ <wadl:method name="GET" id="faq_target-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#faq_target-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="faq_target-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#faq_target-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#faq_target-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#faq_target"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="gpg_key">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+OpenPGP support
+</wadl:doc>
+ <wadl:method name="GET" id="gpg_key-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#gpg_key-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="gpg_key-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="gpg_key-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="gpg_key-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#gpg_key-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="gpg_key-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#gpg_key-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="gpg_key-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#gpg_key"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="fingerprint" path="$['fingerprint']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+User Fingerprint
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="keyid" path="$['keyid']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+OpenPGP key ID
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="gpg_key-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="gpg_key-page-resource">
+ <wadl:method name="GET" id="gpg_key-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#gpg_key-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="gpg_key-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#gpg_key-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#gpg_key-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#gpg_key"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="git_ref">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A reference in a Git repository.
+</wadl:doc>
+ <wadl:method name="GET" id="git_ref-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#git_ref-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="git_ref-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="git_ref-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="git_ref-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#git_ref-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="git_ref-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#git_ref-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="git_ref-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_ref"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="commit_sha1" path="$['commit_sha1']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Commit SHA-1</p>
+<p>The full SHA-1 object name of the commit object referenced by this reference.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="dependent_landings_collection_link" path="$['dependent_landings_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependent landings</p>
+<p>A collection of the merge proposals that are dependent on this reference.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="landing_candidates_collection_link" path="$['landing_candidates_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Landing candidates</p>
+<p>A collection of the merge proposals where this reference is the target.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="landing_targets_collection_link" path="$['landing_targets_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Landing targets</p>
+<p>A collection of the merge proposals where this reference is the source.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="path" path="$['path']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Path</p>
+<p>The full path of this reference, e.g. refs/heads/master.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="recipes_collection_link" path="$['recipes_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All recipes associated with the object.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="repository_link" path="$['repository_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Repository</p>
+<p>The Git repository containing this reference.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_repository"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="git_ref-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="git_ref-page-resource">
+ <wadl:method name="GET" id="git_ref-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#git_ref-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="git_ref-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#git_ref-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#git_ref-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_ref"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="git_repository">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A Git repository.
+</wadl:doc>
+ <wadl:method name="GET" id="git_repository-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#git_repository-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="git_repository-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="git_repository-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="git_repository-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#git_repository-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="git_repository-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#git_repository-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="git_repository-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_repository"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="branches_collection_link" path="$['branches_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The branch references present in this repository.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_ref-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="code_import_link" path="$['code_import_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The associated CodeImport, if any.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_import"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_modified" path="$['date_last_modified']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date last modified
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_repacked" path="$['date_last_repacked']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date last repacked</p>
+<p>The date that this repository was last repacked.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_scanned" path="$['date_last_scanned']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date last scanned</p>
+<p>The date when pack statistics were last updated for this repository.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="default_branch" path="$['default_branch']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Default branch</p>
+<p>The full path to the default branch for this repository, e.g. refs/heads/master.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="dependent_landings_collection_link" path="$['dependent_landings_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependent landings</p>
+<p>A collection of the merge proposals that are dependent on this repository.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A short description of this repository.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display name</p>
+<p>Display name of the repository.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="git_https_url" path="$['git_https_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>HTTPS URL</p>
+<p>An HTTPS URL for this repository, or None in the case of private repositories.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="git_identity" path="$['git_identity']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Git identity</p>
+<p>If this is the default repository for some target, then this is 'lp:' plus a shortcut version of the path via that target. Otherwise it is simply 'lp:' plus the unique name.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="git_ssh_url" path="$['git_ssh_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>SSH URL</p>
+<p>A git+ssh:// URL for this repository.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="id" path="$['id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+ID
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="information_type" path="$['information_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information type</p>
+<p>The type of information contained in this repository.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Public Security"/>
+ <wadl:option value="Private Security"/>
+ <wadl:option value="Private"/>
+ <wadl:option value="Proprietary"/>
+ <wadl:option value="Embargoed"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="landing_candidates_collection_link" path="$['landing_candidates_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Landing candidates</p>
+<p>A collection of the merge proposals where this repository is the target.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="landing_targets_collection_link" path="$['landing_targets_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Landing targets</p>
+<p>A collection of the merge proposals where this repository is the source.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="loose_object_count" path="$['loose_object_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Loose object count</p>
+<p>The number of loose objects for this repository.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The repository name. Keep very short, unique, and descriptive, because it will be used in URLs.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The owner of this Git repository. This controls who can modify the repository.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_default" path="$['owner_default']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner default</p>
+<p>Whether this repository is the default for its owner and target.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pack_count" path="$['pack_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pack count</p>
+<p>The number of packs for this repository.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="private" path="$['private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Private</p>
+<p>This repository is visible only to its subscribers.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="recipes_collection_link" path="$['recipes_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All recipes associated with the object.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="refs_collection_link" path="$['refs_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The references present in this repository.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_ref-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registrant</p>
+<p>The person who registered this Git repository.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="repository_type" path="$['repository_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Repository type</p>
+<p>The way this repository is hosted: directly on Launchpad, or imported from somewhere else.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Hosted"/>
+ <wadl:option value="Imported"/>
+ <wadl:option value="Remote"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="reviewer_link" path="$['reviewer_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Review Team</p>
+<p>The reviewer of a repository is the person or exclusive team that is responsible for reviewing proposals and merging into this repository.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="subscribers_collection_link" path="$['subscribers_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Persons subscribed to this repository.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="subscriptions_collection_link" path="$['subscriptions_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+GitSubscriptions associated with this repository.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_subscription-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="target_default" path="$['target_default']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Target default</p>
+<p>Whether this repository is the default for its target.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="unique_name" path="$['unique_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Unique name</p>
+<p>Unique name of the repository, including the owner and project names.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="webhooks_collection_link" path="$['webhooks_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Webhooks for this target.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook-page-resource"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="git_repository-diff">
+ <wadl:param style="plain" required="false" name="code_import_link" path="$['code_import_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The associated CodeImport, if any.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_import"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="default_branch" path="$['default_branch']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Default branch</p>
+<p>The full path to the default branch for this repository, e.g. refs/heads/master.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A short description of this repository.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="reviewer_link" path="$['reviewer_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Review Team</p>
+<p>The reviewer of a repository is the person or exclusive team that is responsible for reviewing proposals and merging into this repository.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="git_repository-page-resource">
+ <wadl:method name="GET" id="git_repository-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#git_repository-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="git_repository-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#git_repository-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#git_repository-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_repository"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="git_subscription">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The relationship between a person and a Git repository.
+</wadl:doc>
+ <wadl:method name="GET" id="git_subscription-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#git_subscription-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="git_subscription-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="git_subscription-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="git_subscription-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#git_subscription-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="git_subscription-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#git_subscription-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="git_subscription-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_subscription"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="max_diff_lines" path="$['max_diff_lines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Generated Diff Size Limit</p>
+<p>Diffs greater than the specified number of lines will not be sent to the subscriber. The subscriber will still receive an email with the new revision details even if the diff is larger than the specified number of lines.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Don't send diffs"/>
+ <wadl:option value="500 lines"/>
+ <wadl:option value="1000 lines"/>
+ <wadl:option value="5000 lines"/>
+ <wadl:option value="Send entire diff"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="notification_level" path="$['notification_level']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Notification Level</p>
+<p>Attribute notifications are sent when repository details are changed such as lifecycle status and name. Revision notifications are generated when new revisions are found.</p>
+
+</wadl:doc>
+
+ <wadl:option value="No email"/>
+ <wadl:option value="Branch attribute notifications only"/>
+ <wadl:option value="Branch revision notifications only"/>
+ <wadl:option value="Branch attribute and revision notifications"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="person_link" path="$['person_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Person</p>
+<p>Enter the launchpad id, or email address of the person you wish to subscribe to this repository. If you are unsure, use the &quot;Choose...&quot; option to find the person in Launchpad. You can only subscribe someone who is a registered user of the system.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="repository_link" path="$['repository_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Repository ID
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_repository"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="review_level" path="$['review_level']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Code review Level</p>
+<p>Control the kind of review activity that triggers notifications.</p>
+
+</wadl:doc>
+
+ <wadl:option value="No email"/>
+ <wadl:option value="Status changes only"/>
+ <wadl:option value="Email about all changes"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="subscribed_by_link" path="$['subscribed_by_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Subscribed by</p>
+<p>The person who created this subscription.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="git_subscription-diff">
+ <wadl:param style="plain" required="false" name="max_diff_lines" path="$['max_diff_lines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Generated Diff Size Limit</p>
+<p>Diffs greater than the specified number of lines will not be sent to the subscriber. The subscriber will still receive an email with the new revision details even if the diff is larger than the specified number of lines.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Don't send diffs"/>
+ <wadl:option value="500 lines"/>
+ <wadl:option value="1000 lines"/>
+ <wadl:option value="5000 lines"/>
+ <wadl:option value="Send entire diff"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="notification_level" path="$['notification_level']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Notification Level</p>
+<p>Attribute notifications are sent when repository details are changed such as lifecycle status and name. Revision notifications are generated when new revisions are found.</p>
+
+</wadl:doc>
+
+ <wadl:option value="No email"/>
+ <wadl:option value="Branch attribute notifications only"/>
+ <wadl:option value="Branch revision notifications only"/>
+ <wadl:option value="Branch attribute and revision notifications"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="review_level" path="$['review_level']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Code review Level</p>
+<p>Control the kind of review activity that triggers notifications.</p>
+
+</wadl:doc>
+
+ <wadl:option value="No email"/>
+ <wadl:option value="Status changes only"/>
+ <wadl:option value="Email about all changes"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="git_subscription-page-resource">
+ <wadl:method name="GET" id="git_subscription-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#git_subscription-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="git_subscription-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#git_subscription-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#git_subscription-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_subscription"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="has_bugs">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+An entity which has a collection of bug tasks.
+</wadl:doc>
+ <wadl:method name="GET" id="has_bugs-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#has_bugs-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="has_bugs-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="has_bugs-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="has_bugs-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#has_bugs-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="has_bugs-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#has_bugs-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="has_bugs-searchTasks" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search the IBugTasks reported on this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">search_params:</th><td class="rst-field-body">a BugTaskSearchParams object</td>
+</tr>
+</tbody>
+</table>
+<p>Return an iterable of matching results.</p>
+<p>Note: milestone is currently ignored for all IBugTargets
+except IProduct.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchTasks"/>
+ <wadl:param style="query" name="bug_reporter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_cve" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs associated with a CVE
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_targeted" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs targeted to a series
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status_upstream" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status upstream</p>
+<p>Indicates the status of any remote watches associated with the bug. Possible values include: pending_bugwatch, hide_upstream, resolved_upstream, and open_upstream.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>String or list of strings for tags to search. To exclude, prepend a '-', e.g. '-unwantedtag'</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_duplicates" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs marked as duplicate,
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="nominated_for" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been modified since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="structural_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been created since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_patch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs with patches available.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_commenter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="assignee" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only bugs with the given status value or list of values.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="affected_user" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID or search text.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of fields by which the results are ordered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="tags_combinator" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags combination</p>
+<p>Search for any or all of the tags specified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Any"/>
+ <wadl:option value="All"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Component</p>
+<p>Distribution package archive grouping. E.g. main, universe, multiverse</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="importance" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Importance</p>
+<p>Show only bugs with the given importance or list of importances.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>Show only bugs with the given information type or list of information types.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that were created before the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="milestone" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone</p>
+<p>Show only bug tasks targeted to this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="linked_branches" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that are linked to branches or for bugs that are not linked to branches.
+</wadl:doc>
+
+ <wadl:option value="Show all bugs"/>
+ <wadl:option value="Show only Bugs with linked Branches"/>
+ <wadl:option value="Show only Bugs without linked Branches"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_no_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Exclude bugs with packages specified
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="has_bugs-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#has_bugs"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="has_bugs-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="has_bugs-page-resource">
+ <wadl:method name="GET" id="has_bugs-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#has_bugs-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="has_bugs-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#has_bugs-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#has_bugs-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#has_bugs"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="has_milestones">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+An interface for classes providing milestones.
+</wadl:doc>
+ <wadl:method name="GET" id="has_milestones-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#has_milestones-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="has_milestones-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="has_milestones-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="has_milestones-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#has_milestones-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="has_milestones-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#has_milestones-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="has_milestones-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#has_milestones"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active_milestones_collection_link" path="$['active_milestones_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The visible and active milestones associated with this object, ordered by date expected.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="all_milestones_collection_link" path="$['all_milestones_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All milestones associated with this object, ordered by date expected.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone-page-resource"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="has_milestones-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="has_milestones-page-resource">
+ <wadl:method name="GET" id="has_milestones-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#has_milestones-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="has_milestones-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#has_milestones-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#has_milestones-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#has_milestones"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="object_with_translation_imports">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>An entity that has a translation import queue.</p>
+<p>Examples include ProductSeries, SourcePackage, DistroSeries,
+and Person.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="object_with_translation_imports-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#object_with_translation_imports-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="object_with_translation_imports-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="object_with_translation_imports-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="object_with_translation_imports-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#object_with_translation_imports-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="object_with_translation_imports-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#object_with_translation_imports-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="object_with_translation_imports-getTranslationImportQueueEntries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return entries in the translation import queue for this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg import_status:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">RosettaImportStatus DB Schema entry.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg file_extension:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">String with the file type extension, usually 'po'
+or 'pot'.</td>
+</tr>
+</tbody>
+</table>
+<p>If one of both of 'import_status' or 'file_extension' are given, the
+returned entries are filtered based on those values.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getTranslationImportQueueEntries"/>
+ <wadl:param style="query" name="file_extension" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Filename extension</p>
+<p>Show only entries with this filename suffix</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="import_status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only entries with this status</p>
+
+</wadl:doc>
+
+ <wadl:option value="Approved"/>
+ <wadl:option value="Imported"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Failed"/>
+ <wadl:option value="Needs Review"/>
+ <wadl:option value="Blocked"/>
+ <wadl:option value="Needs Information"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_import_queue_entry-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="object_with_translation_imports-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#object_with_translation_imports"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="object_with_translation_imports-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="object_with_translation_imports-page-resource">
+ <wadl:method name="GET" id="object_with_translation_imports-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#object_with_translation_imports-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="object_with_translation_imports-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#object_with_translation_imports-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#object_with_translation_imports-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#object_with_translation_imports"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="irc_id">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A person's nickname on an IRC network.
+</wadl:doc>
+ <wadl:method name="GET" id="irc_id-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#irc_id-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="irc_id-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="irc_id-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="irc_id-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#irc_id-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="irc_id-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#irc_id-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="irc_id-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#irc_id"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="network" path="$['network']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+IRC network
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="nickname" path="$['nickname']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Nickname
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="person_link" path="$['person_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Owner
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="irc_id-diff">
+ <wadl:param style="plain" required="false" name="network" path="$['network']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+IRC network
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="nickname" path="$['nickname']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Nickname
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="irc_id-page-resource">
+ <wadl:method name="GET" id="irc_id-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#irc_id-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="irc_id-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#irc_id-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#irc_id-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#irc_id"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="jabber_id">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Jabber specific user ID
+</wadl:doc>
+ <wadl:method name="GET" id="jabber_id-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#jabber_id-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="jabber_id-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="jabber_id-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="jabber_id-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#jabber_id-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="jabber_id-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#jabber_id-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="jabber_id-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#jabber_id"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="jabberid" path="$['jabberid']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+New Jabber user ID
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="person_link" path="$['person_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Owner
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="jabber_id-diff">
+ <wadl:param style="plain" required="false" name="jabberid" path="$['jabberid']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+New Jabber user ID
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="jabber_id-page-resource">
+ <wadl:method name="GET" id="jabber_id-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#jabber_id-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="jabber_id-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#jabber_id-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#jabber_id-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#jabber_id"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="language">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A Language.
+</wadl:doc>
+ <wadl:method name="GET" id="language-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#language-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="language-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="language-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="language-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#language-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="language-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#language-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="language-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#language"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="code" path="$['code']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The ISO 639 code
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="english_name" path="$['english_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The English name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="plural_expression" path="$['plural_expression']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Plural form expression</p>
+<p>The expression that relates a number of items to the appropriate plural form.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="plural_forms" path="$['plural_forms']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Number of plural forms</p>
+<p>The number of plural forms this language has.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="text_direction" path="$['text_direction']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Text direction</p>
+<p>The direction of text in this language.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Left to Right"/>
+ <wadl:option value="Right to Left"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="translators_count" path="$['translators_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Total number of translators for this language.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="visible" path="$['visible']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Visible</p>
+<p>Whether this language is visible by default.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="language-diff">
+ <wadl:param style="plain" required="false" name="code" path="$['code']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The ISO 639 code
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="english_name" path="$['english_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The English name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="plural_expression" path="$['plural_expression']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Plural form expression</p>
+<p>The expression that relates a number of items to the appropriate plural form.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="plural_forms" path="$['plural_forms']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Number of plural forms</p>
+<p>The number of plural forms this language has.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="text_direction" path="$['text_direction']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Text direction</p>
+<p>The direction of text in this language.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Left to Right"/>
+ <wadl:option value="Right to Left"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="visible" path="$['visible']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Visible</p>
+<p>Whether this language is visible by default.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="language-page-resource">
+ <wadl:method name="GET" id="language-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#language-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="language-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#language-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#language-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#language"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="livefs_build">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Build information for live filesystem builds.
+</wadl:doc>
+ <wadl:method name="GET" id="livefs_build-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#livefs_build-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="livefs_build-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="livefs_build-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="livefs_build-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#livefs_build-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="livefs_build-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#livefs_build-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="livefs_build-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#livefs_build"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The archive from which to build the live filesystem.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="build_log_url" path="$['build_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build Log URL</p>
+<p>A URL for the build log. None if there is no log available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="builder_link" path="$['builder_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Builder</p>
+<p>The builder assigned to this job.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#builder"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="buildstate" path="$['buildstate']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current status of the job.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_be_cancelled" path="$['can_be_cancelled']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can be cancelled</p>
+<p>Whether this build record can be cancelled.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_be_rescored" path="$['can_be_rescored']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can be rescored</p>
+<p>Whether this build record can be rescored manually.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_first_dispatched" path="$['date_first_dispatched']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date finished</p>
+<p>The actual build start time. Set when the build is dispatched the first time and not changed in subsequent build attempts.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datebuilt" path="$['datebuilt']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date finished</p>
+<p>The timestamp when the build farm job was finished.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datecreated" path="$['datecreated']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date created</p>
+<p>The timestamp when the build farm job was created.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="dependencies" path="$['dependencies']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependencies</p>
+<p>Debian-like dependency line that must be satisfied before attempting to build this request.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution</p>
+<p>Shortcut for its distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_arch_series_link" path="$['distro_arch_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The series and architecture for which to build.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_arch_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution series</p>
+<p>Shortcut for its distribution series.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="livefs_link" path="$['livefs_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The live filesystem to build.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#livefs"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="metadata_override" path="$['metadata_override']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A dict of data about the image; this will be merged into the metadata dict for the live filesystem.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The pocket for which to build.
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="requester_link" path="$['requester_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The person who requested this build.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="score" path="$['score']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Score of the related build farm job (if any).
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Title
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="unique_key" path="$['unique_key']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+An optional unique key; if set, this identifies a class of builds for this live filesystem.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="upload_log_url" path="$['upload_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Upload Log URL</p>
+<p>A URL for failed upload logs.Will be None if there was no failure.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="version" path="$['version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A version string for this build.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="livefs_build-diff">
+ <wadl:param style="plain" required="false" name="build_log_url" path="$['build_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build Log URL</p>
+<p>A URL for the build log. None if there is no log available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="buildstate" path="$['buildstate']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current status of the job.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="dependencies" path="$['dependencies']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependencies</p>
+<p>Debian-like dependency line that must be satisfied before attempting to build this request.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution</p>
+<p>Shortcut for its distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution series</p>
+<p>Shortcut for its distribution series.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Title
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="upload_log_url" path="$['upload_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Upload Log URL</p>
+<p>A URL for failed upload logs.Will be None if there was no failure.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="livefs_build-page-resource">
+ <wadl:method name="GET" id="livefs_build-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#livefs_build-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="livefs_build-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#livefs_build-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#livefs_build-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#livefs_build"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="livefs">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A buildable live filesystem image.
+</wadl:doc>
+ <wadl:method name="GET" id="livefs-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#livefs-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="livefs-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="livefs-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="livefs-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#livefs-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="livefs-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#livefs-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="livefs-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#livefs"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="builds_collection_link" path="$['builds_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>All builds of this live filesystem.</p>
+<p>All builds of this live filesystem, sorted in descending order of finishing (or starting if not completed successfully).</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#livefs_build-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="completed_builds_collection_link" path="$['completed_builds_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Completed builds of this live filesystem.</p>
+<p>Completed builds of this live filesystem, sorted in descending order of finishing.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#livefs_build-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_modified" path="$['date_last_modified']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date last modified
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distro Series</p>
+<p>The series for which the image should be built.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="id" path="$['id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+ID
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="keep_binary_files_days" path="$['keep_binary_files_days']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Binary file retention period</p>
+<p>Keep binary files attached to builds of this live filesystem for at least this many days. If unset, disable pruning.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="metadata" path="$['metadata']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A dict of data about the image. Entries here will be passed to the builder worker.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of the live filesystem image.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The owner of this live filesystem image.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pending_builds_collection_link" path="$['pending_builds_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pending builds of this live filesystem.</p>
+<p>Pending builds of this live filesystem, sorted in descending order of creation.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#livefs_build-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registrant</p>
+<p>The person who registered this live filesystem image.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="relative_build_score" path="$['relative_build_score']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Relative build score</p>
+<p>A delta to apply to all build scores for the live filesystem. Builds with a higher score will build sooner.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="require_virtualized" path="$['require_virtualized']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Require virtualized builders</p>
+<p>Only build this live filesystem image on virtual builders.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="webhooks_collection_link" path="$['webhooks_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Webhooks for this target.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook-page-resource"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="livefs-diff">
+ <wadl:param style="plain" required="false" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distro Series</p>
+<p>The series for which the image should be built.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="keep_binary_files_days" path="$['keep_binary_files_days']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Binary file retention period</p>
+<p>Keep binary files attached to builds of this live filesystem for at least this many days. If unset, disable pruning.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="metadata" path="$['metadata']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A dict of data about the image. Entries here will be passed to the builder worker.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of the live filesystem image.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The owner of this live filesystem image.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="relative_build_score" path="$['relative_build_score']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Relative build score</p>
+<p>A delta to apply to all build scores for the live filesystem. Builds with a higher score will build sooner.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="require_virtualized" path="$['require_virtualized']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Require virtualized builders</p>
+<p>Only build this live filesystem image on virtual builders.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="livefs-page-resource">
+ <wadl:method name="GET" id="livefs-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#livefs-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="livefs-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#livefs-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#livefs-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#livefs"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="message">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A Message.
+</wadl:doc>
+ <wadl:method name="GET" id="message-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#message-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="message-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="message-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="message-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#message-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="message-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#message-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="message-getAPIParent" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return None because messages are not threaded over the API.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getAPIParent"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="message-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#message"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_attachments_collection_link" path="$['bug_attachments_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of BugAttachments connected to this message.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_attachment-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="content" path="$['content']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All the text/plain chunks joined together as a unicode string.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_deleted" path="$['date_deleted']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+When this message was deleted
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_edited" path="$['date_last_edited']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+When this message was last edited
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="parent_link" path="$['parent_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Parent
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#message"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="subject" path="$['subject']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Subject
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="message-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="message-page-resource">
+ <wadl:method name="GET" id="message-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#message-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="message-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#message-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#message-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#message"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="milestone">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Actual interface for milestones.
+</wadl:doc>
+ <wadl:method name="GET" id="milestone-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#milestone-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="milestone-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="milestone-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="milestone-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#milestone-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="milestone-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#milestone-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="DELETE" id="milestone-delete"/>
+
+ <wadl:method id="milestone-userHasBugSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is user subscribed, directly or via a team, to bug mail?
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="userHasBugSubscriptions"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="milestone-getSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return all the subscriptions with the specified levels.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A sequence of IStructuralSubscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscriptions"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="milestone-getSubscription" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the subscription for person, if it exists.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscription"/>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="milestone-searchTasks" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search the IBugTasks reported on this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">search_params:</th><td class="rst-field-body">a BugTaskSearchParams object</td>
+</tr>
+</tbody>
+</table>
+<p>Return an iterable of matching results.</p>
+<p>Note: milestone is currently ignored for all IBugTargets
+except IProduct.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchTasks"/>
+ <wadl:param style="query" name="bug_reporter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_cve" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs associated with a CVE
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_targeted" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs targeted to a series
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status_upstream" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status upstream</p>
+<p>Indicates the status of any remote watches associated with the bug. Possible values include: pending_bugwatch, hide_upstream, resolved_upstream, and open_upstream.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>String or list of strings for tags to search. To exclude, prepend a '-', e.g. '-unwantedtag'</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_duplicates" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs marked as duplicate,
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="nominated_for" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been modified since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="structural_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been created since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_patch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs with patches available.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_commenter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="assignee" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only bugs with the given status value or list of values.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="affected_user" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID or search text.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of fields by which the results are ordered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="tags_combinator" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags combination</p>
+<p>Search for any or all of the tags specified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Any"/>
+ <wadl:option value="All"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Component</p>
+<p>Distribution package archive grouping. E.g. main, universe, multiverse</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="importance" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Importance</p>
+<p>Show only bugs with the given importance or list of importances.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>Show only bugs with the given information type or list of information types.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that were created before the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="milestone" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone</p>
+<p>Show only bug tasks targeted to this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="linked_branches" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that are linked to branches or for bugs that are not linked to branches.
+</wadl:doc>
+
+ <wadl:option value="Show all bugs"/>
+ <wadl:option value="Show only Bugs with linked Branches"/>
+ <wadl:option value="Show only Bugs without linked Branches"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_no_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Exclude bugs with packages specified
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="milestone-addBugSubscriptionFilter" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription filter for this structure.</p>
+<p>This method is used to create a new IBugSubscriptionFilter for the
+target. It will initially allow all notifications to be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription filter.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscriptionFilter"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription_filter"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="milestone-addBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription for this structure.</p>
+<p>This method is used to create a new IStructuralSubscription for the
+target. This initially has a single filter which will allow all
+notifications will be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="milestone-createProductRelease" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create a new ProductRelease.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param owner:</th><td class="rst-field-body">IPerson object who manages the release.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param datereleased:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Date of the product release.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param changelog:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Detailed changes in each version.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param release_notes:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Overview of changes in each version.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">IProductRelease object.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="createProductRelease"/>
+ <wadl:param style="query" name="date_released" required="true" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date released</p>
+<p>The date this release was published. Before release, this should have an estimated release date.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="changelog" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Changelog</p>
+<p>A description of every change in the release.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="release_notes" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Release notes</p>
+<p>A description of important new features (though the changelog below might repeat some of this information).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_release"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="milestone-removeBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remove a subscription to bugs from this structure.</p>
+<p>This will delete all associated filters.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be unsubscribed. If omitted,
+unsubscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">unsubscribed_by:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The IPerson removing the subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="removeBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to unsubscribe. If omitted, the requesting user will be unsubscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="milestone-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="code_name" path="$['code_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Code name</p>
+<p>An alternative name for the milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_targeted" path="$['date_targeted']" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Targeted</p>
+<p>Example: 2005-11-24</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_active" path="$['is_active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this object should be shown in web forms for targeting.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>Only letters, numbers, and simple punctuation are allowed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_bug_tags" path="$['official_bug_tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Official Bug Tags</p>
+<p>The list of bug tags defined as official.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="release_link" path="$['release_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The release for this milestone.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_release"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="series_target_link" path="$['series_target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The productseries or distroseries of this milestone.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#has_milestones"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A summary of the features and status of this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="target_link" path="$['target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The product, distribution, or project group for this milestone.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#has_milestones"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A context title for pages.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="milestone-diff">
+ <wadl:param style="plain" required="false" name="code_name" path="$['code_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Code name</p>
+<p>An alternative name for the milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_targeted" path="$['date_targeted']" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Targeted</p>
+<p>Example: 2005-11-24</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="is_active" path="$['is_active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this object should be shown in web forms for targeting.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>Only letters, numbers, and simple punctuation are allowed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="series_target_link" path="$['series_target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The productseries or distroseries of this milestone.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#has_milestones"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A summary of the features and status of this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="target_link" path="$['target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The product, distribution, or project group for this milestone.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#has_milestones"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="milestone-page-resource">
+ <wadl:method name="GET" id="milestone-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#milestone-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="milestone-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#milestone-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#milestone-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="translation_file">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A translation file.
+</wadl:doc>
+ <wadl:method name="GET" id="translation_file-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_file-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="translation_file-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="translation_file-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="translation_file-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_file-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="translation_file-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_file-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="translation_file-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#translation_file"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="id" path="$['id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The translation file id.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="translation_file-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="translation_file-page-resource">
+ <wadl:method name="GET" id="translation_file-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#translation_file-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="translation_file-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#translation_file-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#translation_file-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#translation_file"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="translation_template">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A translation template.
+</wadl:doc>
+ <wadl:method name="GET" id="translation_template-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_template-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="translation_template-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="translation_template-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="translation_template-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_template-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="translation_template-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_template-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="translation_template-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#translation_template"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Template is active</p>
+<p>If unchecked, people can no longer change the template's translations.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_updated" path="$['date_last_updated']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date for last update
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Please provide a brief description of the content of this translation template, for example, telling translators if this template contains strings for end-users or other developers.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="exported_in_languagepacks" path="$['exported_in_languagepacks']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Include translations for this template in language packs?</p>
+<p>Check this box if this template is part of a language pack so its translations should be exported that way.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="format" path="$['format']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+File format for the source file
+</wadl:doc>
+
+ <wadl:option value="PO format"/>
+ <wadl:option value="MO format"/>
+ <wadl:option value="Mozilla XPI format"/>
+ <wadl:option value="KDE PO format"/>
+ <wadl:option value="XPI PO format"/>
+ <wadl:option value="Changes from imported translations in partial PO format"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="id" path="$['id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The translation template id.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="language_count" path="$['language_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The number of languages for which we have translations.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="message_count" path="$['message_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The number of translation messages for this template.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Template name</p>
+<p>The name of this PO template, for example 'evolution-2.2'. Each translation template has a unique name in its package. It's important to get this correct, because Launchpad will recommend alternative translations based on the name.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The owner of the template in Launchpad can edit the template and change it's status, and can also upload new versions of the template when a new release is made or when the translation strings have been changed during development.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="path" path="$['path']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Path of the template in the source tree, including filename.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="priority" path="$['priority']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Priority</p>
+<p>A number that describes how important this template is. Often there are multiple templates, and you can use this as a way of indicating which are more important and should be translated first. Pick any number - higher priority templates will generally be listed first.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="translation_domain" path="$['translation_domain']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Translation domain</p>
+<p>The translation domain for a translation template. Used with PO file format when generating MO files for inclusion in language pack or MO tarball exports.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="translation_files_collection_link" path="$['translation_files_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All translation files that exist for this template.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#translation_file-page-resource"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="translation_template-diff">
+ <wadl:param style="plain" required="false" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Template is active</p>
+<p>If unchecked, people can no longer change the template's translations.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_last_updated" path="$['date_last_updated']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date for last update
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Please provide a brief description of the content of this translation template, for example, telling translators if this template contains strings for end-users or other developers.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="exported_in_languagepacks" path="$['exported_in_languagepacks']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Include translations for this template in language packs?</p>
+<p>Check this box if this template is part of a language pack so its translations should be exported that way.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="format" path="$['format']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+File format for the source file
+</wadl:doc>
+
+ <wadl:option value="PO format"/>
+ <wadl:option value="MO format"/>
+ <wadl:option value="Mozilla XPI format"/>
+ <wadl:option value="KDE PO format"/>
+ <wadl:option value="XPI PO format"/>
+ <wadl:option value="Changes from imported translations in partial PO format"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Template name</p>
+<p>The name of this PO template, for example 'evolution-2.2'. Each translation template has a unique name in its package. It's important to get this correct, because Launchpad will recommend alternative translations based on the name.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The owner of the template in Launchpad can edit the template and change it's status, and can also upload new versions of the template when a new release is made or when the translation strings have been changed during development.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="path" path="$['path']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Path of the template in the source tree, including filename.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="priority" path="$['priority']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Priority</p>
+<p>A number that describes how important this template is. Often there are multiple templates, and you can use this as a way of indicating which are more important and should be translated first. Pick any number - higher priority templates will generally be listed first.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="translation_domain" path="$['translation_domain']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Translation domain</p>
+<p>The translation domain for a translation template. Used with PO file format when generating MO files for inclusion in language pack or MO tarball exports.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="translation_template-page-resource">
+ <wadl:method name="GET" id="translation_template-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#translation_template-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="translation_template-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#translation_template-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#translation_template-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#translation_template"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="package_upload">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A Queue item for the archive uploader.
+</wadl:doc>
+ <wadl:method name="GET" id="package_upload-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#package_upload-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="package_upload-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="package_upload-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="package_upload-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#package_upload-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="package_upload-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#package_upload-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="package_upload-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#package_upload"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Archive</p>
+<p>The archive for this upload.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="copy_source_archive_link" path="$['copy_source_archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Copy source archive</p>
+<p>The archive from which this package was copied, if any.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="custom_file_urls" path="$['custom_file_urls']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Custom file URLs</p>
+<p>Librarian URLs for all the custom files attached to this upload.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date created</p>
+<p>The date this package upload was done.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_arches" path="$['display_arches']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Architectures related to this item
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Generic displayname for a queue item
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_version" path="$['display_version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+This item's displayable source package version
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distroseries_link" path="$['distroseries_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Series</p>
+<p>The distroseries targeted by this upload.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="id" path="$['id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+ID
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The pocket</p>
+<p>The pocket targeted by this upload.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Queue status</p>
+<p>The status of this upload.</p>
+
+</wadl:doc>
+
+ <wadl:option value="New"/>
+ <wadl:option value="Unapproved"/>
+ <wadl:option value="Accepted"/>
+ <wadl:option value="Done"/>
+ <wadl:option value="Rejected"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="package_upload-diff">
+ <wadl:param style="plain" required="false" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date created</p>
+<p>The date this package upload was done.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distroseries_link" path="$['distroseries_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Series</p>
+<p>The distroseries targeted by this upload.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The pocket</p>
+<p>The pocket targeted by this upload.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="package_upload-page-resource">
+ <wadl:method name="GET" id="package_upload-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#package_upload-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="package_upload-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#package_upload-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#package_upload-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#package_upload"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="packageset">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+An interface for package sets.
+</wadl:doc>
+ <wadl:method name="GET" id="packageset-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#packageset-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="packageset-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="packageset-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="packageset-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#packageset-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="packageset-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#packageset-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="packageset-getSourcesNotSharedBy" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get source package names not included by another package set.</p>
+<p>Which source package names included by this package are <em>not</em>
+included by the other_package_set?</p>
+<p>Please note: this method was mainly introduced in order to
+facilitate the listing of source package names via the LP
+web services API. It returns string names as opposed to
+ISourcePackageName instances.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param other_package_set:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the other package set</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param direct_inclusion:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if this flag is set to True only directly
+included sources will be considered.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A (potentially empty) sequence of string source package
+names.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSourcesNotSharedBy"/>
+ <wadl:param style="query" name="other_package_set" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The package set we are comparing to.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#packageset"/>
+ </wadl:param>
+ <wadl:param style="query" name="direct_inclusion" required="false">
+
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="packageset-setsIncluded" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get all package sets that are included by this one.</p>
+<p>Return all package sets that are directly or indirectly
+included by this one.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param direct_inclusion:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if this flag is set to True only sets
+directly included by this one will be considered.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A (potentially empty) sequence of IPackageset instances.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="setsIncluded"/>
+ <wadl:param style="query" name="direct_inclusion" required="false">
+
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#packageset-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="packageset-setsIncludedBy" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get all package sets that include this one.</p>
+<p>Return all package sets that directly or indirectly include this one.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param direct_inclusion:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if this flag is set to True only sets
+directly including this one will be considered.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A (potentially empty) sequence of IPackageset instances.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="setsIncludedBy"/>
+ <wadl:param style="query" name="direct_inclusion" required="false">
+
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#packageset-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="packageset-getSourcesIncluded" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get all source names associated with this package set.</p>
+<p>This method returns the source package names that are directly
+or indirectly associated with the package set at hand. Indirect
+associations may be defined through package set successors.</p>
+<p>Please note: this method was mainly introduced in order to
+facilitate the listing of source package names via the LP
+web services API. It returns string names as opposed to
+ISourcePackageName instances.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param direct_inclusion:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if this flag is set to True only sources
+directly included by this package set will be considered.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A (potentially empty) sequence of string source package
+names.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSourcesIncluded"/>
+ <wadl:param style="query" name="direct_inclusion" required="false">
+
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="packageset-relatedSets" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get all other package sets in this set's PackagesetGroup.</p>
+<p>Returns all package sets that are related to this one, but not
+this one itself.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A (potentially empty) sequence of IPackageset instances.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="relatedSets"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#packageset-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="packageset-getSourcesSharedBy" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get source package names also included by another package set.</p>
+<p>What source package names does this package set have in common with
+the other_package_set?</p>
+<p>Please note: this method was mainly introduced in order to
+facilitate the listing of source package names via the LP
+web services API. It returns string names as opposed to
+ISourcePackageName instances.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param other_package_set:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the other package set</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param direct_inclusion:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">if this flag is set to True only directly
+included sources will be considered.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A (potentially empty) sequence of string source package
+names.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSourcesSharedBy"/>
+ <wadl:param style="query" name="other_package_set" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The package set we are comparing to.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#packageset"/>
+ </wadl:param>
+ <wadl:param style="query" name="direct_inclusion" required="false">
+
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="packageset-addSubsets" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add the named package sets as subsets to this package set.</p>
+<p>Any passed source package names will become <em>directly</em> associated
+with the package set at hand.</p>
+<p>This function is idempotent in the sense that package subsets
+that are already directly associated with a package set will be
+ignored.</p>
+<p>This method facilitates the addition of package subsets via the
+LP web services API. It takes string names as opposed to
+IPackageset instances.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param names:</th><td class="rst-field-body">an iterable with string package set names</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addSubsets"/>
+ <wadl:param style="query" name="names" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of package set names.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="packageset-addSources" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add the named source packages to this package set.</p>
+<p>Any passed source package names will become <em>directly</em> associated
+with the package set at hand.</p>
+<p>This function is idempotent in the sense that source package names
+that are already directly associated with a package set will be
+ignored.</p>
+<p>This method facilitates the addition of source package names to
+package sets via the LP web services API. It takes string names
+as opposed to ISourcePackageName instances. Non-existing source
+package names will be ignored.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param names:</th><td class="rst-field-body">an iterable with string source package names</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addSources"/>
+ <wadl:param style="query" name="names" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of source package names.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="packageset-removeSources" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remove the named source packages from this package set.</p>
+<p>Only source package names <em>directly</em> included by this package
+set can be removed. Any others will be ignored.</p>
+<p>This method facilitates the removal of source package names from
+package sets via the LP web services API. It takes string names
+as opposed to ISourcePackageName instances.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param names:</th><td class="rst-field-body">an iterable with string source package names</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="removeSources"/>
+ <wadl:param style="query" name="names" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of source package names.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="packageset-removeSubsets" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remove the named package subsets from this package set.</p>
+<p>Only package subsets <em>directly</em> included by this package
+set can be removed. Any others will be ignored.</p>
+<p>This method facilitates the removal of package subsets via the
+LP web services API. It takes string names as opposed to
+IPackageset instances.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param names:</th><td class="rst-field-body">an iterable with string package set names</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="removeSubsets"/>
+ <wadl:param style="query" name="names" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of package set names.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="packageset-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#packageset"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Created</p>
+<p>The creation date/time for the package set at hand.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>The description for the package set at hand.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distroseries_link" path="$['distroseries_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution series</p>
+<p>The distroseries to which this package set is related.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="id" path="$['id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+ID
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Valid package set name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Person</p>
+<p>The person who owns this package set.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="relative_build_score" path="$['relative_build_score']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build score</p>
+<p>Build score bonus for packages in this package set.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="packageset-diff">
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>The description for the package set at hand.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Valid package set name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Person</p>
+<p>The person who owns this package set.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="relative_build_score" path="$['relative_build_score']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build score</p>
+<p>Build score bonus for packages in this package set.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="packageset-page-resource">
+ <wadl:method name="GET" id="packageset-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#packageset-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="packageset-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#packageset-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#packageset-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#packageset"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="person">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A Person.
+</wadl:doc>
+ <wadl:method name="GET" id="person-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#person-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="person-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="person-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="person-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#person-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="person-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#person-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="person-getArchiveSubscriptionURLs" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return private archive URLs that this person can see.</p>
+<p>For each of the private archives (PPAs) that this person can see,
+return a URL that includes the HTTP basic auth data. The URL
+returned is suitable for including in a sources.list file.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getArchiveSubscriptionURLs"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="person-getBugSubscriberPackages" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the packages for which this person is a bug subscriber.</p>
+<p>Returns a list of IDistributionSourcePackage's, ordered alphabetically
+(A to Z) by name.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBugSubscriberPackages"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution_source_package-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="person-getTranslationImportQueueEntries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return entries in the translation import queue for this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg import_status:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">RosettaImportStatus DB Schema entry.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg file_extension:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">String with the file type extension, usually 'po'
+or 'pot'.</td>
+</tr>
+</tbody>
+</table>
+<p>If one of both of 'import_status' or 'file_extension' are given, the
+returned entries are filtered based on those values.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getTranslationImportQueueEntries"/>
+ <wadl:param style="query" name="file_extension" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Filename extension</p>
+<p>Show only entries with this filename suffix</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="import_status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only entries with this status</p>
+
+</wadl:doc>
+
+ <wadl:option value="Approved"/>
+ <wadl:option value="Imported"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Failed"/>
+ <wadl:option value="Needs Review"/>
+ <wadl:option value="Blocked"/>
+ <wadl:option value="Needs Information"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_import_queue_entry-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="person-getRequestedReviews" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Returns merge proposals where a person was asked to review.</p>
+<p>This does not include merge proposals that were requested from
+teams that the person is part of. If status is not passed then
+it will return proposals that are in the &quot;Needs Review&quot; state.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">A list of statuses to filter with.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param visible_by_user:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Normally the user who is asking.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">A list of IBranchMergeProposal.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getRequestedReviews"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of merge proposal statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_merge_proposal-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="person-searchTasks" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search the IBugTasks reported on this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">search_params:</th><td class="rst-field-body">a BugTaskSearchParams object</td>
+</tr>
+</tbody>
+</table>
+<p>Return an iterable of matching results.</p>
+<p>Note: milestone is currently ignored for all IBugTargets
+except IProduct.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchTasks"/>
+ <wadl:param style="query" name="bug_reporter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_cve" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs associated with a CVE
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_targeted" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs targeted to a series
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status_upstream" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status upstream</p>
+<p>Indicates the status of any remote watches associated with the bug. Possible values include: pending_bugwatch, hide_upstream, resolved_upstream, and open_upstream.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>String or list of strings for tags to search. To exclude, prepend a '-', e.g. '-unwantedtag'</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_duplicates" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs marked as duplicate,
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="nominated_for" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been modified since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="structural_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been created since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_patch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs with patches available.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_commenter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="assignee" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only bugs with the given status value or list of values.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="affected_user" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID or search text.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of fields by which the results are ordered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="tags_combinator" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags combination</p>
+<p>Search for any or all of the tags specified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Any"/>
+ <wadl:option value="All"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Component</p>
+<p>Distribution package archive grouping. E.g. main, universe, multiverse</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="importance" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Importance</p>
+<p>Show only bugs with the given importance or list of importances.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>Show only bugs with the given information type or list of information types.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that were created before the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="milestone" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone</p>
+<p>Show only bug tasks targeted to this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="linked_branches" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that are linked to branches or for bugs that are not linked to branches.
+</wadl:doc>
+
+ <wadl:option value="Show all bugs"/>
+ <wadl:option value="Show only Bugs with linked Branches"/>
+ <wadl:option value="Show only Bugs without linked Branches"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_no_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Exclude bugs with packages specified
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="person-getRecipe" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the person's recipe with the given name.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getRecipe"/>
+ <wadl:param style="query" name="name" required="true">
+
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package_recipe-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="person-getBranches" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Returns all branches with the given lifecycle status.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">A list of statuses to filter with.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param visible_by_user:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Normally the user who is asking.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param modified_since:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If set, filters the branches being returned
+to those that have been modified since the specified date/time.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param eager_load:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True load related objects for the whole
+collection.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">A list of IBranch.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBranches"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of branch lifecycle statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Limit the branches to those modified since this date.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="person-getMergeProposals" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Returns all merge proposals of a given status.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">A list of statuses to filter with.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param visible_by_user:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Normally the user who is asking.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param eager_load:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True, load related objects for the whole
+collection.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">A list of IBranchMergeProposal.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getMergeProposals"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of merge proposal statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_merge_proposal-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="person-getPPAByName" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return a PPA with the given name if it exists.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">A string with the exact name of the ppa being looked up.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">raises:</th><td class="rst-field-body">NoSuchPPA if a suitable PPA could not be found.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a PPA IArchive record corresponding to the name.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getPPAByName"/>
+ <wadl:param style="query" name="distribution" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="query" name="name" required="true">
+
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="person-getMembersByStatus" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the people whose membership on this team match :status:.</p>
+<p>If no orderby is provided, Person.sortingColumns is used.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getMembersByStatus"/>
+ <wadl:param style="query" name="status" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The state of this membership
+</wadl:doc>
+
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Approved"/>
+ <wadl:option value="Administrator"/>
+ <wadl:option value="Deactivated"/>
+ <wadl:option value="Expired"/>
+ <wadl:option value="Declined"/>
+ <wadl:option value="Invited"/>
+ <wadl:option value="Invitation declined"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#person-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="person-getArchiveSubscriptionURL" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get a text line that is suitable to be used for a sources.list
+entry.</p>
+<p>It will create a new IArchiveAuthToken if one doesn't already exist.</p>
+<p>It raises Unauthorized if the context user does not have a
+valid subscription for the target archive or the caller is not
+context user itself.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="getArchiveSubscriptionURL"/>
+ <wadl:param style="query" name="archive" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="person-createRecipe" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create a SourcePackageRecipe owned by this person.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">the name to use for referring to the recipe.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param description:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">A description of the recipe.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param recipe_text:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The text of the recipe.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param distroseries:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The distroseries to use.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param registrant:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The person who created this recipe.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param daily_build_archive:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The archive to use for daily builds.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param build_daily:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True, build this recipe daily (if changed).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a SourcePackageRecipe.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="createRecipe"/>
+ <wadl:param style="query" name="build_daily" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="recipe_text" required="true">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="description" required="true">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="daily_build_archive" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="query" name="name" required="true">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="distroseries" required="true">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="person-acceptInvitationToBeMemberOf" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Accept an invitation to become a member of the given team.</p>
+<p>There must be a TeamMembership for this person and the given team with
+the INVITED status. The status of this TeamMembership will be changed
+to APPROVED.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="acceptInvitationToBeMemberOf"/>
+ <wadl:param style="query" name="team" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="comment" required="true">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="person-createPPA" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create a PPA.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param distribution:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The distribution that this archive is for.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">The name of the new PPA to create.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param displayname:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The displayname for the new PPA.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param description:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The description for the new PPA.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param private:</th><td class="rst-field-body">Whether or not to create a private PPA. Defaults to
+False, which means the PPA will be public.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param suppress_subscription_notifications:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Whether or not to suppress
+emails to new subscribers about their subscriptions. Only
+meaningful for private PPAs.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">raises:</th><td class="rst-field-body">PPACreationError if an error is encountered</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a PPA IArchive record.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="createPPA"/>
+ <wadl:param style="query" name="description" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="suppress_subscription_notifications" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="private" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="distribution" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="query" name="displayname" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="name" required="false">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="person-join" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Join the given team if its membership_policy is not RESTRICTED.</p>
+<p>Join the given team according to the policies and defaults of that
+team:</p>
+<ul class="rst-simple">
+<li>If the team membership_policy is OPEN, the user is added as
+an APPROVED member with a NULL TeamMembership.reviewer.</li>
+<li>If the team membership_policy is MODERATED, the user is added as
+a PROPOSED member and one of the team's administrators have to
+approve the membership.</li>
+</ul>
+<p>If may_subscribe_to_list is True, then also attempt to
+subscribe to the team's mailing list, depending on the list
+status and the person's auto-subscribe settings.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param requester:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The person who requested the membership on
+behalf of a team or None when a person requests the
+membership for themselves.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param may_subscribe_to_list:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True, also try subscribing to
+the team mailing list.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="join"/>
+ <wadl:param style="query" name="team" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="person-leave" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Leave the given team.</p>
+<p>This is a convenience method for retractTeamMembership() that allows
+a user to leave the given team, or to cancel a PENDING membership
+request.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param team:</th><td class="rst-field-body">The team to leave.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="leave"/>
+ <wadl:param style="query" name="team" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="person-setLocation" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Specify the location and time zone of a person.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="setLocation"/>
+ <wadl:param style="query" name="latitude" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The latitude of this object.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="longitude" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The longitude of this object.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="time_zone" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The time zone of this object.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="person-declineInvitationToBeMemberOf" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Decline an invitation to become a member of the given team.</p>
+<p>There must be a TeamMembership for this person and the given team with
+the INVITED status. The status of this TeamMembership will be changed
+to INVITATION_DECLINED.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="declineInvitationToBeMemberOf"/>
+ <wadl:param style="query" name="team" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="comment" required="true">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="person-addMember" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add the given person as a member of this team.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">If the given person is already a member of this
+team we'll simply change its membership status. Otherwise a new
+TeamMembership is created with the given status.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param reviewer:</th><td class="rst-field-body">The user who made the given person a member of this
+team.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param comment:</th><td class="rst-field-body">String that will be assigned to the
+proponent_comment, reviewer_comment, or acknowledger comment.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">TeamMembershipStatus value must be either
+Approved, Proposed or Admin.
+If the new member is a team, the status will be changed to
+Invited unless the user is also an admin of that team.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param force_team_add:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If the person is actually a team and
+force_team_add is False, the team will actually be invited to
+join this one. Otherwise the team is added as if it were a
+person.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param may_subscribe_to_list:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If the person is not a team, and
+may_subscribe_to_list is True, then the person may be subscribed
+to the team's mailing list, depending on the list status and the
+person's auto-subscribe settings.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A tuple containing a boolean indicating when the
+membership status changed and the current TeamMembershipStatus.
+This depends on the desired status passed as an argument, the
+membership policy and the user's privileges.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addMember"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The state of this membership
+</wadl:doc>
+
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Approved"/>
+ <wadl:option value="Administrator"/>
+ <wadl:option value="Deactivated"/>
+ <wadl:option value="Expired"/>
+ <wadl:option value="Declined"/>
+ <wadl:option value="Invited"/>
+ <wadl:option value="Invitation declined"/>
+ </wadl:param>
+ <wadl:param style="query" name="comment" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="person" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Member
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="person-retractTeamMembership" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Retract this team's membership in the given team.</p>
+<p>If there's a membership entry for this team on the given team and
+its status is either APPROVED, ADMIN, PENDING, or INVITED, the status
+is changed and the relevant entries in TeamParticipation.</p>
+<p>APPROVED and ADMIN status are changed to DEACTIVATED.
+PENDING status is changed to DECLINED.
+INVITED status is changes to INVITATION_DECLINED.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param team:</th><td class="rst-field-body">The team to leave.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param user:</th><td class="rst-field-body">The user making the retraction.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param comment:</th><td class="rst-field-body">An optional explanation about why the change was made.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="retractTeamMembership"/>
+ <wadl:param style="query" name="team" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="comment" required="false">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="person-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="admins_collection_link" path="$['admins_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of this team's admins.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Default PPA</p>
+<p>The PPA named 'ppa' owned by this person.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="confirmed_email_addresses_collection_link" path="$['confirmed_email_addresses_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Confirmed emails of this person.</p>
+<p>Confirmed emails are the ones in the VALIDATED state</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#email_address-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="deactivated_members_collection_link" path="$['deactivated_members_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Former members of the team.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Details about interests and goals. Use plain text, paragraphs are preserved and URLs are linked.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>Your name as you would like it displayed throughout Launchpad. Most people use their full name here.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="expired_members_collection_link" path="$['expired_members_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Expired members of the team.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="gpg_keys_collection_link" path="$['gpg_keys_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of valid OpenPGP keys ordered by ID
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#gpg_key-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="hide_email_addresses" path="$['hide_email_addresses']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Hide my email addresses from other Launchpad users
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="homepage_content" path="$['homepage_content']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Homepage Content</p>
+<p>Obsolete. Use description.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="invited_members_collection_link" path="$['invited_members_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Other teams which have been invited to become members of this team.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="irc_nicknames_collection_link" path="$['irc_nicknames_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of IRC nicknames of this Person.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#irc_id-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_probationary" path="$['is_probationary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is this a probationary user?
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_team" path="$['is_team']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is this object a team?
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_ubuntu_coc_signer" path="$['is_ubuntu_coc_signer']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Signed Ubuntu Code of Conduct
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_valid" path="$['is_valid']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+This is an active user or a team.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="jabber_ids_collection_link" path="$['jabber_ids_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of Jabber IDs of this Person.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#jabber_id-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="karma" path="$['karma']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Karma</p>
+<p>The cached total karma for this person.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="languages_collection_link" path="$['languages_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of languages known by this person
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#language-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="latitude" path="$['latitude']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The latitude of this object.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="logo_link" path="$['logo_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Logo</p>
+<p>An image of exactly 64x64 pixels that will be displayed in the heading of all pages related to you. Traditionally this is a logo, a small picture or a personal mascot. It should be no bigger than 50kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="longitude" path="$['longitude']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The longitude of this object.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="mailing_list_auto_subscribe_policy" path="$['mailing_list_auto_subscribe_policy']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Mailing List Auto-subscription Policy</p>
+<p>This attribute determines whether a person is automatically subscribed to a team's mailing list when the person joins said team.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Never subscribe to mailing lists"/>
+ <wadl:option value="Ask me when I join a team"/>
+ <wadl:option value="Always subscribe me to mailing lists"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="members_collection_link" path="$['members_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of direct members with ADMIN or APPROVED status
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="members_details_collection_link" path="$['members_details_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active TeamMemberships for this object's members.</p>
+<p>Active TeamMemberships are the ones with the ADMIN or APPROVED status. The results are ordered using Person.sortingColumns.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team_membership-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="memberships_details_collection_link" path="$['memberships_details_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All TeamMemberships for Teams this Team or Person is an active member of.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team_membership-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="mugshot_link" path="$['mugshot_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Mugshot</p>
+<p>A large image of exactly 192x192 pixels, that will be displayed on your home page in Launchpad. Traditionally this is a great big picture of your grinning face. Make the most of it! It should be no bigger than 100kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>A short unique name, beginning with a lower-case letter or number, and containing only letters, numbers, dots, hyphens, or plus signs.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="open_membership_invitations_collection_link" path="$['open_membership_invitations_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Open membership invitations.</p>
+<p>All TeamMemberships which represent an invitation (to join a team) sent to this person.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team_membership-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="participants_collection_link" path="$['participants_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>All participants of this team.</p>
+<p>List of all direct and indirect people and teams who, one way or another, are a part of this team. If you want a method to check if a given person is a member of a team, you should probably look at IPerson.inTeam().</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="ppas_collection_link" path="$['ppas_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>PPAs for this person.</p>
+<p>PPAs owned by the context person ordered by name.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="preferred_email_address_link" path="$['preferred_email_address_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Preferred email address</p>
+<p>The preferred email address for this person. The one we'll use to communicate with them.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#email_address"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="private" path="$['private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>This team is private</p>
+<p>Private teams are visible only to their members.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="proposed_members_collection_link" path="$['proposed_members_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+People who have applied to join the team.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="recipes_collection_link" path="$['recipes_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All recipes associated with the object.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="sshkeys_collection_link" path="$['sshkeys_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of SSH keys
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#ssh_key-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="sub_teams_collection_link" path="$['sub_teams_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>All subteams of this team.</p>
+<p>A subteam is any team that is a member (either directly or
+indirectly) of this team. As an example, let's say we have
+this hierarchy of teams:</p>
+<dl class="rst-docutils">
+<dt>Rosetta Translators</dt>
+<dd><dl class="rst-first rst-last rst-docutils">
+<dt>Rosetta pt Translators</dt>
+<dd>Rosetta pt_BR Translators</dd>
+</dl>
+</dd>
+</dl>
+<p>In this case, both 'Rosetta pt Translators' and 'Rosetta pt_BR
+Translators' are subteams of the 'Rosetta Translators' team,
+and all members of both subteams are considered members of
+&quot;Rosetta Translators&quot;.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="super_teams_collection_link" path="$['super_teams_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>All superteams of this team.</p>
+<p>A superteam is any team that this team is a member of. For
+example, let's say we have this hierarchy of teams, and we are
+the &quot;Rosetta pt_BR Translators&quot;:</p>
+<dl class="rst-docutils">
+<dt>Rosetta Translators</dt>
+<dd><dl class="rst-first rst-last rst-docutils">
+<dt>Rosetta pt Translators</dt>
+<dd>Rosetta pt_BR Translators</dd>
+</dl>
+</dd>
+</dl>
+<p>In this case, we will return both 'Rosetta pt Translators' and
+'Rosetta Translators', because we are member of both of them.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="team_owner_link" path="$['team_owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team Owner
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="time_zone" path="$['time_zone']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The time zone of this object.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="visibility" path="$['visibility']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Visibility</p>
+<p>Anyone can see a public team's data. Only team members can see private team data.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Private"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="wiki_names_collection_link" path="$['wiki_names_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All WikiNames of this Person, sorted alphabetically by URL.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#wiki_name-page-resource"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="person-diff">
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Details about interests and goals. Use plain text, paragraphs are preserved and URLs are linked.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>Your name as you would like it displayed throughout Launchpad. Most people use their full name here.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="hide_email_addresses" path="$['hide_email_addresses']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Hide my email addresses from other Launchpad users
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="homepage_content" path="$['homepage_content']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Homepage Content</p>
+<p>Obsolete. Use description.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="logo_link" path="$['logo_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Logo</p>
+<p>An image of exactly 64x64 pixels that will be displayed in the heading of all pages related to you. Traditionally this is a logo, a small picture or a personal mascot. It should be no bigger than 50kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="mailing_list_auto_subscribe_policy" path="$['mailing_list_auto_subscribe_policy']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Mailing List Auto-subscription Policy</p>
+<p>This attribute determines whether a person is automatically subscribed to a team's mailing list when the person joins said team.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Never subscribe to mailing lists"/>
+ <wadl:option value="Ask me when I join a team"/>
+ <wadl:option value="Always subscribe me to mailing lists"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="mugshot_link" path="$['mugshot_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Mugshot</p>
+<p>A large image of exactly 192x192 pixels, that will be displayed on your home page in Launchpad. Traditionally this is a great big picture of your grinning face. Make the most of it! It should be no bigger than 100kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>A short unique name, beginning with a lower-case letter or number, and containing only letters, numbers, dots, hyphens, or plus signs.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="team_owner_link" path="$['team_owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team Owner
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="visibility" path="$['visibility']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Visibility</p>
+<p>Anyone can see a public team's data. Only team members can see private team data.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Private"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="person-page-resource">
+ <wadl:method name="GET" id="person-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#person-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="person-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#person-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#person-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="pillar">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>An object that might be a project, a project group, or a distribution.</p>
+<p>This is a polymorphic object served by the pillar set. Check the
+individual object to see what type it is.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="pillar-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#pillar-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="pillar-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="pillar-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="pillar-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#pillar-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="pillar-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#pillar-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="pillar-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#pillar"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this item is active.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="pillar-diff">
+ <wadl:param style="plain" required="false" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this item is active.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="pillar-page-resource">
+ <wadl:method name="GET" id="pillar-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#pillar-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="pillar-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#pillar-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#pillar-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#pillar"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="pillars">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>An object for searching across projects, project groups, and distros.</p>
+<p>Projects, project groups, and distributions are collectively known as
+&quot;pillars&quot;. This object lets you do a combined search across all
+types of pillars. It also gives you access to pillars that have
+been flagged by administrators as &quot;featured&quot; pillars.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="pillars-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#pillars-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="pillars-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="pillars-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="pillars-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#pillars-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="pillars-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#pillars-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="pillars-search" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return Projects/Project groups/Distros matching :text:.</p>
+<p>If :limit: is None, the default batch size will be used.</p>
+<p>The results are ordered descending by rank.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="search"/>
+ <wadl:param style="query" name="limit" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Maximum number of items to return. This is a hard limit: any pagination you request will happen within this limit.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="text" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search text
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#pillar-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="pillars-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#pillars"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="featured_pillars_collection_link" path="$['featured_pillars_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Projects, project groups, and distributions that are featured on the site.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#pillar-page-resource"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="pillars-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="pillars-page-resource">
+ <wadl:method name="GET" id="pillars-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#pillars-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="pillars-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#pillars-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#pillars-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#pillars"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="poll">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A poll for a given proposition in a team.
+</wadl:doc>
+ <wadl:method name="GET" id="poll-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#poll-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="poll-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="poll-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="poll-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#poll-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="poll-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#poll-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="poll-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#poll"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="allowspoilt" path="$['allowspoilt']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Users can spoil their votes?</p>
+<p>Allow users to leave the ballot blank (i.e. cast a vote for &quot;None of the above&quot;)</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datecloses" path="$['datecloses']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date and time when this poll closes
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="dateopens" path="$['dateopens']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date and time when this poll opens
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The unique name of this poll</p>
+<p>A short unique name, beginning with a lower-case letter or number, and containing only letters, numbers, dots, hyphens, or plus signs.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="proposition" path="$['proposition']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The proposition that is going to be voted
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="secrecy" path="$['secrecy']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The secrecy of the Poll
+</wadl:doc>
+
+ <wadl:option value="Public Votes (Anyone can see a person's vote)"/>
+ <wadl:option value="Semi-secret Votes (Only team administrators can see a person's vote)"/>
+ <wadl:option value="Secret Votes (It's impossible to track a person's vote)"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="team_link" path="$['team_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The team that this poll refers to.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The title of this poll
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="type" path="$['type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The type of this poll
+</wadl:doc>
+
+ <wadl:option value="Simple Voting"/>
+ <wadl:option value="Condorcet Voting"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="poll-diff">
+ <wadl:param style="plain" required="false" name="allowspoilt" path="$['allowspoilt']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Users can spoil their votes?</p>
+<p>Allow users to leave the ballot blank (i.e. cast a vote for &quot;None of the above&quot;)</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="datecloses" path="$['datecloses']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date and time when this poll closes
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="dateopens" path="$['dateopens']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date and time when this poll opens
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The unique name of this poll</p>
+<p>A short unique name, beginning with a lower-case letter or number, and containing only letters, numbers, dots, hyphens, or plus signs.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="proposition" path="$['proposition']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The proposition that is going to be voted
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="secrecy" path="$['secrecy']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The secrecy of the Poll
+</wadl:doc>
+
+ <wadl:option value="Public Votes (Anyone can see a person's vote)"/>
+ <wadl:option value="Semi-secret Votes (Only team administrators can see a person's vote)"/>
+ <wadl:option value="Secret Votes (It's impossible to track a person's vote)"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The title of this poll
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="type" path="$['type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The type of this poll
+</wadl:doc>
+
+ <wadl:option value="Simple Voting"/>
+ <wadl:option value="Condorcet Voting"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="poll-page-resource">
+ <wadl:method name="GET" id="poll-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#poll-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="poll-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#poll-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#poll-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#poll"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="preview_diff">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>A diff generated to show actual diff between two branches.</p>
+<p>This diff will be used primarily for branch merge proposals where we are
+trying to determine the effective changes of landing the source branch on
+the target branch.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="preview_diff-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#preview_diff-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="preview_diff-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="preview_diff-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="preview_diff-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#preview_diff-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="preview_diff-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#preview_diff-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="preview_diff-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#preview_diff"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="added_lines_count" path="$['added_lines_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The number of lines added in this diff.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="branch_merge_proposal_link" path="$['branch_merge_proposal_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The branch merge proposal that diff relates to.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch_merge_proposal"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="conflicts" path="$['conflicts']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The conflicts text describing any path or text conflicts.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Created</p>
+<p>When this diff was created.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="diff_lines_count" path="$['diff_lines_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The number of lines in this diff.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="diff_text_link" path="$['diff_text_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Content of this diff
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="diffstat" path="$['diffstat']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Statistics about this diff
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="id" path="$['id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>DB ID</p>
+<p>The tracking number for this diff.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="prerequisite_revision_id" path="$['prerequisite_revision_id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The tip revision id of the prerequisite branch used to generate the diff.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="removed_lines_count" path="$['removed_lines_count']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The number of lines removed in this diff.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="source_revision_id" path="$['source_revision_id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The tip revision id of the source branch used to generate the diff.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="stale" path="$['stale']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+If the preview diff is stale, it is out of date when compared to the tip revisions of the source, target, and possibly prerequisite branches.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="target_revision_id" path="$['target_revision_id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The tip revision id of the target branch used to generate the diff.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>PreviewDiff title.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="preview_diff-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="preview_diff-page-resource">
+ <wadl:method name="GET" id="preview_diff-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#preview_diff-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="preview_diff-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#preview_diff-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#preview_diff-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#preview_diff"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="processor">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The SQLObject Processor Interface
+</wadl:doc>
+ <wadl:method name="GET" id="processor-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#processor-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="processor-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="processor-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="processor-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#processor-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="processor-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#processor-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="processor-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#processor"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="processor-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="processor-page-resource">
+ <wadl:method name="GET" id="processor-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#processor-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="processor-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#processor-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#processor-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#processor"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="project">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>A Product.</p>
+<p>The Launchpad Registry describes the open source world as ProjectGroups
+and Products. Each ProjectGroup may be responsible for several Products.
+For example, the Mozilla Project has Firefox, Thunderbird and The
+Mozilla App Suite as Products, among others.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="project-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="project-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="project-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="project-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="project-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="project-getRelease" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the release for this product that has the version given.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getRelease"/>
+ <wadl:param style="query" name="version" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Version
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_release-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project-userHasBugSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is user subscribed, directly or via a team, to bug mail?
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="userHasBugSubscriptions"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="project-searchTasks" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search the IBugTasks reported on this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">search_params:</th><td class="rst-field-body">a BugTaskSearchParams object</td>
+</tr>
+</tbody>
+</table>
+<p>Return an iterable of matching results.</p>
+<p>Note: milestone is currently ignored for all IBugTargets
+except IProduct.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchTasks"/>
+ <wadl:param style="query" name="bug_reporter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_cve" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs associated with a CVE
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_targeted" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs targeted to a series
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status_upstream" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status upstream</p>
+<p>Indicates the status of any remote watches associated with the bug. Possible values include: pending_bugwatch, hide_upstream, resolved_upstream, and open_upstream.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>String or list of strings for tags to search. To exclude, prepend a '-', e.g. '-unwantedtag'</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_duplicates" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs marked as duplicate,
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="nominated_for" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been modified since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="structural_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been created since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_patch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs with patches available.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_commenter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="assignee" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only bugs with the given status value or list of values.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="affected_user" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID or search text.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of fields by which the results are ordered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="tags_combinator" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags combination</p>
+<p>Search for any or all of the tags specified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Any"/>
+ <wadl:option value="All"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Component</p>
+<p>Distribution package archive grouping. E.g. main, universe, multiverse</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="importance" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Importance</p>
+<p>Show only bugs with the given importance or list of importances.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>Show only bugs with the given information type or list of information types.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that were created before the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="milestone" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone</p>
+<p>Show only bug tasks targeted to this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="linked_branches" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that are linked to branches or for bugs that are not linked to branches.
+</wadl:doc>
+
+ <wadl:option value="Show all bugs"/>
+ <wadl:option value="Show only Bugs with linked Branches"/>
+ <wadl:option value="Show only Bugs without linked Branches"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_no_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Exclude bugs with packages specified
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project-getSubscription" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the subscription for person, if it exists.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscription"/>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project-get_timeline" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return basic timeline data useful for creating a diagram.</p>
+<p>The number of milestones returned per series is limited.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="get_timeline"/>
+ <wadl:param style="query" name="include_inactive" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Include inactive
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="project-getTranslationImportQueueEntries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return entries in the translation import queue for this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg import_status:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">RosettaImportStatus DB Schema entry.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg file_extension:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">String with the file type extension, usually 'po'
+or 'pot'.</td>
+</tr>
+</tbody>
+</table>
+<p>If one of both of 'import_status' or 'file_extension' are given, the
+returned entries are filtered based on those values.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getTranslationImportQueueEntries"/>
+ <wadl:param style="query" name="file_extension" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Filename extension</p>
+<p>Show only entries with this filename suffix</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="import_status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only entries with this status</p>
+
+</wadl:doc>
+
+ <wadl:option value="Approved"/>
+ <wadl:option value="Imported"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Failed"/>
+ <wadl:option value="Needs Review"/>
+ <wadl:option value="Blocked"/>
+ <wadl:option value="Needs Information"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_import_queue_entry-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project-getSeries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the series for this product for the given name, or None.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSeries"/>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_series-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project-getSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return all the subscriptions with the specified levels.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A sequence of IStructuralSubscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscriptions"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project-getBranches" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Returns all branches with the given lifecycle status.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">A list of statuses to filter with.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param visible_by_user:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Normally the user who is asking.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param modified_since:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If set, filters the branches being returned
+to those that have been modified since the specified date/time.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param eager_load:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True load related objects for the whole
+collection.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">A list of IBranch.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBranches"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of branch lifecycle statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Limit the branches to those modified since this date.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project-getMergeProposals" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Returns all merge proposals of a given status.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">A list of statuses to filter with.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param visible_by_user:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Normally the user who is asking.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param eager_load:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True, load related objects for the whole
+collection.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">A list of IBranchMergeProposal.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getMergeProposals"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of merge proposal statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_merge_proposal-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project-getMilestone" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return a milestone with the given name for this object, or None.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getMilestone"/>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#milestone-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project-addBugSubscriptionFilter" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription filter for this structure.</p>
+<p>This method is used to create a new IBugSubscriptionFilter for the
+target. It will initially allow all notifications to be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription filter.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscriptionFilter"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription_filter"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project-addOfficialBugTag" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Add tag to the official bug tags of this target.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addOfficialBugTag"/>
+ <wadl:param style="query" name="tag" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The official bug tag
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="project-removeBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remove a subscription to bugs from this structure.</p>
+<p>This will delete all associated filters.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be unsubscribed. If omitted,
+unsubscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">unsubscribed_by:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The IPerson removing the subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="removeBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to unsubscribe. If omitted, the requesting user will be unsubscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="project-removeOfficialBugTag" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Remove tag from the official bug tags of this target.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="removeOfficialBugTag"/>
+ <wadl:param style="query" name="tag" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The official bug tag
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="project-addBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription for this structure.</p>
+<p>This method is used to create a new IStructuralSubscription for the
+target. This initially has a single filter which will allow all
+notifications will be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project-newCodeImport" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create a new code import.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param registrant:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The IPerson to record as the registrant of the
+import.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param branch_name:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The name of the branch or repository to create.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param rcs_type:</th><td class="rst-field-body">The type of the foreign VCS.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param target_rcs_type:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The type of the branch or repository to
+create (Bazaar or Git).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param url:</th><td class="rst-field-body">The URL to import from if the VCS type uses a single URL
+(i.e. isn't CVS).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param cvs_root:</th><td class="rst-field-body">The CVSROOT for a CVS import.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param cvs_module:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The module to import for a CVS import.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param owner:</th><td class="rst-field-body">Who should own the created branch or repository, or
+None for it to be the same as the registrant, or the caller over
+the API.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">An instance of ICodeImport.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="newCodeImport"/>
+ <wadl:param style="query" name="target_rcs_type" required="false">
+
+
+ <wadl:option value="Bazaar"/>
+ <wadl:option value="Git"/>
+ </wadl:param>
+ <wadl:param style="query" name="cvs_root" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+CVS root URL
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="url" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Foreign VCS URL
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Owner of the resulting branch
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="rcs_type" required="false">
+
+
+ <wadl:option value="Concurrent Versions System"/>
+ <wadl:option value="Subversion via CSCVS"/>
+ <wadl:option value="Subversion via bzr-svn"/>
+ <wadl:option value="Git"/>
+ <wadl:option value="Mercurial"/>
+ <wadl:option value="Bazaar"/>
+ </wadl:param>
+ <wadl:param style="query" name="cvs_module" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+CVS module to import
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="branch_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Name of branch to create
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_import"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project-newSeries" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Creates a new IProductSeries for this IProduct.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param owner:</th><td class="rst-field-body">The registrant of this series.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">The unique name of this series.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param summary:</th><td class="rst-field-body">The summary of the purpose and focus of development
+of this series.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param branch:</th><td class="rst-field-body">The bazaar branch that contains the code for
+this series.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param releasefileglob:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The public URL pattern where release files can
+be automatically downloaded from and linked to this series.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="newSeries"/>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of the series is a short, unique name that identifies it, being used in URLs. It must be all lowercase, with no special characters. For example, '2.0' or 'trunk'.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="summary" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A single paragraph that explains the goals of of this series and the intended users. For example: &quot;The 2.0 series of Apache represents the current stable series, and is recommended for all new deployments&quot;.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="branch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Branch</p>
+<p>The Bazaar branch for this series. Leave blank if this series is not maintained in Bazaar.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="query" name="release_url_pattern" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Release URL pattern</p>
+<p>A URL pattern that matches releases that are part of this series. Launchpad automatically scans this site to import new releases. Example: <a class="rst-reference external" href="http://ftp.gnu.org/gnu/emacs/emacs-21.*.tar.gz" target="_top">http://ftp.gnu.org/gnu/emacs/emacs-21.*.tar.gz</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_series"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="project-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this item is active.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active_milestones_collection_link" path="$['active_milestones_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The visible and active milestones associated with this object, ordered by date expected.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="all_milestones_collection_link" path="$['all_milestones_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All milestones associated with this object, ordered by date expected.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="brand_link" path="$['brand_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Brand</p>
+<p>A large image of exactly 192x192 pixels, that will be displayed on this project's home page in Launchpad. It should be no bigger than 100kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Helpful guidelines for reporting a bug</p>
+<p>These guidelines will be shown to everyone reporting a bug and should be text or a bulleted list with your particular requirements, if any.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_supervisor_link" path="$['bug_supervisor_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bug Supervisor</p>
+<p>The Launchpad id of the person or team (preferred) responsible for bug management.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_tracker_link" path="$['bug_tracker_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bugs are tracked
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="commercial_subscription_link" path="$['commercial_subscription_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Commercial subscriptions</p>
+<p>An object which contains the timeframe and the voucher code of a subscription.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#commercial_subscription"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="commercial_subscription_is_due" path="$['commercial_subscription_is_due']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Commercial subscription is due</p>
+<p>Whether the project's licensing requires a new commercial subscription to use launchpad.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Created</p>
+<p>The date this project was created in Launchpad.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_next_suggest_packaging" path="$['date_next_suggest_packaging']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Next suggest packaging date</p>
+<p>Obsolete. The date to resume Ubuntu package suggestions.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Details about the project's work, highlights, goals, and how to contribute. Use plain text, paragraphs are preserved and URLs are linked in pages. Don't repeat the Summary.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="development_focus_link" path="$['development_focus_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Development focus</p>
+<p>The series that represents the master or trunk branch. The Bazaar URL lp:&lt;project&gt; points to the development focus series branch.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>The name of the project as it would appear in a
+paragraph.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="download_url" path="$['download_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Download URL</p>
+<p>The full URL where downloads for this project
+are located, if available. Please include the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="driver_link" path="$['driver_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Driver</p>
+<p>This person or team will be able to set feature goals for and approve bug targeting or backporting for ANY major series in this project. You might want to leave this blank and just appoint a team for each specific series, rather than having one project team that does it all.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="freshmeat_project" path="$['freshmeat_project']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Freshmeat Project</p>
+<p>The Freshmeat project name for
+this project, if it is in freshmeat. [DEPRECATED]</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="homepage_url" path="$['homepage_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Homepage URL</p>
+<p>The project home page. Please include
+the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="icon_link" path="$['icon_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Icon</p>
+<p>A small image of exactly 14x14 pixels and at most 5kb in size, that can be used to identify this project. The icon will be displayed next to the project name everywhere in Launchpad that we refer to the project and link to it.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="information_type" path="$['information_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>The type of data contained in this item.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Public Security"/>
+ <wadl:option value="Private Security"/>
+ <wadl:option value="Private"/>
+ <wadl:option value="Proprietary"/>
+ <wadl:option value="Embargoed"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_permitted" path="$['is_permitted']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Is Permitted</p>
+<p>Whether the project's licensing qualifies for free hosting or the project has an up-to-date subscription.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="license_approved" path="$['license_approved']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Licence approved</p>
+<p>The project is legitimate and its licence appears valid. Not applicable to 'Other/Proprietary'.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="license_info" path="$['license_info']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description of additional licences</p>
+<p>Description of licences that do not appear in the list above.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="licenses" path="$['licenses']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Licences
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="logo_link" path="$['logo_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Logo</p>
+<p>An image of exactly 64x64 pixels that will be displayed in the heading of all pages related to this project. It should be no bigger than 50kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>At least one lowercase letter or number, followed by letters, numbers, dots, hyphens or pluses. Keep this name short; it is used in URLs as shown above.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_answers" path="$['official_answers']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+People can ask questions in Launchpad Answers
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_blueprints" path="$['official_blueprints']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+This project uses blueprints
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_bug_tags" path="$['official_bug_tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Official Bug Tags</p>
+<p>The list of bug tags defined as official.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_bugs" path="$['official_bugs']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bugs in this project are tracked in Launchpad
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_codehosting" path="$['official_codehosting']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Code for this project is published in Bazaar branches on Launchpad
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Maintainer</p>
+<p>The restricted team, moderated team, or person who maintains the project information in Launchpad.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="private" path="$['private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Product is confidential</p>
+<p>This product is visible only to those with access grants.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="private_bugs" path="$['private_bugs']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Private bugs (obsolete; always False)</p>
+<p>Replaced by bug_sharing_policy.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="programming_language" path="$['programming_language']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Programming Languages</p>
+<p>A comma delimited list of programming
+languages used for this project.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="project_group_link" path="$['project_group_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Part of</p>
+<p>Project group. This is an overarching initiative that includes several related projects. For example, the Mozilla Project produces Firefox, Thunderbird and Gecko. This information is used to group those projects in a coherent way. If you make this project part of a group, the group preferences and decisions around bug tracking, translation and security policy will apply to this project.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_group"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="project_reviewed" path="$['project_reviewed']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Project reviewed</p>
+<p>Whether or not this project has been reviewed. If you looked at the project and how it uses Launchpad, you reviewed it.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="qualifies_for_free_hosting" path="$['qualifies_for_free_hosting']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Qualifies for free hosting</p>
+<p>Whether the project's licensing qualifies it for free use of launchpad.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="recipes_collection_link" path="$['recipes_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All recipes associated with the object.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registrant</p>
+<p>This person registered the project in Launchpad.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="releases_collection_link" path="$['releases_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+An iterator over the ProductReleases for this product.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_release-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="remote_product" path="$['remote_product']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remote bug tracker project id</p>
+<p>Some bug trackers host multiple projects at the same URL and require an identifier for the specific project.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="reviewer_whiteboard" path="$['reviewer_whiteboard']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Notes for the project reviewer</p>
+<p>Notes on the project's licence, editable only by reviewers (Admins and Commercial Admins).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="screenshots_url" path="$['screenshots_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Screenshots URL</p>
+<p>The full URL for screenshots of this project,
+if available. Please include the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="security_contact" path="$['security_contact']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Security contact</p>
+<p>Security contact (obsolete; always None)</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="series_collection_link" path="$['series_collection_link']">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_series-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="sourceforge_project" path="$['sourceforge_project']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Sourceforge Project</p>
+<p>The SourceForge project name for
+this project, if it is in sourceforge.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A short paragraph to introduce the project's work.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>The project title. Should be just a few words.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="translation_focus_link" path="$['translation_focus_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Translation focus</p>
+<p>Project series that translators should focus on.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="vcs" path="$['vcs']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>VCS</p>
+<p>Version control system for this project's code.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Bazaar"/>
+ <wadl:option value="Git"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="wiki_url" path="$['wiki_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Wiki URL</p>
+<p>The full URL of this project's wiki, if it has
+one. Please include the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="project-diff">
+ <wadl:param style="plain" required="false" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this item is active.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="brand_link" path="$['brand_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Brand</p>
+<p>A large image of exactly 192x192 pixels, that will be displayed on this project's home page in Launchpad. It should be no bigger than 100kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Helpful guidelines for reporting a bug</p>
+<p>These guidelines will be shown to everyone reporting a bug and should be text or a bulleted list with your particular requirements, if any.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_supervisor_link" path="$['bug_supervisor_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bug Supervisor</p>
+<p>The Launchpad id of the person or team (preferred) responsible for bug management.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_tracker_link" path="$['bug_tracker_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bugs are tracked
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="commercial_subscription_link" path="$['commercial_subscription_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Commercial subscriptions</p>
+<p>An object which contains the timeframe and the voucher code of a subscription.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#commercial_subscription"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_next_suggest_packaging" path="$['date_next_suggest_packaging']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Next suggest packaging date</p>
+<p>Obsolete. The date to resume Ubuntu package suggestions.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Details about the project's work, highlights, goals, and how to contribute. Use plain text, paragraphs are preserved and URLs are linked in pages. Don't repeat the Summary.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="development_focus_link" path="$['development_focus_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Development focus</p>
+<p>The series that represents the master or trunk branch. The Bazaar URL lp:&lt;project&gt; points to the development focus series branch.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>The name of the project as it would appear in a
+paragraph.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="download_url" path="$['download_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Download URL</p>
+<p>The full URL where downloads for this project
+are located, if available. Please include the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="driver_link" path="$['driver_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Driver</p>
+<p>This person or team will be able to set feature goals for and approve bug targeting or backporting for ANY major series in this project. You might want to leave this blank and just appoint a team for each specific series, rather than having one project team that does it all.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="freshmeat_project" path="$['freshmeat_project']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Freshmeat Project</p>
+<p>The Freshmeat project name for
+this project, if it is in freshmeat. [DEPRECATED]</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="homepage_url" path="$['homepage_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Homepage URL</p>
+<p>The project home page. Please include
+the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="icon_link" path="$['icon_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Icon</p>
+<p>A small image of exactly 14x14 pixels and at most 5kb in size, that can be used to identify this project. The icon will be displayed next to the project name everywhere in Launchpad that we refer to the project and link to it.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="information_type" path="$['information_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>The type of data contained in this item.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Public Security"/>
+ <wadl:option value="Private Security"/>
+ <wadl:option value="Private"/>
+ <wadl:option value="Proprietary"/>
+ <wadl:option value="Embargoed"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="license_approved" path="$['license_approved']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Licence approved</p>
+<p>The project is legitimate and its licence appears valid. Not applicable to 'Other/Proprietary'.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="license_info" path="$['license_info']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description of additional licences</p>
+<p>Description of licences that do not appear in the list above.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="licenses" path="$['licenses']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Licences
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="logo_link" path="$['logo_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Logo</p>
+<p>An image of exactly 64x64 pixels that will be displayed in the heading of all pages related to this project. It should be no bigger than 50kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>At least one lowercase letter or number, followed by letters, numbers, dots, hyphens or pluses. Keep this name short; it is used in URLs as shown above.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="official_answers" path="$['official_answers']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+People can ask questions in Launchpad Answers
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="official_blueprints" path="$['official_blueprints']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+This project uses blueprints
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="official_bug_tags" path="$['official_bug_tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Official Bug Tags</p>
+<p>The list of bug tags defined as official.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="official_bugs" path="$['official_bugs']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bugs in this project are tracked in Launchpad
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="official_codehosting" path="$['official_codehosting']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Code for this project is published in Bazaar branches on Launchpad
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Maintainer</p>
+<p>The restricted team, moderated team, or person who maintains the project information in Launchpad.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="programming_language" path="$['programming_language']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Programming Languages</p>
+<p>A comma delimited list of programming
+languages used for this project.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="project_group_link" path="$['project_group_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Part of</p>
+<p>Project group. This is an overarching initiative that includes several related projects. For example, the Mozilla Project produces Firefox, Thunderbird and Gecko. This information is used to group those projects in a coherent way. If you make this project part of a group, the group preferences and decisions around bug tracking, translation and security policy will apply to this project.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_group"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="project_reviewed" path="$['project_reviewed']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Project reviewed</p>
+<p>Whether or not this project has been reviewed. If you looked at the project and how it uses Launchpad, you reviewed it.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="remote_product" path="$['remote_product']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remote bug tracker project id</p>
+<p>Some bug trackers host multiple projects at the same URL and require an identifier for the specific project.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="reviewer_whiteboard" path="$['reviewer_whiteboard']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Notes for the project reviewer</p>
+<p>Notes on the project's licence, editable only by reviewers (Admins and Commercial Admins).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="screenshots_url" path="$['screenshots_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Screenshots URL</p>
+<p>The full URL for screenshots of this project,
+if available. Please include the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="sourceforge_project" path="$['sourceforge_project']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Sourceforge Project</p>
+<p>The SourceForge project name for
+this project, if it is in sourceforge.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A short paragraph to introduce the project's work.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="translation_focus_link" path="$['translation_focus_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Translation focus</p>
+<p>Project series that translators should focus on.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="vcs" path="$['vcs']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>VCS</p>
+<p>Version control system for this project's code.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Bazaar"/>
+ <wadl:option value="Git"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="wiki_url" path="$['wiki_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Wiki URL</p>
+<p>The full URL of this project's wiki, if it has
+one. Please include the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="project-page-resource">
+ <wadl:method name="GET" id="project-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#project-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="project-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#project-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#project-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="project_release">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>A specific release (i.e. version) of a product.</p>
+<p>For example: Mozilla 1.7.2 or Apache 2.0.48.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="project_release-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_release-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="project_release-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="project_release-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="project_release-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_release-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="project_release-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_release-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="project_release-delete" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Delete this release.</p>
+<p>This method must not be used if this release has any
+release files associated with it.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="delete"/>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="project_release-add_file" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add file to the library and link to this IProductRelease.</p>
+<p>The signature file will also be added if available.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param filename:</th><td class="rst-field-body">Name of the file being uploaded.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param file_content:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">io.BytesIO or binary file object.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param content_type:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">A MIME content type string.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param uploader:</th><td class="rst-field-body">The person who uploaded the file.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param signature_filename:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Name of the uploaded gpg signature file.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param signature_content:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">io.BytesIO or binary file object.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param file_type:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">An UpstreamFileType enum value.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param description:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Info about the file.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">IProductReleaseFile object.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">raises:</th><td class="rst-field-body">InvalidFilename if the filename is invalid or a duplicate
+of a file previously added to the release.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="multipart/form-data">
+ <wadl:param style="query" name="ws.op" required="true" fixed="add_file"/>
+ <wadl:param style="query" name="description" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A detailed description of the file contents</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="signature_content" required="false" type="binary">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="query" name="file_content" required="true" type="binary">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="query" name="filename" required="true">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="signature_filename" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="file_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Upstream file type
+</wadl:doc>
+
+ <wadl:option value="Code Release Tarball"/>
+ <wadl:option value="README File"/>
+ <wadl:option value="Release Notes"/>
+ <wadl:option value="ChangeLog File"/>
+ <wadl:option value="Installer file"/>
+ </wadl:param>
+ <wadl:param style="query" name="content_type" required="true">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_release_file"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="project_release-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_release"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="changelog" path="$['changelog']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Changelog</p>
+<p>A description of every change in the release.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Created</p>
+<p>The date this project release was created in Launchpad.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_released" path="$['date_released']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date released</p>
+<p>The date this release was published. Before release, this should have an estimated release date.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Constructed display name for a project release.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="files_collection_link" path="$['files_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Project release files</p>
+<p>A list of files for this release.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_release_file-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="milestone_link" path="$['milestone_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone for this release</p>
+<p>A release requires a corresponding milestone that is not attached to another release.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The registrant of this release.</p>
+<p>The person or who registered this release.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="project_link" path="$['project_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The project that made this release.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="release_notes" path="$['release_notes']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Release notes</p>
+<p>A description of important new features (though the changelog below might repeat some of this information).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Constructed title for a project release.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="version" path="$['version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Version</p>
+<p>The specific version number assigned to this release. Letters and numbers are acceptable, for releases like &quot;1.2rc3&quot;.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="project_release-diff">
+ <wadl:param style="plain" required="false" name="changelog" path="$['changelog']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Changelog</p>
+<p>A description of every change in the release.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_released" path="$['date_released']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date released</p>
+<p>The date this release was published. Before release, this should have an estimated release date.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="milestone_link" path="$['milestone_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone for this release</p>
+<p>A release requires a corresponding milestone that is not attached to another release.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The registrant of this release.</p>
+<p>The person or who registered this release.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="release_notes" path="$['release_notes']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Release notes</p>
+<p>A description of important new features (though the changelog below might repeat some of this information).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="project_release-page-resource">
+ <wadl:method name="GET" id="project_release-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#project_release-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="project_release-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#project_release-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#project_release-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_release"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="project_release_file">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A file associated with a ProductRelease.
+</wadl:doc>
+ <wadl:method name="GET" id="project_release_file-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_release_file-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="project_release_file-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="project_release_file-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="project_release_file-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_release_file-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="project_release_file-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_release_file-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="project_release_file-delete" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Delete the product release file.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="delete"/>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="project_release_file-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_release_file"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_uploaded" path="$['date_uploaded']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Upload date</p>
+<p>The date this file was uploaded</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A detailed description of the file contents</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="file_link" path="$['file_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>File</p>
+<p>The file contents.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="file_type" path="$['file_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Upstream file type
+</wadl:doc>
+
+ <wadl:option value="Code Release Tarball"/>
+ <wadl:option value="README File"/>
+ <wadl:option value="Release Notes"/>
+ <wadl:option value="ChangeLog File"/>
+ <wadl:option value="Installer file"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="project_release_link" path="$['project_release_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Project release</p>
+<p>The parent product release.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_release"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="signature_link" path="$['signature_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>File signature</p>
+<p>The file signature.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="project_release_file-diff">
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A detailed description of the file contents</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="file_type" path="$['file_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Upstream file type
+</wadl:doc>
+
+ <wadl:option value="Code Release Tarball"/>
+ <wadl:option value="README File"/>
+ <wadl:option value="Release Notes"/>
+ <wadl:option value="ChangeLog File"/>
+ <wadl:option value="Installer file"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="project_release_link" path="$['project_release_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Project release</p>
+<p>The parent product release.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_release"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="project_release_file-page-resource">
+ <wadl:method name="GET" id="project_release_file-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#project_release_file-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="project_release_file-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#project_release_file-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#project_release_file-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_release_file"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="project_series">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A series of releases. For example '2.0' or '1.3' or 'dev'.
+</wadl:doc>
+ <wadl:method name="GET" id="project_series-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_series-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="project_series-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="project_series-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="project_series-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_series-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="project_series-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_series-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="project_series-get_timeline" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return basic timeline data useful for creating a diagram.</p>
+<p>The number of milestones returned is limited.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="get_timeline"/>
+ <wadl:param style="query" name="include_inactive" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Include inactive
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="project_series-userHasBugSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is user subscribed, directly or via a team, to bug mail?
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="userHasBugSubscriptions"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="project_series-getSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return all the subscriptions with the specified levels.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A sequence of IStructuralSubscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscriptions"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_series-searchTasks" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search the IBugTasks reported on this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">search_params:</th><td class="rst-field-body">a BugTaskSearchParams object</td>
+</tr>
+</tbody>
+</table>
+<p>Return an iterable of matching results.</p>
+<p>Note: milestone is currently ignored for all IBugTargets
+except IProduct.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchTasks"/>
+ <wadl:param style="query" name="bug_reporter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_cve" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs associated with a CVE
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_targeted" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs targeted to a series
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status_upstream" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status upstream</p>
+<p>Indicates the status of any remote watches associated with the bug. Possible values include: pending_bugwatch, hide_upstream, resolved_upstream, and open_upstream.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>String or list of strings for tags to search. To exclude, prepend a '-', e.g. '-unwantedtag'</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_duplicates" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs marked as duplicate,
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="nominated_for" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been modified since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="structural_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been created since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_patch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs with patches available.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_commenter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="assignee" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only bugs with the given status value or list of values.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="affected_user" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID or search text.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of fields by which the results are ordered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="tags_combinator" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags combination</p>
+<p>Search for any or all of the tags specified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Any"/>
+ <wadl:option value="All"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Component</p>
+<p>Distribution package archive grouping. E.g. main, universe, multiverse</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="importance" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Importance</p>
+<p>Show only bugs with the given importance or list of importances.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>Show only bugs with the given information type or list of information types.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that were created before the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="milestone" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone</p>
+<p>Show only bug tasks targeted to this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="linked_branches" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that are linked to branches or for bugs that are not linked to branches.
+</wadl:doc>
+
+ <wadl:option value="Show all bugs"/>
+ <wadl:option value="Show only Bugs with linked Branches"/>
+ <wadl:option value="Show only Bugs without linked Branches"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_no_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Exclude bugs with packages specified
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_series-getSubscription" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the subscription for person, if it exists.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscription"/>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_series-getTranslationImportQueueEntries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return entries in the translation import queue for this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg import_status:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">RosettaImportStatus DB Schema entry.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg file_extension:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">String with the file type extension, usually 'po'
+or 'pot'.</td>
+</tr>
+</tbody>
+</table>
+<p>If one of both of 'import_status' or 'file_extension' are given, the
+returned entries are filtered based on those values.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getTranslationImportQueueEntries"/>
+ <wadl:param style="query" name="file_extension" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Filename extension</p>
+<p>Show only entries with this filename suffix</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="import_status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only entries with this status</p>
+
+</wadl:doc>
+
+ <wadl:option value="Approved"/>
+ <wadl:option value="Imported"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Failed"/>
+ <wadl:option value="Needs Review"/>
+ <wadl:option value="Blocked"/>
+ <wadl:option value="Needs Information"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_import_queue_entry-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_series-getTranslationTemplates" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return an iterator over all its translation templates.</p>
+<p>The returned templates are either obsolete or current.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A sequence of IPOTemplate.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getTranslationTemplates"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_template-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_series-addBugSubscriptionFilter" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription filter for this structure.</p>
+<p>This method is used to create a new IBugSubscriptionFilter for the
+target. It will initially allow all notifications to be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription filter.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscriptionFilter"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription_filter"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_series-addBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription for this structure.</p>
+<p>This method is used to create a new IStructuralSubscription for the
+target. This initially has a single filter which will allow all
+notifications will be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_series-newMilestone" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Create a new milestone for this ProjectSeries.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="newMilestone"/>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>Only letters, numbers, and simple punctuation are allowed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="date_targeted" required="false" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Targeted</p>
+<p>Example: 2005-11-24</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="summary" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A summary of the features and status of this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="code_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Code name</p>
+<p>An alternative name for the milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_series-removeBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remove a subscription to bugs from this structure.</p>
+<p>This will delete all associated filters.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be unsubscribed. If omitted,
+unsubscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">unsubscribed_by:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The IPerson removing the subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="removeBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to unsubscribe. If omitted, the requesting user will be unsubscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="project_series-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_series"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this series is stable and supported, or under current development. This excludes series which are experimental or obsolete.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active_milestones_collection_link" path="$['active_milestones_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The visible milestones associated with this project series, ordered by date expected.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="all_milestones_collection_link" path="$['all_milestones_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All milestones associated with this project series, ordered by date expected.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#milestone-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="branch_link" path="$['branch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Branch</p>
+<p>The Bazaar branch for this series. Leave blank if this series is not maintained in Bazaar.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Helpful guidelines for reporting a bug</p>
+<p>These guidelines will be shown to everyone reporting a bug and should be text or a bulleted list with your particular requirements, if any.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Registered
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>Display name. In this case we have removed the underlying database field, and this attribute just returns the name.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="driver_link" path="$['driver_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Release manager</p>
+<p>The person or team responsible for decisions about features and bugs that will be targeted to this series. If you don't nominate someone here, then the owners and drivers of the project and project group will automatically have those permissions.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="drivers_collection_link" path="$['drivers_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of the people or teams who are drivers for this series. This list is made up of any drivers or owners from this series and the parent drivers.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of the series is a short, unique name that identifies it, being used in URLs. It must be all lowercase, with no special characters. For example, '2.0' or 'trunk'.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_bug_tags" path="$['official_bug_tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Official Bug Tags</p>
+<p>The list of bug tags defined as official.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>Project owner, either a valid Person or Team</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="project_link" path="$['project_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Project
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="release_finder_url_pattern" path="$['release_finder_url_pattern']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Release URL pattern</p>
+<p>A URL pattern that matches releases that are part of this series. Launchpad automatically scans this site to import new releases. Example: <a class="rst-reference external" href="http://ftp.gnu.org/gnu/emacs/emacs-21.*.tar.gz" target="_top">http://ftp.gnu.org/gnu/emacs/emacs-21.*.tar.gz</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="releases_collection_link" path="$['releases_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+An iterator over the releases in this Series, sorted with latest release first.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_release-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="Experimental"/>
+ <wadl:option value="Active Development"/>
+ <wadl:option value="Pre-release Freeze"/>
+ <wadl:option value="Current Stable Release"/>
+ <wadl:option value="Supported"/>
+ <wadl:option value="Obsolete"/>
+ <wadl:option value="Future"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A single paragraph that explains the goals of of this series and the intended users. For example: &quot;The 2.0 series of Apache represents the current stable series, and is recommended for all new deployments&quot;.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>The product series title. Should be just a few words.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="project_series-diff">
+ <wadl:param style="plain" required="false" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this series is stable and supported, or under current development. This excludes series which are experimental or obsolete.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="branch_link" path="$['branch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Branch</p>
+<p>The Bazaar branch for this series. Leave blank if this series is not maintained in Bazaar.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Helpful guidelines for reporting a bug</p>
+<p>These guidelines will be shown to everyone reporting a bug and should be text or a bulleted list with your particular requirements, if any.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>Display name. In this case we have removed the underlying database field, and this attribute just returns the name.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="driver_link" path="$['driver_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Release manager</p>
+<p>The person or team responsible for decisions about features and bugs that will be targeted to this series. If you don't nominate someone here, then the owners and drivers of the project and project group will automatically have those permissions.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of the series is a short, unique name that identifies it, being used in URLs. It must be all lowercase, with no special characters. For example, '2.0' or 'trunk'.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>Project owner, either a valid Person or Team</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="project_link" path="$['project_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Project
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="release_finder_url_pattern" path="$['release_finder_url_pattern']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Release URL pattern</p>
+<p>A URL pattern that matches releases that are part of this series. Launchpad automatically scans this site to import new releases. Example: <a class="rst-reference external" href="http://ftp.gnu.org/gnu/emacs/emacs-21.*.tar.gz" target="_top">http://ftp.gnu.org/gnu/emacs/emacs-21.*.tar.gz</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="Experimental"/>
+ <wadl:option value="Active Development"/>
+ <wadl:option value="Pre-release Freeze"/>
+ <wadl:option value="Current Stable Release"/>
+ <wadl:option value="Supported"/>
+ <wadl:option value="Obsolete"/>
+ <wadl:option value="Future"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A single paragraph that explains the goals of of this series and the intended users. For example: &quot;The 2.0 series of Apache represents the current stable series, and is recommended for all new deployments&quot;.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>The product series title. Should be just a few words.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="project_series-page-resource">
+ <wadl:method name="GET" id="project_series-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#project_series-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="project_series-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#project_series-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#project_series-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_series"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="project_group">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A ProjectGroup.
+</wadl:doc>
+ <wadl:method name="GET" id="project_group-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_group-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="project_group-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="project_group-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="project_group-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_group-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="project_group-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_group-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="project_group-userHasBugSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is user subscribed, directly or via a team, to bug mail?
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="userHasBugSubscriptions"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="project_group-getSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return all the subscriptions with the specified levels.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A sequence of IStructuralSubscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscriptions"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_group-getSubscription" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the subscription for person, if it exists.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscription"/>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_group-searchTasks" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search the IBugTasks reported on this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">search_params:</th><td class="rst-field-body">a BugTaskSearchParams object</td>
+</tr>
+</tbody>
+</table>
+<p>Return an iterable of matching results.</p>
+<p>Note: milestone is currently ignored for all IBugTargets
+except IProduct.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchTasks"/>
+ <wadl:param style="query" name="bug_reporter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_cve" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs associated with a CVE
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_targeted" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs targeted to a series
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status_upstream" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status upstream</p>
+<p>Indicates the status of any remote watches associated with the bug. Possible values include: pending_bugwatch, hide_upstream, resolved_upstream, and open_upstream.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>String or list of strings for tags to search. To exclude, prepend a '-', e.g. '-unwantedtag'</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_duplicates" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs marked as duplicate,
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="nominated_for" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been modified since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="structural_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been created since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_patch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs with patches available.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_commenter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="assignee" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only bugs with the given status value or list of values.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="affected_user" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID or search text.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of fields by which the results are ordered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="tags_combinator" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags combination</p>
+<p>Search for any or all of the tags specified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Any"/>
+ <wadl:option value="All"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Component</p>
+<p>Distribution package archive grouping. E.g. main, universe, multiverse</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="importance" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Importance</p>
+<p>Show only bugs with the given importance or list of importances.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>Show only bugs with the given information type or list of information types.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that were created before the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="milestone" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone</p>
+<p>Show only bug tasks targeted to this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="linked_branches" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that are linked to branches or for bugs that are not linked to branches.
+</wadl:doc>
+
+ <wadl:option value="Show all bugs"/>
+ <wadl:option value="Show only Bugs with linked Branches"/>
+ <wadl:option value="Show only Bugs without linked Branches"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_no_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Exclude bugs with packages specified
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_group-getBranches" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Returns all branches with the given lifecycle status.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">A list of statuses to filter with.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param visible_by_user:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Normally the user who is asking.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param modified_since:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If set, filters the branches being returned
+to those that have been modified since the specified date/time.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param eager_load:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True load related objects for the whole
+collection.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">A list of IBranch.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBranches"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of branch lifecycle statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Limit the branches to those modified since this date.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_group-getMergeProposals" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Returns all merge proposals of a given status.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">A list of statuses to filter with.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param visible_by_user:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Normally the user who is asking.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param eager_load:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True, load related objects for the whole
+collection.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">A list of IBranchMergeProposal.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getMergeProposals"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of merge proposal statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_merge_proposal-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_group-getMilestone" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return a milestone with the given name for this object, or None.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getMilestone"/>
+ <wadl:param style="query" name="name" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Name
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#milestone-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_group-addBugSubscriptionFilter" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription filter for this structure.</p>
+<p>This method is used to create a new IBugSubscriptionFilter for the
+target. It will initially allow all notifications to be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription filter.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscriptionFilter"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription_filter"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_group-addBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription for this structure.</p>
+<p>This method is used to create a new IStructuralSubscription for the
+target. This initially has a single filter which will allow all
+notifications will be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_group-removeBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remove a subscription to bugs from this structure.</p>
+<p>This will delete all associated filters.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be unsubscribed. If omitted,
+unsubscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">unsubscribed_by:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The IPerson removing the subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="removeBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to unsubscribe. If omitted, the requesting user will be unsubscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="project_group-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_group"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this item is active.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active_milestones_collection_link" path="$['active_milestones_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The visible and active milestones associated with this object, ordered by date expected.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_group_milestone-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="all_milestones_collection_link" path="$['all_milestones_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All milestones associated with this object, ordered by date expected.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_group_milestone-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>If I’m reporting a bug, I should include, if possible</p>
+<p>These guidelines will be shown to anyone reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_tracker_link" path="$['bug_tracker_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bug Tracker</p>
+<p>The bug tracker the projects in this project group use.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Created</p>
+<p>The date this project group was created in Launchpad.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Details about the project group's work, goals, and how to contribute. Use plain text, paragraphs are preserved and URLs are linked in pages. Don't repeat the Summary.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>Appropriately capitalised, and typically ending in &quot;Project&quot;. Examples: the Apache Project, the Mozilla Project, the Gimp Project.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="driver_link" path="$['driver_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Driver</p>
+<p>This is a project group-wide appointment. Think carefully here! This person or team will be able to set feature goals and approve bug targeting and backporting for ANY series in ANY project in this group. You can also appoint drivers at the level of a specific project or series. So you may just want to leave this space blank, and instead let the individual projects and series have drivers.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="freshmeat_project" path="$['freshmeat_project']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Freshmeat Project Name</p>
+<p>The Freshmeat project name for this project group, if it is in Freshmeat. [DEPRECATED]</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="homepage_content" path="$['homepage_content']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Homepage Content</p>
+<p>The content of this project group's home page. Edit this and it will be displayed for all the world to see. It is NOT a wiki so you cannot undo changes.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="homepage_url" path="$['homepage_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Homepage URL</p>
+<p>The project group home page. Please include the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="icon_link" path="$['icon_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Icon</p>
+<p>A small image of exactly 14x14 pixels and at most 5kb in size, that can be used to identify this project group. The icon will be displayed in Launchpad everywhere that we link to this project group. For example in listings or tables of active project groups.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="logo_link" path="$['logo_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Logo</p>
+<p>An image of exactly 64x64 pixels that will be displayed in the heading of all pages related to this project group. It should be no bigger than 50kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="mugshot_link" path="$['mugshot_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Brand</p>
+<p>A large image of exactly 192x192 pixels, that will be displayed on this project group's home page in Launchpad. It should be no bigger than 100kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>A unique name, used in URLs, identifying the project group. All lowercase, no special characters. Examples: apache, mozilla, gimp.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_bug_tags" path="$['official_bug_tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Official Bug Tags</p>
+<p>The list of bug tags defined as official.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Maintainer</p>
+<p>The restricted team, moderated team, or person who maintains the project group information in Launchpad.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="projects_collection_link" path="$['projects_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of active projects for this project group.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registrant</p>
+<p>Project group registrant. Must be a valid Launchpad Person.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="reviewed" path="$['reviewed']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Reviewed</p>
+<p>Whether or not this project group has been reviewed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="sourceforge_project" path="$['sourceforge_project']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>SourceForge Project Name</p>
+<p>The SourceForge project name for this project group, if it is in SourceForge.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Project Group Summary</p>
+<p>A short paragraph to introduce the project group's work.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>The full name of the project group, which can contain spaces, special characters, etc.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="wiki_url" path="$['wiki_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Wiki URL</p>
+<p>The URL of this project group's wiki, if it has one. Please include the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="project_group-diff">
+ <wadl:param style="plain" required="false" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this item is active.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>If I’m reporting a bug, I should include, if possible</p>
+<p>These guidelines will be shown to anyone reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_tracker_link" path="$['bug_tracker_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bug Tracker</p>
+<p>The bug tracker the projects in this project group use.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_tracker"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Details about the project group's work, goals, and how to contribute. Use plain text, paragraphs are preserved and URLs are linked in pages. Don't repeat the Summary.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>Appropriately capitalised, and typically ending in &quot;Project&quot;. Examples: the Apache Project, the Mozilla Project, the Gimp Project.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="driver_link" path="$['driver_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Driver</p>
+<p>This is a project group-wide appointment. Think carefully here! This person or team will be able to set feature goals and approve bug targeting and backporting for ANY series in ANY project in this group. You can also appoint drivers at the level of a specific project or series. So you may just want to leave this space blank, and instead let the individual projects and series have drivers.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="freshmeat_project" path="$['freshmeat_project']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Freshmeat Project Name</p>
+<p>The Freshmeat project name for this project group, if it is in Freshmeat. [DEPRECATED]</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="homepage_content" path="$['homepage_content']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Homepage Content</p>
+<p>The content of this project group's home page. Edit this and it will be displayed for all the world to see. It is NOT a wiki so you cannot undo changes.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="homepage_url" path="$['homepage_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Homepage URL</p>
+<p>The project group home page. Please include the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="icon_link" path="$['icon_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Icon</p>
+<p>A small image of exactly 14x14 pixels and at most 5kb in size, that can be used to identify this project group. The icon will be displayed in Launchpad everywhere that we link to this project group. For example in listings or tables of active project groups.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="logo_link" path="$['logo_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Logo</p>
+<p>An image of exactly 64x64 pixels that will be displayed in the heading of all pages related to this project group. It should be no bigger than 50kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="mugshot_link" path="$['mugshot_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Brand</p>
+<p>A large image of exactly 192x192 pixels, that will be displayed on this project group's home page in Launchpad. It should be no bigger than 100kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>A unique name, used in URLs, identifying the project group. All lowercase, no special characters. Examples: apache, mozilla, gimp.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Maintainer</p>
+<p>The restricted team, moderated team, or person who maintains the project group information in Launchpad.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="reviewed" path="$['reviewed']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Reviewed</p>
+<p>Whether or not this project group has been reviewed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="sourceforge_project" path="$['sourceforge_project']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>SourceForge Project Name</p>
+<p>The SourceForge project name for this project group, if it is in SourceForge.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Project Group Summary</p>
+<p>A short paragraph to introduce the project group's work.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Title</p>
+<p>The full name of the project group, which can contain spaces, special characters, etc.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="wiki_url" path="$['wiki_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Wiki URL</p>
+<p>The URL of this project group's wiki, if it has one. Please include the <a class="rst-reference external" href="http://" target="_top">http://</a></p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="project_group-page-resource">
+ <wadl:method name="GET" id="project_group-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#project_group-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="project_group-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#project_group-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#project_group-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_group"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="project_group_milestone">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A marker interface for milestones related to a project
+</wadl:doc>
+ <wadl:method name="GET" id="project_group_milestone-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_group_milestone-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="project_group_milestone-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="project_group_milestone-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="project_group_milestone-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_group_milestone-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="project_group_milestone-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#project_group_milestone-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="DELETE" id="project_group_milestone-delete"/>
+
+ <wadl:method id="project_group_milestone-userHasBugSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is user subscribed, directly or via a team, to bug mail?
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="userHasBugSubscriptions"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="project_group_milestone-getSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return all the subscriptions with the specified levels.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A sequence of IStructuralSubscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscriptions"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_group_milestone-getSubscription" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the subscription for person, if it exists.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscription"/>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_group_milestone-searchTasks" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search the IBugTasks reported on this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">search_params:</th><td class="rst-field-body">a BugTaskSearchParams object</td>
+</tr>
+</tbody>
+</table>
+<p>Return an iterable of matching results.</p>
+<p>Note: milestone is currently ignored for all IBugTargets
+except IProduct.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchTasks"/>
+ <wadl:param style="query" name="bug_reporter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_cve" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs associated with a CVE
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_targeted" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs targeted to a series
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status_upstream" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status upstream</p>
+<p>Indicates the status of any remote watches associated with the bug. Possible values include: pending_bugwatch, hide_upstream, resolved_upstream, and open_upstream.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>String or list of strings for tags to search. To exclude, prepend a '-', e.g. '-unwantedtag'</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_duplicates" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs marked as duplicate,
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="nominated_for" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been modified since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="structural_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been created since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_patch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs with patches available.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_commenter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="assignee" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only bugs with the given status value or list of values.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="affected_user" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID or search text.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of fields by which the results are ordered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="tags_combinator" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags combination</p>
+<p>Search for any or all of the tags specified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Any"/>
+ <wadl:option value="All"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Component</p>
+<p>Distribution package archive grouping. E.g. main, universe, multiverse</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="importance" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Importance</p>
+<p>Show only bugs with the given importance or list of importances.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>Show only bugs with the given information type or list of information types.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that were created before the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="milestone" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone</p>
+<p>Show only bug tasks targeted to this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="linked_branches" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that are linked to branches or for bugs that are not linked to branches.
+</wadl:doc>
+
+ <wadl:option value="Show all bugs"/>
+ <wadl:option value="Show only Bugs with linked Branches"/>
+ <wadl:option value="Show only Bugs without linked Branches"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_no_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Exclude bugs with packages specified
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_group_milestone-addBugSubscriptionFilter" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription filter for this structure.</p>
+<p>This method is used to create a new IBugSubscriptionFilter for the
+target. It will initially allow all notifications to be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription filter.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscriptionFilter"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription_filter"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_group_milestone-addBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription for this structure.</p>
+<p>This method is used to create a new IStructuralSubscription for the
+target. This initially has a single filter which will allow all
+notifications will be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_group_milestone-createProductRelease" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create a new ProductRelease.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param owner:</th><td class="rst-field-body">IPerson object who manages the release.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param datereleased:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Date of the product release.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param changelog:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Detailed changes in each version.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param release_notes:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Overview of changes in each version.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">IProductRelease object.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="createProductRelease"/>
+ <wadl:param style="query" name="date_released" required="true" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date released</p>
+<p>The date this release was published. Before release, this should have an estimated release date.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="changelog" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Changelog</p>
+<p>A description of every change in the release.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="release_notes" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Release notes</p>
+<p>A description of important new features (though the changelog below might repeat some of this information).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_release"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="project_group_milestone-removeBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remove a subscription to bugs from this structure.</p>
+<p>This will delete all associated filters.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be unsubscribed. If omitted,
+unsubscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">unsubscribed_by:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The IPerson removing the subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="removeBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to unsubscribe. If omitted, the requesting user will be unsubscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="project_group_milestone-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_group_milestone"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="code_name" path="$['code_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Code name</p>
+<p>An alternative name for the milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_targeted" path="$['date_targeted']" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Targeted</p>
+<p>Example: 2005-11-24</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_active" path="$['is_active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this object should be shown in web forms for targeting.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>Only letters, numbers, and simple punctuation are allowed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_bug_tags" path="$['official_bug_tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Official Bug Tags</p>
+<p>The list of bug tags defined as official.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="release_link" path="$['release_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The release for this milestone.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_release"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="series_target_link" path="$['series_target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The productseries or distroseries of this milestone.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#has_milestones"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A summary of the features and status of this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="target_link" path="$['target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The product, distribution, or project group for this milestone.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#has_milestones"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A context title for pages.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="project_group_milestone-diff">
+ <wadl:param style="plain" required="false" name="code_name" path="$['code_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Code name</p>
+<p>An alternative name for the milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_targeted" path="$['date_targeted']" type="xsd:date">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date Targeted</p>
+<p>Example: 2005-11-24</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="is_active" path="$['is_active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Whether or not this object should be shown in web forms for targeting.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>Only letters, numbers, and simple punctuation are allowed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="series_target_link" path="$['series_target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The productseries or distroseries of this milestone.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#has_milestones"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="summary" path="$['summary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Summary</p>
+<p>A summary of the features and status of this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="target_link" path="$['target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The product, distribution, or project group for this milestone.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#has_milestones"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="project_group_milestone-page-resource">
+ <wadl:method name="GET" id="project_group_milestone-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#project_group_milestone-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="project_group_milestone-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#project_group_milestone-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#project_group_milestone-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_group_milestone"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="question">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A single question, often a support request.
+</wadl:doc>
+ <wadl:method name="GET" id="question-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#question-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="question-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="question-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="question-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#question-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="question-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#question-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="question-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#question"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="question-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="question-page-resource">
+ <wadl:method name="GET" id="question-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#question-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="question-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#question-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#question-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#question"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="ssh_key">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+SSH public key
+</wadl:doc>
+ <wadl:method name="GET" id="ssh_key-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#ssh_key-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="ssh_key-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="ssh_key-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="ssh_key-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#ssh_key-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="ssh_key-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#ssh_key-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="ssh_key-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#ssh_key"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="comment" path="$['comment']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Comment describing this key
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="keytext" path="$['keytext']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Key text
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="keytype" path="$['keytype']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Key type
+</wadl:doc>
+
+ <wadl:option value="RSA"/>
+ <wadl:option value="DSA"/>
+ <wadl:option value="ECDSA"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="ssh_key-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="ssh_key-page-resource">
+ <wadl:method name="GET" id="ssh_key-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#ssh_key-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="ssh_key-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#ssh_key-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#ssh_key-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#ssh_key"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="service_factory">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Interface representing a factory used to access named services.
+</wadl:doc>
+ <wadl:method name="GET" id="service_factory-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#service_factory-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="service_factory-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="service_factory-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="service_factory-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#service_factory-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="service_factory-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#service_factory-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="service_factory-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#service_factory"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="service_factory-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="service_factory-page-resource">
+ <wadl:method name="GET" id="service_factory-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#service_factory-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="service_factory-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#service_factory-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#service_factory-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#service_factory"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="sharing_service">
+
+ <wadl:method name="GET" id="sharing_service-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#sharing_service-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="sharing_service-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="sharing_service-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="sharing_service-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#sharing_service-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="sharing_service-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#sharing_service-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="sharing_service-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#sharing_service"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of the service, used to generate the url.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="sharing_service-diff">
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of the service, used to generate the url.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="sharing_service-page-resource">
+ <wadl:method name="GET" id="sharing_service-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#sharing_service-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="sharing_service-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#sharing_service-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#sharing_service-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#sharing_service"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="snap_base">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A base for snaps.
+</wadl:doc>
+ <wadl:method name="GET" id="snap_base-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snap_base-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="snap_base-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="snap_base-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="snap_base-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snap_base-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="snap_base-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snap_base-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="snap_base-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_base"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="build_channels" path="$['build_channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source snap channels for builds</p>
+<p>A dictionary mapping snap names to channels to use when building snaps that specify this base. The special '_byarch' key may have a mapping of architecture names to mappings of snap names to channels, which if present override the channels declared at the top level when building for those architectures.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="dependencies_collection_link" path="$['dependencies_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Archive dependencies for this snap base.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive_dependency-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Display name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Distro series
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_default" path="$['is_default']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Is default?</p>
+<p>Whether this base is the default for snaps that do not specify a base.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="processors_collection_link" path="$['processors_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Processors</p>
+<p>The architectures that the snap base supports.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#processor-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registrant</p>
+<p>The person who registered this base.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="snap_base-diff">
+ <wadl:param style="plain" required="false" name="build_channels" path="$['build_channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source snap channels for builds</p>
+<p>A dictionary mapping snap names to channels to use when building snaps that specify this base. The special '_byarch' key may have a mapping of architecture names to mappings of snap names to channels, which if present override the channels declared at the top level when building for those architectures.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Display name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Distro series
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Name
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="snap_base-page-resource">
+ <wadl:method name="GET" id="snap_base-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#snap_base-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="snap_base-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#snap_base-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#snap_base-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_base"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="snap_build">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Build information for snap package builds.
+</wadl:doc>
+ <wadl:method name="GET" id="snap_build-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snap_build-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="snap_build-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="snap_build-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="snap_build-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snap_build-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="snap_build-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snap_build-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="snap_build-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_build"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="arch_tag" path="$['arch_tag']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Architecture tag
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The archive from which to build the snap package.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="build_log_url" path="$['build_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build Log URL</p>
+<p>A URL for the build log. None if there is no log available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="builder_link" path="$['builder_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Builder</p>
+<p>The builder assigned to this job.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#builder"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="buildstate" path="$['buildstate']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current status of the job.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_be_cancelled" path="$['can_be_cancelled']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can be cancelled</p>
+<p>Whether this build record can be cancelled.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_be_rescored" path="$['can_be_rescored']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can be rescored</p>
+<p>Whether this build record can be rescored manually.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_be_retried" path="$['can_be_retried']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can be retried</p>
+<p>Whether this build record can be retried.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="channels" path="$['channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source snap channels to use for this build.</p>
+<p>A dictionary mapping snap names to channels to use for this build. Currently only 'core', 'core18', 'core20', 'core22', and 'snapcraft' keys are supported.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_first_dispatched" path="$['date_first_dispatched']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date finished</p>
+<p>The actual build start time. Set when the build is dispatched the first time and not changed in subsequent build attempts.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datebuilt" path="$['datebuilt']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date finished</p>
+<p>The timestamp when the build farm job was finished.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datecreated" path="$['datecreated']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date created</p>
+<p>The timestamp when the build farm job was created.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="dependencies" path="$['dependencies']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependencies</p>
+<p>Debian-like dependency line that must be satisfied before attempting to build this request.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution</p>
+<p>Shortcut for its distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_arch_series_link" path="$['distro_arch_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The series and architecture for which to build.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_arch_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution series</p>
+<p>Shortcut for its distribution series.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The pocket for which to build.</p>
+<p>The package stream within the source archive and distribution series to use when building the snap package. If the source archive is a PPA, then the PPA's archive dependencies will be used to select the pocket in the distribution's primary archive.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="requester_link" path="$['requester_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The person who requested this build.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="revision_id" path="$['revision_id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Revision ID</p>
+<p>The revision ID of the branch used for this build, if available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="score" path="$['score']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Score of the related build farm job (if any).
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="snap_link" path="$['snap_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The snap package to build.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="snap_base_link" path="$['snap_base_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The snap base to use for this build.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_base"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_upload_error_message" path="$['store_upload_error_message']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Store upload error message</p>
+<p>The error message, if any, from the last attempt to upload this snap build to the store. (Deprecated; use store_upload_error_messages instead.)</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_upload_error_messages" path="$['store_upload_error_messages']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Store upload error messages</p>
+<p>A list of dict(message, link) where message is an error description and link, if any, is an external link to extra details, from the last attempt to upload this snap build to the store.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_upload_revision" path="$['store_upload_revision']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Store revision</p>
+<p>The revision assigned to this package by the store.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_upload_status" path="$['store_upload_status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Store upload status
+</wadl:doc>
+
+ <wadl:option value="Unscheduled"/>
+ <wadl:option value="Pending"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Failed to release to channels"/>
+ <wadl:option value="Uploaded"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_upload_url" path="$['store_upload_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Store URL</p>
+<p>The URL to use for managing this package in the store.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Title
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="upload_log_url" path="$['upload_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Upload Log URL</p>
+<p>A URL for failed upload logs.Will be None if there was no failure.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="snap_build-diff">
+ <wadl:param style="plain" required="false" name="build_log_url" path="$['build_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build Log URL</p>
+<p>A URL for the build log. None if there is no log available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="buildstate" path="$['buildstate']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current status of the job.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="channels" path="$['channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source snap channels to use for this build.</p>
+<p>A dictionary mapping snap names to channels to use for this build. Currently only 'core', 'core18', 'core20', 'core22', and 'snapcraft' keys are supported.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="dependencies" path="$['dependencies']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependencies</p>
+<p>Debian-like dependency line that must be satisfied before attempting to build this request.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution</p>
+<p>Shortcut for its distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution series</p>
+<p>Shortcut for its distribution series.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="store_upload_status" path="$['store_upload_status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Store upload status
+</wadl:doc>
+
+ <wadl:option value="Unscheduled"/>
+ <wadl:option value="Pending"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Failed to release to channels"/>
+ <wadl:option value="Uploaded"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Title
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="upload_log_url" path="$['upload_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Upload Log URL</p>
+<p>A URL for failed upload logs.Will be None if there was no failure.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="snap_build-page-resource">
+ <wadl:method name="GET" id="snap_build-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#snap_build-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="snap_build-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#snap_build-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#snap_build-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_build"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="snap_build_request">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A request to build a snap package.
+</wadl:doc>
+ <wadl:method name="GET" id="snap_build_request-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snap_build_request-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="snap_build_request-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="snap_build_request-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="snap_build_request-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snap_build_request-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="snap_build_request-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snap_build_request-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="snap_build_request-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_build_request"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="builds_collection_link" path="$['builds_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Builds produced by this request
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_build-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_finished" path="$['date_finished']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The time when this request finished
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_requested" path="$['date_requested']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The time when this request was made
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="error_message" path="$['error_message']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Error message
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="snap_link" path="$['snap_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Snap package
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="Pending"/>
+ <wadl:option value="Failed"/>
+ <wadl:option value="Completed"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="snap_build_request-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="snap_build_request-page-resource">
+ <wadl:method name="GET" id="snap_build_request-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#snap_build_request-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="snap_build_request-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#snap_build_request-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#snap_build_request-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_build_request"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="snap">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A buildable snap package.
+</wadl:doc>
+ <wadl:method name="GET" id="snap-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snap-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="snap-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="snap-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="snap-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snap-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="snap-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snap-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="snap-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="allow_internet" path="$['allow_internet']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Allow external network access</p>
+<p>Allow access to external network resources via a proxy. Resources hosted on Launchpad itself are always allowed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="auto_build" path="$['auto_build']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Automatically build when branch changes</p>
+<p>Whether this snap package is built automatically when the branch containing its snap/snapcraft.yaml, build-aux/snap/snapcraft.yaml, snapcraft.yaml, or .snapcraft.yaml recipe changes.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="auto_build_archive_link" path="$['auto_build_archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source archive for automatic builds</p>
+<p>The archive from which automatic builds of this snap package should be built.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="auto_build_channels" path="$['auto_build_channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source snap channels for automatic builds</p>
+<p>A dictionary mapping snap names to channels to use when building this snap package. Currently only 'core', 'core18', 'core20', 'core22', and 'snapcraft' keys are supported.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="auto_build_pocket" path="$['auto_build_pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket for automatic builds</p>
+<p>The package stream within the source archive and distribution series to use when building the snap package. If the source archive is a PPA, then the PPA's archive dependencies will be used to select the pocket in the distribution's primary archive.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="branch_link" path="$['branch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bazaar branch</p>
+<p>A Bazaar branch containing a snap/snapcraft.yaml, build-aux/snap/snapcraft.yaml, snapcraft.yaml, or .snapcraft.yaml recipe at the top level.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="build_source_tarball" path="$['build_source_tarball']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build source tarball</p>
+<p>Whether builds of this snap package should also build a tarball containing all source code, including external dependencies.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="builds_collection_link" path="$['builds_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>All builds of this snap package.</p>
+<p>All builds of this snap package, sorted in descending order of finishing (or starting if not completed successfully).</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_build-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_upload_to_store" path="$['can_upload_to_store']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can upload to store</p>
+<p>Whether everything is set up to allow uploading builds of this snap package to the store.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="completed_builds_collection_link" path="$['completed_builds_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Completed builds of this snap package.</p>
+<p>Completed builds of this snap package, sorted in descending order of finishing.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_build-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_modified" path="$['date_last_modified']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date last modified
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A description of the snap package.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distro Series</p>
+<p>The series for which the snap package should be built. If not set, Launchpad will infer an appropriate series from snapcraft.yaml.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="failed_build_requests_collection_link" path="$['failed_build_requests_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Failed build requests for this snap package.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_build_request-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="git_path" path="$['git_path']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Git branch path</p>
+<p>The path of the Git branch containing a snap/snapcraft.yaml, build-aux/snap/snapcraft.yaml, snapcraft.yaml, or .snapcraft.yaml recipe at the top level.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="git_ref_link" path="$['git_ref_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Git branch</p>
+<p>The Git branch containing a snap/snapcraft.yaml, build-aux/snap/snapcraft.yaml, snapcraft.yaml, or .snapcraft.yaml recipe at the top level.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_ref"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="git_repository_link" path="$['git_repository_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Git repository</p>
+<p>A Git repository with a branch containing a snap/snapcraft.yaml, build-aux/snap/snapcraft.yaml, snapcraft.yaml, or .snapcraft.yaml recipe at the top level.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_repository"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="git_repository_url" path="$['git_repository_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Git repository URL</p>
+<p>The URL of a Git repository with a branch containing a snap/snapcraft.yaml, build-aux/snap/snapcraft.yaml, snapcraft.yaml, or .snapcraft.yaml recipe at the top level.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="information_type" path="$['information_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information type</p>
+<p>The type of information contained in this Snap recipe.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Public Security"/>
+ <wadl:option value="Private Security"/>
+ <wadl:option value="Private"/>
+ <wadl:option value="Proprietary"/>
+ <wadl:option value="Embargoed"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_stale" path="$['is_stale']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Snap package is stale and is due to be rebuilt.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Snap recipe name</p>
+<p>The name of the snap build recipe.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The owner of this snap package.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pending_build_requests_collection_link" path="$['pending_build_requests_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Pending build requests for this snap package.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_build_request-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pending_builds_collection_link" path="$['pending_builds_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pending builds of this snap package.</p>
+<p>Pending builds of this snap package, sorted in descending order of creation.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap_build-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="private" path="$['private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Private</p>
+<p>Whether or not this snap is private.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="processors_collection_link" path="$['processors_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Processors</p>
+<p>The architectures for which the snap package should be built.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#processor-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registrant</p>
+<p>The person who registered this snap package.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="require_virtualized" path="$['require_virtualized']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Require virtualized builders</p>
+<p>Only build this snap package on virtual builders.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_channels" path="$['store_channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Store channels</p>
+<p>Channels to release this snap package to after uploading it to the store. A channel is defined by a combination of an optional track, a risk, and an optional branch, e.g. '2.1/stable/fix-123', '2.1/stable', 'stable/fix-123', or 'stable'.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_name" path="$['store_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registered store package name</p>
+<p>The registered name of this snap package in the store.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_series_link" path="$['store_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Store series</p>
+<p>The series in which this snap package should be published in the store.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snappy_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="store_upload" path="$['store_upload']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Automatically upload to store</p>
+<p>Whether builds of this snap package are automatically uploaded to the store.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="webhooks_collection_link" path="$['webhooks_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Webhooks for this target.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook-page-resource"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="snap-diff">
+ <wadl:param style="plain" required="false" name="allow_internet" path="$['allow_internet']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Allow external network access</p>
+<p>Allow access to external network resources via a proxy. Resources hosted on Launchpad itself are always allowed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="auto_build" path="$['auto_build']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Automatically build when branch changes</p>
+<p>Whether this snap package is built automatically when the branch containing its snap/snapcraft.yaml, build-aux/snap/snapcraft.yaml, snapcraft.yaml, or .snapcraft.yaml recipe changes.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="auto_build_archive_link" path="$['auto_build_archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source archive for automatic builds</p>
+<p>The archive from which automatic builds of this snap package should be built.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="auto_build_channels" path="$['auto_build_channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Source snap channels for automatic builds</p>
+<p>A dictionary mapping snap names to channels to use when building this snap package. Currently only 'core', 'core18', 'core20', 'core22', and 'snapcraft' keys are supported.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="auto_build_pocket" path="$['auto_build_pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket for automatic builds</p>
+<p>The package stream within the source archive and distribution series to use when building the snap package. If the source archive is a PPA, then the PPA's archive dependencies will be used to select the pocket in the distribution's primary archive.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="branch_link" path="$['branch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Bazaar branch</p>
+<p>A Bazaar branch containing a snap/snapcraft.yaml, build-aux/snap/snapcraft.yaml, snapcraft.yaml, or .snapcraft.yaml recipe at the top level.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="build_source_tarball" path="$['build_source_tarball']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build source tarball</p>
+<p>Whether builds of this snap package should also build a tarball containing all source code, including external dependencies.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A description of the snap package.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distro Series</p>
+<p>The series for which the snap package should be built. If not set, Launchpad will infer an appropriate series from snapcraft.yaml.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="git_path" path="$['git_path']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Git branch path</p>
+<p>The path of the Git branch containing a snap/snapcraft.yaml, build-aux/snap/snapcraft.yaml, snapcraft.yaml, or .snapcraft.yaml recipe at the top level.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="git_ref_link" path="$['git_ref_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Git branch</p>
+<p>The Git branch containing a snap/snapcraft.yaml, build-aux/snap/snapcraft.yaml, snapcraft.yaml, or .snapcraft.yaml recipe at the top level.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_ref"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="information_type" path="$['information_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information type</p>
+<p>The type of information contained in this Snap recipe.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Public Security"/>
+ <wadl:option value="Private Security"/>
+ <wadl:option value="Private"/>
+ <wadl:option value="Proprietary"/>
+ <wadl:option value="Embargoed"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Snap recipe name</p>
+<p>The name of the snap build recipe.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The owner of this snap package.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="private" path="$['private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Private</p>
+<p>Whether or not this snap is private.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="require_virtualized" path="$['require_virtualized']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Require virtualized builders</p>
+<p>Only build this snap package on virtual builders.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="store_channels" path="$['store_channels']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Store channels</p>
+<p>Channels to release this snap package to after uploading it to the store. A channel is defined by a combination of an optional track, a risk, and an optional branch, e.g. '2.1/stable/fix-123', '2.1/stable', 'stable/fix-123', or 'stable'.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="store_name" path="$['store_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registered store package name</p>
+<p>The registered name of this snap package in the store.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="store_series_link" path="$['store_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Store series</p>
+<p>The series in which this snap package should be published in the store.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snappy_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="store_upload" path="$['store_upload']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Automatically upload to store</p>
+<p>Whether builds of this snap package are automatically uploaded to the store.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="snap-page-resource">
+ <wadl:method name="GET" id="snap-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#snap-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="snap-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#snap-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#snap-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snap"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="snappy_series">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A series for snap packages in the store.
+</wadl:doc>
+ <wadl:method name="GET" id="snappy_series-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snappy_series-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="snappy_series-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="snappy_series-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="snappy_series-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snappy_series-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="snappy_series-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#snappy_series-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="snappy_series-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snappy_series"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_infer_distro_series" path="$['can_infer_distro_series']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can infer distro series?</p>
+<p>True if inferring a distro series from snapcraft.yaml is supported for this snappy series.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Display name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="preferred_distro_series_link" path="$['preferred_distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Preferred distro series
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registrant</p>
+<p>The person who registered this snappy series.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="Experimental"/>
+ <wadl:option value="Active Development"/>
+ <wadl:option value="Pre-release Freeze"/>
+ <wadl:option value="Current Stable Release"/>
+ <wadl:option value="Supported"/>
+ <wadl:option value="Obsolete"/>
+ <wadl:option value="Future"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="usable_distro_series" path="$['usable_distro_series']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Usable distro series</p>
+<p>The distro series that can be used for this snappy series.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="snappy_series-diff">
+ <wadl:param style="plain" required="false" name="can_infer_distro_series" path="$['can_infer_distro_series']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can infer distro series?</p>
+<p>True if inferring a distro series from snapcraft.yaml is supported for this snappy series.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Display name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="preferred_distro_series_link" path="$['preferred_distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Preferred distro series
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="Experimental"/>
+ <wadl:option value="Active Development"/>
+ <wadl:option value="Pre-release Freeze"/>
+ <wadl:option value="Current Stable Release"/>
+ <wadl:option value="Supported"/>
+ <wadl:option value="Obsolete"/>
+ <wadl:option value="Future"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="usable_distro_series" path="$['usable_distro_series']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Usable distro series</p>
+<p>The distro series that can be used for this snappy series.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="snappy_series-page-resource">
+ <wadl:method name="GET" id="snappy_series-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#snappy_series-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="snappy_series-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#snappy_series-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#snappy_series-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#snappy_series"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="source_package">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A source package associated to a particular distribution series.
+</wadl:doc>
+ <wadl:method name="GET" id="source_package-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="source_package-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="source_package-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="source_package-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="source_package-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="source_package-getTranslationImportQueueEntries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return entries in the translation import queue for this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg import_status:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">RosettaImportStatus DB Schema entry.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg file_extension:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">String with the file type extension, usually 'po'
+or 'pot'.</td>
+</tr>
+</tbody>
+</table>
+<p>If one of both of 'import_status' or 'file_extension' are given, the
+returned entries are filtered based on those values.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getTranslationImportQueueEntries"/>
+ <wadl:param style="query" name="file_extension" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Filename extension</p>
+<p>Show only entries with this filename suffix</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="import_status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only entries with this status</p>
+
+</wadl:doc>
+
+ <wadl:option value="Approved"/>
+ <wadl:option value="Imported"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Failed"/>
+ <wadl:option value="Needs Review"/>
+ <wadl:option value="Blocked"/>
+ <wadl:option value="Needs Information"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_import_queue_entry-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="source_package-searchTasks" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search the IBugTasks reported on this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">search_params:</th><td class="rst-field-body">a BugTaskSearchParams object</td>
+</tr>
+</tbody>
+</table>
+<p>Return an iterable of matching results.</p>
+<p>Note: milestone is currently ignored for all IBugTargets
+except IProduct.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchTasks"/>
+ <wadl:param style="query" name="bug_reporter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_cve" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs associated with a CVE
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_targeted" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs targeted to a series
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status_upstream" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status upstream</p>
+<p>Indicates the status of any remote watches associated with the bug. Possible values include: pending_bugwatch, hide_upstream, resolved_upstream, and open_upstream.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>String or list of strings for tags to search. To exclude, prepend a '-', e.g. '-unwantedtag'</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_duplicates" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs marked as duplicate,
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="nominated_for" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been modified since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="structural_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been created since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_patch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs with patches available.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_commenter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="assignee" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only bugs with the given status value or list of values.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="affected_user" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID or search text.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of fields by which the results are ordered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="tags_combinator" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags combination</p>
+<p>Search for any or all of the tags specified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Any"/>
+ <wadl:option value="All"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Component</p>
+<p>Distribution package archive grouping. E.g. main, universe, multiverse</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="importance" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Importance</p>
+<p>Show only bugs with the given importance or list of importances.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>Show only bugs with the given information type or list of information types.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that were created before the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="milestone" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone</p>
+<p>Show only bug tasks targeted to this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="linked_branches" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that are linked to branches or for bugs that are not linked to branches.
+</wadl:doc>
+
+ <wadl:option value="Show all bugs"/>
+ <wadl:option value="Show only Bugs with linked Branches"/>
+ <wadl:option value="Show only Bugs without linked Branches"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_no_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Exclude bugs with packages specified
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="source_package-linkedBranches" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get the official branches for this package.</p>
+<p>This operation returns a {Pocket-name : IBranch} dict.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A {Pocket-name : IBranch} dict.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="linkedBranches"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="source_package-getBranches" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Returns all branches with the given lifecycle status.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">A list of statuses to filter with.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param visible_by_user:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Normally the user who is asking.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param modified_since:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If set, filters the branches being returned
+to those that have been modified since the specified date/time.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param eager_load:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True load related objects for the whole
+collection.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">A list of IBranch.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBranches"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of branch lifecycle statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Limit the branches to those modified since this date.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="source_package-getBranch" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get the official branch for this package in the given pocket.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param pocket:</th><td class="rst-field-body">A PackagePublishingPocket.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">An IBranch.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBranch"/>
+ <wadl:param style="query" name="pocket" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Pocket
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="source_package-getMergeProposals" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Returns all merge proposals of a given status.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">A list of statuses to filter with.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param visible_by_user:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Normally the user who is asking.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param eager_load:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True, load related objects for the whole
+collection.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">A list of IBranchMergeProposal.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getMergeProposals"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of merge proposal statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_merge_proposal-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="source_package-getTranslationTemplates" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return an iterator over all its translation templates.</p>
+<p>The returned templates are either obsolete or current.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A sequence of IPOTemplate.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getTranslationTemplates"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_template-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="source_package-setBranch" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Set the official branch for the given pocket of this package.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param pocket:</th><td class="rst-field-body">A PackagePublishingPocket.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param branch:</th><td class="rst-field-body">The branch to set as the official branch.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param registrant:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The individual who created this link.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">None</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="setBranch"/>
+ <wadl:param style="query" name="pocket" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Pocket
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="query" name="branch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Branch
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="source_package-newCodeImport" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create a new code import.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param registrant:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The IPerson to record as the registrant of the
+import.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param branch_name:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The name of the branch or repository to create.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param rcs_type:</th><td class="rst-field-body">The type of the foreign VCS.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param target_rcs_type:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The type of the branch or repository to
+create (Bazaar or Git).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param url:</th><td class="rst-field-body">The URL to import from if the VCS type uses a single URL
+(i.e. isn't CVS).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param cvs_root:</th><td class="rst-field-body">The CVSROOT for a CVS import.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param cvs_module:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The module to import for a CVS import.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param owner:</th><td class="rst-field-body">Who should own the created branch or repository, or
+None for it to be the same as the registrant, or the caller over
+the API.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">An instance of ICodeImport.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="newCodeImport"/>
+ <wadl:param style="query" name="target_rcs_type" required="false">
+
+
+ <wadl:option value="Bazaar"/>
+ <wadl:option value="Git"/>
+ </wadl:param>
+ <wadl:param style="query" name="cvs_root" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+CVS root URL
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="url" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Foreign VCS URL
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Owner of the resulting branch
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="rcs_type" required="false">
+
+
+ <wadl:option value="Concurrent Versions System"/>
+ <wadl:option value="Subversion via CSCVS"/>
+ <wadl:option value="Subversion via bzr-svn"/>
+ <wadl:option value="Git"/>
+ <wadl:option value="Mercurial"/>
+ <wadl:option value="Bazaar"/>
+ </wadl:param>
+ <wadl:param style="query" name="cvs_module" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+CVS module to import
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="branch_name" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Name of branch to create
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#code_import"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="source_package-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Helpful guidelines for reporting a bug</p>
+<p>These guidelines will be shown to everyone reporting a bug and should be text or a bulleted list with your particular requirements, if any.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="displayname" path="$['displayname']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display name</p>
+<p>A displayname, constructed, for this package</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution</p>
+<p>The distribution for this source package.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distroseries_link" path="$['distroseries_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution Series</p>
+<p>The DistroSeries for this SourcePackage</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="latest_published_component_name" path="$['latest_published_component_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The name of the component in which the package was last published.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The text name of this source package.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="official_bug_tags" path="$['official_bug_tags']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Official Bug Tags</p>
+<p>The list of bug tags defined as official.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="productseries_link" path="$['productseries_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Project series</p>
+<p>The registered project series that this source package is based on. This series may be the same as the one that earlier versions of this source packages were based on.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_series"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="source_package-diff">
+ <wadl:param style="plain" required="false" name="bug_reported_acknowledgement" path="$['bug_reported_acknowledgement']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>After reporting a bug, I can expect the following.</p>
+<p>This message of acknowledgement will be displayed to anyone after reporting a bug.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="bug_reporting_guidelines" path="$['bug_reporting_guidelines']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Helpful guidelines for reporting a bug</p>
+<p>These guidelines will be shown to everyone reporting a bug and should be text or a bulleted list with your particular requirements, if any.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="source_package-page-resource">
+ <wadl:method name="GET" id="source_package-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#source_package-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="source_package-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#source_package-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#source_package-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="source_package_publishing_history">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A source package publishing history record.
+</wadl:doc>
+ <wadl:method name="GET" id="source_package_publishing_history-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package_publishing_history-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="source_package_publishing_history-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="source_package_publishing_history-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="source_package_publishing_history-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package_publishing_history-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="source_package_publishing_history-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package_publishing_history-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="source_package_publishing_history-getPublishedBinaries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return all resulted IBinaryPackagePublishingHistory.</p>
+<p>Follow the build record and return every PUBLISHED or PENDING
+binary publishing record for any DistroArchSeries in this
+DistroSeries and in the same IArchive and Pocket, ordered
+by architecture tag.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a list with all corresponding publishing records.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getPublishedBinaries"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#binary_package_publishing_history-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="source_package_publishing_history-sourceFileUrls" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>URLs for this source publication's uploaded source files.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param include_meta:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Return a list of dicts with keys url, size, and
+sha256 for each URL instead of a simple list.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A collection of URLs for this source.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="sourceFileUrls"/>
+ <wadl:param style="query" name="include_meta" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Include Metadata
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="source_package_publishing_history-packageDiffUrl" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>URL of the debdiff file between this and the supplied version.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param to_version:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The version of the source package for which you
+want to get the diff to.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A URL to the librarian file containing the diff.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="packageDiffUrl"/>
+ <wadl:param style="query" name="to_version" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+To Version
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="source_package_publishing_history-binaryFileUrls" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>URLs for this source publication's binary files.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A collection of URLs for this source.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="binaryFileUrls"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="source_package_publishing_history-changesFileUrl" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The .changes file URL for this source publication.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">the .changes file URL for this source (a string).</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="changesFileUrl"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="source_package_publishing_history-getBuilds" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return a list of IBuild objects in this publishing context.</p>
+<p>The builds are ordered by DistroArchSeries.architecturetag.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a list of IBuilds.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBuilds"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#build-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="source_package_publishing_history-requestDeletion" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Delete this source and its binaries.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param removed_by:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">IPerson responsible for the removal.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param removal_comment:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">optional text describing the removal reason.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="requestDeletion"/>
+ <wadl:param style="query" name="removal_comment" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Removal comment
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="source_package_publishing_history-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_publishing_history"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Archive ID
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="component_name" path="$['component_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Component Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="copied_from_archive_link" path="$['copied_from_archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Original archive ID where this package was copied from.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="creator_link" path="$['creator_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Publication Creator</p>
+<p>The IPerson who created this publication.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date on which this record was created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_made_pending" path="$['date_made_pending']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date on which this record was set as pending removal
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_published" path="$['date_published']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date on which this record was published
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_removed" path="$['date_removed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date on which this record was removed from the published set
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_superseded" path="$['date_superseded']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date on which this record was marked superseded
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>Text representation of the current record.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The distro series being published into
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="package_creator_link" path="$['package_creator_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Package Creator</p>
+<p>The IPerson who created the source package.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="package_maintainer_link" path="$['package_maintainer_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Package Maintainer</p>
+<p>The IPerson who maintains the source package.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="package_signer_link" path="$['package_signer_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Package Signer</p>
+<p>The IPerson who signed the source package.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="packageupload_link" path="$['packageupload_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Package upload</p>
+<p>The Package Upload that caused the creation of this publication.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#package_upload"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The pocket into which this entry is published</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="removal_comment" path="$['removal_comment']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Reason why this publication is going to be removed.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="removed_by_link" path="$['removed_by_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The IPerson responsible for the removal
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="scheduled_deletion_date" path="$['scheduled_deletion_date']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date on which this record is scheduled for deletion
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="section_name" path="$['section_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Section Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="source_package_name" path="$['source_package_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source Package Name
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="source_package_version" path="$['source_package_version']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Source Package Version
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="sponsor_link" path="$['sponsor_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Publication sponsor</p>
+<p>The IPerson who sponsored the creation of this publication.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Package Publishing Status</p>
+<p>The status of this publishing record</p>
+
+</wadl:doc>
+
+ <wadl:option value="Pending"/>
+ <wadl:option value="Published"/>
+ <wadl:option value="Superseded"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Obsolete"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="source_package_publishing_history-diff">
+ <wadl:param style="plain" required="false" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date on which this record was created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_made_pending" path="$['date_made_pending']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date on which this record was set as pending removal
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_published" path="$['date_published']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date on which this record was published
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_removed" path="$['date_removed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date on which this record was removed from the published set
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="date_superseded" path="$['date_superseded']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date on which this record was marked superseded
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>Text representation of the current record.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The distro series being published into
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="removal_comment" path="$['removal_comment']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Reason why this publication is going to be removed.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="removed_by_link" path="$['removed_by_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The IPerson responsible for the removal
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="scheduled_deletion_date" path="$['scheduled_deletion_date']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date on which this record is scheduled for deletion
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Package Publishing Status</p>
+<p>The status of this publishing record</p>
+
+</wadl:doc>
+
+ <wadl:option value="Pending"/>
+ <wadl:option value="Published"/>
+ <wadl:option value="Superseded"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Obsolete"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="source_package_publishing_history-page-resource">
+ <wadl:method name="GET" id="source_package_publishing_history-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#source_package_publishing_history-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="source_package_publishing_history-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#source_package_publishing_history-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#source_package_publishing_history-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_publishing_history"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="source_package_recipe_build">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A build of a source package.
+</wadl:doc>
+ <wadl:method name="GET" id="source_package_recipe_build-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package_recipe_build-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="source_package_recipe_build-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="source_package_recipe_build-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="source_package_recipe_build-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package_recipe_build-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="source_package_recipe_build-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package_recipe_build-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="source_package_recipe_build-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe_build"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Archive</p>
+<p>The Archive context for this build.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="build_log_url" path="$['build_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build Log URL</p>
+<p>A URL for the build log. None if there is no log available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="builder_link" path="$['builder_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Builder</p>
+<p>The builder assigned to this job.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#builder"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="buildstate" path="$['buildstate']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current status of the job.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_be_cancelled" path="$['can_be_cancelled']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can be cancelled</p>
+<p>Whether this build record can be cancelled.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="can_be_rescored" path="$['can_be_rescored']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Can be rescored</p>
+<p>Whether this build record can be rescored manually.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_first_dispatched" path="$['date_first_dispatched']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date finished</p>
+<p>The actual build start time. Set when the build is dispatched the first time and not changed in subsequent build attempts.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datebuilt" path="$['datebuilt']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date finished</p>
+<p>The timestamp when the build farm job was finished.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="datecreated" path="$['datecreated']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date created</p>
+<p>The timestamp when the build farm job was created.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="dependencies" path="$['dependencies']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependencies</p>
+<p>Debian-like dependency line that must be satisfied before attempting to build this request.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution</p>
+<p>Shortcut for its distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution series</p>
+<p>Shortcut for its distribution series.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The build targeted pocket.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Title
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="upload_log_url" path="$['upload_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Upload Log URL</p>
+<p>A URL for failed upload logs.Will be None if there was no failure.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="source_package_recipe_build-diff">
+ <wadl:param style="plain" required="false" name="build_log_url" path="$['build_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Build Log URL</p>
+<p>A URL for the build log. None if there is no log available.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="buildstate" path="$['buildstate']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>The current status of the job.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Needs building"/>
+ <wadl:option value="Successfully built"/>
+ <wadl:option value="Failed to build"/>
+ <wadl:option value="Dependency wait"/>
+ <wadl:option value="Chroot problem"/>
+ <wadl:option value="Build for superseded Source"/>
+ <wadl:option value="Currently building"/>
+ <wadl:option value="Failed to upload"/>
+ <wadl:option value="Uploading build"/>
+ <wadl:option value="Cancelling build"/>
+ <wadl:option value="Cancelled build"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="dependencies" path="$['dependencies']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Dependencies</p>
+<p>Debian-like dependency line that must be satisfied before attempting to build this request.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distribution_link" path="$['distribution_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution</p>
+<p>Shortcut for its distribution.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="distro_series_link" path="$['distro_series_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Distribution series</p>
+<p>Shortcut for its distribution series.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="pocket" path="$['pocket']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pocket</p>
+<p>The build targeted pocket.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="title" path="$['title']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Title
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="upload_log_url" path="$['upload_log_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Upload Log URL</p>
+<p>A URL for failed upload logs.Will be None if there was no failure.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="source_package_recipe_build-page-resource">
+ <wadl:method name="GET" id="source_package_recipe_build-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#source_package_recipe_build-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="source_package_recipe_build-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#source_package_recipe_build-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#source_package_recipe_build-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe_build"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="source_package_recipe">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>An ISourcePackageRecipe describes how to build a source package.</p>
+<p>More precisely, it describes how to combine a number of branches into a
+debianized source tree.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="source_package_recipe-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package_recipe-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="source_package_recipe-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="source_package_recipe-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="source_package_recipe-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package_recipe-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="source_package_recipe-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package_recipe-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="source_package_recipe-performDailyBuild" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Perform a build into the daily build archive.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="performDailyBuild"/>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="source_package_recipe-requestBuild" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Request that the recipe be built in to the specified archive.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param archive:</th><td class="rst-field-body">The IArchive which you want the build to end up in.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param requester:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">the person requesting the build.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param pocket:</th><td class="rst-field-body">the pocket that should be targeted.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">raises:</th><td class="rst-field-body">various specific upload errors if the requestor is not
+able to upload to the archive.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="requestBuild"/>
+ <wadl:param style="query" name="archive" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="query" name="pocket" required="true">
+
+
+ <wadl:option value="Release"/>
+ <wadl:option value="Security"/>
+ <wadl:option value="Updates"/>
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Backports"/>
+ </wadl:param>
+ <wadl:param style="query" name="distroseries" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package_recipe_build-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="source_package_recipe-setRecipeText" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Set the text of the recipe.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="setRecipeText"/>
+ <wadl:param style="query" name="recipe_text" required="true">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="source_package_recipe-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="base_branch_link" path="$['base_branch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The base branch used by this recipe.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="base_git_repository_link" path="$['base_git_repository_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The base Git repository used by this recipe.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#git_repository"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="build_daily" path="$['build_daily']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Built daily</p>
+<p>Automatically build each day, if the source has changed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="builds_collection_link" path="$['builds_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>All builds of this recipe.</p>
+<p>All builds of this recipe, sorted in descending order of finishing (or starting if notcompleted successfully).</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe_build-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="completed_builds_collection_link" path="$['completed_builds_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The completed builds of this recipe.</p>
+<p>Completed builds of this recipe, sorted in descending order of finishing (or starting if notcompleted successfully).</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe_build-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="daily_build_archive_link" path="$['daily_build_archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The archive to use for daily builds.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_modified" path="$['date_last_modified']" type="xsd:dateTime">
+
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="deb_version_template" path="$['deb_version_template']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>deb-version template</p>
+<p>The template that will be used to generate a deb version.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A short description of the recipe.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distroseries" path="$['distroseries']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Default distribution series</p>
+<p>If built daily, these are the distribution versions that the recipe will be built for.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_stale" path="$['is_stale']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Recipe is stale.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="last_build_link" path="$['last_build_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The the most recent build of this recipe.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe_build"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of the recipe is part of the URL and needs to be unique for the given owner.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The person or team who can edit this recipe.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pending_builds_collection_link" path="$['pending_builds_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>The pending builds of this recipe.</p>
+<p>Pending builds of this recipe, sorted in descending order of creation.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe_build-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="recipe_text" path="$['recipe_text']">
+
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The person who created this recipe.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="source_package_recipe-diff">
+ <wadl:param style="plain" required="false" name="build_daily" path="$['build_daily']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Built daily</p>
+<p>Automatically build each day, if the source has changed.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="daily_build_archive_link" path="$['daily_build_archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The archive to use for daily builds.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>A short description of the recipe.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of the recipe is part of the URL and needs to be unique for the given owner.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="owner_link" path="$['owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Owner</p>
+<p>The person or team who can edit this recipe.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="source_package_recipe-page-resource">
+ <wadl:method name="GET" id="source_package_recipe-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#source_package_recipe-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="source_package_recipe-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#source_package_recipe-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#source_package_recipe-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="specification_branch">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A branch linked to a specification.
+</wadl:doc>
+ <wadl:method name="GET" id="specification_branch-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#specification_branch-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="specification_branch-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="specification_branch-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="specification_branch-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#specification_branch-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="specification_branch-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#specification_branch-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="specification_branch-delete" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Destroy this specification branch link
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="delete"/>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="specification_branch-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#specification_branch"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="branch_link" path="$['branch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Branch
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The person who linked the bug to the branch
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="specification_link" path="$['specification_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Blueprint
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#specification"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="specification_branch-diff">
+ <wadl:param style="plain" required="false" name="branch_link" path="$['branch_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Branch
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="specification_branch-page-resource">
+ <wadl:method name="GET" id="specification_branch-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#specification_branch-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="specification_branch-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#specification_branch-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#specification_branch-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#specification_branch"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="specification">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A Specification.
+</wadl:doc>
+ <wadl:method name="GET" id="specification-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#specification-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="specification-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="specification-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="specification-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#specification-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="specification-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#specification-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="specification-unlinkBranch" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Unlink a branch from this bug.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param branch:</th><td class="rst-field-body">The branch being unlinked from.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param user:</th><td class="rst-field-body">The user unlinking the branch.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="unlinkBranch"/>
+ <wadl:param style="query" name="branch" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="specification-linkBranch" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Associate a branch with this bug.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param branch:</th><td class="rst-field-body">The branch being linked to.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param registrant:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The user linking the branch.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="linkBranch"/>
+ <wadl:param style="query" name="branch" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#branch"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="specification-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#specification"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="information_type" path="$['information_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>The type of information contained in this specification.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Public Security"/>
+ <wadl:option value="Private Security"/>
+ <wadl:option value="Private"/>
+ <wadl:option value="Proprietary"/>
+ <wadl:option value="Embargoed"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="specification-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="specification-page-resource">
+ <wadl:method name="GET" id="specification-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#specification-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="specification-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#specification-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#specification-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#specification"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="structural_subscription">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A subscription to a Launchpad structure.
+</wadl:doc>
+ <wadl:method name="GET" id="structural_subscription-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="structural_subscription-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="structural_subscription-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="structural_subscription-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="structural_subscription-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="DELETE" id="structural_subscription-delete"/>
+
+ <wadl:method id="structural_subscription-newBugFilter" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Returns a new BugSubscriptionFilter for this subscription.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="newBugFilter"/>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription_filter"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="structural_subscription-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="bug_filters_collection_link" path="$['bug_filters_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of bug filters that narrow this subscription.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription_filter-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date on which this subscription was created.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_updated" path="$['date_last_updated']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The date on which this subscription was last updated.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="subscribed_by_link" path="$['subscribed_by_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Subscribed by</p>
+<p>The person creating the subscription.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="subscriber_link" path="$['subscriber_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Subscriber</p>
+<p>The person subscribed.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="target_link" path="$['target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The structure to which this subscription belongs.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription_target"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="structural_subscription-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="structural_subscription-page-resource">
+ <wadl:method name="GET" id="structural_subscription-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#structural_subscription-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="structural_subscription-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#structural_subscription-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#structural_subscription-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="structural_subscription_target">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A Launchpad Structure allowing users to subscribe to it.
+</wadl:doc>
+ <wadl:method name="GET" id="structural_subscription_target-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription_target-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="structural_subscription_target-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="structural_subscription_target-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="structural_subscription_target-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription_target-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="structural_subscription_target-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription_target-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="structural_subscription_target-getSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return all the subscriptions with the specified levels.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A sequence of IStructuralSubscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscriptions"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="structural_subscription_target-getSubscription" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the subscription for person, if it exists.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getSubscription"/>
+ <wadl:param style="query" name="person" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#structural_subscription-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="structural_subscription_target-userHasBugSubscriptions" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is user subscribed, directly or via a team, to bug mail?
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="userHasBugSubscriptions"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="structural_subscription_target-addBugSubscriptionFilter" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription filter for this structure.</p>
+<p>This method is used to create a new IBugSubscriptionFilter for the
+target. It will initially allow all notifications to be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription filter.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscriptionFilter"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#bug_subscription_filter"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="structural_subscription_target-addBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add a bug subscription for this structure.</p>
+<p>This method is used to create a new IStructuralSubscription for the
+target. This initially has a single filter which will allow all
+notifications will be sent.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be subscribed. If omitted,
+subscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">subscribed_by:</th><td class="rst-field-body">The IPerson creating the subscription.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">The new bug subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to subscribe. If omitted, the requesting user will be subscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="structural_subscription_target-removeBugSubscription" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Remove a subscription to bugs from this structure.</p>
+<p>This will delete all associated filters.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">subscriber:</th><td class="rst-field-body">The IPerson who will be unsubscribed. If omitted,
+unsubscribed_by will be used.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">unsubscribed_by:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The IPerson removing the subscription.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="removeBugSubscription"/>
+ <wadl:param style="query" name="subscriber" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Person to unsubscribe. If omitted, the requesting user will be unsubscribed.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="structural_subscription_target-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription_target"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="structural_subscription_target-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="structural_subscription_target-page-resource">
+ <wadl:method name="GET" id="structural_subscription_target-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#structural_subscription_target-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="structural_subscription_target-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#structural_subscription_target-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#structural_subscription_target-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#structural_subscription_target"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="team">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>A group of people and other teams.</p>
+<p>Launchpadlib example of getting the date a user joined a team:</p>
+<pre class="rst-literal-block">
+def get_join_date(team, user):
+ team = launchpad.people[team]
+ members = team.members_details
+ for member in members:
+ if member.member.name == user:
+ return member.date_joined
+ return None
+</pre>
+<p>Implementation notes:</p>
+<ul class="rst-simple">
+<li>ITeam extends IPerson.</li>
+<li>The teamowner should never be None.</li>
+</ul>
+
+</wadl:doc>
+ <wadl:method name="GET" id="team-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#team-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="team-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="team-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="team-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#team-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="team-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#team-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="team-getArchiveSubscriptionURLs" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return private archive URLs that this person can see.</p>
+<p>For each of the private archives (PPAs) that this person can see,
+return a URL that includes the HTTP basic auth data. The URL
+returned is suitable for including in a sources.list file.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getArchiveSubscriptionURLs"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="team-getBugSubscriberPackages" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the packages for which this person is a bug subscriber.</p>
+<p>Returns a list of IDistributionSourcePackage's, ordered alphabetically
+(A to Z) by name.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBugSubscriberPackages"/>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#distribution_source_package-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="team-getTranslationImportQueueEntries" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return entries in the translation import queue for this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg import_status:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">RosettaImportStatus DB Schema entry.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">arg file_extension:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">String with the file type extension, usually 'po'
+or 'pot'.</td>
+</tr>
+</tbody>
+</table>
+<p>If one of both of 'import_status' or 'file_extension' are given, the
+returned entries are filtered based on those values.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getTranslationImportQueueEntries"/>
+ <wadl:param style="query" name="file_extension" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Filename extension</p>
+<p>Show only entries with this filename suffix</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="import_status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only entries with this status</p>
+
+</wadl:doc>
+
+ <wadl:option value="Approved"/>
+ <wadl:option value="Imported"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Failed"/>
+ <wadl:option value="Needs Review"/>
+ <wadl:option value="Blocked"/>
+ <wadl:option value="Needs Information"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_import_queue_entry-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="team-getRequestedReviews" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Returns merge proposals where a person was asked to review.</p>
+<p>This does not include merge proposals that were requested from
+teams that the person is part of. If status is not passed then
+it will return proposals that are in the &quot;Needs Review&quot; state.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">A list of statuses to filter with.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param visible_by_user:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Normally the user who is asking.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">A list of IBranchMergeProposal.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getRequestedReviews"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of merge proposal statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_merge_proposal-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="team-searchTasks" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Search the IBugTasks reported on this entity.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">search_params:</th><td class="rst-field-body">a BugTaskSearchParams object</td>
+</tr>
+</tbody>
+</table>
+<p>Return an iterable of matching results.</p>
+<p>Note: milestone is currently ignored for all IBugTargets
+except IProduct.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="searchTasks"/>
+ <wadl:param style="query" name="bug_reporter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_cve" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs associated with a CVE
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_targeted" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs targeted to a series
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status_upstream" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status upstream</p>
+<p>Indicates the status of any remote watches associated with the bug. Possible values include: pending_bugwatch, hide_upstream, resolved_upstream, and open_upstream.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="tags" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags</p>
+<p>String or list of strings for tags to search. To exclude, prepend a '-', e.g. '-unwantedtag'</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="omit_duplicates" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Omit bugs marked as duplicate,
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="nominated_for" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been modified since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="structural_subscriber" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="owner" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="created_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that have been created since the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="has_patch" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Show only bugs with patches available.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_commenter" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="assignee" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Status</p>
+<p>Show only bugs with the given status value or list of values.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="affected_user" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="search_text" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Bug ID or search text.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="order_by" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of fields by which the results are ordered.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="bug_supervisor" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="tags_combinator" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Tags combination</p>
+<p>Search for any or all of the tags specified.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Any"/>
+ <wadl:option value="All"/>
+ </wadl:param>
+ <wadl:param style="query" name="component" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Component</p>
+<p>Distribution package archive grouping. E.g. main, universe, multiverse</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="importance" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Importance</p>
+<p>Show only bugs with the given importance or list of importances.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="information_type" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Information Type</p>
+<p>Show only bugs with the given information type or list of information types.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="created_before" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that were created before the given date.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="milestone" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Milestone</p>
+<p>Show only bug tasks targeted to this milestone.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="linked_branches" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Search for bugs that are linked to branches or for bugs that are not linked to branches.
+</wadl:doc>
+
+ <wadl:option value="Show all bugs"/>
+ <wadl:option value="Show only Bugs with linked Branches"/>
+ <wadl:option value="Show only Bugs without linked Branches"/>
+ </wadl:param>
+ <wadl:param style="query" name="has_no_package" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Exclude bugs with packages specified
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#bug_task-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="team-getRecipe" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return the person's recipe with the given name.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getRecipe"/>
+ <wadl:param style="query" name="name" required="true">
+
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#source_package_recipe-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="team-getBranches" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Returns all branches with the given lifecycle status.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">A list of statuses to filter with.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param visible_by_user:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Normally the user who is asking.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param modified_since:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If set, filters the branches being returned
+to those that have been modified since the specified date/time.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param eager_load:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True load related objects for the whole
+collection.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">A list of IBranch.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getBranches"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of branch lifecycle statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="modified_since" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Limit the branches to those modified since this date.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="team-getMergeProposals" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Returns all merge proposals of a given status.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">A list of statuses to filter with.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param visible_by_user:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Normally the user who is asking.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param eager_load:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True, load related objects for the whole
+collection.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">returns:</th><td class="rst-field-body">A list of IBranchMergeProposal.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getMergeProposals"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A list of merge proposal statuses to filter by.
+</wadl:doc>
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#branch_merge_proposal-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="team-getPPAByName" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return a PPA with the given name if it exists.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">A string with the exact name of the ppa being looked up.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">raises:</th><td class="rst-field-body">NoSuchPPA if a suitable PPA could not be found.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a PPA IArchive record corresponding to the name.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getPPAByName"/>
+ <wadl:param style="query" name="distribution" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="query" name="name" required="true">
+
+
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#archive-full"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="team-getMembersByStatus" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Return the people whose membership on this team match :status:.</p>
+<p>If no orderby is provided, Person.sortingColumns is used.</p>
+
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getMembersByStatus"/>
+ <wadl:param style="query" name="status" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The state of this membership
+</wadl:doc>
+
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Approved"/>
+ <wadl:option value="Administrator"/>
+ <wadl:option value="Deactivated"/>
+ <wadl:option value="Expired"/>
+ <wadl:option value="Declined"/>
+ <wadl:option value="Invited"/>
+ <wadl:option value="Invitation declined"/>
+ </wadl:param>
+
+ </wadl:request>
+ <wadl:response>
+
+ <wadl:representation href="https://api.launchpad.test/1.0/#person-page"/>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="team-getArchiveSubscriptionURL" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Get a text line that is suitable to be used for a sources.list
+entry.</p>
+<p>It will create a new IArchiveAuthToken if one doesn't already exist.</p>
+<p>It raises Unauthorized if the context user does not have a
+valid subscription for the target archive or the caller is not
+context user itself.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="getArchiveSubscriptionURL"/>
+ <wadl:param style="query" name="archive" required="true">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="team-createRecipe" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create a SourcePackageRecipe owned by this person.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">the name to use for referring to the recipe.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param description:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">A description of the recipe.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param recipe_text:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The text of the recipe.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param distroseries:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The distroseries to use.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param registrant:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The person who created this recipe.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param daily_build_archive:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The archive to use for daily builds.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param build_daily:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True, build this recipe daily (if changed).</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a SourcePackageRecipe.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="createRecipe"/>
+ <wadl:param style="query" name="build_daily" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="recipe_text" required="true">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="description" required="true">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="daily_build_archive" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="query" name="name" required="true">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="distroseries" required="true">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="team-acceptInvitationToBeMemberOf" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Accept an invitation to become a member of the given team.</p>
+<p>There must be a TeamMembership for this person and the given team with
+the INVITED status. The status of this TeamMembership will be changed
+to APPROVED.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="acceptInvitationToBeMemberOf"/>
+ <wadl:param style="query" name="team" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="comment" required="true">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="team-createPPA" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Create a PPA.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param distribution:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The distribution that this archive is for.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param name:</th><td class="rst-field-body">The name of the new PPA to create.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param displayname:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The displayname for the new PPA.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param description:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The description for the new PPA.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param private:</th><td class="rst-field-body">Whether or not to create a private PPA. Defaults to
+False, which means the PPA will be public.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param suppress_subscription_notifications:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Whether or not to suppress
+emails to new subscribers about their subscriptions. Only
+meaningful for private PPAs.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">raises:</th><td class="rst-field-body">PPACreationError if an error is encountered</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">a PPA IArchive record.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="createPPA"/>
+ <wadl:param style="query" name="description" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="suppress_subscription_notifications" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="private" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="distribution" required="false">
+
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distribution"/>
+ </wadl:param>
+ <wadl:param style="query" name="displayname" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="name" required="false">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+ <wadl:response>
+ <wadl:param name="Location" style="header">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+
+ </wadl:response>
+ </wadl:method>
+ <wadl:method id="team-join" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Join the given team if its membership_policy is not RESTRICTED.</p>
+<p>Join the given team according to the policies and defaults of that
+team:</p>
+<ul class="rst-simple">
+<li>If the team membership_policy is OPEN, the user is added as
+an APPROVED member with a NULL TeamMembership.reviewer.</li>
+<li>If the team membership_policy is MODERATED, the user is added as
+a PROPOSED member and one of the team's administrators have to
+approve the membership.</li>
+</ul>
+<p>If may_subscribe_to_list is True, then also attempt to
+subscribe to the team's mailing list, depending on the list
+status and the person's auto-subscribe settings.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param requester:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">The person who requested the membership on
+behalf of a team or None when a person requests the
+membership for themselves.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param may_subscribe_to_list:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If True, also try subscribing to
+the team mailing list.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="join"/>
+ <wadl:param style="query" name="team" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="team-leave" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Leave the given team.</p>
+<p>This is a convenience method for retractTeamMembership() that allows
+a user to leave the given team, or to cancel a PENDING membership
+request.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param team:</th><td class="rst-field-body">The team to leave.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="leave"/>
+ <wadl:param style="query" name="team" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="team-setLocation" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Specify the location and time zone of a person.
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="setLocation"/>
+ <wadl:param style="query" name="latitude" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The latitude of this object.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="longitude" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The longitude of this object.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="time_zone" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The time zone of this object.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="team-declineInvitationToBeMemberOf" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Decline an invitation to become a member of the given team.</p>
+<p>There must be a TeamMembership for this person and the given team with
+the INVITED status. The status of this TeamMembership will be changed
+to INVITATION_DECLINED.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="declineInvitationToBeMemberOf"/>
+ <wadl:param style="query" name="team" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="comment" required="true">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="team-addMember" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Add the given person as a member of this team.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param person:</th><td class="rst-field-body">If the given person is already a member of this
+team we'll simply change its membership status. Otherwise a new
+TeamMembership is created with the given status.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param reviewer:</th><td class="rst-field-body">The user who made the given person a member of this
+team.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param comment:</th><td class="rst-field-body">String that will be assigned to the
+proponent_comment, reviewer_comment, or acknowledger comment.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param status:</th><td class="rst-field-body">TeamMembershipStatus value must be either
+Approved, Proposed or Admin.
+If the new member is a team, the status will be changed to
+Invited unless the user is also an admin of that team.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param force_team_add:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If the person is actually a team and
+force_team_add is False, the team will actually be invited to
+join this one. Otherwise the team is added as if it were a
+person.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param may_subscribe_to_list:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">If the person is not a team, and
+may_subscribe_to_list is True, then the person may be subscribed
+to the team's mailing list, depending on the list status and the
+person's auto-subscribe settings.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">return:</th><td class="rst-field-body">A tuple containing a boolean indicating when the
+membership status changed and the current TeamMembershipStatus.
+This depends on the desired status passed as an argument, the
+membership policy and the user's privileges.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="addMember"/>
+ <wadl:param style="query" name="status" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The state of this membership
+</wadl:doc>
+
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Approved"/>
+ <wadl:option value="Administrator"/>
+ <wadl:option value="Deactivated"/>
+ <wadl:option value="Expired"/>
+ <wadl:option value="Declined"/>
+ <wadl:option value="Invited"/>
+ <wadl:option value="Invitation declined"/>
+ </wadl:param>
+ <wadl:param style="query" name="comment" required="false">
+
+
+ </wadl:param>
+ <wadl:param style="query" name="person" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Member
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="team-retractTeamMembership" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Retract this team's membership in the given team.</p>
+<p>If there's a membership entry for this team on the given team and
+its status is either APPROVED, ADMIN, PENDING, or INVITED, the status
+is changed and the relevant entries in TeamParticipation.</p>
+<p>APPROVED and ADMIN status are changed to DEACTIVATED.
+PENDING status is changed to DECLINED.
+INVITED status is changes to INVITATION_DECLINED.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name">param team:</th><td class="rst-field-body">The team to leave.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param user:</th><td class="rst-field-body">The user making the retraction.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param comment:</th><td class="rst-field-body">An optional explanation about why the change was made.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="retractTeamMembership"/>
+ <wadl:param style="query" name="team" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="query" name="comment" required="false">
+
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="team-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="admins_collection_link" path="$['admins_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of this team's admins.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="archive_link" path="$['archive_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Default PPA</p>
+<p>The PPA named 'ppa' owned by this person.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="confirmed_email_addresses_collection_link" path="$['confirmed_email_addresses_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Confirmed emails of this person.</p>
+<p>Confirmed emails are the ones in the VALIDATED state</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#email_address-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date Created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="deactivated_members_collection_link" path="$['deactivated_members_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Former members of the team.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="default_membership_period" path="$['default_membership_period']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Subscription period</p>
+<p>Number of days a new subscription lasts before expiring. You can customize the length of an individual subscription when approving it. Leave this empty or set to 0 for subscriptions to never expire.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="default_renewal_period" path="$['default_renewal_period']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Self renewal period</p>
+<p>Number of days members can renew their own membership. The number can be from 1 to 3650 (10 years).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Details about interests and goals. Use plain text, paragraphs are preserved and URLs are linked.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>Your name as you would like it displayed throughout Launchpad. Most people use their full name here.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="expired_members_collection_link" path="$['expired_members_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Expired members of the team.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="gpg_keys_collection_link" path="$['gpg_keys_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of valid OpenPGP keys ordered by ID
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#gpg_key-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="hide_email_addresses" path="$['hide_email_addresses']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Hide my email addresses from other Launchpad users
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="homepage_content" path="$['homepage_content']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Homepage Content</p>
+<p>Obsolete. Use description.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="invited_members_collection_link" path="$['invited_members_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Other teams which have been invited to become members of this team.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="irc_nicknames_collection_link" path="$['irc_nicknames_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of IRC nicknames of this Person.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#irc_id-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_probationary" path="$['is_probationary']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is this a probationary user?
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_team" path="$['is_team']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is this object a team?
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_ubuntu_coc_signer" path="$['is_ubuntu_coc_signer']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Signed Ubuntu Code of Conduct
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_valid" path="$['is_valid']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+This is an active user or a team.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="jabber_ids_collection_link" path="$['jabber_ids_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of Jabber IDs of this Person.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#jabber_id-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="karma" path="$['karma']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Karma</p>
+<p>The cached total karma for this person.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="languages_collection_link" path="$['languages_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of languages known by this person
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#language-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="latitude" path="$['latitude']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The latitude of this object.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="logo_link" path="$['logo_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Logo</p>
+<p>An image of exactly 64x64 pixels that will be displayed in the heading of all pages related to you. Traditionally this is a logo, a small picture or a personal mascot. It should be no bigger than 50kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="longitude" path="$['longitude']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The longitude of this object.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="mailing_list_auto_subscribe_policy" path="$['mailing_list_auto_subscribe_policy']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Mailing List Auto-subscription Policy</p>
+<p>This attribute determines whether a person is automatically subscribed to a team's mailing list when the person joins said team.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Never subscribe to mailing lists"/>
+ <wadl:option value="Ask me when I join a team"/>
+ <wadl:option value="Always subscribe me to mailing lists"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="members_collection_link" path="$['members_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of direct members with ADMIN or APPROVED status
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="members_details_collection_link" path="$['members_details_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active TeamMemberships for this object's members.</p>
+<p>Active TeamMemberships are the ones with the ADMIN or APPROVED status. The results are ordered using Person.sortingColumns.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team_membership-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="membership_policy" path="$['membership_policy']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Membership policy</p>
+<p>The policies that describe who can be a member. The choice of policy
+reflects the need to build a community (inclusive) versus the need to
+control Launchpad projects, branches, and PPAs (exclusive).</p>
+
+</wadl:doc>
+
+ <wadl:option value="Open Team"/>
+ <wadl:option value="Delegated Team"/>
+ <wadl:option value="Moderated Team"/>
+ <wadl:option value="Restricted Team"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="memberships_details_collection_link" path="$['memberships_details_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All TeamMemberships for Teams this Team or Person is an active member of.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team_membership-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="mugshot_link" path="$['mugshot_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Mugshot</p>
+<p>A large image of exactly 192x192 pixels, that will be displayed on your home page in Launchpad. Traditionally this is a great big picture of your grinning face. Make the most of it! It should be no bigger than 100kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>A short unique name, beginning with a lower-case letter or number, and containing only letters, numbers, dots, hyphens, or plus signs.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="open_membership_invitations_collection_link" path="$['open_membership_invitations_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Open membership invitations.</p>
+<p>All TeamMemberships which represent an invitation (to join a team) sent to this person.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team_membership-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="participants_collection_link" path="$['participants_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>All participants of this team.</p>
+<p>List of all direct and indirect people and teams who, one way or another, are a part of this team. If you want a method to check if a given person is a member of a team, you should probably look at IPerson.inTeam().</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="ppas_collection_link" path="$['ppas_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>PPAs for this person.</p>
+<p>PPAs owned by the context person ordered by name.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#archive-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="preferred_email_address_link" path="$['preferred_email_address_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Preferred email address</p>
+<p>The preferred email address for this person. The one we'll use to communicate with them.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#email_address"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="private" path="$['private']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>This team is private</p>
+<p>Private teams are visible only to their members.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="proposed_members_collection_link" path="$['proposed_members_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+People who have applied to join the team.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="recipes_collection_link" path="$['recipes_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All recipes associated with the object.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package_recipe-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="renewal_policy" path="$['renewal_policy']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+When someone's membership is about to expire, notify them and
+</wadl:doc>
+
+ <wadl:option value="invite them to apply for renewal"/>
+ <wadl:option value="invite them to renew their own membership"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="sshkeys_collection_link" path="$['sshkeys_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of SSH keys
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#ssh_key-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="sub_teams_collection_link" path="$['sub_teams_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>All subteams of this team.</p>
+<p>A subteam is any team that is a member (either directly or
+indirectly) of this team. As an example, let's say we have
+this hierarchy of teams:</p>
+<dl class="rst-docutils">
+<dt>Rosetta Translators</dt>
+<dd><dl class="rst-first rst-last rst-docutils">
+<dt>Rosetta pt Translators</dt>
+<dd>Rosetta pt_BR Translators</dd>
+</dl>
+</dd>
+</dl>
+<p>In this case, both 'Rosetta pt Translators' and 'Rosetta pt_BR
+Translators' are subteams of the 'Rosetta Translators' team,
+and all members of both subteams are considered members of
+&quot;Rosetta Translators&quot;.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="subscription_policy" path="$['subscription_policy']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Membership policy</p>
+<p>Obsolete: use membership_policy</p>
+
+</wadl:doc>
+
+ <wadl:option value="Open Team"/>
+ <wadl:option value="Delegated Team"/>
+ <wadl:option value="Moderated Team"/>
+ <wadl:option value="Restricted Team"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="super_teams_collection_link" path="$['super_teams_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>All superteams of this team.</p>
+<p>A superteam is any team that this team is a member of. For
+example, let's say we have this hierarchy of teams, and we are
+the &quot;Rosetta pt_BR Translators&quot;:</p>
+<dl class="rst-docutils">
+<dt>Rosetta Translators</dt>
+<dd><dl class="rst-first rst-last rst-docutils">
+<dt>Rosetta pt Translators</dt>
+<dd>Rosetta pt_BR Translators</dd>
+</dl>
+</dd>
+</dl>
+<p>In this case, we will return both 'Rosetta pt Translators' and
+'Rosetta Translators', because we are member of both of them.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="team_description" path="$['team_description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Team Description</p>
+<p>Obsolete. Use description.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="team_owner_link" path="$['team_owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team Owner
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="time_zone" path="$['time_zone']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The time zone of this object.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="visibility" path="$['visibility']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Visibility</p>
+<p>Anyone can see a public team's data. Only team members can see private team data.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Private"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="wiki_names_collection_link" path="$['wiki_names_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+All WikiNames of this Person, sorted alphabetically by URL.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#wiki_name-page-resource"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="team-diff">
+ <wadl:param style="plain" required="false" name="default_membership_period" path="$['default_membership_period']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Subscription period</p>
+<p>Number of days a new subscription lasts before expiring. You can customize the length of an individual subscription when approving it. Leave this empty or set to 0 for subscriptions to never expire.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="default_renewal_period" path="$['default_renewal_period']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Self renewal period</p>
+<p>Number of days members can renew their own membership. The number can be from 1 to 3650 (10 years).</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="description" path="$['description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Description</p>
+<p>Details about interests and goals. Use plain text, paragraphs are preserved and URLs are linked.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="display_name" path="$['display_name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Display Name</p>
+<p>Your name as you would like it displayed throughout Launchpad. Most people use their full name here.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="hide_email_addresses" path="$['hide_email_addresses']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Hide my email addresses from other Launchpad users
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="homepage_content" path="$['homepage_content']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Homepage Content</p>
+<p>Obsolete. Use description.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="logo_link" path="$['logo_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Logo</p>
+<p>An image of exactly 64x64 pixels that will be displayed in the heading of all pages related to you. Traditionally this is a logo, a small picture or a personal mascot. It should be no bigger than 50kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="mailing_list_auto_subscribe_policy" path="$['mailing_list_auto_subscribe_policy']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Mailing List Auto-subscription Policy</p>
+<p>This attribute determines whether a person is automatically subscribed to a team's mailing list when the person joins said team.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Never subscribe to mailing lists"/>
+ <wadl:option value="Ask me when I join a team"/>
+ <wadl:option value="Always subscribe me to mailing lists"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="membership_policy" path="$['membership_policy']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Membership policy</p>
+<p>The policies that describe who can be a member. The choice of policy
+reflects the need to build a community (inclusive) versus the need to
+control Launchpad projects, branches, and PPAs (exclusive).</p>
+
+</wadl:doc>
+
+ <wadl:option value="Open Team"/>
+ <wadl:option value="Delegated Team"/>
+ <wadl:option value="Moderated Team"/>
+ <wadl:option value="Restricted Team"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="mugshot_link" path="$['mugshot_link']" type="binary">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Mugshot</p>
+<p>A large image of exactly 192x192 pixels, that will be displayed on your home page in Launchpad. Traditionally this is a great big picture of your grinning face. Make the most of it! It should be no bigger than 100kb in size.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#HostedFile"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>A short unique name, beginning with a lower-case letter or number, and containing only letters, numbers, dots, hyphens, or plus signs.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="renewal_policy" path="$['renewal_policy']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+When someone's membership is about to expire, notify them and
+</wadl:doc>
+
+ <wadl:option value="invite them to apply for renewal"/>
+ <wadl:option value="invite them to renew their own membership"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="subscription_policy" path="$['subscription_policy']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Membership policy</p>
+<p>Obsolete: use membership_policy</p>
+
+</wadl:doc>
+
+ <wadl:option value="Open Team"/>
+ <wadl:option value="Delegated Team"/>
+ <wadl:option value="Moderated Team"/>
+ <wadl:option value="Restricted Team"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="team_description" path="$['team_description']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Team Description</p>
+<p>Obsolete. Use description.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="team_owner_link" path="$['team_owner_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team Owner
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="visibility" path="$['visibility']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Visibility</p>
+<p>Anyone can see a public team's data. Only team members can see private team data.</p>
+
+</wadl:doc>
+
+ <wadl:option value="Public"/>
+ <wadl:option value="Private"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="team-page-resource">
+ <wadl:method name="GET" id="team-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#team-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="team-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#team-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#team-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="team_membership">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>TeamMembership for Users.</p>
+<p>This table includes <em>direct</em> team members only. Indirect memberships are
+handled by the TeamParticipation table.</p>
+
+</wadl:doc>
+ <wadl:method name="GET" id="team_membership-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#team_membership-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="team_membership-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="team_membership-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="team_membership-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#team_membership-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="team_membership-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#team_membership-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="team_membership-setExpirationDate" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Set this membership's expiration date.</p>
+<p>The given date must be None or in the future and the given user must
+be allowed to change this membership's expiration date as per the
+rules defined in canChangeExpirationDate().</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="setExpirationDate"/>
+ <wadl:param style="query" name="date" required="false" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date expires
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="team_membership-setStatus" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Set the status of this membership.</p>
+<p>The user and comment are stored in last_changed_by and
+last_change_comment and may also be stored in proposed_by
+(and proponent_comment), reviewed_by (and reviewer_comment) or
+acknowledged_by (and acknowledger_comment), depending on the state
+transition.</p>
+<p>The given status must be different than the current status.</p>
+<p>Return True if the status got changed, otherwise False.</p>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="setStatus"/>
+ <wadl:param style="query" name="status" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The state of this membership
+</wadl:doc>
+
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Approved"/>
+ <wadl:option value="Administrator"/>
+ <wadl:option value="Deactivated"/>
+ <wadl:option value="Expired"/>
+ <wadl:option value="Declined"/>
+ <wadl:option value="Invited"/>
+ <wadl:option value="Invitation declined"/>
+ </wadl:param>
+ <wadl:param style="query" name="comment" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Reviewer comment
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="query" name="silent" required="false">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Do not send notifications of status change. For use by Launchpad administrators only.
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="team_membership-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team_membership"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_expires" path="$['date_expires']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date expires
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_joined" path="$['date_joined']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date joined</p>
+<p>The date in which this membership was made active for the first time.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="last_change_comment" path="$['last_change_comment']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Comment on the last change
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="last_changed_by_link" path="$['last_changed_by_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Last person who change this
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="member_link" path="$['member_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Member
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The state of this membership
+</wadl:doc>
+
+ <wadl:option value="Proposed"/>
+ <wadl:option value="Approved"/>
+ <wadl:option value="Administrator"/>
+ <wadl:option value="Deactivated"/>
+ <wadl:option value="Expired"/>
+ <wadl:option value="Declined"/>
+ <wadl:option value="Invited"/>
+ <wadl:option value="Invitation declined"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="team_link" path="$['team_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Team
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="team_membership-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="team_membership-page-resource">
+ <wadl:method name="GET" id="team_membership-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#team_membership-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="team_membership-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#team_membership-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#team_membership-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#team_membership"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="temporary_blob">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A blob which we will store in the database temporarily.
+</wadl:doc>
+ <wadl:method name="GET" id="temporary_blob-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#temporary_blob-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="temporary_blob-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="temporary_blob-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="temporary_blob-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#temporary_blob-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="temporary_blob-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#temporary_blob-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="temporary_blob-getProcessedData" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Returns a dict containing the processed blob data.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="getProcessedData"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ <wadl:method id="temporary_blob-hasBeenProcessed" name="GET">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Return True if this blob has been processed.
+</wadl:doc>
+ <wadl:request>
+
+ <wadl:param style="query" name="ws.op" required="true" fixed="hasBeenProcessed"/>
+
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="temporary_blob-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#temporary_blob"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="token" path="$['token']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+UUID
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="temporary_blob-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="temporary_blob-page-resource">
+ <wadl:method name="GET" id="temporary_blob-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#temporary_blob-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="temporary_blob-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#temporary_blob-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#temporary_blob-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#temporary_blob"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="timeline_project_series">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Minimal product series info for the timeline.
+</wadl:doc>
+ <wadl:method name="GET" id="timeline_project_series-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#timeline_project_series-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="timeline_project_series-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="timeline_project_series-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="timeline_project_series-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#timeline_project_series-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="timeline_project_series-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#timeline_project_series-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="timeline_project_series-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#timeline_project_series"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="is_development_focus" path="$['is_development_focus']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is series the development focus of the project
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="landmarks" path="$['landmarks']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of milestones and releases
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of the series is a short, unique name that identifies it, being used in URLs. It must be all lowercase, with no special characters. For example, '2.0' or 'trunk'.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="project_link" path="$['project_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Project
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="Experimental"/>
+ <wadl:option value="Active Development"/>
+ <wadl:option value="Pre-release Freeze"/>
+ <wadl:option value="Current Stable Release"/>
+ <wadl:option value="Supported"/>
+ <wadl:option value="Obsolete"/>
+ <wadl:option value="Future"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="uri" path="$['uri']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Series URI</p>
+<p>foo</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="timeline_project_series-diff">
+ <wadl:param style="plain" required="false" name="is_development_focus" path="$['is_development_focus']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Is series the development focus of the project
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="landmarks" path="$['landmarks']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+List of milestones and releases
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="name" path="$['name']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Name</p>
+<p>The name of the series is a short, unique name that identifies it, being used in URLs. It must be all lowercase, with no special characters. For example, '2.0' or 'trunk'.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="project_link" path="$['project_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Project
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Status
+</wadl:doc>
+
+ <wadl:option value="Experimental"/>
+ <wadl:option value="Active Development"/>
+ <wadl:option value="Pre-release Freeze"/>
+ <wadl:option value="Current Stable Release"/>
+ <wadl:option value="Supported"/>
+ <wadl:option value="Obsolete"/>
+ <wadl:option value="Future"/>
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="uri" path="$['uri']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Series URI</p>
+<p>foo</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="timeline_project_series-page-resource">
+ <wadl:method name="GET" id="timeline_project_series-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#timeline_project_series-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="timeline_project_series-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#timeline_project_series-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#timeline_project_series-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#timeline_project_series"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="translation_group">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A TranslationGroup.
+</wadl:doc>
+ <wadl:method name="GET" id="translation_group-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_group-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="translation_group-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="translation_group-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="translation_group-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_group-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="translation_group-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_group-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="translation_group-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#translation_group"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="translation_group-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="translation_group-page-resource">
+ <wadl:method name="GET" id="translation_group-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#translation_group-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="translation_group-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#translation_group-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#translation_group-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#translation_group"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="translation_import_queue_entry">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+An entry of the Translation Import Queue.
+</wadl:doc>
+ <wadl:method name="GET" id="translation_import_queue_entry-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_import_queue_entry-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="translation_import_queue_entry-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="translation_import_queue_entry-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="translation_import_queue_entry-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_import_queue_entry-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="translation_import_queue_entry-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#translation_import_queue_entry-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ <wadl:method id="translation_import_queue_entry-setStatus" name="POST">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Transition to a new status if possible.</p>
+<table class="rst-docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="rst-field"><th class="rst-field-name" colspan="2">param new_status:</th></tr>
+<tr class="rst-field"><td>&nbsp;</td><td class="rst-field-body">Status to transition to.</td>
+</tr>
+<tr class="rst-field"><th class="rst-field-name">param user:</th><td class="rst-field-body">The user that is doing the transition.</td>
+</tr>
+</tbody>
+</table>
+
+</wadl:doc>
+ <wadl:request>
+ <wadl:representation mediaType="application/x-www-form-urlencoded">
+ <wadl:param style="query" name="ws.op" required="true" fixed="setStatus"/>
+ <wadl:param style="query" name="new_status" required="true">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The status of the import.
+</wadl:doc>
+
+ <wadl:option value="Approved"/>
+ <wadl:option value="Imported"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Failed"/>
+ <wadl:option value="Needs Review"/>
+ <wadl:option value="Blocked"/>
+ <wadl:option value="Needs Information"/>
+ </wadl:param>
+ </wadl:representation>
+ </wadl:request>
+
+ </wadl:method>
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="translation_import_queue_entry-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#translation_import_queue_entry"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The timestamp when this queue entry was created.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_status_changed" path="$['date_status_changed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The timestamp when the status was changed.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="distroseries_link" path="$['distroseries_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Series
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#distro_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="error_output" path="$['error_output']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Error output</p>
+<p>Output from most recent import attempt.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="format" path="$['format']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The file format of the import.
+</wadl:doc>
+
+ <wadl:option value="PO format"/>
+ <wadl:option value="MO format"/>
+ <wadl:option value="Mozilla XPI format"/>
+ <wadl:option value="KDE PO format"/>
+ <wadl:option value="XPI PO format"/>
+ <wadl:option value="Changes from imported translations in partial PO format"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="id" path="$['id']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The entry ID
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="path" path="$['path']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Path</p>
+<p>The path to this file inside the source tree. Includes the filename.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="productseries_link" path="$['productseries_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Series
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#project_series"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="sourcepackage_link" path="$['sourcepackage_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The sourcepackage associated with this entry.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#source_package"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="status" path="$['status']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The status of the import.
+</wadl:doc>
+
+ <wadl:option value="Approved"/>
+ <wadl:option value="Imported"/>
+ <wadl:option value="Deleted"/>
+ <wadl:option value="Failed"/>
+ <wadl:option value="Needs Review"/>
+ <wadl:option value="Blocked"/>
+ <wadl:option value="Needs Information"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="uploader_link" path="$['uploader_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Uploader</p>
+<p>The person that uploaded this file to Launchpad.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="translation_import_queue_entry-diff">
+ <wadl:param style="plain" required="false" name="date_status_changed" path="$['date_status_changed']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The timestamp when the status was changed.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="path" path="$['path']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Path</p>
+<p>The path to this file inside the source tree. Includes the filename.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="translation_import_queue_entry-page-resource">
+ <wadl:method name="GET" id="translation_import_queue_entry-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#translation_import_queue_entry-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="translation_import_queue_entry-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#translation_import_queue_entry-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#translation_import_queue_entry-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#translation_import_queue_entry"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="webhook_delivery">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+A Job that delivers an event to a webhook consumer.
+</wadl:doc>
+ <wadl:method name="GET" id="webhook_delivery-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#webhook_delivery-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="webhook_delivery-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="webhook_delivery-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="webhook_delivery-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#webhook_delivery-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="webhook_delivery-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#webhook_delivery-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="webhook_delivery-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook_delivery"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_first_sent" path="$['date_first_sent']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date first sent</p>
+<p>Timestamp of the first delivery attempt.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_scheduled" path="$['date_scheduled']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date scheduled</p>
+<p>Timestamp of the next delivery attempt.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_sent" path="$['date_sent']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Date sent</p>
+<p>Timestamp of the last delivery attempt.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="error_message" path="$['error_message']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Error message</p>
+<p>Details of the error encountered by the most recent delivery attempt.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="event_type" path="$['event_type']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Event type
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="payload" path="$['payload']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Event payload
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="pending" path="$['pending']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Pending</p>
+<p>Whether a delivery attempt is in progress.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="successful" path="$['successful']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Successful</p>
+<p>Whether the most recent delivery attempt succeeded, or null if no attempts have been made yet.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="webhook_link" path="$['webhook_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Webhook</p>
+<p>The webhook that this delivery is for.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="webhook_delivery-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="webhook_delivery-page-resource">
+ <wadl:method name="GET" id="webhook_delivery-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#webhook_delivery-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="webhook_delivery-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#webhook_delivery-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#webhook_delivery-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook_delivery"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="webhook">
+
+ <wadl:method name="GET" id="webhook-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#webhook-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="webhook-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="webhook-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="webhook-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#webhook-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="webhook-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#webhook-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="webhook-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Deliver details of subscribed events.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_created" path="$['date_created']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date created
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="date_last_modified" path="$['date_last_modified']" type="xsd:dateTime">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Date last modified
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="deliveries_collection_link" path="$['deliveries_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Recent deliveries for this webhook.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook_delivery-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="delivery_url" path="$['delivery_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Delivery URL
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="event_types" path="$['event_types']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Event types
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="registrant_link" path="$['registrant_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Registrant</p>
+<p>The person who created this webhook.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="target_link" path="$['target_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Target</p>
+<p>The object for which this webhook receives events.</p>
+
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook_target"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="webhook-diff">
+ <wadl:param style="plain" required="false" name="active" path="$['active']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+<p>Active</p>
+<p>Deliver details of subscribed events.</p>
+
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="delivery_url" path="$['delivery_url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Delivery URL
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="event_types" path="$['event_types']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Event types
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="webhook-page-resource">
+ <wadl:method name="GET" id="webhook-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#webhook-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="webhook-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#webhook-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#webhook-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="webhook_target">
+
+ <wadl:method name="GET" id="webhook_target-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#webhook_target-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="webhook_target-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="webhook_target-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="webhook_target-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#webhook_target-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="webhook_target-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#webhook_target-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="webhook_target-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook_target"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link" path="$['web_link']">
+ <wadl:doc>
+ The canonical human-addressable web link to this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="webhooks_collection_link" path="$['webhooks_collection_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Webhooks for this target.
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook-page-resource"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="webhook_target-diff">
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="webhook_target-page-resource">
+ <wadl:method name="GET" id="webhook_target-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#webhook_target-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="webhook_target-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#webhook_target-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#webhook_target-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#webhook_target"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+
+ <wadl:resource_type id="wiki_name">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Wiki for Users
+</wadl:doc>
+ <wadl:method name="GET" id="wiki_name-get">
+ <wadl:response>
+ <wadl:representation href="https://api.launchpad.test/1.0/#wiki_name-full"/>
+ <wadl:representation mediaType="application/xhtml+xml" id="wiki_name-xhtml"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="wiki_name-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="wiki_name-put">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#wiki_name-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="wiki_name-patch">
+ <wadl:request>
+ <wadl:representation href="https://api.launchpad.test/1.0/#wiki_name-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+
+
+ </wadl:resource_type>
+
+
+ <wadl:representation mediaType="application/json" id="wiki_name-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:doc>The canonical link to this resource.</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#wiki_name"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:doc>
+ The link to the WADL description of this resource.
+ </wadl:doc>
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ <wadl:doc>
+ The value of the HTTP ETag for this resource.
+ </wadl:doc>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="person_link" path="$['person_link']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Owner
+</wadl:doc>
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="url" path="$['url']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+The URL for this wiki home page.
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="wiki" path="$['wiki']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Wiki host
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="true" name="wikiname" path="$['wikiname']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Wikiname
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:representation mediaType="application/json" id="wiki_name-diff">
+ <wadl:param style="plain" required="false" name="wiki" path="$['wiki']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Wiki host
+</wadl:doc>
+
+ </wadl:param>
+ <wadl:param style="plain" required="false" name="wikiname" path="$['wikiname']">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+Wikiname
+</wadl:doc>
+
+ </wadl:param>
+ </wadl:representation>
+
+ <!--Collection page for this type of entry-->
+ <wadl:resource_type id="wiki_name-page-resource">
+ <wadl:method name="GET" id="wiki_name-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#wiki_name-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="wiki_name-page">
+
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+
+
+
+ <wadl:param style="plain" name="total_size" path="$['total_size']" required="true"/>
+
+
+
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#wiki_name-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#wiki_name-page-resource"/>
+ </wadl:param>
+
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.launchpad.test/1.0/#wiki_name"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+ <!--End representation and resource_type definitions for entry
+ resources. -->
+
+ <!--Finally, describe the 'hosted binary file' type...-->
+ <wadl:resource_type id="HostedFile">
+ <wadl:method name="GET" id="HostedFile-get">
+ <wadl:response>
+ <wadl:representation status="303">
+ <wadl:param style="header" name="Location"/>
+ </wadl:representation>
+ </wadl:response>
+ </wadl:method>
+ <wadl:method name="PUT" id="HostedFile-put"/>
+ <wadl:method name="DELETE" id="HostedFile-delete"/>
+ </wadl:resource_type>
+
+ <!--...and the simple 'scalar value' type.-->
+ <wadl:resource_type id="ScalarValue">
+ <wadl:method name="GET" id="ScalarValue-get">
+ <wadl:response>
+ <wadl:representation mediaType="application/json"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <!--Define a data type for binary data.-->
+ <xsd:simpleType name="binary">
+ <xsd:list itemType="byte"/>
+ </xsd:simpleType>
+
+</wadl:application>
diff --git a/src/launchpadlib/testing/launchpad.py b/src/launchpadlib/testing/launchpad.py
new file mode 100644
index 0000000..a97b995
--- /dev/null
+++ b/src/launchpadlib/testing/launchpad.py
@@ -0,0 +1,620 @@
+# Copyright 2008 Canonical Ltd.
+
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# launchpadlib is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with launchpadlib. If not, see
+# <http://www.gnu.org/licenses/>.
+
+"""Testing API allows fake data to be used in unit tests.
+
+Testing launchpadlib code is tricky, because it depends so heavily on a
+remote, unique webservice: Launchpad. This module helps you write tests for
+your launchpadlib application that can be run locally and quickly.
+
+Say you were writing some code that needed to call out to Launchpad and get
+the branches owned by the logged-in person, and then do something to them. For
+example, something like this::
+
+ def collect_unique_names(lp):
+ names = []
+ for branch in lp.me.getBranches():
+ names.append(branch.unique_name)
+ return names
+
+To test it, you would first prepare a L{FakeLaunchpad} object, and give it
+some sample data of your own devising::
+
+ lp = FakeLaunchpad()
+ my_branches = [dict(unique_name='~foo/bar/baz')]
+ lp.me = dict(getBranches: lambda status: my_branches)
+
+Then, in the test, call your own code and assert that it behaves correctly
+given the data.
+
+ names = collect_unique_names(lp)
+ self.assertEqual(['~foo/bar/baz'], names)
+
+And that's it.
+
+The L{FakeLaunchpad} code uses a WADL file to type-check any objects created
+or returned. This means you can be sure that you won't accidentally store
+sample data with misspelled attribute names.
+
+The WADL file that we use by default is for version 1.0 of the Launchpad API.
+If you want to work against a more recent version of the API, download the
+WADL yourself (see <https://help.launchpad.net/API/Hacking>) and construct
+your C{FakeLaunchpad} like this::
+
+ from wadllib.application import Application
+ lp = FakeLaunchpad(
+ Application('https://api.launchpad.net/devel/',
+ '/path/to/wadl.xml'))
+
+Where 'https://api.launchpad.net/devel/' is the URL for the WADL file, found
+also in the WADL file itelf.
+"""
+
+from datetime import datetime
+
+try:
+ from collections.abc import Callable
+except ImportError:
+ from collections import Callable
+import sys
+
+if sys.version_info[0] >= 3:
+ basestring = str
+
+JSON_MEDIA_TYPE = "application/json"
+
+
+class IntegrityError(Exception):
+ """Raised when bad sample data is used with a L{FakeLaunchpad} instance."""
+
+
+class FakeLaunchpad(object):
+ """A fake Launchpad API class for unit tests that depend on L{Launchpad}.
+
+ @param application: A C{wadllib.application.Application} instance for a
+ Launchpad WADL definition file.
+ """
+
+ def __init__(
+ self,
+ credentials=None,
+ service_root=None,
+ cache=None,
+ timeout=None,
+ proxy_info=None,
+ application=None,
+ ):
+ if application is None:
+ from launchpadlib.testing.resources import get_application
+
+ application = get_application()
+ root_resource = FakeRoot(application)
+ self.__dict__.update(
+ {
+ "credentials": credentials,
+ "_application": application,
+ "_service_root": root_resource,
+ }
+ )
+
+ def __setattr__(self, name, values):
+ """Set sample data.
+
+ @param name: The name of the attribute.
+ @param values: A dict representing an object matching a resource
+ defined in Launchpad's WADL definition.
+ """
+ service_root = self._service_root
+ setattr(service_root, name, values)
+
+ def __getattr__(self, name):
+ """Get sample data.
+
+ @param name: The name of the attribute.
+ """
+ return getattr(self._service_root, name)
+
+ @classmethod
+ def login(
+ cls,
+ consumer_name,
+ token_string,
+ access_secret,
+ service_root=None,
+ cache=None,
+ timeout=None,
+ proxy_info=None,
+ ):
+ """Convenience for setting up access credentials."""
+ from launchpadlib.testing.resources import get_application
+
+ return cls(object(), application=get_application())
+
+ @classmethod
+ def get_token_and_login(
+ cls,
+ consumer_name,
+ service_root=None,
+ cache=None,
+ timeout=None,
+ proxy_info=None,
+ ):
+ """Get credentials from Launchpad and log into the service root."""
+ from launchpadlib.testing.resources import get_application
+
+ return cls(object(), application=get_application())
+
+ @classmethod
+ def login_with(
+ cls,
+ consumer_name,
+ service_root=None,
+ launchpadlib_dir=None,
+ timeout=None,
+ proxy_info=None,
+ ):
+ """Log in to Launchpad with possibly cached credentials."""
+ from launchpadlib.testing.resources import get_application
+
+ return cls(object(), application=get_application())
+
+
+def find_by_attribute(element, name, value):
+ """Find children of element where attribute name is equal to value."""
+ return [child for child in element if child.get(name) == value]
+
+
+def strip_suffix(string, suffix):
+ if string.endswith(suffix):
+ return string[: -len(suffix)]
+ return string
+
+
+class FakeResource(object):
+ """
+ Represents valid sample data on L{FakeLaunchpad} instances.
+
+ @ivar _children: A dictionary of child resources, each of type
+ C{FakeResource}.
+ @ivar _values: A dictionary of values associated with this resource. e.g.
+ "display_name" or "date_created". The values of this dictionary will
+ never be C{FakeResource}s.
+
+ Note that if C{_children} has a key, then C{_values} will not, and vice
+ versa. That is, they are distinct dicts.
+ """
+
+ special_methods = ["lp_save"]
+
+ def __init__(self, application, resource_type, values=None):
+ """Construct a FakeResource.
+
+ @param application: A C{waddlib.application.Application} instance.
+ @param resource_type: A C{wadllib.application.ResourceType} instance
+ for this resource.
+ @param values: Optionally, a dict representing attribute key/value
+ pairs for this resource.
+ """
+ if values is None:
+ values = {}
+ self.__dict__.update(
+ {
+ "_application": application,
+ "_resource_type": resource_type,
+ "_children": {},
+ "_values": values,
+ }
+ )
+
+ def __setattr__(self, name, value):
+ """Set sample data.
+
+ C{value} can be a dict representing an object matching a resource
+ defined in the WADL definition. Alternatively, C{value} could be a
+ resource itself. Either way, it is checked for type correctness
+ against the WADL definition.
+ """
+ if isinstance(value, dict):
+ self._children[name] = self._create_child_resource(name, value)
+ else:
+ values = {}
+ values.update(self._values)
+ values[name] = value
+ # Confirm that the new 'values' dict is a partial type match for
+ # this resource.
+ self._check_resource_type(self._resource_type, values)
+ self.__dict__["_values"] = values
+
+ def __getattr__(self, name, _marker=object()):
+ """Get sample data.
+
+ @param name: The name of the attribute.
+ """
+ result = self._children.get(name, _marker)
+ if result is _marker:
+ result = self._values.get(name, _marker)
+ if isinstance(result, Callable):
+ return self._wrap_method(name, result)
+ if name in self.special_methods:
+ return lambda: True
+ if result is _marker:
+ raise AttributeError("%r has no attribute '%s'" % (self, name))
+ return result
+
+ def _wrap_method(self, name, method):
+ """Wrapper around methods validates results when it's run.
+
+ @param name: The name of the method.
+ @param method: The callable to run when the method is called.
+ """
+
+ def wrapper(*args, **kwargs):
+ return self._run_method(name, method, *args, **kwargs)
+
+ return wrapper
+
+ def _create_child_resource(self, name, values):
+ """
+ Ensure that C{values} is a valid object for the C{name} attribute and
+ return a resource object to represent it as API data.
+
+ @param name: The name of the attribute to check the C{values} object
+ against.
+ @param values: A dict with key/value pairs representing attributes and
+ methods of an object matching the C{name} resource's definition.
+ @return: A L{FakeEntry} for an ordinary resource or a
+ L{FakeCollection} for a resource that represents a collection.
+ @raises IntegrityError: Raised if C{name} isn't a valid attribute for
+ this resource or if C{values} isn't a valid object for the C{name}
+ attribute.
+ """
+ root_resource = self._application.get_resource_by_path("")
+ is_link = False
+ param = root_resource.get_parameter(
+ name + "_collection_link", JSON_MEDIA_TYPE
+ )
+ if param is None:
+ is_link = True
+ param = root_resource.get_parameter(
+ name + "_link", JSON_MEDIA_TYPE
+ )
+ if param is None:
+ raise IntegrityError("%s isn't a valid property." % (name,))
+ resource_type = self._get_resource_type(param)
+ if is_link:
+ self._check_resource_type(resource_type, values)
+ return FakeEntry(self._application, resource_type, values)
+ else:
+ name, child_resource_type = self._check_collection_type(
+ resource_type, values
+ )
+ return FakeCollection(
+ self._application,
+ resource_type,
+ values,
+ name,
+ child_resource_type,
+ )
+
+ def _get_resource_type(self, param):
+ """Get the resource type for C{param}.
+
+ @param param: An object representing a C{_link} or C{_collection_link}
+ parameter.
+ @return: The resource type for the parameter, or None if one isn't
+ available.
+ """
+ [link] = list(param.tag)
+ name = link.get("resource_type")
+ return self._application.get_resource_type(name)
+
+ def _check_resource_type(self, resource_type, partial_object):
+ """
+ Ensure that attributes and methods defined for C{partial_object} match
+ attributes and methods defined for C{resource_type}.
+
+ @param resource_type: The resource type to check the attributes and
+ methods against.
+ @param partial_object: A dict with key/value pairs representing
+ attributes and methods.
+ """
+ for name, value in partial_object.items():
+ if isinstance(value, Callable):
+ # Performs an integrity check.
+ self._get_method(resource_type, name)
+ else:
+ self._check_attribute(resource_type, name, value)
+
+ def _check_collection_type(self, resource_type, partial_object):
+ """
+ Ensure that attributes and methods defined for C{partial_object} match
+ attributes and methods defined for C{resource_type}. Collection
+ entries are treated specially.
+
+ @param resource_type: The resource type to check the attributes and
+ methods against.
+ @param partial_object: A dict with key/value pairs representing
+ attributes and methods.
+ @return: (name, resource_type), where 'name' is the name of the child
+ resource type and 'resource_type' is the corresponding resource
+ type.
+ """
+ name = None
+ child_resource_type = None
+ for name, value in partial_object.items():
+ if name == "entries":
+ name, child_resource_type = self._check_entries(
+ resource_type, value
+ )
+ elif isinstance(value, Callable):
+ # Performs an integrity check.
+ self._get_method(resource_type, name)
+ else:
+ self._check_attribute(resource_type, name, value)
+ return name, child_resource_type
+
+ def _find_representation_id(self, resource_type, name):
+ """Find the WADL XML id for the representation of C{resource_type}.
+
+ Looks in the WADL for the first representiation associated with the
+ method for a resource type.
+
+ :return: An XML id (a string).
+ """
+ get_method = self._get_method(resource_type, name)
+ for response in get_method:
+ for representation in response:
+ representation_url = representation.get("href")
+ if representation_url is not None:
+ return self._application.lookup_xml_id(representation_url)
+
+ def _check_attribute(self, resource_type, name, value):
+ """
+ Ensure that C{value} is a valid C{name} attribute on C{resource_type}.
+
+ Does this by finding the representation for the default, canonical GET
+ method (as opposed to the many "named" GET methods that exist.)
+
+ @param resource_type: The resource type to check the attribute
+ against.
+ @param name: The name of the attribute.
+ @param value: The value to check.
+ """
+ xml_id = self._find_representation_id(resource_type, "get")
+ self._check_attribute_representation(xml_id, name, value)
+
+ def _check_attribute_representation(self, xml_id, name, value):
+ """
+ Ensure that C{value} is a valid value for C{name} with the
+ representation definition matching C{xml_id}.
+
+ @param xml_id: The XML ID for the representation to check the
+ attribute against.
+ @param name: The name of the attribute.
+ @param value: The value to check.
+ @raises IntegrityError: Raised if C{name} is not a valid attribute
+ name or if C{value}'s type is not valid for the attribute.
+ """
+ representation = self._application.representation_definitions[xml_id]
+ parameters = {child.get("name"): child for child in representation.tag}
+ if name not in parameters:
+ raise IntegrityError("%s not found" % name)
+ parameter = parameters[name]
+ data_type = parameter.get("type")
+ if data_type is None:
+ if not isinstance(value, basestring):
+ raise IntegrityError(
+ "%s is not a str or unicode for %s" % (value, name)
+ )
+ elif data_type == "xsd:dateTime":
+ if not isinstance(value, datetime):
+ raise IntegrityError(
+ "%s is not a datetime for %s" % (value, name)
+ )
+
+ def _get_method(self, resource_type, name):
+ """Get the C{name} method on C{resource_type}.
+
+ @param resource_type: The method's resource type.
+ @param name: The name of the method.
+ @raises IntegrityError: Raised if a method called C{name} is not
+ available on C{resource_type}.
+ @return: The XML element for the method from the WADL.
+ """
+ if name in self.special_methods:
+ return
+ resource_name = resource_type.tag.get("id")
+ xml_id = "%s-%s" % (resource_name, name)
+ try:
+ [get_method] = find_by_attribute(resource_type.tag, "id", xml_id)
+ except ValueError:
+ raise IntegrityError(
+ "%s is not a method of %s" % (name, resource_name)
+ )
+ return get_method
+
+ def _run_method(self, name, method, *args, **kwargs):
+ """Run a method and convert its result into a L{FakeResource}.
+
+ If the result represents an object it is validated against the WADL
+ definition before being returned.
+
+ @param name: The name of the method.
+ @param method: A callable.
+ @param args: Arguments to pass to the callable.
+ @param kwargs: Keyword arguments to pass to the callable.
+ @return: A L{FakeResource} representing the result if it's an object.
+ @raises IntegrityError: Raised if the return value from the method
+ isn't valid.
+ """
+ result = method(*args, **kwargs)
+ if name in self.special_methods:
+ return result
+ else:
+ return self._create_resource(self._resource_type, name, result)
+
+ def _create_resource(self, resource_type, name, result):
+ """Create a new L{FakeResource} for C{resource_type} method call result.
+
+ @param resource_type: The resource type of the method.
+ @param name: The name of the method on C{resource_type}.
+ @param result: The result of calling the method.
+ @raises IntegrityError: Raised if C{result} is an invalid return value
+ for the method.
+ @return: A L{FakeResource} for C{result}.
+ """
+ resource_name = resource_type.tag.get("id")
+ if resource_name == name:
+ name = "get"
+ xml_id = self._find_representation_id(resource_type, name)
+ xml_id = strip_suffix(xml_id, "-full")
+ if xml_id not in self._application.resource_types:
+ xml_id += "-resource"
+ result_resource_type = self._application.resource_types[xml_id]
+ self._check_resource_type(result_resource_type, result)
+ # XXX: Should this wrap in collection?
+ return FakeResource(self._application, result_resource_type, result)
+
+ def _get_child_resource_type(self, resource_type):
+ """Get the name and resource type for the entries in a collection.
+
+ @param resource_type: The resource type for a collection.
+ @return: (name, resource_type), where 'name' is the name of the child
+ resource type and 'resource_type' is the corresponding resource
+ type.
+ """
+ xml_id = self._find_representation_id(resource_type, "get")
+ representation_definition = (
+ self._application.representation_definitions[xml_id]
+ )
+
+ [entry_links] = find_by_attribute(
+ representation_definition.tag, "name", "entry_links"
+ )
+ [resource_type] = list(entry_links)
+ resource_type_url = resource_type.get("resource_type")
+ resource_type_name = resource_type_url.split("#")[1]
+ return (
+ resource_type_name,
+ self._application.get_resource_type(resource_type_url),
+ )
+
+ def _check_entries(self, resource_type, entries):
+ """Ensure that C{entries} are valid for a C{resource_type} collection.
+
+ @param resource_type: The resource type of the collection the entries
+ are in.
+ @param entries: A list of dicts representing objects in the
+ collection.
+ @return: (name, resource_type), where 'name' is the name of the child
+ resource type and 'resource_type' is the corresponding resource
+ type.
+ """
+ name, child_resource_type = self._get_child_resource_type(
+ resource_type
+ )
+ for entry in entries:
+ self._check_resource_type(child_resource_type, entry)
+ return name, child_resource_type
+
+ def __repr__(self):
+ """
+ The resource type, identifier if available, and memory address are
+ used to generate a representation of this fake resource.
+ """
+ name = self._resource_type.tag.get("id")
+ key = "object"
+ key = self._values.get("id", key)
+ key = self._values.get("name", key)
+ return "<%s %s %s at %s>" % (
+ self.__class__.__name__,
+ name,
+ key,
+ hex(id(self)),
+ )
+
+
+class FakeRoot(FakeResource):
+ """Fake root object for an application."""
+
+ def __init__(self, application):
+ """Create a L{FakeResource} for the service root of C{application}.
+
+ @param application: A C{wadllib.application.Application} instance.
+ """
+ resource_type = application.get_resource_type(
+ application.markup_url + "#service-root"
+ )
+ super(FakeRoot, self).__init__(application, resource_type)
+
+
+class FakeEntry(FakeResource):
+ """A fake resource for an entry."""
+
+
+class FakeCollection(FakeResource):
+ """A fake resource for a collection."""
+
+ def __init__(
+ self,
+ application,
+ resource_type,
+ values=None,
+ name=None,
+ child_resource_type=None,
+ ):
+ super(FakeCollection, self).__init__(
+ application, resource_type, values
+ )
+ self.__dict__.update(
+ {"_name": name, "_child_resource_type": child_resource_type}
+ )
+
+ def __iter__(self):
+ """Iterate items if this resource has an C{entries} attribute."""
+ entries = self._values.get("entries", ())
+ for entry in entries:
+ yield self._create_resource(
+ self._child_resource_type, self._name, entry
+ )
+
+ def __getitem__(self, key):
+ """Look up a slice, or a subordinate resource by index.
+
+ @param key: An individual object key or a C{slice}.
+ @raises IndexError: Raised if an invalid key is provided.
+ @return: A L{FakeResource} instance for the entry matching C{key}.
+ """
+ entries = list(self)
+ if isinstance(key, slice):
+ start = key.start or 0
+ stop = key.stop
+ if start < 0:
+ raise ValueError(
+ "Collection slices must have a nonnegative " "start point."
+ )
+ if stop < 0:
+ raise ValueError(
+ "Collection slices must have a definite, "
+ "nonnegative end point."
+ )
+ return entries.__getitem__(key)
+ elif isinstance(key, int):
+ return entries.__getitem__(key)
+ else:
+ raise IndexError("Do not support index lookups yet.")
diff --git a/src/launchpadlib/testing/resources.py b/src/launchpadlib/testing/resources.py
new file mode 100644
index 0000000..27f5574
--- /dev/null
+++ b/src/launchpadlib/testing/resources.py
@@ -0,0 +1,55 @@
+# Copyright 2008, 2011 Canonical Ltd.
+
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# launchpadlib is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with launchpadlib. If not, see
+# <http://www.gnu.org/licenses/>.
+
+"""Resources for use in unit tests with the C{testresources} module."""
+
+from pkg_resources import resource_string
+
+from testresources import TestResource
+
+from wadllib.application import Application
+
+from launchpadlib.testing.launchpad import FakeLaunchpad
+
+
+launchpad_testing_application = None
+
+
+def get_application():
+ """Get or create a WADL application for testing Launchpad.
+
+ Note that this uses the Launchpad v1.0 WADL bundled with launchpadlib for
+ testing purposes. For your own application, you might want to construct
+ an L{Application} object directly, giving it your own WADL.
+ """
+ global launchpad_testing_application
+ if launchpad_testing_application is None:
+ markup_url = "https://api.launchpad.net/1.0/"
+ markup = resource_string("launchpadlib.testing", "launchpad-wadl.xml")
+ launchpad_testing_application = Application(markup_url, markup)
+ return launchpad_testing_application
+
+
+class FakeLaunchpadResource(TestResource):
+ def make(self, dependency_resources):
+ return FakeLaunchpad(
+ application=Application(
+ "https://api.example.com/testing/",
+ resource_string("launchpadlib.testing", "testing-wadl.xml"),
+ )
+ )
diff --git a/src/launchpadlib/testing/testing-wadl.xml b/src/launchpadlib/testing/testing-wadl.xml
new file mode 100644
index 0000000..cc33f88
--- /dev/null
+++ b/src/launchpadlib/testing/testing-wadl.xml
@@ -0,0 +1,346 @@
+<?xml version="1.0"?>
+<!DOCTYPE application [
+ <!ENTITY nbsp "\&#160;">
+]>
+<wadl:application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://research.sun.com/wadl/2006/10"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:wadl="http://research.sun.com/wadl/2006/10"
+ xsi:schemaLocation="http://research.sun.com/wadl/2006/10/wadl.xsd">
+
+
+ <wadl:resources base="https://api.example.com/testing/">
+ <wadl:resource path="" type="#service-root"/>
+ </wadl:resources>
+
+ <!--A "service root" resource responds to GET.-->
+ <wadl:resource_type id="service-root">
+ <wadl:method name="GET" id="service-root-get">
+ <wadl:response>
+ <wadl:representation href="#service-root-json"/>
+ <wadl:representation mediaType="application/vnd.sun.wadl+xml" id="service-root-wadl"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json" id="service-root-json">
+ <wadl:param style="plain"
+ path="$['branches_collection_link']"
+ name="branches_collection_link">
+ <wadl:link resource_type="https://api.example.com/testing/#branches"/>
+ </wadl:param>
+
+ <wadl:param style="plain"
+ path="$['bugs_collection_link']"
+ name="bugs_collection_link">
+ <wadl:link resource_type="https://api.example.com/testing/#bugs"/>
+ </wadl:param>
+
+ <wadl:param style="plain" path="$['me_link']"
+ name="me_link">
+ <wadl:link resource_type="https://api.example.com/testing/#person"/>
+ </wadl:param>
+ </wadl:representation>
+
+
+ <wadl:resource_type id="person">
+ <wadl:method name="GET" id="person-get">
+ <wadl:response>
+ <wadl:representation
+ href="https://api.example.com/testing/#person-full"/>
+ <wadl:representation
+ mediaType="application/xhtml+xml" id="person-xhtml"/>
+ <wadl:representation
+ mediaType="application/vnd.sun.wadl+xml"
+ id="person-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="person-put">
+ <wadl:request>
+ <wadl:representation
+ href="https://api.example.com/testing/#person-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="person-patch">
+ <wadl:request>
+ <wadl:representation
+ href="https://api.example.com/testing/#person-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method id="person-getBranches" name="GET">
+ <wadl:request>
+ <wadl:param style="query" name="ws.op"
+ required="true" fixed="getBranches"/>
+ <wadl:param style="query" required="false"
+ type="xsd:dateTime"
+ name="modified_since">
+ </wadl:param>
+ <wadl:param style="query" required="false"
+ name="status">
+ </wadl:param>
+ </wadl:request>
+ <wadl:response>
+ <wadl:representation href="https://api.example.com/testing/#branch-page"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method id="person-getPPAByName" name="GET">
+ <wadl:request>
+ <wadl:param style="query" name="ws.op"
+ required="true" fixed="getPPAByName"/>
+ <wadl:param style="query" required="true"
+ name="name">
+ </wadl:param>
+ </wadl:request>
+ <wadl:response>
+ <wadl:representation href="https://api.example.com/testing/#archive-full"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json"
+ id="person-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:link resource_type="https://api.example.com/testing/#person"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link"
+ path="$['web_link']">
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ </wadl:param>
+ <wadl:param style="plain" required="true"
+ path="$['date_created']"
+ type="xsd:dateTime" name="date_created">
+ </wadl:param>
+
+ <wadl:param style="plain" required="true"
+ path="$['display_name']"
+ name="display_name">
+ </wadl:param>
+
+ <wadl:param style="plain" required="true"
+ path="$['name']" name="name">
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:resource_type id="branch">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+ A Bazaar branch.
+ </wadl:doc>
+ <wadl:method name="GET" id="branch-get">
+ <wadl:response>
+ <wadl:representation
+ href="https://api.example.com/testing/#branch-full"/>
+ <wadl:representation
+ mediaType="application/xhtml+xml" id="branch-xhtml"/>
+ <wadl:representation
+ mediaType="application/vnd.sun.wadl+xml"
+ id="branch-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="branch-put">
+ <wadl:request>
+ <wadl:representation
+ href="https://api.example.com/testing/#branch-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="branch-patch">
+ <wadl:request>
+ <wadl:representation
+ href="https://api.example.com/testing/#branch-diff"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="DELETE" id="branch-delete"/>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json"
+ id="branch-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:link resource_type="https://api.example.com/testing/#branch"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link"
+ path="$['web_link']">
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ </wadl:param>
+ <wadl:param style="plain" required="true"
+ path="$['bzr_identity']"
+ name="bzr_identity">
+ </wadl:param>
+ <wadl:param style="plain" required="true"
+ path="$['unique_name']" name="unique_name">
+ </wadl:param>
+ <wadl:param style="plain" required="true"
+ path="$['name']" name="name">
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:resource_type id="branches">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+ Interface representing the set of branches.
+ </wadl:doc>
+ <wadl:method name="GET" id="branches-get">
+ <wadl:response>
+ <wadl:representation
+ href="https://api.example.com/testing/#branch-page"/>
+ <wadl:representation
+ mediaType="application/vnd.sun.wadl+xml"
+ id="branches-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method id="branches-getByUniqueName" name="GET">
+ <wadl:request>
+ <wadl:param style="query" name="ws.op"
+ required="true"
+ fixed="getByUniqueName">
+ </wadl:param>
+ <wadl:param style="query" required="true"
+ name="unique_name">
+ </wadl:param>
+ </wadl:request>
+ <wadl:response>
+ <wadl:representation
+ href="https://api.example.com/testing/#branch-full"/>
+ </wadl:response>
+ </wadl:method>
+
+ </wadl:resource_type>
+
+ <wadl:resource_type id="branch-page-resource">
+ <wadl:method name="GET" id="branch-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#branch-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json"
+ id="branch-page">
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="total_size"
+ path="$['total_size']" required="true"/>
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#branch-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#branch-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.example.com/testing/#branch"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:resource_type id="bugs">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+ Application root for malone.
+ </wadl:doc>
+ <wadl:method name="GET" id="bugs-get">
+ <wadl:response>
+ <wadl:representation
+ href="https://api.example.com/testing/#bug-page"/>
+ <wadl:representation
+ mediaType="application/vnd.sun.wadl+xml" id="bugs-wadl"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:resource_type id="bug-page-resource">
+ <wadl:method name="GET" id="bug-page-resource-get">
+ <wadl:response>
+ <wadl:representation href="#bug-page"/>
+ </wadl:response>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json"
+ id="bug-page">
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="total_size"
+ path="$['total_size']" required="true"/>
+ <wadl:param style="plain" name="start" path="$['start']" required="true"/>
+ <wadl:param style="plain" name="next_collection_link" path="$['next_collection_link']">
+ <wadl:link resource_type="#bug-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" name="prev_collection_link" path="$['prev_collection_link']">
+ <wadl:link resource_type="#bug-page-resource"/>
+ </wadl:param>
+ <wadl:param style="plain" name="entries" path="$['entries']" required="true"/>
+ <wadl:param style="plain" name="entry_links" path="$['entries'][*]['self_link']">
+ <wadl:link resource_type="https://api.example.com/testing/#bug"/>
+ </wadl:param>
+ </wadl:representation>
+
+ <wadl:resource_type id="bug">
+ <wadl:doc xmlns="http://www.w3.org/1999/xhtml">
+ The core bug entry.
+ </wadl:doc>
+ <wadl:method name="GET" id="bug-get">
+ <wadl:response>
+ <wadl:representation
+ href="https://api.example.com/testing/#bug-full"/>
+ <wadl:representation
+ mediaType="application/xhtml+xml" id="bug-xhtml"/>
+ <wadl:representation
+ mediaType="application/vnd.sun.wadl+xml" id="bug-wadl"/>
+ </wadl:response>
+ </wadl:method>
+
+ <wadl:method name="PUT" id="bug-put">
+ <wadl:request>
+ <wadl:representation
+ href="https://api.example.com/testing/#bug-full"/>
+ </wadl:request>
+ </wadl:method>
+
+ <wadl:method name="PATCH" id="bug-patch">
+ <wadl:request>
+ <wadl:representation
+ href="https://api.example.com/testing/#bug-diff"/>
+ </wadl:request>
+ </wadl:method>
+ </wadl:resource_type>
+
+ <wadl:representation mediaType="application/json"
+ id="bug-full">
+ <wadl:param style="plain" name="self_link" path="$['self_link']">
+ <wadl:link resource_type="https://api.example.com/testing/#bug"/>
+ </wadl:param>
+ <wadl:param style="plain" name="web_link"
+ path="$['web_link']">
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="resource_type_link" path="$['resource_type_link']">
+ <wadl:link/>
+ </wadl:param>
+ <wadl:param style="plain" name="http_etag" path="$['http_etag']">
+ </wadl:param>
+ <wadl:param style="plain" required="true"
+ path="$['id']" name="id">
+ </wadl:param>
+ <wadl:param style="plain" required="true"
+ path="$['title']" name="title">
+ </wadl:param>
+ </wadl:representation>
+
+</wadl:application>
diff --git a/src/launchpadlib/testing/tests/__init__.py b/src/launchpadlib/testing/tests/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/launchpadlib/testing/tests/__init__.py
diff --git a/src/launchpadlib/testing/tests/test_launchpad.py b/src/launchpadlib/testing/tests/test_launchpad.py
new file mode 100644
index 0000000..c118e17
--- /dev/null
+++ b/src/launchpadlib/testing/tests/test_launchpad.py
@@ -0,0 +1,422 @@
+# Copyright 2008 Canonical Ltd.
+
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# launchpadlib is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with launchpadlib. If not, see
+# <http://www.gnu.org/licenses/>.
+
+from datetime import datetime
+
+from testresources import ResourcedTestCase
+
+from launchpadlib.testing.launchpad import (
+ FakeLaunchpad,
+ FakeResource,
+ FakeRoot,
+ IntegrityError,
+)
+from launchpadlib.testing.resources import (
+ FakeLaunchpadResource,
+ get_application,
+)
+
+
+class FakeRootTest(ResourcedTestCase):
+ def test_create_root_resource(self):
+ root_resource = FakeRoot(get_application())
+ self.assertTrue(isinstance(root_resource, FakeResource))
+
+
+class FakeResourceTest(ResourcedTestCase):
+
+ resources = [("launchpad", FakeLaunchpadResource())]
+
+ def test_repr(self):
+ """A custom C{__repr__} is provided for L{FakeResource}s."""
+ branches = dict(total_size="test-branch")
+ self.launchpad.me = dict(getBranches=lambda statuses: branches)
+ branches = self.launchpad.me.getBranches([])
+ obj_id = hex(id(branches))
+ self.assertEqual(
+ "<FakeResource branch-page-resource object at %s>" % obj_id,
+ repr(branches),
+ )
+
+ def test_repr_with_name(self):
+ """
+ If the fake has a C{name} property it's included in the repr string to
+ make it easier to figure out what it is.
+ """
+ self.launchpad.me = dict(name="foo")
+ person = self.launchpad.me
+ self.assertEqual(
+ "<FakeEntry person foo at %s>" % hex(id(person)), repr(person)
+ )
+
+ def test_repr_with_id(self):
+ """
+ If the fake has an C{id} property it's included in the repr string to
+ make it easier to figure out what it is.
+ """
+ bug = dict(id="1", title="Bug #1")
+ self.launchpad.bugs = dict(entries=[bug])
+ [bug] = list(self.launchpad.bugs)
+ self.assertEqual(
+ "<FakeResource bug 1 at %s>" % hex(id(bug)), repr(bug)
+ )
+
+
+class FakeLaunchpadTest(ResourcedTestCase):
+
+ resources = [("launchpad", FakeLaunchpadResource())]
+
+ def test_wb_instantiate_without_application(self):
+ """
+ The builtin WADL definition is used if the C{application} is not
+ provided during instantiation.
+ """
+ credentials = object()
+ launchpad = FakeLaunchpad(credentials)
+ self.assertEqual(credentials, launchpad.credentials)
+ self.assertEqual(get_application(), launchpad._application)
+
+ def test_instantiate_with_everything(self):
+ """
+ L{FakeLaunchpad} takes the same parameters as L{Launchpad} during
+ instantiation, with the addition of an C{application} parameter. The
+ optional parameters are discarded when the object is instantiated.
+ """
+ credentials = object()
+ launchpad = FakeLaunchpad(
+ credentials,
+ service_root=None,
+ cache=None,
+ timeout=None,
+ proxy_info=None,
+ application=get_application(),
+ )
+ self.assertEqual(credentials, launchpad.credentials)
+
+ def test_instantiate_with_credentials(self):
+ """A L{FakeLaunchpad} can be instantiated with credentials."""
+ credentials = object()
+ launchpad = FakeLaunchpad(credentials, application=get_application())
+ self.assertEqual(credentials, launchpad.credentials)
+
+ def test_instantiate_without_credentials(self):
+ """
+ A L{FakeLaunchpad} instantiated without credentials has its
+ C{credentials} attribute set to C{None}.
+ """
+ self.assertIsNone(self.launchpad.credentials)
+
+ def test_set_undefined_property(self):
+ """
+ An L{IntegrityError} is raised if an attribute is set on a
+ L{FakeLaunchpad} instance that isn't present in the WADL definition.
+ """
+ self.assertRaises(
+ IntegrityError, setattr, self.launchpad, "foo", "bar"
+ )
+
+ def test_get_undefined_resource(self):
+ """
+ An L{AttributeError} is raised if an attribute is accessed on a
+ L{FakeLaunchpad} instance that doesn't exist.
+ """
+ self.launchpad.me = dict(display_name="Foo")
+ self.assertRaises(AttributeError, getattr, self.launchpad.me, "name")
+
+ def test_string_property(self):
+ """
+ Sample data can be created by setting L{FakeLaunchpad} attributes with
+ dicts that represent objects. Plain string values can be represented
+ as C{str} values.
+ """
+ self.launchpad.me = dict(name="foo")
+ self.assertEqual("foo", self.launchpad.me.name)
+
+ def test_unicode_property(self):
+ """
+ Sample data can be created by setting L{FakeLaunchpad} attributes with
+ dicts that represent objects. Plain string values can be represented
+ as C{unicode} strings.
+ """
+ self.launchpad.me = dict(name=u"foo")
+ self.assertEqual(u"foo", self.launchpad.me.name)
+
+ def test_datetime_property(self):
+ """
+ Attributes that represent dates are set with C{datetime} instances.
+ """
+ now = datetime.utcnow()
+ self.launchpad.me = dict(date_created=now)
+ self.assertEqual(now, self.launchpad.me.date_created)
+
+ def test_invalid_datetime_property(self):
+ """
+ Only C{datetime} values can be set on L{FakeLaunchpad} instances for
+ attributes that represent dates.
+ """
+ self.assertRaises(
+ IntegrityError,
+ setattr,
+ self.launchpad,
+ "me",
+ dict(date_created="now"),
+ )
+
+ def test_multiple_string_properties(self):
+ """
+ Sample data can be created by setting L{FakeLaunchpad} attributes with
+ dicts that represent objects.
+ """
+ self.launchpad.me = dict(name="foo", display_name="Foo")
+ self.assertEqual("foo", self.launchpad.me.name)
+ self.assertEqual("Foo", self.launchpad.me.display_name)
+
+ def test_invalid_property_name(self):
+ """
+ Sample data set on a L{FakeLaunchpad} instance is validated against
+ the WADL definition. If a key is defined on a resource that doesn't
+ match a related parameter, an L{IntegrityError} is raised.
+ """
+ self.assertRaises(
+ IntegrityError, setattr, self.launchpad, "me", dict(foo="bar")
+ )
+
+ def test_invalid_property_value(self):
+ """
+ The types of sample data values set on L{FakeLaunchpad} instances are
+ validated against types defined in the WADL definition.
+ """
+ self.assertRaises(
+ IntegrityError, setattr, self.launchpad, "me", dict(name=102)
+ )
+
+ def test_callable(self):
+ """
+ A callable set on a L{FakeLaunchpad} instance is validated against the
+ WADL definition, to make sure a matching method exists.
+ """
+ branches = dict(total_size="test-branch")
+ self.launchpad.me = dict(getBranches=lambda statuses: branches)
+ self.assertNotEqual(None, self.launchpad.me.getBranches([]))
+
+ def test_invalid_callable_name(self):
+ """
+ An L{IntegrityError} is raised if a method is defined on a resource
+ that doesn't match a method defined in the WADL definition.
+ """
+ self.assertRaises(
+ IntegrityError,
+ setattr,
+ self.launchpad,
+ "me",
+ dict(foo=lambda: None),
+ )
+
+ def test_callable_object_return_type(self):
+ """
+ The result of a fake method is a L{FakeResource}, automatically
+ created from the object used to define the return object.
+ """
+ branches = dict(total_size="8")
+ self.launchpad.me = dict(getBranches=lambda statuses: branches)
+ branches = self.launchpad.me.getBranches([])
+ self.assertTrue(isinstance(branches, FakeResource))
+ self.assertEqual("8", branches.total_size)
+
+ def test_invalid_callable_object_return_type(self):
+ """
+ An L{IntegrityError} is raised if a method returns an invalid result.
+ """
+ branches = dict(total_size=8)
+ self.launchpad.me = dict(getBranches=lambda statuses: branches)
+ self.assertRaises(IntegrityError, self.launchpad.me.getBranches, [])
+
+ def test_collection_property(self):
+ """
+ Sample collections can be set on L{FakeLaunchpad} instances. They are
+ validated the same way other sample data is validated.
+ """
+ branch = dict(name="foo")
+ self.launchpad.branches = dict(getByUniqueName=lambda name: branch)
+ branch = self.launchpad.branches.getByUniqueName("foo")
+ self.assertEqual("foo", branch.name)
+
+ def test_iterate_collection(self):
+ """
+ Data for a sample collection set on a L{FakeLaunchpad} instance can be
+ iterated over if an C{entries} key is defined.
+ """
+ bug = dict(id="1", title="Bug #1")
+ self.launchpad.bugs = dict(entries=[bug])
+ bugs = list(self.launchpad.bugs)
+ self.assertEqual(1, len(bugs))
+ bug = bugs[0]
+ self.assertEqual("1", bug.id)
+ self.assertEqual("Bug #1", bug.title)
+
+ def test_collection_with_invalid_entries(self):
+ """
+ Sample data for each entry in a collection is validated when it's set
+ on a L{FakeLaunchpad} instance.
+ """
+ bug = dict(foo="bar")
+ self.assertRaises(
+ IntegrityError,
+ setattr,
+ self.launchpad,
+ "bugs",
+ dict(entries=[bug]),
+ )
+
+ def test_slice_collection(self):
+ """
+ Data for a sample collection set on a L{FakeLaunchpad} instance can be
+ sliced if an C{entries} key is defined.
+ """
+ bug1 = dict(id="1", title="Bug #1")
+ bug2 = dict(id="2", title="Bug #2")
+ bug3 = dict(id="3", title="Bug #3")
+ self.launchpad.bugs = dict(entries=[bug1, bug2, bug3])
+ bugs = self.launchpad.bugs[1:3]
+ self.assertEqual(2, len(bugs))
+ self.assertEqual("2", bugs[0].id)
+ self.assertEqual("3", bugs[1].id)
+
+ def test_slice_collection_with_negative_start(self):
+ """
+ A C{ValueError} is raised if a negative start value is used when
+ slicing a sample collection set on a L{FakeLaunchpad} instance.
+ """
+ bug1 = dict(id="1", title="Bug #1")
+ bug2 = dict(id="2", title="Bug #2")
+ self.launchpad.bugs = dict(entries=[bug1, bug2])
+ self.assertRaises(ValueError, lambda: self.launchpad.bugs[-1:])
+ self.assertRaises(ValueError, lambda: self.launchpad.bugs[-1:2])
+
+ def test_slice_collection_with_negative_stop(self):
+ """
+ A C{ValueError} is raised if a negative stop value is used when
+ slicing a sample collection set on a L{FakeLaunchpad} instance.
+ """
+ bug1 = dict(id="1", title="Bug #1")
+ bug2 = dict(id="2", title="Bug #2")
+ self.launchpad.bugs = dict(entries=[bug1, bug2])
+ self.assertRaises(ValueError, lambda: self.launchpad.bugs[:-1])
+ self.assertRaises(ValueError, lambda: self.launchpad.bugs[0:-1])
+
+ def test_subscript_operator_out_of_range(self):
+ """
+ An C{IndexError} is raised if an invalid index is used when retrieving
+ data from a sample collection.
+ """
+ bug1 = dict(id="1", title="Bug #1")
+ self.launchpad.bugs = dict(entries=[bug1])
+ self.assertRaises(IndexError, lambda: self.launchpad.bugs[2])
+
+ def test_replace_property(self):
+ """Values already set on fake resource objects can be replaced."""
+ self.launchpad.me = dict(name="foo")
+ person = self.launchpad.me
+ self.assertEqual("foo", person.name)
+ person.name = "bar"
+ self.assertEqual("bar", person.name)
+ self.assertEqual("bar", self.launchpad.me.name)
+
+ def test_replace_method(self):
+ """Methods already set on fake resource objects can be replaced."""
+ branch1 = dict(name="foo", bzr_identity="lp:~user/project/branch1")
+ branch2 = dict(name="foo", bzr_identity="lp:~user/project/branch2")
+ self.launchpad.branches = dict(getByUniqueName=lambda name: branch1)
+ self.launchpad.branches.getByUniqueName = lambda name: branch2
+ branch = self.launchpad.branches.getByUniqueName("foo")
+ self.assertEqual("lp:~user/project/branch2", branch.bzr_identity)
+
+ def test_replace_property_with_invalid_value(self):
+ """Values set on fake resource objects are validated."""
+ self.launchpad.me = dict(name="foo")
+ person = self.launchpad.me
+ self.assertRaises(IntegrityError, setattr, person, "name", 1)
+
+ def test_replace_resource(self):
+ """Resources already set on L{FakeLaunchpad} can be replaced."""
+ self.launchpad.me = dict(name="foo")
+ self.assertEqual("foo", self.launchpad.me.name)
+ self.launchpad.me = dict(name="bar")
+ self.assertEqual("bar", self.launchpad.me.name)
+
+ def test_add_property(self):
+ """Sample data set on a L{FakeLaunchpad} instance can be added to."""
+ self.launchpad.me = dict(name="foo")
+ person = self.launchpad.me
+ person.display_name = "Foo"
+ self.assertEqual("foo", person.name)
+ self.assertEqual("Foo", person.display_name)
+ self.assertEqual("foo", self.launchpad.me.name)
+ self.assertEqual("Foo", self.launchpad.me.display_name)
+
+ def test_add_property_to_empty_object(self):
+ """An empty object can be used when creating sample data."""
+ self.launchpad.me = dict()
+ self.assertRaises(AttributeError, getattr, self.launchpad.me, "name")
+ self.launchpad.me.name = "foo"
+ self.assertEqual("foo", self.launchpad.me.name)
+
+ def test_login(self):
+ """
+ L{FakeLaunchpad.login} ignores all parameters and returns a new
+ instance using the builtin WADL definition.
+ """
+ launchpad = FakeLaunchpad.login("name", "token", "secret")
+ self.assertTrue(isinstance(launchpad, FakeLaunchpad))
+
+ def test_get_token_and_login(self):
+ """
+ L{FakeLaunchpad.get_token_and_login} ignores all parameters and
+ returns a new instance using the builtin WADL definition.
+ """
+ launchpad = FakeLaunchpad.get_token_and_login("name")
+ self.assertTrue(isinstance(launchpad, FakeLaunchpad))
+
+ def test_login_with(self):
+ """
+ L{FakeLaunchpad.login_with} ignores all parameters and returns a new
+ instance using the builtin WADL definition.
+ """
+ launchpad = FakeLaunchpad.login_with("name")
+ self.assertTrue(isinstance(launchpad, FakeLaunchpad))
+
+ def test_lp_save(self):
+ """
+ Sample object have an C{lp_save} method that is a no-op by default.
+ """
+ self.launchpad.me = dict(name="foo")
+ self.assertTrue(self.launchpad.me.lp_save())
+
+ def test_custom_lp_save(self):
+ """A custom C{lp_save} method can be set on a L{FakeResource}."""
+ self.launchpad.me = dict(name="foo", lp_save=lambda: "custom")
+ self.assertEqual("custom", self.launchpad.me.lp_save())
+
+ def test_set_custom_lp_save(self):
+ """
+ A custom C{lp_save} method can be set on a L{FakeResource} after its
+ been created.
+ """
+ self.launchpad.me = dict(name="foo")
+ self.launchpad.me.lp_save = lambda: "custom"
+ self.assertEqual("custom", self.launchpad.me.lp_save())
diff --git a/src/launchpadlib/tests/__init__.py b/src/launchpadlib/tests/__init__.py
new file mode 100644
index 0000000..786a83f
--- /dev/null
+++ b/src/launchpadlib/tests/__init__.py
@@ -0,0 +1,16 @@
+# Copyright 2008 Canonical Ltd.
+
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by the
+# Free Software Foundation, version 3 of the License.
+#
+# launchpadlib is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+# for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+"""Tests for launchpadlib"""
diff --git a/src/launchpadlib/tests/test_credential_store.py b/src/launchpadlib/tests/test_credential_store.py
new file mode 100644
index 0000000..3049fbe
--- /dev/null
+++ b/src/launchpadlib/tests/test_credential_store.py
@@ -0,0 +1,224 @@
+# Copyright 2010-2011 Canonical Ltd.
+
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by the
+# Free Software Foundation, version 3 of the License.
+#
+# launchpadlib is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+# for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+"""Tests for the credential store classes."""
+
+import os
+import tempfile
+import unittest
+
+from base64 import b64decode
+
+if bytes is str:
+ # Python 2
+ unicode_type = unicode # noqa: F821
+else:
+ unicode_type = str
+
+from launchpadlib.testing.helpers import (
+ fake_keyring,
+ InMemoryKeyring,
+)
+
+from launchpadlib.credentials import (
+ AccessToken,
+ Credentials,
+ KeyringCredentialStore,
+ UnencryptedFileCredentialStore,
+)
+
+
+class TestAccessToken(unittest.TestCase):
+ """Tests for the AccessToken class."""
+
+ def test_from_string(self):
+ access_token = AccessToken.from_string(
+ "oauth_token_secret=secret%3Dpassword&oauth_token=lock%26key"
+ )
+ self.assertEqual("lock&key", access_token.key)
+ self.assertEqual("secret=password", access_token.secret)
+ self.assertIsNone(access_token.context)
+
+ def test_from_string_with_context(self):
+ access_token = AccessToken.from_string(
+ "oauth_token_secret=secret%3Dpassword&oauth_token=lock%26key&"
+ "lp.context=firefox"
+ )
+ self.assertEqual("lock&key", access_token.key)
+ self.assertEqual("secret=password", access_token.secret)
+ self.assertEqual("firefox", access_token.context)
+
+
+class CredentialStoreTestCase(unittest.TestCase):
+ def make_credential(self, consumer_key):
+ """Helper method to make a fake credential."""
+ return Credentials(
+ "app name",
+ consumer_secret="consumer_secret:42",
+ access_token=AccessToken(consumer_key, "access_secret:168"),
+ )
+
+
+class TestUnencryptedFileCredentialStore(CredentialStoreTestCase):
+ """Tests for the UnencryptedFileCredentialStore class."""
+
+ def setUp(self):
+ ignore, self.filename = tempfile.mkstemp()
+ self.store = UnencryptedFileCredentialStore(self.filename)
+
+ def tearDown(self):
+ if os.path.exists(self.filename):
+ os.remove(self.filename)
+
+ def test_save_and_load(self):
+ # Make sure you can save and load credentials to a file.
+ credential = self.make_credential("consumer key")
+ self.store.save(credential, "unique key")
+ credential2 = self.store.load("unique key")
+ self.assertEqual(credential.consumer.key, credential2.consumer.key)
+
+ def test_unique_id_doesnt_matter(self):
+ # If a file contains a credential, that credential will be
+ # accessed no matter what unique ID you specify.
+ credential = self.make_credential("consumer key")
+ self.store.save(credential, "some key")
+ credential2 = self.store.load("some other key")
+ self.assertEqual(credential.consumer.key, credential2.consumer.key)
+
+ def test_file_only_contains_one_credential(self):
+ # A credential file may contain only one credential. If you
+ # write two credentials with different unique IDs to the same
+ # file, the first credential will be overwritten with the
+ # second.
+ credential1 = self.make_credential("consumer key")
+ credential2 = self.make_credential("consumer key2")
+ self.store.save(credential1, "unique key 1")
+ self.store.save(credential1, "unique key 2")
+ loaded = self.store.load("unique key 1")
+ self.assertEqual(loaded.consumer.key, credential2.consumer.key)
+
+
+class TestKeyringCredentialStore(CredentialStoreTestCase):
+ """Tests for the KeyringCredentialStore class."""
+
+ def setUp(self):
+ self.keyring = InMemoryKeyring()
+ self.store = KeyringCredentialStore()
+
+ def test_save_and_load(self):
+ # Make sure you can save and load credentials to a keyring.
+ with fake_keyring(self.keyring):
+ credential = self.make_credential("consumer key")
+ self.store.save(credential, "unique key")
+ credential2 = self.store.load("unique key")
+ self.assertEqual(credential.consumer.key, credential2.consumer.key)
+
+ def test_lookup_by_unique_key(self):
+ # Credentials in the keyring are looked up by the unique ID
+ # under which they were stored.
+ with fake_keyring(self.keyring):
+ credential1 = self.make_credential("consumer key1")
+ self.store.save(credential1, "key 1")
+
+ credential2 = self.make_credential("consumer key2")
+ self.store.save(credential2, "key 2")
+
+ loaded1 = self.store.load("key 1")
+ self.assertTrue(loaded1)
+ self.assertEqual(credential1.consumer.key, loaded1.consumer.key)
+
+ loaded2 = self.store.load("key 2")
+ self.assertEqual(credential2.consumer.key, loaded2.consumer.key)
+
+ def test_reused_unique_id_overwrites_old_credential(self):
+ # Writing a credential to the keyring with a given unique ID
+ # will overwrite any credential stored under that ID.
+
+ with fake_keyring(self.keyring):
+ credential1 = self.make_credential("consumer key1")
+ self.store.save(credential1, "the only key")
+
+ credential2 = self.make_credential("consumer key2")
+ self.store.save(credential2, "the only key")
+
+ loaded = self.store.load("the only key")
+ self.assertEqual(credential2.consumer.key, loaded.consumer.key)
+
+ def test_bad_unique_id_returns_none(self):
+ # Trying to load a credential without providing a good unique
+ # ID will get you None.
+ with fake_keyring(self.keyring):
+ self.assertIsNone(self.store.load("no such key"))
+
+ def test_keyring_returns_unicode(self):
+ # Kwallet is reported to sometimes return Unicode, which broke the
+ # credentials parsing. This test ensures a Unicode password is
+ # handled correctly. (See bug lp:877374)
+ class UnicodeInMemoryKeyring(InMemoryKeyring):
+ def get_password(self, service, username):
+ password = super(UnicodeInMemoryKeyring, self).get_password(
+ service, username
+ )
+ if isinstance(password, unicode_type):
+ password = password.encode("utf-8")
+ return password
+
+ self.keyring = UnicodeInMemoryKeyring()
+ with fake_keyring(self.keyring):
+ credential = self.make_credential("consumer key")
+ self.assertTrue(credential)
+ # Shouldn't this test actually use a unicodish key?!
+ self.store.save(credential, "unique key")
+ credential2 = self.store.load("unique key")
+ self.assertTrue(credential2)
+ self.assertEqual(credential.consumer.key, credential2.consumer.key)
+ self.assertEqual(
+ credential.consumer.secret, credential2.consumer.secret
+ )
+
+ def test_nonencoded_key_handled(self):
+ # For backwards compatibility with keys that are not base 64 encoded.
+
+ class UnencodedInMemoryKeyring(InMemoryKeyring):
+ def get_password(self, service, username):
+ pw = super(UnencodedInMemoryKeyring, self).get_password(
+ service, username
+ )
+ return b64decode(pw[5:])
+
+ self.keyring = UnencodedInMemoryKeyring()
+ with fake_keyring(self.keyring):
+ credential = self.make_credential("consumer key")
+ self.store.save(credential, "unique key")
+ credential2 = self.store.load("unique key")
+ self.assertEqual(credential.consumer.key, credential2.consumer.key)
+ self.assertEqual(
+ credential.consumer.secret, credential2.consumer.secret
+ )
+
+ def test_corrupted_key_handled(self):
+ # A corrupted password results in None being returned.
+
+ class CorruptedInMemoryKeyring(InMemoryKeyring):
+ def get_password(self, service, username):
+ return "bad"
+
+ self.keyring = CorruptedInMemoryKeyring()
+ with fake_keyring(self.keyring):
+ credential = self.make_credential("consumer key")
+ self.store.save(credential, "unique key")
+ credential2 = self.store.load("unique key")
+ self.assertIsNone(credential2)
diff --git a/src/launchpadlib/tests/test_http.py b/src/launchpadlib/tests/test_http.py
new file mode 100644
index 0000000..6924e4f
--- /dev/null
+++ b/src/launchpadlib/tests/test_http.py
@@ -0,0 +1,275 @@
+# Copyright 2010 Canonical Ltd.
+
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by the
+# Free Software Foundation, version 3 of the License.
+#
+# launchpadlib is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+# for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+"""Tests for the LaunchpadOAuthAwareHTTP class."""
+
+from collections import deque
+from json import dumps
+import tempfile
+import unittest
+
+try:
+ from json import JSONDecodeError
+except ImportError:
+ JSONDecodeError = ValueError
+
+from launchpadlib.errors import Unauthorized
+from launchpadlib.credentials import UnencryptedFileCredentialStore
+from launchpadlib.launchpad import (
+ Launchpad,
+ LaunchpadOAuthAwareHttp,
+)
+from launchpadlib.testing.helpers import NoNetworkAuthorizationEngine
+
+
+# The simplest WADL that looks like a representation of the service root.
+SIMPLE_WADL = b"""<?xml version="1.0"?>
+<application xmlns="http://research.sun.com/wadl/2006/10">
+ <resources base="http://www.example.com/">
+ <resource path="" type="#service-root"/>
+ </resources>
+
+ <resource_type id="service-root">
+ <method name="GET" id="service-root-get">
+ <response>
+ <representation href="#service-root-json"/>
+ </response>
+ </method>
+ </resource_type>
+
+ <representation id="service-root-json" mediaType="application/json"/>
+</application>
+"""
+
+# The simplest JSON that looks like a representation of the service root.
+SIMPLE_JSON = dumps({}).encode("utf-8")
+
+
+class Response:
+ """A fake HTTP response object."""
+
+ def __init__(self, status, content):
+ self.status = status
+ self.content = content
+
+
+class SimulatedResponsesHttp(LaunchpadOAuthAwareHttp):
+ """Responds to HTTP requests by shifting responses off a stack."""
+
+ def __init__(self, responses, *args):
+ """Constructor.
+
+ :param responses: A list of HttpResponse objects to use
+ in response to requests.
+ """
+ super(SimulatedResponsesHttp, self).__init__(*args)
+ self.sent_responses = []
+ self.unsent_responses = responses
+ self.cache = None
+
+ def _request(self, *args):
+ response = self.unsent_responses.popleft()
+ self.sent_responses.append(response)
+ return self.retry_on_bad_token(response, response.content, *args)
+
+
+class SimulatedResponsesLaunchpad(Launchpad):
+
+ # Every Http object generated by this class will return these
+ # responses, in order.
+ responses = []
+
+ def httpFactory(self, *args):
+ return SimulatedResponsesHttp(
+ deque(self.responses), self, self.authorization_engine, *args
+ )
+
+ @classmethod
+ def credential_store_factory(cls, credential_save_failed):
+ return UnencryptedFileCredentialStore(
+ tempfile.mkstemp()[1], credential_save_failed
+ )
+
+
+class SimulatedResponsesTestCase(unittest.TestCase):
+ """Test cases that give fake responses to launchpad's HTTP requests."""
+
+ def setUp(self):
+ """Clear out the list of simulated responses."""
+ SimulatedResponsesLaunchpad.responses = []
+ self.engine = NoNetworkAuthorizationEngine(
+ "http://api.example.com/", "application name"
+ )
+
+ def launchpad_with_responses(self, *responses):
+ """Use simulated HTTP responses to get a Launchpad object.
+
+ The given Response objects will be sent, in order, in response
+ to launchpadlib's requests.
+
+ :param responses: Some number of Response objects.
+ :return: The Launchpad object, assuming that errors in the
+ simulated requests didn't prevent one from being created.
+ """
+ SimulatedResponsesLaunchpad.responses = responses
+ return SimulatedResponsesLaunchpad.login_with(
+ "application name", authorization_engine=self.engine
+ )
+
+
+class TestAbilityToParseData(SimulatedResponsesTestCase):
+ """Test launchpadlib's ability to handle the sample data.
+
+ To create a Launchpad object, two HTTP requests must succeed and
+ return usable data: the requests for the WADL and JSON
+ representations of the service root. This test shows that the
+ minimal data in SIMPLE_WADL and SIMPLE_JSON is good enough to
+ create a Launchpad object.
+ """
+
+ def test_minimal_data(self):
+ """Make sure that launchpadlib can use the minimal data."""
+ self.launchpad_with_responses(
+ Response(200, SIMPLE_WADL), Response(200, SIMPLE_JSON)
+ )
+
+ def test_bad_wadl(self):
+ """Show that bad WADL causes an exception."""
+ self.assertRaises(
+ SyntaxError,
+ self.launchpad_with_responses,
+ Response(200, b"This is not WADL."),
+ Response(200, SIMPLE_JSON),
+ )
+
+ def test_bad_json(self):
+ """Show that bad JSON causes an exception."""
+ self.assertRaises(
+ JSONDecodeError,
+ self.launchpad_with_responses,
+ Response(200, SIMPLE_WADL),
+ Response(200, b"This is not JSON."),
+ )
+
+
+class TestTokenFailureDuringRequest(SimulatedResponsesTestCase):
+ """Test access token failures during a request.
+
+ launchpadlib makes two HTTP requests on startup, to get the WADL
+ and JSON representations of the service root. If Launchpad
+ receives a 401 error during this process, it will acquire a fresh
+ access token and try again.
+ """
+
+ def test_good_token(self):
+ """If our token is good, we never get another one."""
+ SimulatedResponsesLaunchpad.responses = [
+ Response(200, SIMPLE_WADL),
+ Response(200, SIMPLE_JSON),
+ ]
+
+ self.assertEqual(self.engine.access_tokens_obtained, 0)
+ SimulatedResponsesLaunchpad.login_with(
+ "application name", authorization_engine=self.engine
+ )
+ self.assertEqual(self.engine.access_tokens_obtained, 1)
+
+ def test_bad_token(self):
+ """If our token is bad, we get another one."""
+ SimulatedResponsesLaunchpad.responses = [
+ Response(401, b"Invalid token."),
+ Response(200, SIMPLE_WADL),
+ Response(200, SIMPLE_JSON),
+ ]
+
+ self.assertEqual(self.engine.access_tokens_obtained, 0)
+ SimulatedResponsesLaunchpad.login_with(
+ "application name", authorization_engine=self.engine
+ )
+ self.assertEqual(self.engine.access_tokens_obtained, 2)
+
+ def test_expired_token(self):
+ """If our token is expired, we get another one."""
+
+ SimulatedResponsesLaunchpad.responses = [
+ Response(401, b"Expired token."),
+ Response(200, SIMPLE_WADL),
+ Response(200, SIMPLE_JSON),
+ ]
+
+ self.assertEqual(self.engine.access_tokens_obtained, 0)
+ SimulatedResponsesLaunchpad.login_with(
+ "application name", authorization_engine=self.engine
+ )
+ self.assertEqual(self.engine.access_tokens_obtained, 2)
+
+ def test_unknown_token(self):
+ """If our token is unknown, we get another one."""
+
+ SimulatedResponsesLaunchpad.responses = [
+ Response(401, b"Unknown access token."),
+ Response(200, SIMPLE_WADL),
+ Response(200, SIMPLE_JSON),
+ ]
+
+ self.assertEqual(self.engine.access_tokens_obtained, 0)
+ SimulatedResponsesLaunchpad.login_with(
+ "application name", authorization_engine=self.engine
+ )
+ self.assertEqual(self.engine.access_tokens_obtained, 2)
+
+ def test_delayed_error(self):
+ """We get another token no matter when the error happens."""
+ SimulatedResponsesLaunchpad.responses = [
+ Response(200, SIMPLE_WADL),
+ Response(401, b"Expired token."),
+ Response(200, SIMPLE_JSON),
+ ]
+
+ self.assertEqual(self.engine.access_tokens_obtained, 0)
+ SimulatedResponsesLaunchpad.login_with(
+ "application name", authorization_engine=self.engine
+ )
+ self.assertEqual(self.engine.access_tokens_obtained, 2)
+
+ def test_many_errors(self):
+ """We'll keep getting new tokens as long as tokens are the problem."""
+ SimulatedResponsesLaunchpad.responses = [
+ Response(401, b"Invalid token."),
+ Response(200, SIMPLE_WADL),
+ Response(401, b"Expired token."),
+ Response(401, b"Invalid token."),
+ Response(200, SIMPLE_JSON),
+ ]
+ self.assertEqual(self.engine.access_tokens_obtained, 0)
+ SimulatedResponsesLaunchpad.login_with(
+ "application name", authorization_engine=self.engine
+ )
+ self.assertEqual(self.engine.access_tokens_obtained, 4)
+
+ def test_other_unauthorized(self):
+ """If the token is not at fault, a 401 error raises an exception."""
+
+ SimulatedResponsesLaunchpad.responses = [
+ Response(401, b"Some other error.")
+ ]
+
+ self.assertRaises(
+ Unauthorized,
+ SimulatedResponsesLaunchpad.login_with,
+ "application name",
+ authorization_engine=self.engine,
+ )
diff --git a/src/launchpadlib/tests/test_launchpad.py b/src/launchpadlib/tests/test_launchpad.py
new file mode 100644
index 0000000..f0d2bd5
--- /dev/null
+++ b/src/launchpadlib/tests/test_launchpad.py
@@ -0,0 +1,893 @@
+# Copyright 2009, 2011 Canonical Ltd.
+
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by the
+# Free Software Foundation, version 3 of the License.
+#
+# launchpadlib is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+# for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+"""Tests for the Launchpad class."""
+
+__metaclass__ = type
+
+from contextlib import contextmanager
+import os
+import shutil
+import socket
+import stat
+import tempfile
+import unittest
+
+try:
+ from unittest.mock import patch
+except ImportError:
+ from mock import patch
+import warnings
+
+from lazr.restfulclient.resource import ServiceRoot
+
+from launchpadlib.credentials import (
+ AccessToken,
+ Credentials,
+)
+
+from launchpadlib import uris
+import launchpadlib.launchpad
+from launchpadlib.launchpad import Launchpad
+from launchpadlib.credentials import UnencryptedFileCredentialStore
+from launchpadlib.testing.helpers import (
+ assert_keyring_not_imported,
+ BadSaveKeyring,
+ fake_keyring,
+ FauxSocketModule,
+ InMemoryKeyring,
+ NoNetworkAuthorizationEngine,
+ NoNetworkLaunchpad,
+)
+from launchpadlib.credentials import (
+ KeyringCredentialStore,
+)
+
+# A stub service root for use in tests
+SERVICE_ROOT = "http://api.example.com/"
+
+
+class TestResourceTypeClasses(unittest.TestCase):
+ """launchpadlib must know about restfulclient's resource types."""
+
+ def test_resource_types(self):
+ # Make sure that Launchpad knows about every special resource
+ # class defined by lazr.restfulclient.
+ for name, cls in ServiceRoot.RESOURCE_TYPE_CLASSES.items():
+ self.assertEqual(Launchpad.RESOURCE_TYPE_CLASSES[name], cls)
+
+
+class TestNameLookups(unittest.TestCase):
+ """Test the utility functions in the 'uris' module."""
+
+ def setUp(self):
+ self.aliases = sorted(
+ [
+ "production",
+ "qastaging",
+ "staging",
+ "dogfood",
+ "dev",
+ "test_dev",
+ "edge",
+ ]
+ )
+
+ @contextmanager
+ def edge_deprecation_error(self):
+ # Run some code and assert that a deprecation error was issued
+ # due to attempted access to the edge server.
+ with warnings.catch_warnings(record=True) as caught:
+ warnings.simplefilter("always")
+ yield
+
+ self.assertEqual(len(caught), 1)
+ (warning,) = caught
+ self.assertTrue(issubclass(warning.category, DeprecationWarning))
+ self.assertIn("no longer exists", str(warning))
+
+ def test_short_names(self):
+ # Ensure the short service names are all supported.
+ self.assertEqual(sorted(uris.service_roots.keys()), self.aliases)
+ self.assertEqual(sorted(uris.web_roots.keys()), self.aliases)
+
+ def test_edge_service_root_is_production(self):
+ # The edge server no longer exists, so if the client wants
+ # edge we give them production.
+ with self.edge_deprecation_error():
+ self.assertEqual(
+ uris.lookup_service_root("edge"),
+ uris.lookup_service_root("production"),
+ )
+
+ def test_edge_web_root_is_production(self):
+ # The edge server no longer exists, so if the client wants
+ # edge we give them production.
+ with self.edge_deprecation_error():
+ self.assertEqual(
+ uris.lookup_web_root("edge"),
+ uris.lookup_web_root("production"),
+ )
+
+ def test_edge_service_root_url_becomes_production(self):
+ with self.edge_deprecation_error():
+ self.assertEqual(
+ uris.lookup_service_root(uris.EDGE_SERVICE_ROOT),
+ uris.lookup_service_root("production"),
+ )
+
+ def test_edge_web_root_url_becomes_production(self):
+ with self.edge_deprecation_error():
+ self.assertEqual(
+ uris.lookup_web_root(uris.EDGE_WEB_ROOT),
+ uris.lookup_web_root("production"),
+ )
+
+ def test_top_level_edge_constant_becomes_production(self):
+ with self.edge_deprecation_error():
+ self.assertEqual(
+ uris.lookup_service_root(uris.EDGE_SERVICE_ROOT),
+ uris.lookup_service_root("production"),
+ )
+
+ def test_edge_server_equivalent_string_becomes_production(self):
+ with self.edge_deprecation_error():
+ self.assertEqual(
+ uris.lookup_service_root("https://api.edge.launchpad.net/"),
+ uris.lookup_service_root("production"),
+ )
+
+ def test_edge_web_server_equivalent_string_becomes_production(self):
+ with self.edge_deprecation_error():
+ self.assertEqual(
+ uris.lookup_web_root("https://edge.launchpad.net/"),
+ uris.lookup_web_root("production"),
+ )
+
+ def test_lookups(self):
+ """Ensure that short service names turn into long service names."""
+
+ # If the service name is a known alias, lookup methods convert
+ # it to a URL.
+ with self.edge_deprecation_error():
+ for alias in self.aliases:
+ self.assertEqual(
+ uris.lookup_service_root(alias), uris.service_roots[alias]
+ )
+
+ with self.edge_deprecation_error():
+ for alias in self.aliases:
+ self.assertEqual(
+ uris.lookup_web_root(alias), uris.web_roots[alias]
+ )
+
+ # If the service name is a valid URL, lookup methods let it
+ # through.
+ other_root = "http://some-other-server.com"
+ self.assertEqual(uris.lookup_service_root(other_root), other_root)
+ self.assertEqual(uris.lookup_web_root(other_root), other_root)
+
+ # Otherwise, lookup methods raise an exception.
+ not_a_url = "not-a-url"
+ self.assertRaises(ValueError, uris.lookup_service_root, not_a_url)
+ self.assertRaises(ValueError, uris.lookup_web_root, not_a_url)
+
+
+class TestServiceNameWithEmbeddedVersion(unittest.TestCase):
+ """Reject service roots that include the version at the end of the URL.
+
+ If the service root is "http://api.launchpad.net/beta/" and the
+ version is "beta", the launchpadlib constructor will raise an
+ exception.
+
+ This happens with scripts that were written against old versions
+ of launchpadlib. The alternative is to try to silently fix it (the
+ fix will eventually break as new versions of the web service are
+ released) or to go ahead and make a request to
+ http://api.launchpad.net/beta/beta/, and cause an unhelpful 404
+ error.
+ """
+
+ def test_service_name_with_embedded_version(self):
+ # Basic test. If there were no exception raised here,
+ # launchpadlib would make a request to
+ # /version-foo/version-foo.
+ version = "version-foo"
+ root = uris.service_roots["staging"] + version
+ try:
+ Launchpad(None, None, None, service_root=root, version=version)
+ except ValueError as e:
+ self.assertTrue(
+ str(e).startswith(
+ "It looks like you're using a service root that "
+ "incorporates the name of the web service version "
+ '("version-foo")'
+ )
+ )
+ else:
+ raise AssertionError("Expected a ValueError that was not thrown!")
+
+ # Make sure the problematic URL is caught even if it has a
+ # slash on the end.
+ root += "/"
+ self.assertRaises(
+ ValueError,
+ Launchpad,
+ None,
+ None,
+ None,
+ service_root=root,
+ version=version,
+ )
+
+ # Test that the default version has the same problem
+ # when no explicit version is specified
+ default_version = NoNetworkLaunchpad.DEFAULT_VERSION
+ root = uris.service_roots["staging"] + default_version + "/"
+ self.assertRaises(
+ ValueError, Launchpad, None, None, None, service_root=root
+ )
+
+
+class TestRequestTokenAuthorizationEngine(unittest.TestCase):
+ """Tests for the RequestTokenAuthorizationEngine class."""
+
+ def test_app_must_be_identified(self):
+ self.assertRaises(
+ ValueError, NoNetworkAuthorizationEngine, SERVICE_ROOT
+ )
+
+ def test_application_name_identifies_app(self):
+ NoNetworkAuthorizationEngine(SERVICE_ROOT, application_name="name")
+
+ def test_consumer_name_identifies_app(self):
+ NoNetworkAuthorizationEngine(SERVICE_ROOT, consumer_name="name")
+
+ def test_conflicting_app_identification(self):
+ # You can't specify both application_name and consumer_name.
+ self.assertRaises(
+ ValueError,
+ NoNetworkAuthorizationEngine,
+ SERVICE_ROOT,
+ application_name="name1",
+ consumer_name="name2",
+ )
+
+ # This holds true even if you specify the same value for
+ # both. They're not the same thing.
+ self.assertRaises(
+ ValueError,
+ NoNetworkAuthorizationEngine,
+ SERVICE_ROOT,
+ application_name="name",
+ consumer_name="name",
+ )
+
+
+class TestLaunchpadLoginWithCredentialsFile(unittest.TestCase):
+ """Tests for Launchpad.login_with() with a credentials file."""
+
+ def test_filename(self):
+ ignore, filename = tempfile.mkstemp()
+ launchpad = NoNetworkLaunchpad.login_with(
+ application_name="not important", credentials_file=filename
+ )
+
+ # The credentials are stored unencrypted in the file you
+ # specify.
+ credentials = Credentials.load_from_path(filename)
+ self.assertEqual(
+ credentials.consumer.key, launchpad.credentials.consumer.key
+ )
+ os.remove(filename)
+
+ def test_cannot_specify_both_filename_and_store(self):
+ ignore, filename = tempfile.mkstemp()
+ store = KeyringCredentialStore()
+ self.assertRaises(
+ ValueError,
+ NoNetworkLaunchpad.login_with,
+ application_name="not important",
+ credentials_file=filename,
+ credential_store=store,
+ )
+ os.remove(filename)
+
+
+class TestLaunchpadLoginWithCredentialsFileFromEnvVariable(unittest.TestCase):
+ # Tests for Launchpad.login_with() with a credentials file from
+ # LP_CREDENTIALS_FILE environment variable.
+
+ def test_filename(self):
+ ignore, filename = tempfile.mkstemp()
+ os.environ["LP_CREDENTIALS_FILE"] = filename
+
+ launchpad = NoNetworkLaunchpad.login_with(
+ application_name="not important"
+ )
+
+ self.assertIsInstance(
+ launchpad.credential_store, UnencryptedFileCredentialStore
+ )
+
+ self.assertEqual(launchpad.credential_store.filename, filename)
+
+ os.unsetenv("LP_CREDENTIALS_FILE") # does not update os.environ array
+ del os.environ["LP_CREDENTIALS_FILE"]
+ self.assertIsNone(os.environ.get("LP_CREDENTIALS_FILE"))
+
+ os.remove(filename)
+
+
+class KeyringTest(unittest.TestCase):
+ """Base class for tests that use the keyring."""
+
+ def setUp(self):
+ # The real keyring package should never be imported during tests.
+ assert_keyring_not_imported()
+ # For these tests we want to use a sample keyring implementation
+ # that only stores data in memory.
+ launchpadlib.credentials.keyring = InMemoryKeyring()
+
+ def tearDown(self):
+ # Remove the fake keyring module we injected during setUp.
+ del launchpadlib.credentials.keyring
+
+
+class TestLaunchpadLoginWith(KeyringTest):
+ """Tests for Launchpad.login_with()."""
+
+ def setUp(self):
+ super(TestLaunchpadLoginWith, self).setUp()
+ self.temp_dir = tempfile.mkdtemp()
+
+ def tearDown(self):
+ super(TestLaunchpadLoginWith, self).tearDown()
+ shutil.rmtree(self.temp_dir)
+
+ def test_dirs_created(self):
+ # The path we pass into login_with() is the directory where
+ # cache for all service roots are stored.
+ launchpadlib_dir = os.path.join(self.temp_dir, "launchpadlib")
+ NoNetworkLaunchpad.login_with(
+ "not important",
+ service_root=SERVICE_ROOT,
+ launchpadlib_dir=launchpadlib_dir,
+ )
+ # The 'launchpadlib' dir got created.
+ self.assertTrue(os.path.isdir(launchpadlib_dir))
+ # A directory for the passed in service root was created.
+ service_path = os.path.join(launchpadlib_dir, "api.example.com")
+ self.assertTrue(os.path.isdir(service_path))
+ # Inside the service root directory, there is a 'cache'
+ # directory.
+ self.assertTrue(os.path.isdir(os.path.join(service_path, "cache")))
+
+ # In older versions there was also a 'credentials' directory,
+ # but no longer.
+ credentials_path = os.path.join(service_path, "credentials")
+ self.assertFalse(os.path.isdir(credentials_path))
+
+ def test_dirs_created_are_changed_to_secure(self):
+ launchpadlib_dir = os.path.join(self.temp_dir, "launchpadlib")
+ # Verify a newly created-by-hand directory is insecure
+ os.mkdir(launchpadlib_dir)
+ os.chmod(launchpadlib_dir, 0o755)
+ self.assertTrue(os.path.isdir(launchpadlib_dir))
+ statinfo = os.stat(launchpadlib_dir)
+ mode = stat.S_IMODE(statinfo.st_mode)
+ self.assertNotEqual(mode, stat.S_IWRITE | stat.S_IREAD | stat.S_IEXEC)
+ NoNetworkLaunchpad.login_with(
+ "not important",
+ service_root=SERVICE_ROOT,
+ launchpadlib_dir=launchpadlib_dir,
+ )
+ # Verify the mode has been changed to 0700
+ statinfo = os.stat(launchpadlib_dir)
+ mode = stat.S_IMODE(statinfo.st_mode)
+ self.assertEqual(mode, stat.S_IWRITE | stat.S_IREAD | stat.S_IEXEC)
+
+ def test_dirs_created_are_secure(self):
+ launchpadlib_dir = os.path.join(self.temp_dir, "launchpadlib")
+ NoNetworkLaunchpad.login_with(
+ "not important",
+ service_root=SERVICE_ROOT,
+ launchpadlib_dir=launchpadlib_dir,
+ )
+ self.assertTrue(os.path.isdir(launchpadlib_dir))
+ # Verify the mode is safe
+ statinfo = os.stat(launchpadlib_dir)
+ mode = stat.S_IMODE(statinfo.st_mode)
+ self.assertEqual(mode, stat.S_IWRITE | stat.S_IREAD | stat.S_IEXEC)
+
+ def test_version_is_propagated(self):
+ # Make sure the login_with() method conveys the 'version'
+ # argument all the way to the Launchpad object. The
+ # credentials will be cached to disk.
+ launchpadlib_dir = os.path.join(self.temp_dir, "launchpadlib")
+ launchpad = NoNetworkLaunchpad.login_with(
+ "not important",
+ service_root=SERVICE_ROOT,
+ launchpadlib_dir=launchpadlib_dir,
+ version="foo",
+ )
+ self.assertEqual(launchpad.passed_in_args["version"], "foo")
+
+ # Now execute the same test a second time. This time, the
+ # credentials are loaded from disk and a different code path
+ # is executed. We want to make sure this code path propagates
+ # the 'version' argument.
+ launchpad = NoNetworkLaunchpad.login_with(
+ "not important",
+ service_root=SERVICE_ROOT,
+ launchpadlib_dir=launchpadlib_dir,
+ version="bar",
+ )
+ self.assertEqual(launchpad.passed_in_args["version"], "bar")
+
+ def test_application_name_is_propagated(self):
+ # Create a Launchpad instance for a given application name.
+ # Credentials are stored, but they don't include the
+ # application name, since multiple applications may share a
+ # single system-wide credential.
+ launchpadlib_dir = os.path.join(self.temp_dir, "launchpadlib")
+ launchpad = NoNetworkLaunchpad.login_with(
+ "very important",
+ service_root=SERVICE_ROOT,
+ launchpadlib_dir=launchpadlib_dir,
+ )
+ self.assertEqual(
+ launchpad.credentials.consumer.application_name, "very important"
+ )
+
+ # Now execute the same test a second time. This time, the
+ # credentials are loaded from disk and a different code path
+ # is executed. We want to make sure this code path propagates
+ # the application name, instead of picking an empty one from
+ # disk.
+ launchpad = NoNetworkLaunchpad.login_with(
+ "very important",
+ service_root=SERVICE_ROOT,
+ launchpadlib_dir=launchpadlib_dir,
+ )
+ self.assertEqual(
+ launchpad.credentials.consumer.application_name, "very important"
+ )
+
+ def test_authorization_engine_is_propagated(self):
+ # You can pass in a custom authorization engine, which will be
+ # used to get a request token and exchange it for an access
+ # token.
+ engine = NoNetworkAuthorizationEngine(SERVICE_ROOT, "application name")
+ NoNetworkLaunchpad.login_with(authorization_engine=engine)
+ self.assertEqual(engine.request_tokens_obtained, 1)
+ self.assertEqual(engine.access_tokens_obtained, 1)
+
+ def test_login_with_must_identify_application(self):
+ # If you call login_with without identifying your application
+ # you'll get an error.
+ self.assertRaises(ValueError, NoNetworkLaunchpad.login_with)
+
+ def test_application_name_identifies_app(self):
+ # If you pass in application_name, that's good enough to identify
+ # your application.
+ NoNetworkLaunchpad.login_with(application_name="name")
+
+ def test_consumer_name_identifies_app(self):
+ # If you pass in consumer_name, that's good enough to identify
+ # your application.
+ NoNetworkLaunchpad.login_with(consumer_name="name")
+
+ def test_inconsistent_application_name_rejected(self):
+ """Catch an attempt to specify inconsistent application_names."""
+ engine = NoNetworkAuthorizationEngine(
+ SERVICE_ROOT, "application name1"
+ )
+ self.assertRaises(
+ ValueError,
+ NoNetworkLaunchpad.login_with,
+ "application name2",
+ authorization_engine=engine,
+ )
+
+ def test_inconsistent_consumer_name_rejected(self):
+ """Catch an attempt to specify inconsistent application_names."""
+ engine = NoNetworkAuthorizationEngine(
+ SERVICE_ROOT, None, consumer_name="consumer_name1"
+ )
+
+ self.assertRaises(
+ ValueError,
+ NoNetworkLaunchpad.login_with,
+ "consumer_name2",
+ authorization_engine=engine,
+ )
+
+ def test_inconsistent_allow_access_levels_rejected(self):
+ """Catch an attempt to specify inconsistent allow_access_levels."""
+ engine = NoNetworkAuthorizationEngine(
+ SERVICE_ROOT, consumer_name="consumer", allow_access_levels=["FOO"]
+ )
+
+ self.assertRaises(
+ ValueError,
+ NoNetworkLaunchpad.login_with,
+ None,
+ consumer_name="consumer",
+ allow_access_levels=["BAR"],
+ authorization_engine=engine,
+ )
+
+ def test_inconsistent_credential_save_failed(self):
+ # Catch an attempt to specify inconsistent callbacks for
+ # credential save failure.
+ def callback1():
+ pass
+
+ store = KeyringCredentialStore(credential_save_failed=callback1)
+
+ def callback2():
+ pass
+
+ self.assertRaises(
+ ValueError,
+ NoNetworkLaunchpad.login_with,
+ "app name",
+ credential_store=store,
+ credential_save_failed=callback2,
+ )
+
+ def test_non_desktop_integration(self):
+ # When doing a non-desktop integration, you must specify a
+ # consumer_name. You can pass a list of allowable access
+ # levels into login_with().
+ launchpad = NoNetworkLaunchpad.login_with(
+ consumer_name="consumer", allow_access_levels=["FOO"]
+ )
+ self.assertEqual(launchpad.credentials.consumer.key, "consumer")
+ self.assertEqual(launchpad.credentials.consumer.application_name, None)
+ self.assertEqual(
+ launchpad.authorization_engine.allow_access_levels, ["FOO"]
+ )
+
+ def test_desktop_integration_doesnt_happen_without_consumer_name(self):
+ # The only way to do a non-desktop integration is to specify a
+ # consumer_name. If you specify application_name instead, your
+ # value for allow_access_levels is ignored, and a desktop
+ # integration is performed.
+ launchpad = NoNetworkLaunchpad.login_with(
+ "application name", allow_access_levels=["FOO"]
+ )
+ self.assertEqual(
+ launchpad.authorization_engine.allow_access_levels,
+ ["DESKTOP_INTEGRATION"],
+ )
+
+ def test_no_credentials_creates_new_credential(self):
+ # If no credentials are found, a desktop-wide credential is created.
+ timeout = object()
+ proxy_info = object()
+ launchpad = NoNetworkLaunchpad.login_with(
+ "app name",
+ launchpadlib_dir=self.temp_dir,
+ service_root=SERVICE_ROOT,
+ timeout=timeout,
+ proxy_info=proxy_info,
+ )
+ # Here's the new credential.
+ self.assertEqual(
+ launchpad.credentials.access_token.key,
+ NoNetworkAuthorizationEngine.ACCESS_TOKEN_KEY,
+ )
+ self.assertEqual(
+ launchpad.credentials.consumer.application_name, "app name"
+ )
+ self.assertEqual(
+ launchpad.authorization_engine.allow_access_levels,
+ ["DESKTOP_INTEGRATION"],
+ )
+ # The expected arguments were passed in to the Launchpad
+ # constructor.
+ expected_arguments = dict(
+ service_root=SERVICE_ROOT,
+ cache=os.path.join(self.temp_dir, "api.example.com", "cache"),
+ timeout=timeout,
+ proxy_info=proxy_info,
+ version=NoNetworkLaunchpad.DEFAULT_VERSION,
+ )
+ self.assertEqual(launchpad.passed_in_args, expected_arguments)
+
+ def test_anonymous_login(self):
+ """Test the anonymous login helper function."""
+ launchpad = NoNetworkLaunchpad.login_anonymously(
+ "anonymous access",
+ launchpadlib_dir=self.temp_dir,
+ service_root=SERVICE_ROOT,
+ )
+ self.assertEqual(launchpad.credentials.access_token.key, "")
+ self.assertEqual(launchpad.credentials.access_token.secret, "")
+
+ # Test that anonymous credentials are not saved.
+ credentials_path = os.path.join(
+ self.temp_dir, "api.example.com", "credentials", "anonymous access"
+ )
+ self.assertFalse(os.path.exists(credentials_path))
+
+ def test_existing_credentials_arguments_passed_on(self):
+ # When re-using existing credentials, the arguments login_with
+ # is called with are passed on the the __init__() method.
+ os.makedirs(
+ os.path.join(self.temp_dir, "api.example.com", "credentials")
+ )
+ credentials_file_path = os.path.join(
+ self.temp_dir, "api.example.com", "credentials", "app name"
+ )
+ credentials = Credentials(
+ "app name",
+ consumer_secret="consumer_secret:42",
+ access_token=AccessToken("access_key:84", "access_secret:168"),
+ )
+ credentials.save_to_path(credentials_file_path)
+
+ timeout = object()
+ proxy_info = object()
+ version = "foo"
+ launchpad = NoNetworkLaunchpad.login_with(
+ "app name",
+ launchpadlib_dir=self.temp_dir,
+ service_root=SERVICE_ROOT,
+ timeout=timeout,
+ proxy_info=proxy_info,
+ version=version,
+ )
+ expected_arguments = dict(
+ service_root=SERVICE_ROOT,
+ timeout=timeout,
+ proxy_info=proxy_info,
+ version=version,
+ cache=os.path.join(self.temp_dir, "api.example.com", "cache"),
+ )
+ for key, expected in expected_arguments.items():
+ actual = launchpad.passed_in_args[key]
+ self.assertEqual(actual, expected)
+
+ def test_None_launchpadlib_dir(self):
+ # If no launchpadlib_dir is passed in to login_with,
+ # $HOME/.launchpadlib is used.
+ old_home = os.environ.get("HOME")
+ os.environ["HOME"] = self.temp_dir
+ launchpad = NoNetworkLaunchpad.login_with(
+ "app name", service_root=SERVICE_ROOT
+ )
+ # Reset the environment to the old value.
+ if old_home is not None:
+ os.environ["HOME"] = old_home
+ else:
+ del os.environ["HOME"]
+
+ cache_dir = launchpad.passed_in_args["cache"]
+ launchpadlib_dir = os.path.abspath(os.path.join(cache_dir, "..", ".."))
+ self.assertEqual(
+ launchpadlib_dir, os.path.join(self.temp_dir, ".launchpadlib")
+ )
+ self.assertTrue(
+ os.path.exists(
+ os.path.join(launchpadlib_dir, "api.example.com", "cache")
+ )
+ )
+
+ def test_short_service_name(self):
+ # A short service name is converted to the full service root URL.
+ launchpad = NoNetworkLaunchpad.login_with("app name", "staging")
+ self.assertEqual(
+ launchpad.passed_in_args["service_root"],
+ "https://api.staging.launchpad.net/",
+ )
+
+ # A full URL as the service name is left alone.
+ launchpad = NoNetworkLaunchpad.login_with(
+ "app name", uris.service_roots["staging"]
+ )
+ self.assertEqual(
+ launchpad.passed_in_args["service_root"],
+ uris.service_roots["staging"],
+ )
+
+ # A short service name that does not match one of the
+ # pre-defined service root names, and is not a valid URL,
+ # raises an exception.
+ launchpad = ("app name", "https://")
+ self.assertRaises(
+ ValueError, NoNetworkLaunchpad.login_with, "app name", "foo"
+ )
+
+ def test_max_failed_attempts_accepted(self):
+ # You can pass in a value for the 'max_failed_attempts'
+ # argument, even though that argument doesn't do anything.
+ NoNetworkLaunchpad.login_with("not important", max_failed_attempts=5)
+
+
+class TestDeprecatedLoginMethods(KeyringTest):
+ """Make sure the deprecated login methods still work."""
+
+ def test_login_is_deprecated(self):
+ # login() works but triggers a deprecation warning.
+ with warnings.catch_warnings(record=True) as caught:
+ warnings.simplefilter("always")
+ warnings.simplefilter("ignore", PendingDeprecationWarning)
+ NoNetworkLaunchpad.login("consumer", "token", "secret")
+ self.assertEqual(len(caught), 1)
+ self.assertEqual(caught[0].category, DeprecationWarning)
+
+ def test_get_token_and_login_is_deprecated(self):
+ # get_token_and_login() works but triggers a deprecation warning.
+ with warnings.catch_warnings(record=True) as caught:
+ warnings.simplefilter("always")
+ warnings.simplefilter("ignore", PendingDeprecationWarning)
+ warnings.filterwarnings(
+ "ignore", r".*next release of cryptography"
+ )
+ NoNetworkLaunchpad.get_token_and_login("consumer")
+ self.assertEqual(
+ str(caught[0].message),
+ "The Launchpad.get_token_and_login() method is deprecated. "
+ "You should use Launchpad.login_anonymous() for anonymous "
+ "access and Launchpad.login_with() for all other purposes.",
+ )
+ self.assertEqual(caught[0].category, DeprecationWarning)
+
+
+class TestCredenitialSaveFailedCallback(unittest.TestCase):
+ # There is a callback which will be called if saving the credentials
+ # fails.
+
+ def setUp(self):
+ # launchpadlib.launchpad uses the socket module to look up the
+ # hostname, obviously that can vary so we replace the socket module
+ # with a fake that returns a fake hostname.
+ launchpadlib.launchpad.socket = FauxSocketModule()
+ self.temp_dir = tempfile.mkdtemp()
+
+ def tearDown(self):
+ launchpadlib.launchpad.socket = socket
+ shutil.rmtree(self.temp_dir)
+
+ @patch.object(NoNetworkLaunchpad, "_is_sudo", staticmethod(lambda: False))
+ def test_credentials_save_failed(self):
+ # If saving the credentials did not succeed and a callback was
+ # provided, it is called.
+
+ callback_called = []
+
+ def callback():
+ # Since we can't rebind "callback_called" here, we'll have to
+ # settle for mutating it to signal success.
+ callback_called.append(None)
+
+ launchpadlib_dir = os.path.join(self.temp_dir, "launchpadlib")
+ service_root = "http://api.example.com/"
+ with fake_keyring(BadSaveKeyring()):
+ NoNetworkLaunchpad.login_with(
+ "not important",
+ service_root=service_root,
+ launchpadlib_dir=launchpadlib_dir,
+ credential_save_failed=callback,
+ )
+ self.assertEqual(len(callback_called), 1)
+
+ @patch.object(NoNetworkLaunchpad, "_is_sudo", staticmethod(lambda: False))
+ def test_default_credentials_save_failed_is_to_raise_exception(self):
+ # If saving the credentials did not succeed and no callback was
+ # provided, the underlying exception is raised.
+ launchpadlib_dir = os.path.join(self.temp_dir, "launchpadlib")
+ service_root = "http://api.example.com/"
+ with fake_keyring(BadSaveKeyring()):
+ self.assertRaises(
+ RuntimeError,
+ NoNetworkLaunchpad.login_with,
+ "not important",
+ service_root=service_root,
+ launchpadlib_dir=launchpadlib_dir,
+ )
+
+ @patch.object(NoNetworkLaunchpad, "_is_sudo", staticmethod(lambda: True))
+ def test_credentials_save_fail_under_sudo_does_not_raise_exception(self):
+ # When running under sudo, Launchpad will not attempt to use
+ # the keyring, so credential save failure will never happen
+ launchpadlib_dir = os.path.join(self.temp_dir, "launchpadlib")
+ service_root = "http://api.example.com/"
+ with fake_keyring(BadSaveKeyring()):
+ NoNetworkLaunchpad.login_with(
+ "not important",
+ service_root=service_root,
+ launchpadlib_dir=launchpadlib_dir,
+ )
+
+
+class TestMultipleSites(unittest.TestCase):
+ # If the same application name (consumer name) is used to access more than
+ # one site, the credentials need to be stored seperately. Therefore, the
+ # "username" passed ot the keyring includes the service root.
+
+ def setUp(self):
+ # launchpadlib.launchpad uses the socket module to look up the
+ # hostname, obviously that can vary so we replace the socket module
+ # with a fake that returns a fake hostname.
+ launchpadlib.launchpad.socket = FauxSocketModule()
+ self.temp_dir = tempfile.mkdtemp()
+
+ def tearDown(self):
+ launchpadlib.launchpad.socket = socket
+ shutil.rmtree(self.temp_dir)
+
+ @patch.object(NoNetworkLaunchpad, "_is_sudo", staticmethod(lambda: False))
+ def test_components_of_application_key(self):
+ launchpadlib_dir = os.path.join(self.temp_dir, "launchpadlib")
+ keyring = InMemoryKeyring()
+ service_root = "http://api.example.com/"
+ application_name = "Super App 3000"
+ with fake_keyring(keyring):
+ launchpad = NoNetworkLaunchpad.login_with(
+ application_name,
+ service_root=service_root,
+ launchpadlib_dir=launchpadlib_dir,
+ )
+ consumer_name = launchpad.credentials.consumer.key
+
+ application_key = list(keyring.data.keys())[0][1]
+
+ # Both the consumer name (normally the name of the application) and
+ # the service root (the URL of the service being accessed) are
+ # included in the key when storing credentials.
+ self.assertIn(service_root, application_key)
+ self.assertIn(consumer_name, application_key)
+
+ # The key used to store the credentials is of this structure (and
+ # shouldn't change between releases or stored credentials will be
+ # "forgotten").
+ self.assertEqual(application_key, consumer_name + "@" + service_root)
+
+ @patch.object(NoNetworkLaunchpad, "_is_sudo", staticmethod(lambda: False))
+ def test_same_app_different_servers(self):
+ launchpadlib_dir = os.path.join(self.temp_dir, "launchpadlib")
+ keyring = InMemoryKeyring()
+ # Be paranoid about the keyring starting out empty.
+ assert not keyring.data, "oops, a fresh keyring has data in it"
+ with fake_keyring(keyring):
+ # Create stored credentials for the same application but against
+ # two different sites (service roots).
+ NoNetworkLaunchpad.login_with(
+ "application name",
+ service_root="http://alpha.example.com/",
+ launchpadlib_dir=launchpadlib_dir,
+ )
+ NoNetworkLaunchpad.login_with(
+ "application name",
+ service_root="http://beta.example.com/",
+ launchpadlib_dir=launchpadlib_dir,
+ )
+
+ # There should only be two sets of stored credentials (this assertion
+ # is of the test mechanism, not a test assertion).
+ assert len(keyring.data.keys()) == 2
+
+ application_key_1 = list(keyring.data.keys())[0][1]
+ application_key_2 = list(keyring.data.keys())[1][1]
+ self.assertNotEqual(application_key_1, application_key_2)
+
+
+def test_suite():
+ return unittest.TestLoader().loadTestsFromName(__name__)
diff --git a/src/launchpadlib/uris.py b/src/launchpadlib/uris.py
new file mode 100644
index 0000000..dda802e
--- /dev/null
+++ b/src/launchpadlib/uris.py
@@ -0,0 +1,139 @@
+# Copyright 2009 Canonical Ltd.
+
+# This file is part of launchpadlib.
+#
+# launchpadlib is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by the
+# Free Software Foundation, version 3 of the License.
+#
+# launchpadlib is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+# for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with launchpadlib. If not, see <http://www.gnu.org/licenses/>.
+
+"""Launchpad-specific URIs and convenience lookup functions.
+
+The code in this module lets users say "staging" when they mean
+"https://api.staging.launchpad.net/".
+"""
+
+__metaclass__ = type
+__all__ = [
+ "lookup_service_root",
+ "lookup_web_root",
+ "web_root_for_service_root",
+]
+try:
+ from urllib.parse import urlparse
+except ImportError:
+ from urlparse import urlparse
+
+import warnings
+from lazr.uri import URI
+
+LPNET_SERVICE_ROOT = "https://api.launchpad.net/"
+QASTAGING_SERVICE_ROOT = "https://api.qastaging.launchpad.net/"
+STAGING_SERVICE_ROOT = "https://api.staging.launchpad.net/"
+DEV_SERVICE_ROOT = "https://api.launchpad.test/"
+DOGFOOD_SERVICE_ROOT = "https://api.dogfood.paddev.net/"
+TEST_DEV_SERVICE_ROOT = "http://api.launchpad.test:8085/"
+
+LPNET_WEB_ROOT = "https://launchpad.net/"
+QASTAGING_WEB_ROOT = "https://qastaging.launchpad.net/"
+STAGING_WEB_ROOT = "https://staging.launchpad.net/"
+DEV_WEB_ROOT = "https://launchpad.test/"
+DOGFOOD_WEB_ROOT = "https://dogfood.paddev.net/"
+TEST_DEV_WEB_ROOT = "http://launchpad.test:8085/"
+
+# If you use EDGE_SERVICE_ROOT, or its alias, or the equivalent
+# string, launchpadlib will issue a deprecation warning and use
+# PRODUCTION_SERVICE_ROOT instead. Similarly for EDGE_WEB_ROOT.
+EDGE_SERVICE_ROOT = "https://api.edge.launchpad.net/"
+EDGE_WEB_ROOT = "https://edge.launchpad.net/"
+
+service_roots = dict(
+ production=LPNET_SERVICE_ROOT,
+ edge=LPNET_SERVICE_ROOT,
+ qastaging=QASTAGING_SERVICE_ROOT,
+ staging=STAGING_SERVICE_ROOT,
+ dogfood=DOGFOOD_SERVICE_ROOT,
+ dev=DEV_SERVICE_ROOT,
+ test_dev=TEST_DEV_SERVICE_ROOT,
+)
+
+
+web_roots = dict(
+ production=LPNET_WEB_ROOT,
+ edge=LPNET_WEB_ROOT,
+ qastaging=QASTAGING_WEB_ROOT,
+ staging=STAGING_WEB_ROOT,
+ dogfood=DOGFOOD_WEB_ROOT,
+ dev=DEV_WEB_ROOT,
+ test_dev=TEST_DEV_WEB_ROOT,
+)
+
+
+def _dereference_alias(root, aliases):
+ """Dereference what might a URL or an alias for a URL."""
+ if root == "edge":
+ warnings.warn(
+ (
+ "Launchpad edge server no longer exists. "
+ "Using 'production' instead."
+ ),
+ DeprecationWarning,
+ )
+ if root in aliases:
+ return aliases[root]
+
+ # It's not an alias. Is it a valid URL?
+ (scheme, netloc, path, parameters, query, fragment) = urlparse(root)
+ if scheme != "" and netloc != "":
+ return root
+
+ # It's not an alias or a valid URL.
+ raise ValueError(
+ "%s is not a valid URL or an alias for any Launchpad " "server" % root
+ )
+
+
+def lookup_service_root(service_root):
+ """Dereference an alias to a service root.
+
+ A recognized server alias such as "staging" gets turned into the
+ appropriate URI. A URI gets returned as is. Any other string raises a
+ ValueError.
+ """
+ if service_root == EDGE_SERVICE_ROOT:
+ # This will trigger a deprecation warning and use production instead.
+ service_root = "edge"
+ return _dereference_alias(service_root, service_roots)
+
+
+def lookup_web_root(web_root):
+ """Dereference an alias to a website root.
+
+ A recognized server alias such as "staging" gets turned into the
+ appropriate URI. A URI gets returned as is. Any other string raises a
+ ValueError.
+ """
+ if web_root == EDGE_WEB_ROOT:
+ # This will trigger a deprecation warning and use production instead.
+ web_root = "edge"
+ return _dereference_alias(web_root, web_roots)
+
+
+def web_root_for_service_root(service_root):
+ """Turn a service root URL into a web root URL.
+
+ This is done heuristically, not with a lookup.
+ """
+ service_root = lookup_service_root(service_root)
+ web_root_uri = URI(service_root)
+ web_root_uri.path = ""
+ web_root_uri.host = web_root_uri.host.replace("api.", "", 1)
+ web_root = str(web_root_uri.ensureSlash())
+ return web_root