From 6822858c57e176ceec2e3f483498960ced15f332 Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Fri, 8 Sep 2023 14:15:30 -0600 Subject: [PATCH 01/15] Upgrade test images to bullseye and add Python 3.11 test --- .circleci/config.yml | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a5b4804..5b6bdae 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2.1 pip: &pip name: Install Pip command: | - sudo apt update && sudo apt install python-pip python-virtualenv + sudo apt update && sudo apt install python3-virtualenv venv: &venv name: Setup Virtualenv command: | @@ -31,7 +31,7 @@ jobs: py3_6: docker: - - image: circleci/python:3.6-buster + - image: circleci/python:3.6-bullseye steps: - checkout - run: @@ -47,7 +47,7 @@ jobs: py3_7: docker: - - image: circleci/python:3.7-buster + - image: circleci/python:3.7-bullseye steps: - checkout - run: @@ -63,7 +63,7 @@ jobs: py3_8: docker: - - image: circleci/python:3.8-buster + - image: circleci/python:3.8-bullseye steps: - checkout - run: @@ -79,7 +79,7 @@ jobs: py3_9: docker: - - image: circleci/python:3.9-buster + - image: circleci/python:3.9-bullseye steps: - checkout - run: @@ -95,7 +95,23 @@ jobs: py3_10: docker: - - image: circleci/python:3.10-buster + - image: circleci/python:3.10-bullseye + steps: + - checkout + - run: + <<: *pip + - run: + <<: *venv + - run: + <<: *getenv + - run: + <<: *depinst + - run: + <<: *test + + py3_11: + docker: + - image: circleci/python:3.11-bullseye steps: - checkout - run: @@ -118,4 +134,5 @@ workflows: - py3_8 - py3_9 - py3_10 + - py3_11 From f70ef45d6f59f8b51f284e2190664478b6f7d2ee Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Fri, 8 Sep 2023 14:19:51 -0600 Subject: [PATCH 02/15] Update supported version range --- README.rst | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 869944b..4a30593 100644 --- a/README.rst +++ b/README.rst @@ -22,7 +22,7 @@ manipulated through APIs are left to the user or implementer to make. Features -------- - Uses Requests' automatic HTTP connection pooling and persistence -- Tested in / support for Python 3.6 through 3.10 +- Tested in / support for Python 3.6 through 3.11 - Abstraction layer for authentication, pagination, filtering and wrapped entities - Configurable cooldown/reattempt logic for handling rate limiting and diff --git a/setup.py b/setup.py index c1e8106..61dfb78 100644 --- a/setup.py +++ b/setup.py @@ -15,5 +15,5 @@ install_requires=['requests', 'urllib3', 'deprecation'], author='PagerDuty', author_email='support@pagerduty.com', - python_requires='>=3.6' + python_requires='>=3.6, <3.12' ) From 297e022f6dbd604faef804d4d82e9f98f196e640 Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Fri, 8 Sep 2023 14:23:00 -0600 Subject: [PATCH 03/15] Try bookworm image for 3.11 --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5b6bdae..6655c7d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -111,7 +111,7 @@ jobs: py3_11: docker: - - image: circleci/python:3.11-bullseye + - image: circleci/python:3.11-bookworm steps: - checkout - run: From 712a8d068930243e3b19f8ec63bc4781b802d611 Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Fri, 8 Sep 2023 14:36:30 -0600 Subject: [PATCH 04/15] Try using cimg tag prefix --- .circleci/config.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6655c7d..e1d72ca 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -31,7 +31,7 @@ jobs: py3_6: docker: - - image: circleci/python:3.6-bullseye + - image: cimg/python:3.6-bullseye steps: - checkout - run: @@ -47,7 +47,7 @@ jobs: py3_7: docker: - - image: circleci/python:3.7-bullseye + - image: cimg/python:3.7-bullseye steps: - checkout - run: @@ -63,7 +63,7 @@ jobs: py3_8: docker: - - image: circleci/python:3.8-bullseye + - image: cimg/python:3.8-bullseye steps: - checkout - run: @@ -79,7 +79,7 @@ jobs: py3_9: docker: - - image: circleci/python:3.9-bullseye + - image: cimg/python:3.9-bullseye steps: - checkout - run: @@ -95,7 +95,7 @@ jobs: py3_10: docker: - - image: circleci/python:3.10-bullseye + - image: cimg/python:3.10-bullseye steps: - checkout - run: @@ -111,7 +111,7 @@ jobs: py3_11: docker: - - image: circleci/python:3.11-bookworm + - image: cimg/python:3.11-bookworm steps: - checkout - run: From cdeb160915e5763ff71b1a8b8cdab65d44236e16 Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Fri, 8 Sep 2023 14:38:35 -0600 Subject: [PATCH 05/15] Try assuming virtualenv is installed already (pipenv should be) --- .circleci/config.yml | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e1d72ca..060a44d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,9 +1,9 @@ version: 2.1 -pip: &pip - name: Install Pip - command: | - sudo apt update && sudo apt install python3-virtualenv +#pip: &pip + #name: Install Pip + #command: | + # sudo apt update && sudo apt install python3-virtualenv venv: &venv name: Setup Virtualenv command: | @@ -31,11 +31,11 @@ jobs: py3_6: docker: - - image: cimg/python:3.6-bullseye + - image: cimg/python:3.6 steps: - checkout - - run: - <<: *pip +# - run: +# <<: *pip - run: <<: *venv - run: @@ -47,11 +47,11 @@ jobs: py3_7: docker: - - image: cimg/python:3.7-bullseye + - image: cimg/python:3.7 steps: - checkout - - run: - <<: *pip +# - run: +# <<: *pip - run: <<: *venv - run: @@ -63,11 +63,11 @@ jobs: py3_8: docker: - - image: cimg/python:3.8-bullseye + - image: cimg/python:3.8 steps: - checkout - - run: - <<: *pip +# - run: +# <<: *pip - run: <<: *venv - run: @@ -79,11 +79,11 @@ jobs: py3_9: docker: - - image: cimg/python:3.9-bullseye + - image: cimg/python:3.9 steps: - checkout - - run: - <<: *pip +# - run: +# <<: *pip - run: <<: *venv - run: @@ -95,11 +95,11 @@ jobs: py3_10: docker: - - image: cimg/python:3.10-bullseye + - image: cimg/python:3.10 steps: - checkout - - run: - <<: *pip +# - run: +# <<: *pip - run: <<: *venv - run: @@ -111,11 +111,11 @@ jobs: py3_11: docker: - - image: cimg/python:3.11-bookworm + - image: cimg/python:3.11 steps: - checkout - - run: - <<: *pip +# - run: +# <<: *pip - run: <<: *venv - run: From f1622f7cb9c30a5bfd0d91ec56f369a738f77f44 Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Fri, 8 Sep 2023 14:44:21 -0600 Subject: [PATCH 06/15] Remove commented-out steps --- .circleci/config.yml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 060a44d..0f919f6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,9 +1,5 @@ version: 2.1 -#pip: &pip - #name: Install Pip - #command: | - # sudo apt update && sudo apt install python3-virtualenv venv: &venv name: Setup Virtualenv command: | @@ -34,8 +30,6 @@ jobs: - image: cimg/python:3.6 steps: - checkout -# - run: -# <<: *pip - run: <<: *venv - run: @@ -50,8 +44,6 @@ jobs: - image: cimg/python:3.7 steps: - checkout -# - run: -# <<: *pip - run: <<: *venv - run: @@ -66,8 +58,6 @@ jobs: - image: cimg/python:3.8 steps: - checkout -# - run: -# <<: *pip - run: <<: *venv - run: @@ -82,8 +72,6 @@ jobs: - image: cimg/python:3.9 steps: - checkout -# - run: -# <<: *pip - run: <<: *venv - run: @@ -98,8 +86,6 @@ jobs: - image: cimg/python:3.10 steps: - checkout -# - run: -# <<: *pip - run: <<: *venv - run: @@ -114,8 +100,6 @@ jobs: - image: cimg/python:3.11 steps: - checkout -# - run: -# <<: *pip - run: <<: *venv - run: From 96c07163296a0691a527cdafbb63382549c2e0ee Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Fri, 8 Sep 2023 14:50:40 -0600 Subject: [PATCH 07/15] Set defaults for retry logic on instantiation of events API clients; fixes #115 --- pdpyras.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pdpyras.py b/pdpyras.py index ce2b9d3..d6bb785 100644 --- a/pdpyras.py +++ b/pdpyras.py @@ -1246,6 +1246,13 @@ class EventsAPISession(PDSession): url = "https://events.pagerduty.com" + def __init__(self, api_key: str, debug=False): + super(EventsAPISession, self).__init__(api_key, debug) + # See: https://developer.pagerduty.com/docs/ZG9jOjExMDI5NTgw-events-api-v2-overview#response-codes--retry-logic + self.retry[500] = 2 # internal server error, 3 requests total + self.retry[502] = 4 # bad gateway, 5 requests total + self.retry[503] = 6 # service unavailable, 7 requests total + @property def auth_header(self): return {} @@ -1411,6 +1418,13 @@ class ChangeEventsAPISession(PDSession): url = "https://events.pagerduty.com" + def __init__(self, api_key: str, debug=False): + super(ChangeEventsAPISession, self).__init__(api_key, debug) + # See: https://developer.pagerduty.com/docs/ZG9jOjExMDI5NTgw-events-api-v2-overview#response-codes--retry-logic + self.retry[500] = 2 # internal server error, 3 requests total + self.retry[502] = 4 # bad gateway, 5 requests total + self.retry[503] = 6 # service unavailable, 7 requests total + @property def auth_header(self): return {} From 6b6ab7156475304ab05311b89c83f01a855c24a0 Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Fri, 8 Sep 2023 14:52:36 -0600 Subject: [PATCH 08/15] Bump version for new release --- pdpyras.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pdpyras.py b/pdpyras.py index d6bb785..4a5f872 100644 --- a/pdpyras.py +++ b/pdpyras.py @@ -18,7 +18,7 @@ from urllib3.exceptions import HTTPError, PoolError from requests.exceptions import RequestException -__version__ = '5.1.1' +__version__ = '5.2.0' ####################### ### CLIENT DEFAULTS ### diff --git a/setup.py b/setup.py index 61dfb78..a4427e3 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -__version__ = '5.1.1' +__version__ = '5.2.0' if __name__ == '__main__': setup( From d2780dcfa2f3542fcdfc495b1c58b8aa7b4a814b Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Fri, 8 Sep 2023 15:01:59 -0600 Subject: [PATCH 09/15] Who needs square brackets anymore anyway? --- sphinx/source/user_guide.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/sphinx/source/user_guide.rst b/sphinx/source/user_guide.rst index 4706933..126cc57 100644 --- a/sphinx/source/user_guide.rst +++ b/sphinx/source/user_guide.rst @@ -172,15 +172,16 @@ matching a string using the ``query`` parameter on an index endpoint: updated_user = session.persist('users', 'email', user_data, update=True) **Using multi-valued set filters:** set the value in the ``params`` dictionary at -the appropriate key to a list, and include ``[]`` at the end of the paramter -name: +the appropriate key to a list. Ordinarily one must include ``[]`` at the end of the paramter +name; in the case of this client, the brackets are automatically appended to +the names of list-type-value parameters as necessary: .. code-block:: python # Query all open incidents assigned to a user: incidents = session.list_all( 'incidents', - params={'user_ids[]':['PHIJ789'],'statuses[]':['triggered', 'acknowledged']} + params={'user_ids':['PHIJ789'],'statuses':['triggered', 'acknowledged']} ) **Performing multi-update:** for endpoints that support it only, i.e. ``PUT /incidents``: @@ -190,7 +191,7 @@ name: # Acknowledge all triggered incidents assigned to a user: incidents = session.list_all( 'incidents', - params={'user_ids[]':['PHIJ789'],'statuses[]':['triggered']} + params={'user_ids':['PHIJ789'],'statuses':['triggered']} ) for i in incidents: i['status'] = 'acknowledged' From 5e71d4725e02e223badfa34df3323b7a87fcff2c Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Fri, 8 Sep 2023 15:09:13 -0600 Subject: [PATCH 10/15] Update example code comments --- sphinx/source/user_guide.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sphinx/source/user_guide.rst b/sphinx/source/user_guide.rst index 126cc57..ada924a 100644 --- a/sphinx/source/user_guide.rst +++ b/sphinx/source/user_guide.rst @@ -291,6 +291,7 @@ then ``[]`` will be automatically appended to the parameter name. }) # GET https://api.pagerduty.com/services?query=foo&include%5B%5D=escalation_policies&include%5B%5D=teams&limit=50&offset=0 # GET https://api.pagerduty.com/services?query=foo&include%5B%5D=escalation_policies&include%5B%5D=teams&limit=50&offset=50 + # >>> foo_services # [{"type": "service" ...}, ... ] @@ -470,7 +471,7 @@ entity is wrapped as appropriate. For instance: # >>> created_overrides # [ # {'status': 201, 'override': {...}}, - # {'status': 400, errors: ['Override must end after its start'], 'override': {...}} + # {'status': 400, 'errors': ['Override must end after its start'], 'override': {...}} # ] Pagination From 77bfcf86de1f68e0e23264afda134f7307d0a144 Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Mon, 11 Sep 2023 09:41:52 -0600 Subject: [PATCH 11/15] Increment minor version instead Since this release contains only an issue fix and CI/CD maintenance it is being given a patch version increase instead of a minor version which warrants a new release. --- pdpyras.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pdpyras.py b/pdpyras.py index 4a5f872..48ecdce 100644 --- a/pdpyras.py +++ b/pdpyras.py @@ -18,7 +18,7 @@ from urllib3.exceptions import HTTPError, PoolError from requests.exceptions import RequestException -__version__ = '5.2.0' +__version__ = '5.1.2' ####################### ### CLIENT DEFAULTS ### diff --git a/setup.py b/setup.py index a4427e3..e9c1d87 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -__version__ = '5.2.0' +__version__ = '5.1.2' if __name__ == '__main__': setup( From 6f2a5697a4887863760bd01ca97e8d4652263a05 Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Mon, 11 Sep 2023 09:48:18 -0600 Subject: [PATCH 12/15] Improve multi-valued set filtering example/docs --- sphinx/source/user_guide.rst | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/sphinx/source/user_guide.rst b/sphinx/source/user_guide.rst index ada924a..52b2dda 100644 --- a/sphinx/source/user_guide.rst +++ b/sphinx/source/user_guide.rst @@ -171,18 +171,25 @@ matching a string using the ``query`` parameter on an index endpoint: user_data = {'email': 'user123@example.com', 'name': 'User McUserson'} updated_user = session.persist('users', 'email', user_data, update=True) -**Using multi-valued set filters:** set the value in the ``params`` dictionary at -the appropriate key to a list. Ordinarily one must include ``[]`` at the end of the paramter -name; in the case of this client, the brackets are automatically appended to -the names of list-type-value parameters as necessary: +**Using multi-valued set filters:** set the value in the ``params`` dictionary +at the appropriate key to a list. Square brackets will then be automatically +appended to the names of list-type-value parameters as necessary. Ordinarily +(and in pdpyras versions prior to 4.4.0) one must include ``[]`` at the end of +the paramter name to denote a set type filter. For example: .. code-block:: python - # Query all open incidents assigned to a user: + # Query all open incidents assigned to a user incidents = session.list_all( 'incidents', - params={'user_ids':['PHIJ789'],'statuses':['triggered', 'acknowledged']} + params={ + 'user_ids[]':['PHIJ789'], # (Necessary in < 4.4.0, compatible with >= 4.4.0) + 'statuses':['triggered', 'acknowledged'] # (>= 4.4.0) + } ) + # API calls will look like the following: + # GET /incidents?user_ids%5B%5D=PHIJ789&statuses%5B%5D=triggered&statuses%5B%5D=acknowledged&offset=0&limit=100 + **Performing multi-update:** for endpoints that support it only, i.e. ``PUT /incidents``: From 223e873b821aca72e450b18c2734bf78516e86a7 Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Mon, 11 Sep 2023 10:33:29 -0600 Subject: [PATCH 13/15] Update CHANGELOG --- CHANGELOG.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 778d106..1cc9b3e 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,9 @@ +**2023-09-12: Version 5.1.2:** + +* Address issue `#115 `_ by adding default values to :attr:`pdpyras.PDSession.retry` for Events and Change Events API client classes +* Upgrade CI images +* Add support for Python 3.11 + **2023-07-18: Version 5.1.1:** * Fix bug: using ``iter_all`` on an endpoint that supports cursor-based pagination should correctly call out to ``iter_cursor`` (it was making the call but with a removed keyword argument) From 633e140820d848d20945c084fad61e0744b515ff Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Mon, 11 Sep 2023 10:00:18 -0600 Subject: [PATCH 14/15] Rebuild docs --- docs/_static/documentation_options.js | 2 +- docs/changelog.html | 8 +++++++- docs/contributing.html | 2 +- docs/genindex.html | 2 +- docs/index.html | 2 +- docs/module_reference.html | 2 +- docs/objects.inv | Bin 2235 -> 2235 bytes docs/py-modindex.html | 2 +- docs/search.html | 2 +- docs/searchindex.js | 2 +- docs/user_guide.html | 24 ++++++++++++++++-------- 11 files changed, 31 insertions(+), 17 deletions(-) diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index 49f395b..a52e6f4 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '5.1.1', + VERSION: '5.1.2', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/changelog.html b/docs/changelog.html index 8a6b0ec..b881b99 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -6,7 +6,7 @@ - Changelog — PagerDuty Python REST API Sessions 5.1.1 documentation + Changelog — PagerDuty Python REST API Sessions 5.1.2 documentation @@ -37,6 +37,12 @@

ChangelogΒΆ

+

2023-09-12: Version 5.1.2:

+
    +
  • Address issue #115 by adding default values to pdpyras.PDSession.retry for Events and Change Events API client classes

  • +
  • Upgrade CI images

  • +
  • Add support for Python 3.11

  • +

2023-07-18: Version 5.1.1:

  • Fix bug: using iter_all on an endpoint that supports cursor-based pagination should correctly call out to iter_cursor (it was making the call but with a removed keyword argument)

  • diff --git a/docs/contributing.html b/docs/contributing.html index 54516a7..0a4c1b8 100644 --- a/docs/contributing.html +++ b/docs/contributing.html @@ -6,7 +6,7 @@ - Contribution Guide — PagerDuty Python REST API Sessions 5.1.1 documentation + Contribution Guide — PagerDuty Python REST API Sessions 5.1.2 documentation diff --git a/docs/genindex.html b/docs/genindex.html index 71a3275..bb28335 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -5,7 +5,7 @@ - Index — PagerDuty Python REST API Sessions 5.1.1 documentation + Index — PagerDuty Python REST API Sessions 5.1.2 documentation diff --git a/docs/index.html b/docs/index.html index f7c2d87..206b256 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,7 +6,7 @@ - PDPYRAS: PagerDuty Python REST API Sessions — PagerDuty Python REST API Sessions 5.1.1 documentation + PDPYRAS: PagerDuty Python REST API Sessions — PagerDuty Python REST API Sessions 5.1.2 documentation diff --git a/docs/module_reference.html b/docs/module_reference.html index cd6e9dd..6c400a6 100644 --- a/docs/module_reference.html +++ b/docs/module_reference.html @@ -6,7 +6,7 @@ - Module Reference — PagerDuty Python REST API Sessions 5.1.1 documentation + Module Reference — PagerDuty Python REST API Sessions 5.1.2 documentation diff --git a/docs/objects.inv b/docs/objects.inv index a71272e742f6fc252da9956c3f3095b39da7ade0..5ba500f290357f0c8bc554c834ad54a7161b2d99 100644 GIT binary patch delta 12 TcmdljxLa^S6r<6`=mZV`9t8v{ delta 12 TcmdljxLa^S6r diff --git a/docs/py-modindex.html b/docs/py-modindex.html index ad867ff..56a1881 100644 --- a/docs/py-modindex.html +++ b/docs/py-modindex.html @@ -5,7 +5,7 @@ - Python Module Index — PagerDuty Python REST API Sessions 5.1.1 documentation + Python Module Index — PagerDuty Python REST API Sessions 5.1.2 documentation diff --git a/docs/search.html b/docs/search.html index 7611399..bddc581 100644 --- a/docs/search.html +++ b/docs/search.html @@ -5,7 +5,7 @@ - Search — PagerDuty Python REST API Sessions 5.1.1 documentation + Search — PagerDuty Python REST API Sessions 5.1.2 documentation diff --git a/docs/searchindex.js b/docs/searchindex.js index 28e4d1e..4ee0bcd 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["changelog", "contributing", "index", "module_reference", "user_guide"], "filenames": ["changelog.rst", "contributing.rst", "index.rst", "module_reference.rst", "user_guide.rst"], "titles": ["Changelog", "Contribution Guide", "PDPYRAS: PagerDuty Python REST API Sessions", "Module Reference", "User Guide"], "terms": {"2023": [0, 4], "07": [0, 4], "18": 0, "version": [0, 2, 3, 4], "5": [0, 1, 3, 4], "1": [0, 1, 3, 4], "fix": [0, 1], "bug": [0, 1, 3], "us": [0, 1, 2, 3], "iter_al": [0, 3, 4], "an": [0, 1, 3, 4], "endpoint": [0, 3, 4], "support": [0, 3, 4], "cursor": [0, 3, 4], "base": [0, 3, 4], "pagin": [0, 2, 3], "should": [0, 1, 3, 4], "correctli": 0, "call": [0, 3], "out": [0, 1, 4], "iter_cursor": [0, 3, 4], "wa": [0, 3, 4], "make": [0, 1, 3, 4], "remov": [0, 3], "keyword": [0, 3, 4], "argument": [0, 3, 4], "06": 0, "26": [0, 4], "0": [0, 3, 4], "new": [0, 2, 3, 4], "featur": [0, 1, 2, 3], "add": [0, 1, 3, 4], "abil": 0, "specifi": [0, 3, 4], "timestamp": [0, 3], "when": [0, 1, 3, 4], "submit": [0, 3, 4], "chang": [0, 2, 3, 4], "event": [0, 2, 3], "suppli": [0, 3, 4], "changeeventsapisess": [0, 2, 3, 4], "explicitli": [0, 3], "includ": [0, 1, 3, 4], "upstream": 0, "except": [0, 3, 4], "caus": [0, 3, 4], "rais": [0, 3, 4], "due": 0, "non": [0, 2, 3], "transient": [0, 3, 4], "network": [0, 3, 4], "error": [0, 1, 2], "break": 0, "deprec": [0, 3, 4], "function": [0, 1, 2], "pdpyra": [0, 1, 3, 4], "tokenize_url_path": 0, "resource_envelop": 0, "object_typ": 0, "resource_nam": 0, "raise_on_error": 0, "__init__": 0, "all": [0, 1, 3, 4], "session": [0, 3, 4], "class": [0, 1, 2, 4], "longer": [0, 1, 3, 4], "accept": [0, 3, 4], "name": [0, 1, 3, 4], "apisess": [0, 2, 3, 4], "attribut": [0, 3, 4], "object": [0, 3, 4], "method": [0, 3, 4], "properti": [0, 2, 3], "profiler_kei": 0, "raise_if_http_error": 0, "4": [0, 3, 4], "user": [0, 1, 2, 3], "me": 0, "i": [0, 1, 3, 4], "also": [0, 1, 3, 4], "ambigu": 0, "match": [0, 3, 4], "canon": [0, 3], "path": [0, 1, 3, 4], "id": [0, 3, 4], "solut": 0, "asmith": 0, "pd": 0, "short": [0, 3, 4], "circuit": [0, 3], "exact": [0, 3], "url": [0, 2], "05": 0, "17": 0, "3": [0, 3, 4], "incorpor": [0, 4], "bugfix": 0, "from": [0, 1, 2, 3], "103": 0, "av1m": 0, "gener": [0, 2, 3], "issu": [0, 1, 3, 4], "behind": 0, "102": 0, "unsaf": 0, "mix": 0, "string": [0, 3, 4], "format": [0, 3], "style": 0, "In": [0, 3, 4], "http": [0, 2, 3], "retri": [0, 2, 3], "exhaust": 0, "messag": [0, 1, 3, 4], "print": [0, 1, 3, 4], "onli": [0, 3, 4], "limit": [0, 3, 4], "got": 0, "reach": 0, "necessarili": 0, "per": [0, 3, 4], "statu": [0, 3, 4], "01": 0, "note": [0, 1, 3, 4], "ha": [0, 1, 3, 4], "been": [0, 3, 4], "yank": 0, "patch": [0, 1], "releas": [0, 2], "v5": [0, 3, 4], "address": [0, 3, 4], "setup": [0, 2], "py": [0, 1, 4], "assum": [0, 1, 3, 4], "entiti": [0, 2], "wrap": [0, 2], "like": [0, 4], "rget": [0, 3, 4], "now": 0, "api": [0, 1], "pdsession": [0, 2, 3, 4], "print_debug": [0, 3, 4], "enabl": [0, 3, 4], "verbos": [0, 3], "log": [0, 2, 3], "sy": [0, 3, 4], "stderr": [0, 3, 4], "set_api_kei": 0, "end": [0, 2, 3, 4], "python": [0, 1, 4], "v3": 0, "which": [0, 1, 3, 4], "life": 0, "follow": [0, 1, 3, 4], "next": [0, 1, 4], "minor": [0, 1], "them": [0, 1, 3, 4], "trigger": [0, 3, 4], "warn": [0, 3], "constructor": [0, 4], "thi": [0, 3, 4], "previous": 0, "set": [0, 1, 2, 3], "logger": [0, 3, 4], "effect": [0, 3, 4], "could": [0, 3], "fals": [0, 3, 4], "stop": 0, "iter": [0, 3, 4], "after": [0, 1, 3, 4], "first": [0, 1, 3, 4], "page": [0, 2, 3, 4], "result": [0, 2, 3], "wrapper": [0, 3, 4], "The": [0, 1, 2, 3], "determin": [0, 3], "automat": [0, 3, 4], "decor": [0, 2], "allow": [0, 3, 4], "partial": [0, 4], "return": [0, 3, 4], "case": [0, 1, 2, 3], "2022": 0, "10": [0, 3, 4], "13": 0, "2": [0, 3, 4], "default": [0, 2], "valu": [0, 3, 4], "request": [0, 1, 2, 3], "timeout": [0, 2, 3], "60": [0, 3], "api_key_access": [0, 3], "implement": [0, 3, 4], "formerli": 0, "parent": [0, 3, 4], "inherit": [0, 3], "did": 0, "need": [0, 1, 3, 4], "packag": [0, 1], "distribut": [0, 3], "build": [0, 1, 4], "02": 0, "22": 0, "yield": [0, 3, 4], "whenev": [0, 4], "ad": [0, 1, 3, 4], "pdhttperror": [0, 2, 3, 4], "strictli": [0, 3], "applic": [0, 3, 4], "level": [0, 3, 4], "e": [0, 1, 3, 4], "respons": [0, 2, 3], "v": [0, 1], "pdclienterror": [0, 2, 3, 4], "unnecessari": 0, "depend": [0, 1, 4], "were": 0, "hold": [0, 3], "7": 0, "compat": 0, "squar": [0, 3], "bracket": [0, 3], "queri": [0, 2, 3], "paramet": [0, 2, 3], "ar": [0, 1, 3, 4], "list": [0, 3, 4], "type": [0, 2, 3], "forget": 0, "do": [0, 4], "so": [0, 1, 3, 4], "requir": [0, 1, 3, 4], "filter": [0, 3, 4], "stagger_cooldown": [0, 3, 4], "appli": [0, 3, 4], "form": [0, 3], "retrial": 0, "updat": [0, 2, 3], "persist": [0, 3, 4], "ani": [0, 1, 3, 4], "exist": [0, 1, 3, 4], "resourc": [0, 3], "provid": [0, 3], "2021": 0, "28": 0, "configur": [0, 2, 3], "instanc": [0, 3, 4], "variabl": [0, 3, 4], "suggest": 0, "pull": [0, 1], "48": 0, "made": [0, 3, 4], "badnetmask": 0, "drop": 0, "improv": 0, "code": [0, 1, 3, 4], "sampl": 0, "jackton1": 0, "65": 0, "replac": [0, 3], "escap": 0, "sequenc": 0, "doubl": 0, "splat": 0, "oper": [0, 4], "docstr": 0, "ashwin153": 0, "68": 0, "work": [0, 3, 4], "around": [0, 3], "plai": 0, "61": 0, "04": [0, 4], "client": [0, 2], "hunner": 0, "56": 0, "03": 0, "regress": 0, "eventsapisess": [0, 2, 3, 4], "post": [0, 3, 4], "defin": [0, 3, 4], "bodi": [0, 3, 4], "json": [0, 3, 4], "without": [0, 3, 4], "routing_kei": [0, 3, 4], "possibl": [0, 1], "befor": [0, 1, 3, 4], "x": [0, 4], "rout": 0, "kei": [0, 3, 4], "header": [0, 2, 3], "undocu": 0, "document": [0, 2, 3, 4], "v2": [0, 2, 3], "53": 0, "arg": [0, 3], "backward": 0, "second": [0, 3, 4], "can": [0, 1, 3, 4], "modul": [0, 2, 4], "ctrlaltdel": 0, "2020": 0, "09": 0, "15": 0, "37": 0, "other": [0, 3, 4], "enhanc": 0, "10000": [0, 3], "encount": [0, 1, 3, 4], "versu": 0, "becaus": [0, 3, 4], "exceed": 0, "elicit": 0, "400": [0, 3, 4], "initi": [0, 2, 3, 4], "offset": [0, 3, 4], "via": [0, 3, 4], "param": [0, 3, 4], "alwai": [0, 1, 3, 4], "start": [0, 3, 4], "capit": [0, 3], "constant": 0, "instead": [0, 3, 4], "none": [0, 3, 4], "32": 0, "08": 0, "idempot": [0, 3, 4], "creator": 0, "dictionari": [0, 3, 4], "have": [0, 1, 3, 4], "self": [0, 3, 4], "place": [0, 4], "oauth": [0, 3], "access": [0, 1, 3, 4], "token": [0, 1, 3, 4], "authent": [0, 2, 3], "23": 0, "indic": [0, 4], "scope": [0, 4], "given": [0, 3, 4], "credenti": [0, 1, 3, 4], "trunc_token": [0, 3], "typo": 0, "attributeerror": 0, "2019": 0, "31": 0, "size": 0, "basi": 0, "_all": 0, "pass": [0, 3, 4], "page_s": [0, 3], "If": [0, 1, 3, 4], "present": 0, "captur": 0, "easier": [0, 3], "identifi": [0, 3, 4], "commun": [0, 1], "pagerduti": [0, 3, 4], "extend": [0, 3], "metadata": [0, 3, 4], "cooldown": [0, 2, 3], "time": [0, 1, 3, 4], "between": [0, 3, 4], "rate": [0, 3, 4], "option": [0, 3], "random": [0, 3, 4], "posit": [0, 3, 4], "number": [0, 1, 3, 4], "departur": 0, "payload": [0, 3], "doe": [0, 1, 3, 4], "merg": [0, 2, 3], "rather": [0, 3], "complet": [0, 2, 3], "behavior": [0, 2, 3], "some": [0, 1, 3, 4], "intern": 0, "tool": [0, 1], "previou": [0, 3], "Not": 0, "intend": [0, 3], "design": [0, 3, 4], "At": [0, 4], "odd": 0, "introduct": 0, "custom": [0, 3, 4], "agent": [0, 3], "distinguish": 0, "purpos": [0, 3], "usag": [0, 2, 3], "analyt": 0, "import": [0, 1, 4], "logic": [0, 3, 4], "keyerror": [0, 4], "incorrect": 0, "more": [0, 3, 4], "than": [0, 3, 4], "amount": [0, 3], "faulti": 0, "comparison": 0, "14": 0, "A": [0, 1, 3, 4], "light": 0, "refactor": 0, "specif": [0, 4], "send": [0, 3, 4], "send_ev": [0, 3], "catch": [0, 3, 4], "incid": [0, 3, 4], "12": 0, "still": [0, 3, 4], "most": [0, 1, 3, 4], "same": [0, 1, 3, 4], "rest": [0, 3], "unpack": 0, "log_entri": 0, "whitelist": 0, "r": [0, 1, 3, 4], "rescind": 0, "how": [0, 3, 4], "help": [0, 1, 3], "thei": [0, 3, 4], "don": 0, "t": [0, 3, 4], "envelop": 0, "auto": [0, 3], "valid": [0, 1, 3, 4], "presenc": [0, 4], "order": [0, 3], "busi": 0, "impact": 0, "metric": 0, "2018": 0, "list_al": [0, 3, 4], "dict_al": [0, 3, 4], "turn": 0, "index": [0, 1, 3, 4], "dict": [0, 3, 4], "save": [0, 4], "bit": 0, "effort": 0, "11": 0, "perform": [0, 2, 3], "multi": [0, 2], "action": [0, 3, 4], "manag": [0, 4], "rput": [0, 3, 4], "receiv": [0, 3, 4], "dure": [0, 3], "report": [1, 3], "welcom": 1, "built": 1, "recommend": [1, 3, 4], "assert": 1, "appropri": [1, 3, 4], "test_pdpyra": 1, "ensur": 1, "coverag": 1, "": [1, 3, 4], "pleas": [1, 3], "reproduc": 1, "along": 1, "themselv": 1, "github": [1, 2], "commit": 1, "To": [1, 3, 4], "abl": 1, "rebuild": 1, "sure": 1, "you": [1, 3], "pip": [1, 4], "your": [1, 4], "shell": 1, "environ": 1, "well": [1, 4], "local": [1, 4], "txt": 1, "root": [1, 3, 4], "repositori": [1, 2], "suit": 1, "rst": 1, "file": 1, "sphinx": 1, "sourc": [1, 3, 4], "where": [1, 3, 4], "live": 1, "html": 1, "doc": [1, 3], "forc": 1, "touch": 1, "changelog": [1, 2], "account": [1, 3, 4], "both": [1, 3, 4], "pypi": [1, 2], "org": 1, "maintain": 1, "role": 1, "project": [1, 2], "see": [1, 3, 4], "abov": [1, 4], "It": [1, 3, 4], "strongli": 1, "upload": 1, "onc": [1, 3, 4], "even": 1, "delet": [1, 2, 3], "For": [1, 3, 4], "reason": 1, "good": 1, "idea": 1, "suffix": [1, 3], "dev001": 1, "__version__": 1, "while": [1, 2], "enter": 1, "prompt": 1, "testpublish": 1, "target": [1, 4], "egg": 1, "dist": 1, "librari": [1, 4], "temporari": [1, 3], "virtualenv": 1, "alreadi": [1, 3, 4], "upgrad": 1, "script": 1, "immedi": [1, 3, 4], "exit": [1, 3], "investig": 1, "mitig": 1, "again": 1, "temporarili": 1, "count": [1, 3], "get": [1, 3, 4], "desir": [1, 4], "actual": [1, 3], "creat": [1, 2, 3], "least": 1, "item": [1, 3], "correspond": [1, 3, 4], "parenthes": 1, "handl": [1, 2], "contributor": 1, "slash": [1, 3, 4], "link": [1, 3], "preexist": [1, 3], "exampl": [1, 2, 3], "semant": 1, "rebuilt": 1, "view": 1, "open": [1, 4], "web": [1, 3, 4], "browser": 1, "review": 1, "approv": 1, "Then": 1, "checkout": 1, "main": [1, 4], "git": 1, "origin": [1, 4], "c": 1, "push": 1, "clone": 1, "branch": 1, "check": [1, 3], "latest": [1, 4], "avail": [1, 4], "tree": 1, "clean": 1, "uncommit": 1, "__token__": 1, "usernam": 1, "password": 1, "final": [1, 4], "fill": 1, "detail": [1, 3, 4], "select": 1, "choos": 1, "being": [1, 3, 4], "major": 1, "veri": [1, 4], "brief": [1, 3], "summari": [1, 3, 4], "compos": [1, 3, 4], "descript": [1, 3], "whose": [1, 3, 4], "refer": [2, 4], "guid": [2, 3], "instal": 2, "u": 2, "servic": 2, "region": 2, "basic": 2, "data": [2, 3], "schema": [2, 3], "awar": [2, 3], "classic": [2, 3], "pattern": [2, 3], "special": [2, 3], "proxi": 2, "server": [2, 3], "exponenti": 2, "pdservererror": [2, 3], "urlerror": [2, 3], "canonical_path": [2, 3], "cursor_based_pagination_path": [2, 3], "entity_wrapper_config": [2, 3, 4], "iteration_limit": [2, 3], "text_len_limit": [2, 3], "helper": 2, "contribut": 2, "run": [2, 4], "unit": 2, "test": 2, "publish": [2, 4], "tag": 2, "cover": 3, "individu": [3, 4], "api_kei": [3, 4], "str": 3, "debug": [3, 4], "opinion": 3, "few": 3, "addit": [3, 4], "reattempt": 3, "increas": [3, 4], "interv": 3, "attempt": [3, 4], "through": [3, 4], "hoc": 3, "verb": 3, "doesn": [3, 4], "prepend": 3, "permitted_method": 3, "bool": 3, "true": [3, 4], "command": [3, 4], "line": [3, 4], "output": [3, 4], "after_set_api_kei": 3, "setter": 3, "hook": 3, "child": 3, "step": [3, 4], "getter": 3, "_api_kei": 3, "auth_head": 3, "By": [3, 4], "handler": [3, 4], "emit": 3, "max_http_attempt": [3, 4], "status": [3, 4], "greater": 3, "zero": 3, "max_network_attempt": [3, 4], "connect": 3, "treat": 3, "failur": 3, "happen": [3, 4], "normalize_param": 3, "modifi": [3, 4], "current": 3, "append": [3, 4], "keep": [3, 4], "normalize_url": 3, "whether": [3, 4], "super": 3, "tupl": 3, "permit": 3, "put": [3, 4], "postprocess": 3, "supplement": 3, "prepare_head": 3, "user_head": 3, "upper": 3, "overrid": [3, 4], "flag": 3, "notset": [3, 4], "thu": [3, 4], "toggl": 3, "disabl": [3, 4], "wai": [3, 4], "product": [3, 4], "kwarg": 3, "insensit": 3, "mai": [3, 4], "one": [3, 4], "each": [3, 4], "reflect": 3, "must": [3, 4], "separ": 3, "int": 3, "repres": [3, 4], "infinit": 3, "n": [3, 4], "up": [3, 4], "total": [3, 4], "whichev": 3, "mani": [3, 4], "success": [3, 4], "wait": [3, 4], "factor": [3, 4], "sleep_timer_bas": [3, 4], "429": [3, 4], "sleep_tim": [3, 4], "followup": 3, "delai": 3, "equal": 3, "power": 3, "far": 3, "unless": [3, 4], "nonzero": [3, 4], "sleep": [3, 4], "adjust": 3, "plu": [3, 4], "uniformli": 3, "top": 3, "timer": 3, "overal": 3, "wherea": 3, "just": 3, "avoid": [3, 4], "thunder": 3, "herd": 3, "potenti": 3, "simultan": 3, "concurr": 3, "consequ": 3, "consist": 3, "sent": [3, 4], "tcp": 3, "read": [3, 4], "trunc_kei": 3, "truncat": 3, "secur": 3, "displai": 3, "identif": 3, "default_from": [3, 4], "auth_typ": [3, 4], "oft": 3, "aspect": 3, "email": [3, 4], "oauth2": [3, 4], "bearer": 3, "member": 3, "api_call_count": 3, "record": [3, 4], "memoiz": 3, "Will": 3, "permiss": 3, "ui": 3, "global": 3, "administr": [3, 4], "api_tim": 3, "default_page_s": 3, "100": [3, 4], "kw": 3, "With": 3, "further": 3, "uniqu": [3, 4], "distinct": 3, "omit": 3, "find": [3, 4], "exactli": [3, 4], "found": [3, 4], "structur": [3, 4], "entri": [3, 4], "arrai": [3, 4], "otherwis": [3, 4], "expect": [3, 4], "ignor": 3, "take": [3, 4], "much": 3, "constrain": 3, "those": [3, 4], "everi": 3, "download": [3, 4], "compar": 3, "against": 3, "until": [3, 4], "escalation_polici": [3, 4], "search": [3, 4], "item_hook": 3, "content": [3, 4], "pagint": 3, "k": [3, 4], "numer": [3, 4], "alter": 3, "preced": [3, 4], "differ": [3, 4], "dictat": 3, "what": [3, 4], "callabl": 3, "invok": 3, "progress": 3, "three": [3, 4], "seri": 3, "isn": 3, "knowabl": 3, "third": 3, "leav": 3, "confer": 3, "small": 3, "advantag": 3, "comput": 3, "jget": [3, 4], "decod": [3, 4], "jpost": 3, "jput": 3, "directli": [3, 4], "attr": 3, "pair": [3, 4], "underli": [3, 4], "ap": 3, "contain": [3, 4], "inform": 3, "about": [3, 4], "rdelet": 3, "retriev": 3, "represent": [3, 4], "rpost": [3, 4], "subdomain": 3, "total_call_count": 3, "total_call_tim": 3, "spent": 3, "com": [3, 4], "acknowledg": [3, 4], "dedup_kei": [3, 4], "alert": [3, 4], "dedupl": [3, 4], "state": [3, 4], "resolv": [3, 4], "develop": 3, "associ": 3, "would": [3, 4], "sever": 3, "critic": 3, "custom_detail": 3, "imag": 3, "wrong": 3, "human": 3, "readabl": 3, "system": [3, 4], "affect": [3, 4], "conjunct": 3, "regard": 3, "send_change_ev": 3, "iso8601": 3, "date": 3, "impli": 3, "sole": 3, "experienc": 3, "4xx": 3, "descend": [3, 4], "backend": 3, "successfulli": 3, "cleanli": 3, "guarante": 3, "its": [3, 4], "denot": 3, "thing": 3, "wherein": 3, "recevi": 3, "try": [3, 4], "pabc123": [3, 4], "status_cod": [3, 4], "els": [3, 4], "write": [3, 4], "fail": 3, "earli": 3, "ga": 3, "5xx": [3, 4], "unsupport": 3, "malform": 3, "input": 3, "These": 3, "There": 3, "explicit": 3, "antipattern": 3, "convent": [3, 4], "infer": 3, "infer_entity_wrapp": 3, "therefor": [3, 4], "properli": 3, "space": 3, "either": [3, 4], "marshal": 3, "unmarsh": 3, "unwrap": [3, 4], "under": [3, 4], "said": [3, 4], "transmit": 3, "apart": 3, "secondari": 3, "bear": [3, 4], "discard": [3, 4], "prevent": 3, "maximum": [3, 4], "exce": 3, "enforc": 3, "side": 3, "someth": 3, "longest": 3, "length": 3, "own": 3, "typic": [3, 4], "benefit": 3, "anyon": 3, "who": 3, "relat": 3, "base_url": 3, "classifi": 3, "accord": [3, 4], "particular": [3, 4], "within": 3, "belong": 3, "part": [3, 4], "shown": 3, "contact_method": 3, "contact": 3, "normal": [3, 4], "full": [3, 4], "endpoint_match": 3, "endpoint_pattern": 3, "uppercas": 3, "boolean": 3, "is_path_param": 3, "path_nod": 3, "node": [3, 4], "rel": [3, 4], "baseurl": 3, "exclud": 3, "trail": 3, "entity_wrapp": 3, "obtain": [3, 4], "element": 3, "signal": 3, "unmodifi": 3, "orthodox": 3, "broadli": 3, "univers": 3, "predict": 3, "subclass": [3, 4], "auto_json": 3, "requires_success": 3, "resource_url": 3, "itself": [3, 4], "elimin": 3, "re": 3, "construct": [3, 4], "wrapped_ent": 3, "encod": [3, 4], "reform": 3, "miscellan": 3, "deprecated_kwarg": 3, "deprecated_nam": 3, "http_error_messag": 3, "context": [3, 4], "describ": 3, "last_4": 3, "secret": [3, 4], "abbrevi": 3, "plural_nam": 3, "obj_typ": 3, "plural": [3, 4], "user_refer": [3, 4], "last": [3, 4], "successful_respons": 3, "truncate_text": 3, "text": 3, "try_decod": 3, "topic": 4, "depth": 4, "altern": 4, "directori": 4, "session_oauth": 4, "oauth_token": 4, "events_sess": 4, "change_events_sess": 4, "do_appl": 4, "integr": 4, "menu": 4, "tab": 4, "profil": 4, "deriv": 4, "necessari": 4, "eu": 4, "outsid": 4, "ok": 4, "collect": 4, "convert": 4, "sn": 4, "look": 4, "jane": 4, "example35": 4, "updated_us": 4, "user_data": 4, "user123": 4, "mcuserson": 4, "paramt": 4, "assign": 4, "user_id": 4, "phij789": 4, "updated_incid": 4, "fire": 4, "dusti": 4, "old": 4, "net": 4, "abc123": 4, "finish": 4, "head": 4, "autom": 4, "sinc": 4, "similar": 4, "analog": 4, "j": 4, "though": 4, "howev": 4, "lead": 4, "One": 4, "strip": 4, "As": 4, "everyth": 4, "simpli": 4, "serial": 4, "first_dan": 4, "dan": 4, "v4": 4, "82": 4, "foo": 4, "foo_servic": 4, "team": 4, "50": 4, "5b": 4, "5d": 4, "plain": 4, "That": 4, "uuid": 4, "encapsul": 4, "insid": 4, "articl": 4, "analogu": 4, "speak": 4, "consid": 4, "escal": 4, "polici": 4, "ep": 4, "escalation_rul": 4, "daili": 4, "engin": 4, "rotat": 4, "rule": 4, "new_rul": 4, "escalation_delay_in_minut": 4, "30": 4, "pam4fg": 4, "pi7dh85": 4, "schedule_refer": 4, "respect": 4, "respond": 4, "anoth": 4, "singl": 4, "extract": 4, "singular": 4, "noun": 4, "prior": 4, "On": 4, "equival": 4, "decid": 4, "store": 4, "point": 4, "control": 4, "business_servic": 4, "subscrib": 4, "subscript": 4, "unusu": 4, "vice": 4, "versa": 4, "schedul": 4, "incient": 4, "status_upd": 4, "created_overrid": 4, "pghi789": 4, "01t00": 4, "00": 4, "02t00": 4, "peysgva": 4, "time_zon": 4, "utc": 4, "03t00": 4, "peysgvf": 4, "201": 4, "fetch": 4, "dav": 4, "dave": 4, "david": 4, "bob": 4, "synchron": 4, "multipl": 4, "thread": 4, "higher": 4, "moreov": 4, "larg": 4, "volum": 4, "wise": 4, "erron": 4, "condit": 4, "sort": 4, "real": 4, "recalcul": 4, "skip": 4, "repeat": 4, "accordingli": 4, "process": 4, "manual": 4, "edit": 4, "elabor": 4, "let": 4, "sai": 4, "notebook": 4, "essenti": 4, "go": 4, "101st": 4, "201st": 4, "etc": 4, "tear": 4, "shift": 4, "becom": 4, "hundr": 4, "over": 4, "similarli": 4, "401": 4, "500": 4, "601": 4, "700": 4, "attach": 4, "opposit": 4, "bump": 4, "group": 4, "prioriti": 4, "yet": 4, "two": 4, "pdef456": 4, "incident_refer": 4, "effici": 4, "login": 4, "differenti": 4, "pertain": 4, "404": 4, "pjkl678": 4, "introduc": 4, "Its": 4, "unconfigur": 4, "defer": 4, "left": 4, "discret": 4, "later": 4, "streamhandl": 4, "host": 4, "traffic": 4, "42": 4, "187": 4, "port": 4, "4012": 4, "protocol": 4, "unsuccess": 4, "loop": 4, "period": 4, "\u03c1": 4, "indefinit": 4, "cannot": 4, "overridden": 4, "sane": 4, "approach": 4, "ever": 4, "too": 4, "natur": 4, "rogu": 4, "satur": 4, "unauthor": 4, "invalid": 4, "prefer": 4, "hang": 4, "continu": 4, "502": 4, "toler": 4, "supersed": 4, "lower": 4, "carri": 4, "four": 4, "8": 4, "16": 4, "paus": 4, "won": 4, "pnoexst": 4, "62": 4, "6": 4}, "objects": {"": [[3, 0, 0, "module-3", "pdpyras"]], "pdpyras": [[3, 1, 1, "", "APISession"], [3, 5, 1, "", "CANONICAL_PATHS"], [3, 5, 1, "", "CURSOR_BASED_PAGINATION_PATHS"], [3, 1, 1, "", "ChangeEventsAPISession"], [3, 5, 1, "", "ENTITY_WRAPPER_CONFIG"], [3, 1, 1, "", "EventsAPISession"], [3, 5, 1, "", "ITERATION_LIMIT"], [3, 1, 1, "", "PDClientError"], [3, 1, 1, "", "PDHTTPError"], [3, 1, 1, "", "PDServerError"], [3, 1, 1, "", "PDSession"], [3, 5, 1, "", "TEXT_LEN_LIMIT"], [3, 5, 1, "", "TIMEOUT"], [3, 1, 1, "", "URLError"], [3, 6, 1, "", "auto_json"], [3, 6, 1, "", "canonical_path"], [3, 6, 1, "", "deprecated_kwarg"], [3, 6, 1, "", "endpoint_matches"], [3, 6, 1, "", "entity_wrappers"], [3, 6, 1, "", "http_error_message"], [3, 6, 1, "", "infer_entity_wrapper"], [3, 6, 1, "", "is_path_param"], [3, 6, 1, "", "last_4"], [3, 6, 1, "", "normalize_url"], [3, 6, 1, "", "plural_name"], [3, 6, 1, "", "requires_success"], [3, 6, 1, "", "resource_url"], [3, 6, 1, "", "successful_response"], [3, 6, 1, "", "truncate_text"], [3, 6, 1, "", "try_decoding"], [3, 6, 1, "", "unwrap"], [3, 6, 1, "", "wrapped_entities"]], "pdpyras.APISession": [[3, 2, 1, "", "api_call_counts"], [3, 3, 1, "", "api_key_access"], [3, 2, 1, "", "api_time"], [3, 3, 1, "", "auth_type"], [3, 2, 1, "", "default_from"], [3, 2, 1, "", "default_page_size"], [3, 4, 1, "", "dict_all"], [3, 4, 1, "", "find"], [3, 4, 1, "", "iter_all"], [3, 4, 1, "", "iter_cursor"], [3, 4, 1, "", "jget"], [3, 4, 1, "", "jpost"], [3, 4, 1, "", "jput"], [3, 4, 1, "", "list_all"], [3, 4, 1, "", "persist"], [3, 4, 1, "", "postprocess"], [3, 4, 1, "", "rdelete"], [3, 4, 1, "", "rget"], [3, 4, 1, "", "rpost"], [3, 4, 1, "", "rput"], [3, 3, 1, "", "subdomain"], [3, 3, 1, "", "total_call_count"], [3, 3, 1, "", "total_call_time"], [3, 3, 1, "", "trunc_token"], [3, 2, 1, "", "url"]], "pdpyras.ChangeEventsAPISession": [[3, 4, 1, "", "prepare_headers"], [3, 4, 1, "", "send_change_event"], [3, 4, 1, "", "submit"]], "pdpyras.EventsAPISession": [[3, 4, 1, "", "acknowledge"], [3, 4, 1, "", "post"], [3, 4, 1, "", "prepare_headers"], [3, 4, 1, "", "resolve"], [3, 4, 1, "", "send_event"], [3, 4, 1, "", "trigger"]], "pdpyras.PDClientError": [[3, 2, 1, "", "response"]], "pdpyras.PDSession": [[3, 4, 1, "", "after_set_api_key"], [3, 3, 1, "", "api_key"], [3, 3, 1, "", "auth_header"], [3, 2, 1, "", "log"], [3, 2, 1, "", "max_http_attempts"], [3, 2, 1, "", "max_network_attempts"], [3, 4, 1, "", "normalize_params"], [3, 4, 1, "", "normalize_url"], [3, 2, 1, "", "parent"], [3, 2, 1, "", "permitted_methods"], [3, 4, 1, "", "postprocess"], [3, 4, 1, "", "prepare_headers"], [3, 3, 1, "", "print_debug"], [3, 4, 1, "", "request"], [3, 2, 1, "", "retry"], [3, 2, 1, "", "sleep_timer"], [3, 2, 1, "", "sleep_timer_base"], [3, 3, 1, "", "stagger_cooldown"], [3, 2, 1, "", "timeout"], [3, 3, 1, "", "trunc_key"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:property", "4": "py:method", "5": "py:data", "6": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "property", "Python property"], "4": ["py", "method", "Python method"], "5": ["py", "data", "Python data"], "6": ["py", "function", "Python function"]}, "titleterms": {"changelog": 0, "contribut": 1, "guid": [1, 4], "initi": 1, "setup": 1, "run": 1, "unit": 1, "test": 1, "updat": [1, 4], "document": 1, "releas": 1, "new": 1, "version": 1, "perform": [1, 4], "end": 1, "publish": 1, "instal": [1, 4], "merg": 1, "chang": 1, "tag": 1, "pdpyra": 2, "pagerduti": 2, "python": 2, "rest": [2, 4], "api": [2, 3, 4], "session": 2, "extern": 2, "resourc": [2, 4], "tabl": 2, "content": 2, "modul": 3, "refer": 3, "client": [3, 4], "class": 3, "error": [3, 4], "default": [3, 4], "function": [3, 4], "url": [3, 4], "handl": [3, 4], "entiti": [3, 4], "wrap": [3, 4], "decor": 3, "helper": 3, "user": 4, "authent": 4, "The": 4, "from": 4, "header": 4, "us": 4, "non": 4, "u": 4, "servic": 4, "region": 4, "basic": 4, "usag": 4, "exampl": 4, "v2": 4, "event": 4, "gener": 4, "featur": 4, "queri": 4, "paramet": 4, "request": 4, "respons": 4, "data": 4, "type": 4, "schema": 4, "awar": 4, "classic": 4, "pattern": 4, "special": 4, "case": 4, "pagin": 4, "complet": 4, "result": 4, "creat": 4, "delet": 4, "while": 4, "multi": 4, "log": 4, "proxi": 4, "server": 4, "http": 4, "retri": 4, "configur": 4, "exponenti": 4, "cooldown": 4, "behavior": 4, "set": 4, "properti": 4}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 57}, "alltitles": {"Contribution Guide": [[1, "contribution-guide"]], "Initial Setup": [[1, "initial-setup"]], "Running Unit Tests": [[1, "running-unit-tests"]], "Updating Documentation": [[1, "updating-documentation"]], "Releasing a New Version": [[1, "releasing-a-new-version"]], "Perform end-to-end publish and installation testing": [[1, "perform-end-to-end-publish-and-installation-testing"]], "Merge changes and tag": [[1, "merge-changes-and-tag"]], "Publishing": [[1, "publishing"]], "Module Reference": [[3, "module-reference"]], "API Client Classes": [[3, "api-client-classes"]], "Errors": [[3, "errors"]], "Client Defaults": [[3, "client-defaults"]], "Functions": [[3, "functions"]], "URL Handling": [[3, "url-handling"]], "Entity Wrapping": [[3, "entity-wrapping"], [4, "entity-wrapping"]], "Function Decorators": [[3, "function-decorators"]], "Helpers": [[3, "helpers"]], "Changelog": [[0, "changelog"]], "PDPYRAS: PagerDuty Python REST API Sessions": [[2, "pdpyras-pagerduty-python-rest-api-sessions"]], "External Resources": [[2, "external-resources"]], "Table of Contents": [[2, "table-of-contents"]], "User Guide": [[4, "user-guide"]], "Installation": [[4, "installation"]], "Authentication": [[4, "authentication"]], "The From header": [[4, "the-from-header"]], "Using Non-US Service Regions": [[4, "using-non-us-service-regions"]], "Basic Usage Examples": [[4, "basic-usage-examples"]], "REST API v2": [[4, "rest-api-v2"]], "Events API v2": [[4, "events-api-v2"]], "Generic Client Features": [[4, "generic-client-features"]], "URLs": [[4, "urls"]], "Query Parameters": [[4, "query-parameters"]], "Requests and Responses": [[4, "requests-and-responses"]], "Data types": [[4, "data-types"]], "Resource schemas": [[4, "resource-schemas"]], "Wrapped-entity-aware Functions": [[4, "wrapped-entity-aware-functions"]], "Classic Patterns": [[4, "classic-patterns"]], "Special Cases": [[4, "special-cases"]], "Pagination": [[4, "pagination"]], "Performance and Completeness of Results": [[4, "performance-and-completeness-of-results"]], "Updating, creating or deleting while paginating": [[4, "updating-creating-or-deleting-while-paginating"]], "Multi-updating": [[4, "multi-updating"]], "Error Handling": [[4, "error-handling"]], "Logging": [[4, "logging"]], "Using a Proxy Server": [[4, "using-a-proxy-server"]], "HTTP Retry Configuration": [[4, "http-retry-configuration"]], "Exponential Cooldown": [[4, "exponential-cooldown"]], "Default Behavior": [[4, "default-behavior"]], "Setting the retry property": [[4, "setting-the-retry-property"]]}, "indexentries": {"apisession (class in pdpyras)": [[3, "pdpyras.APISession"]], "canonical_paths (in module pdpyras)": [[3, "pdpyras.CANONICAL_PATHS"]], "cursor_based_pagination_paths (in module pdpyras)": [[3, "pdpyras.CURSOR_BASED_PAGINATION_PATHS"]], "changeeventsapisession (class in pdpyras)": [[3, "pdpyras.ChangeEventsAPISession"]], "entity_wrapper_config (in module pdpyras)": [[3, "pdpyras.ENTITY_WRAPPER_CONFIG"]], "eventsapisession (class in pdpyras)": [[3, "pdpyras.EventsAPISession"]], "iteration_limit (in module pdpyras)": [[3, "pdpyras.ITERATION_LIMIT"]], "pdclienterror (class in pdpyras)": [[3, "pdpyras.PDClientError"]], "pdhttperror (class in pdpyras)": [[3, "pdpyras.PDHTTPError"]], "pdservererror (class in pdpyras)": [[3, "pdpyras.PDServerError"]], "pdsession (class in pdpyras)": [[3, "pdpyras.PDSession"]], "text_len_limit (in module pdpyras)": [[3, "pdpyras.TEXT_LEN_LIMIT"]], "timeout (in module pdpyras)": [[3, "pdpyras.TIMEOUT"]], "urlerror (class in pdpyras)": [[3, "pdpyras.URLError"]], "acknowledge() (pdpyras.eventsapisession method)": [[3, "pdpyras.EventsAPISession.acknowledge"]], "after_set_api_key() (pdpyras.pdsession method)": [[3, "pdpyras.PDSession.after_set_api_key"]], "api_call_counts (pdpyras.apisession attribute)": [[3, "pdpyras.APISession.api_call_counts"]], "api_key (pdpyras.pdsession property)": [[3, "pdpyras.PDSession.api_key"]], "api_key_access (pdpyras.apisession property)": [[3, "pdpyras.APISession.api_key_access"]], "api_time (pdpyras.apisession attribute)": [[3, "pdpyras.APISession.api_time"]], "auth_header (pdpyras.pdsession property)": [[3, "pdpyras.PDSession.auth_header"]], "auth_type (pdpyras.apisession property)": [[3, "pdpyras.APISession.auth_type"]], "auto_json() (in module pdpyras)": [[3, "pdpyras.auto_json"]], "canonical_path() (in module pdpyras)": [[3, "pdpyras.canonical_path"]], "default_from (pdpyras.apisession attribute)": [[3, "pdpyras.APISession.default_from"]], "default_page_size (pdpyras.apisession attribute)": [[3, "pdpyras.APISession.default_page_size"]], "deprecated_kwarg() (in module pdpyras)": [[3, "pdpyras.deprecated_kwarg"]], "dict_all() (pdpyras.apisession method)": [[3, "pdpyras.APISession.dict_all"]], "endpoint_matches() (in module pdpyras)": [[3, "pdpyras.endpoint_matches"]], "entity_wrappers() (in module pdpyras)": [[3, "pdpyras.entity_wrappers"]], "find() (pdpyras.apisession method)": [[3, "pdpyras.APISession.find"]], "http_error_message() (in module pdpyras)": [[3, "pdpyras.http_error_message"]], "infer_entity_wrapper() (in module pdpyras)": [[3, "pdpyras.infer_entity_wrapper"]], "is_path_param() (in module pdpyras)": [[3, "pdpyras.is_path_param"]], "iter_all() (pdpyras.apisession method)": [[3, "pdpyras.APISession.iter_all"]], "iter_cursor() (pdpyras.apisession method)": [[3, "pdpyras.APISession.iter_cursor"]], "jget() (pdpyras.apisession method)": [[3, "pdpyras.APISession.jget"]], "jpost() (pdpyras.apisession method)": [[3, "pdpyras.APISession.jpost"]], "jput() (pdpyras.apisession method)": [[3, "pdpyras.APISession.jput"]], "last_4() (in module pdpyras)": [[3, "pdpyras.last_4"]], "list_all() (pdpyras.apisession method)": [[3, "pdpyras.APISession.list_all"]], "log (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.log"]], "max_http_attempts (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.max_http_attempts"]], "max_network_attempts (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.max_network_attempts"]], "module": [[3, "module-0"], [3, "module-1"], [3, "module-2"], [3, "module-3"], [3, "module-pdpyras"]], "normalize_params() (pdpyras.pdsession method)": [[3, "pdpyras.PDSession.normalize_params"]], "normalize_url() (in module pdpyras)": [[3, "pdpyras.normalize_url"]], "normalize_url() (pdpyras.pdsession method)": [[3, "pdpyras.PDSession.normalize_url"]], "parent (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.parent"]], "pdpyras": [[3, "module-0"], [3, "module-1"], [3, "module-2"], [3, "module-3"], [3, "module-pdpyras"]], "permitted_methods (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.permitted_methods"]], "persist() (pdpyras.apisession method)": [[3, "pdpyras.APISession.persist"]], "plural_name() (in module pdpyras)": [[3, "pdpyras.plural_name"]], "post() (pdpyras.eventsapisession method)": [[3, "pdpyras.EventsAPISession.post"]], "postprocess() (pdpyras.apisession method)": [[3, "pdpyras.APISession.postprocess"]], "postprocess() (pdpyras.pdsession method)": [[3, "pdpyras.PDSession.postprocess"]], "prepare_headers() (pdpyras.changeeventsapisession method)": [[3, "pdpyras.ChangeEventsAPISession.prepare_headers"]], "prepare_headers() (pdpyras.eventsapisession method)": [[3, "pdpyras.EventsAPISession.prepare_headers"]], "prepare_headers() (pdpyras.pdsession method)": [[3, "pdpyras.PDSession.prepare_headers"]], "print_debug (pdpyras.pdsession property)": [[3, "pdpyras.PDSession.print_debug"]], "rdelete() (pdpyras.apisession method)": [[3, "pdpyras.APISession.rdelete"]], "request() (pdpyras.pdsession method)": [[3, "pdpyras.PDSession.request"]], "requires_success() (in module pdpyras)": [[3, "pdpyras.requires_success"]], "resolve() (pdpyras.eventsapisession method)": [[3, "pdpyras.EventsAPISession.resolve"]], "resource_url() (in module pdpyras)": [[3, "pdpyras.resource_url"]], "response (pdpyras.pdclienterror attribute)": [[3, "pdpyras.PDClientError.response"]], "retry (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.retry"]], "rget() (pdpyras.apisession method)": [[3, "pdpyras.APISession.rget"]], "rpost() (pdpyras.apisession method)": [[3, "pdpyras.APISession.rpost"]], "rput() (pdpyras.apisession method)": [[3, "pdpyras.APISession.rput"]], "send_change_event() (pdpyras.changeeventsapisession method)": [[3, "pdpyras.ChangeEventsAPISession.send_change_event"]], "send_event() (pdpyras.eventsapisession method)": [[3, "pdpyras.EventsAPISession.send_event"]], "sleep_timer (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.sleep_timer"]], "sleep_timer_base (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.sleep_timer_base"]], "stagger_cooldown (pdpyras.pdsession property)": [[3, "pdpyras.PDSession.stagger_cooldown"]], "subdomain (pdpyras.apisession property)": [[3, "pdpyras.APISession.subdomain"]], "submit() (pdpyras.changeeventsapisession method)": [[3, "pdpyras.ChangeEventsAPISession.submit"]], "successful_response() (in module pdpyras)": [[3, "pdpyras.successful_response"]], "timeout (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.timeout"]], "total_call_count (pdpyras.apisession property)": [[3, "pdpyras.APISession.total_call_count"]], "total_call_time (pdpyras.apisession property)": [[3, "pdpyras.APISession.total_call_time"]], "trigger() (pdpyras.eventsapisession method)": [[3, "pdpyras.EventsAPISession.trigger"]], "trunc_key (pdpyras.pdsession property)": [[3, "pdpyras.PDSession.trunc_key"]], "trunc_token (pdpyras.apisession property)": [[3, "pdpyras.APISession.trunc_token"]], "truncate_text() (in module pdpyras)": [[3, "pdpyras.truncate_text"]], "try_decoding() (in module pdpyras)": [[3, "pdpyras.try_decoding"]], "unwrap() (in module pdpyras)": [[3, "pdpyras.unwrap"]], "url (pdpyras.apisession attribute)": [[3, "pdpyras.APISession.url"]], "wrapped_entities() (in module pdpyras)": [[3, "pdpyras.wrapped_entities"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["changelog", "contributing", "index", "module_reference", "user_guide"], "filenames": ["changelog.rst", "contributing.rst", "index.rst", "module_reference.rst", "user_guide.rst"], "titles": ["Changelog", "Contribution Guide", "PDPYRAS: PagerDuty Python REST API Sessions", "Module Reference", "User Guide"], "terms": {"2023": [0, 4], "09": 0, "12": 0, "version": [0, 2, 3, 4], "5": [0, 1, 3, 4], "1": [0, 1, 3, 4], "2": [0, 3, 4], "address": [0, 3, 4], "issu": [0, 1, 3, 4], "115": 0, "ad": [0, 1, 3, 4], "default": [0, 2], "valu": [0, 3, 4], "pdpyra": [0, 1, 3, 4], "pdsession": [0, 2, 3, 4], "retri": [0, 2, 3], "event": [0, 2, 3], "chang": [0, 2, 3, 4], "api": [0, 1], "client": [0, 2], "class": [0, 1, 2, 4], "upgrad": [0, 1], "ci": 0, "imag": [0, 3], "add": [0, 1, 3, 4], "support": [0, 3, 4], "python": [0, 1, 4], "3": [0, 3, 4], "11": 0, "07": [0, 4], "18": 0, "fix": [0, 1], "bug": [0, 1, 3], "us": [0, 1, 2, 3], "iter_al": [0, 3, 4], "an": [0, 1, 3, 4], "endpoint": [0, 3, 4], "cursor": [0, 3, 4], "base": [0, 3, 4], "pagin": [0, 2, 3], "should": [0, 1, 3, 4], "correctli": 0, "call": [0, 3, 4], "out": [0, 1, 4], "iter_cursor": [0, 3, 4], "wa": [0, 3, 4], "make": [0, 1, 3, 4], "remov": [0, 3], "keyword": [0, 3, 4], "argument": [0, 3, 4], "06": 0, "26": [0, 4], "0": [0, 3, 4], "new": [0, 2, 3, 4], "featur": [0, 1, 2, 3], "abil": 0, "specifi": [0, 3, 4], "timestamp": [0, 3], "when": [0, 1, 3, 4], "submit": [0, 3, 4], "suppli": [0, 3, 4], "changeeventsapisess": [0, 2, 3, 4], "explicitli": [0, 3], "includ": [0, 1, 3, 4], "upstream": 0, "except": [0, 3, 4], "caus": [0, 3, 4], "rais": [0, 3, 4], "due": 0, "non": [0, 2, 3], "transient": [0, 3, 4], "network": [0, 3, 4], "error": [0, 1, 2], "break": 0, "deprec": [0, 3, 4], "function": [0, 1, 2], "tokenize_url_path": 0, "resource_envelop": 0, "object_typ": 0, "resource_nam": 0, "raise_on_error": 0, "__init__": 0, "all": [0, 1, 3, 4], "session": [0, 3, 4], "longer": [0, 1, 3, 4], "accept": [0, 3, 4], "name": [0, 1, 3, 4], "apisess": [0, 2, 3, 4], "attribut": [0, 3, 4], "object": [0, 3, 4], "method": [0, 3, 4], "properti": [0, 2, 3], "profiler_kei": 0, "raise_if_http_error": 0, "4": [0, 3, 4], "user": [0, 1, 2, 3], "me": 0, "i": [0, 1, 3, 4], "also": [0, 1, 3, 4], "ambigu": 0, "match": [0, 3, 4], "canon": [0, 3], "path": [0, 1, 3, 4], "id": [0, 3, 4], "solut": 0, "asmith": 0, "pd": 0, "short": [0, 3, 4], "circuit": [0, 3], "exact": [0, 3], "url": [0, 2], "05": 0, "17": 0, "incorpor": [0, 4], "bugfix": 0, "from": [0, 1, 2, 3], "103": 0, "av1m": 0, "gener": [0, 2, 3], "behind": 0, "102": 0, "unsaf": 0, "mix": 0, "string": [0, 3, 4], "format": [0, 3], "style": 0, "In": [0, 3, 4], "http": [0, 2, 3], "exhaust": 0, "messag": [0, 1, 3, 4], "print": [0, 1, 3, 4], "onli": [0, 3, 4], "limit": [0, 3, 4], "got": 0, "reach": 0, "necessarili": 0, "per": [0, 3, 4], "statu": [0, 3, 4], "01": 0, "note": [0, 1, 3, 4], "ha": [0, 1, 3, 4], "been": [0, 3, 4], "yank": 0, "patch": [0, 1], "releas": [0, 2], "v5": [0, 3, 4], "setup": [0, 2], "py": [0, 1, 4], "assum": [0, 1, 3, 4], "entiti": [0, 2], "wrap": [0, 2], "like": [0, 4], "rget": [0, 3, 4], "now": 0, "print_debug": [0, 3, 4], "enabl": [0, 3, 4], "verbos": [0, 3], "log": [0, 2, 3], "sy": [0, 3, 4], "stderr": [0, 3, 4], "set_api_kei": 0, "end": [0, 2, 3, 4], "v3": 0, "which": [0, 1, 3, 4], "life": 0, "follow": [0, 1, 3, 4], "next": [0, 1, 4], "minor": [0, 1], "them": [0, 1, 3, 4], "trigger": [0, 3, 4], "warn": [0, 3], "constructor": [0, 4], "thi": [0, 3, 4], "previous": 0, "set": [0, 1, 2, 3], "logger": [0, 3, 4], "effect": [0, 3, 4], "could": [0, 3], "fals": [0, 3, 4], "stop": 0, "iter": [0, 3, 4], "after": [0, 1, 3, 4], "first": [0, 1, 3, 4], "page": [0, 2, 3, 4], "result": [0, 2, 3], "wrapper": [0, 3, 4], "The": [0, 1, 2, 3], "determin": [0, 3], "automat": [0, 3, 4], "decor": [0, 2], "allow": [0, 3, 4], "partial": [0, 4], "return": [0, 3, 4], "case": [0, 1, 2, 3], "2022": 0, "10": [0, 3, 4], "13": 0, "request": [0, 1, 2, 3], "timeout": [0, 2, 3], "60": [0, 3], "api_key_access": [0, 3], "implement": [0, 3, 4], "formerli": 0, "parent": [0, 3, 4], "inherit": [0, 3], "did": 0, "need": [0, 1, 3, 4], "packag": [0, 1], "distribut": [0, 3], "build": [0, 1, 4], "02": 0, "22": 0, "yield": [0, 3, 4], "whenev": [0, 4], "pdhttperror": [0, 2, 3, 4], "strictli": [0, 3], "applic": [0, 3, 4], "level": [0, 3, 4], "e": [0, 1, 3, 4], "respons": [0, 2, 3], "v": [0, 1], "pdclienterror": [0, 2, 3, 4], "unnecessari": 0, "depend": [0, 1, 4], "were": 0, "hold": [0, 3], "7": 0, "compat": [0, 4], "squar": [0, 3, 4], "bracket": [0, 3, 4], "queri": [0, 2, 3], "paramet": [0, 2, 3], "ar": [0, 1, 3, 4], "list": [0, 3, 4], "type": [0, 2, 3], "forget": 0, "do": [0, 4], "so": [0, 1, 3, 4], "requir": [0, 1, 3, 4], "filter": [0, 3, 4], "stagger_cooldown": [0, 3, 4], "appli": [0, 3, 4], "form": [0, 3], "retrial": 0, "updat": [0, 2, 3], "persist": [0, 3, 4], "ani": [0, 1, 3, 4], "exist": [0, 1, 3, 4], "resourc": [0, 3], "provid": [0, 3], "2021": 0, "28": 0, "configur": [0, 2, 3], "instanc": [0, 3, 4], "variabl": [0, 3, 4], "suggest": 0, "pull": [0, 1], "48": 0, "made": [0, 3, 4], "badnetmask": 0, "drop": 0, "improv": 0, "code": [0, 1, 3, 4], "sampl": 0, "jackton1": 0, "65": 0, "replac": [0, 3], "escap": 0, "sequenc": 0, "doubl": 0, "splat": 0, "oper": [0, 4], "docstr": 0, "ashwin153": 0, "68": 0, "work": [0, 3, 4], "around": [0, 3], "plai": 0, "61": 0, "04": [0, 4], "hunner": 0, "56": 0, "03": 0, "regress": 0, "eventsapisess": [0, 2, 3, 4], "post": [0, 3, 4], "defin": [0, 3, 4], "bodi": [0, 3, 4], "json": [0, 3, 4], "without": [0, 3, 4], "routing_kei": [0, 3, 4], "possibl": [0, 1], "befor": [0, 1, 3, 4], "x": [0, 4], "rout": 0, "kei": [0, 3, 4], "header": [0, 2, 3], "undocu": 0, "document": [0, 2, 3, 4], "v2": [0, 2, 3], "53": 0, "arg": [0, 3], "backward": 0, "second": [0, 3, 4], "can": [0, 1, 3, 4], "modul": [0, 2, 4], "ctrlaltdel": 0, "2020": 0, "15": 0, "37": 0, "other": [0, 3, 4], "enhanc": 0, "10000": [0, 3], "encount": [0, 1, 3, 4], "versu": 0, "becaus": [0, 3, 4], "exceed": 0, "elicit": 0, "400": [0, 3, 4], "initi": [0, 2, 3, 4], "offset": [0, 3, 4], "via": [0, 3, 4], "param": [0, 3, 4], "alwai": [0, 1, 3, 4], "start": [0, 3, 4], "capit": [0, 3], "constant": 0, "instead": [0, 3, 4], "none": [0, 3, 4], "32": 0, "08": 0, "idempot": [0, 3, 4], "creator": 0, "dictionari": [0, 3, 4], "have": [0, 1, 3, 4], "self": [0, 3, 4], "place": [0, 4], "oauth": [0, 3], "access": [0, 1, 3, 4], "token": [0, 1, 3, 4], "authent": [0, 2, 3], "23": 0, "indic": [0, 4], "scope": [0, 4], "given": [0, 3, 4], "credenti": [0, 1, 3, 4], "trunc_token": [0, 3], "typo": 0, "attributeerror": 0, "2019": 0, "31": 0, "size": 0, "basi": 0, "_all": 0, "pass": [0, 3, 4], "page_s": [0, 3], "If": [0, 1, 3, 4], "present": 0, "captur": 0, "easier": [0, 3], "identifi": [0, 3, 4], "commun": [0, 1], "pagerduti": [0, 3, 4], "extend": [0, 3], "metadata": [0, 3, 4], "cooldown": [0, 2, 3], "time": [0, 1, 3, 4], "between": [0, 3, 4], "rate": [0, 3, 4], "option": [0, 3], "random": [0, 3, 4], "posit": [0, 3, 4], "number": [0, 1, 3, 4], "departur": 0, "payload": [0, 3], "doe": [0, 1, 3, 4], "merg": [0, 2, 3], "rather": [0, 3], "complet": [0, 2, 3], "behavior": [0, 2, 3], "some": [0, 1, 3, 4], "intern": 0, "tool": [0, 1], "previou": [0, 3], "Not": 0, "intend": [0, 3], "design": [0, 3, 4], "At": [0, 4], "odd": 0, "introduct": 0, "custom": [0, 3, 4], "agent": [0, 3], "distinguish": 0, "purpos": [0, 3], "usag": [0, 2, 3], "analyt": 0, "import": [0, 1, 4], "logic": [0, 3, 4], "keyerror": [0, 4], "incorrect": 0, "more": [0, 3, 4], "than": [0, 3, 4], "amount": [0, 3], "faulti": 0, "comparison": 0, "14": 0, "A": [0, 1, 3, 4], "light": 0, "refactor": 0, "specif": [0, 4], "send": [0, 3, 4], "send_ev": [0, 3], "catch": [0, 3, 4], "incid": [0, 3, 4], "still": [0, 3, 4], "most": [0, 1, 3, 4], "same": [0, 1, 3, 4], "rest": [0, 3], "unpack": 0, "log_entri": 0, "whitelist": 0, "r": [0, 1, 3, 4], "rescind": 0, "how": [0, 3, 4], "help": [0, 1, 3], "thei": [0, 3, 4], "don": 0, "t": [0, 3, 4], "envelop": 0, "auto": [0, 3], "valid": [0, 1, 3, 4], "presenc": [0, 4], "order": [0, 3], "busi": 0, "impact": 0, "metric": 0, "2018": 0, "list_al": [0, 3, 4], "dict_al": [0, 3, 4], "turn": 0, "index": [0, 1, 3, 4], "dict": [0, 3, 4], "save": [0, 4], "bit": 0, "effort": 0, "perform": [0, 2, 3], "multi": [0, 2], "action": [0, 3, 4], "manag": [0, 4], "rput": [0, 3, 4], "receiv": [0, 3, 4], "dure": [0, 3], "report": [1, 3], "welcom": 1, "built": 1, "recommend": [1, 3, 4], "assert": 1, "appropri": [1, 3, 4], "test_pdpyra": 1, "ensur": 1, "coverag": 1, "": [1, 3, 4], "pleas": [1, 3], "reproduc": 1, "along": 1, "themselv": 1, "github": [1, 2], "commit": 1, "To": [1, 3, 4], "abl": 1, "rebuild": 1, "sure": 1, "you": [1, 3], "pip": [1, 4], "your": [1, 4], "shell": 1, "environ": 1, "well": [1, 4], "local": [1, 4], "txt": 1, "root": [1, 3, 4], "repositori": [1, 2], "suit": 1, "rst": 1, "file": 1, "sphinx": 1, "sourc": [1, 3, 4], "where": [1, 3, 4], "live": 1, "html": 1, "doc": [1, 3], "forc": 1, "touch": 1, "changelog": [1, 2], "account": [1, 3, 4], "both": [1, 3, 4], "pypi": [1, 2], "org": 1, "maintain": 1, "role": 1, "project": [1, 2], "see": [1, 3, 4], "abov": [1, 4], "It": [1, 3, 4], "strongli": 1, "upload": 1, "onc": [1, 3, 4], "even": 1, "delet": [1, 2, 3], "For": [1, 3, 4], "reason": 1, "good": 1, "idea": 1, "suffix": [1, 3], "dev001": 1, "__version__": 1, "while": [1, 2], "enter": 1, "prompt": 1, "testpublish": 1, "target": [1, 4], "egg": 1, "dist": 1, "librari": [1, 4], "temporari": [1, 3], "virtualenv": 1, "alreadi": [1, 3, 4], "script": 1, "immedi": [1, 3, 4], "exit": [1, 3], "investig": 1, "mitig": 1, "again": 1, "temporarili": 1, "count": [1, 3], "get": [1, 3, 4], "desir": [1, 4], "actual": [1, 3], "creat": [1, 2, 3], "least": 1, "item": [1, 3], "correspond": [1, 3, 4], "parenthes": 1, "handl": [1, 2], "contributor": 1, "slash": [1, 3, 4], "link": [1, 3], "preexist": [1, 3], "exampl": [1, 2, 3], "semant": 1, "rebuilt": 1, "view": 1, "open": [1, 4], "web": [1, 3, 4], "browser": 1, "review": 1, "approv": 1, "Then": 1, "checkout": 1, "main": [1, 4], "git": 1, "origin": [1, 4], "c": 1, "push": 1, "clone": 1, "branch": 1, "check": [1, 3], "latest": [1, 4], "avail": [1, 4], "tree": 1, "clean": 1, "uncommit": 1, "__token__": 1, "usernam": 1, "password": 1, "final": [1, 4], "fill": 1, "detail": [1, 3, 4], "select": 1, "choos": 1, "being": [1, 3, 4], "major": 1, "veri": [1, 4], "brief": [1, 3], "summari": [1, 3, 4], "compos": [1, 3, 4], "descript": [1, 3], "whose": [1, 3, 4], "refer": [2, 4], "guid": [2, 3], "instal": 2, "u": 2, "servic": 2, "region": 2, "basic": 2, "data": [2, 3], "schema": [2, 3], "awar": [2, 3], "classic": [2, 3], "pattern": [2, 3], "special": [2, 3], "proxi": 2, "server": [2, 3], "exponenti": 2, "pdservererror": [2, 3], "urlerror": [2, 3], "canonical_path": [2, 3], "cursor_based_pagination_path": [2, 3], "entity_wrapper_config": [2, 3, 4], "iteration_limit": [2, 3], "text_len_limit": [2, 3], "helper": 2, "contribut": 2, "run": [2, 4], "unit": 2, "test": 2, "publish": [2, 4], "tag": 2, "cover": 3, "individu": [3, 4], "api_kei": [3, 4], "str": 3, "debug": [3, 4], "opinion": 3, "few": 3, "addit": [3, 4], "reattempt": 3, "increas": [3, 4], "interv": 3, "attempt": [3, 4], "through": [3, 4], "hoc": 3, "verb": 3, "doesn": [3, 4], "prepend": 3, "permitted_method": 3, "bool": 3, "true": [3, 4], "command": [3, 4], "line": [3, 4], "output": [3, 4], "after_set_api_kei": 3, "setter": 3, "hook": 3, "child": 3, "step": [3, 4], "getter": 3, "_api_kei": 3, "auth_head": 3, "By": [3, 4], "handler": [3, 4], "emit": 3, "max_http_attempt": [3, 4], "status": [3, 4], "greater": 3, "zero": 3, "max_network_attempt": [3, 4], "connect": 3, "treat": 3, "failur": 3, "happen": [3, 4], "normalize_param": 3, "modifi": [3, 4], "current": 3, "append": [3, 4], "keep": [3, 4], "normalize_url": 3, "whether": [3, 4], "super": 3, "tupl": 3, "permit": 3, "put": [3, 4], "postprocess": 3, "supplement": 3, "prepare_head": 3, "user_head": 3, "upper": 3, "overrid": [3, 4], "flag": 3, "notset": [3, 4], "thu": [3, 4], "toggl": 3, "disabl": [3, 4], "wai": [3, 4], "product": [3, 4], "kwarg": 3, "insensit": 3, "mai": [3, 4], "one": [3, 4], "each": [3, 4], "reflect": 3, "must": [3, 4], "separ": 3, "int": 3, "repres": [3, 4], "infinit": 3, "n": [3, 4], "up": [3, 4], "total": [3, 4], "whichev": 3, "mani": [3, 4], "success": [3, 4], "wait": [3, 4], "factor": [3, 4], "sleep_timer_bas": [3, 4], "429": [3, 4], "sleep_tim": [3, 4], "followup": 3, "delai": 3, "equal": 3, "power": 3, "far": 3, "unless": [3, 4], "nonzero": [3, 4], "sleep": [3, 4], "adjust": 3, "plu": [3, 4], "uniformli": 3, "top": 3, "timer": 3, "overal": 3, "wherea": 3, "just": 3, "avoid": [3, 4], "thunder": 3, "herd": 3, "potenti": 3, "simultan": 3, "concurr": 3, "consequ": 3, "consist": 3, "sent": [3, 4], "tcp": 3, "read": [3, 4], "trunc_kei": 3, "truncat": 3, "secur": 3, "displai": 3, "identif": 3, "default_from": [3, 4], "auth_typ": [3, 4], "oft": 3, "aspect": 3, "email": [3, 4], "oauth2": [3, 4], "bearer": 3, "member": 3, "api_call_count": 3, "record": [3, 4], "memoiz": 3, "Will": 3, "permiss": 3, "ui": 3, "global": 3, "administr": [3, 4], "api_tim": 3, "default_page_s": 3, "100": [3, 4], "kw": 3, "With": 3, "further": 3, "uniqu": [3, 4], "distinct": 3, "omit": 3, "find": [3, 4], "exactli": [3, 4], "found": [3, 4], "structur": [3, 4], "entri": [3, 4], "arrai": [3, 4], "otherwis": [3, 4], "expect": [3, 4], "ignor": 3, "take": [3, 4], "much": 3, "constrain": 3, "those": [3, 4], "everi": 3, "download": [3, 4], "compar": 3, "against": 3, "until": [3, 4], "escalation_polici": [3, 4], "search": [3, 4], "item_hook": 3, "content": [3, 4], "pagint": 3, "k": [3, 4], "numer": [3, 4], "alter": 3, "preced": [3, 4], "differ": [3, 4], "dictat": 3, "what": [3, 4], "callabl": 3, "invok": 3, "progress": 3, "three": [3, 4], "seri": 3, "isn": 3, "knowabl": 3, "third": 3, "leav": 3, "confer": 3, "small": 3, "advantag": 3, "comput": 3, "jget": [3, 4], "decod": [3, 4], "jpost": 3, "jput": 3, "directli": [3, 4], "attr": 3, "pair": [3, 4], "underli": [3, 4], "ap": 3, "contain": [3, 4], "inform": 3, "about": [3, 4], "rdelet": 3, "retriev": 3, "represent": [3, 4], "rpost": [3, 4], "subdomain": 3, "total_call_count": 3, "total_call_tim": 3, "spent": 3, "com": [3, 4], "acknowledg": [3, 4], "dedup_kei": [3, 4], "alert": [3, 4], "dedupl": [3, 4], "state": [3, 4], "resolv": [3, 4], "develop": 3, "associ": 3, "would": [3, 4], "sever": 3, "critic": 3, "custom_detail": 3, "wrong": 3, "human": 3, "readabl": 3, "system": [3, 4], "affect": [3, 4], "conjunct": 3, "regard": 3, "send_change_ev": 3, "iso8601": 3, "date": 3, "impli": 3, "sole": 3, "experienc": 3, "4xx": 3, "descend": [3, 4], "backend": 3, "successfulli": 3, "cleanli": 3, "guarante": 3, "its": [3, 4], "denot": [3, 4], "thing": 3, "wherein": 3, "recevi": 3, "try": [3, 4], "pabc123": [3, 4], "status_cod": [3, 4], "els": [3, 4], "write": [3, 4], "fail": 3, "earli": 3, "ga": 3, "5xx": [3, 4], "unsupport": 3, "malform": 3, "input": 3, "These": 3, "There": 3, "explicit": 3, "antipattern": 3, "convent": [3, 4], "infer": 3, "infer_entity_wrapp": 3, "therefor": [3, 4], "properli": 3, "space": 3, "either": [3, 4], "marshal": 3, "unmarsh": 3, "unwrap": [3, 4], "under": [3, 4], "said": [3, 4], "transmit": 3, "apart": 3, "secondari": 3, "bear": [3, 4], "discard": [3, 4], "prevent": 3, "maximum": [3, 4], "exce": 3, "enforc": 3, "side": 3, "someth": 3, "longest": 3, "length": 3, "own": 3, "typic": [3, 4], "benefit": 3, "anyon": 3, "who": 3, "relat": 3, "base_url": 3, "classifi": 3, "accord": [3, 4], "particular": [3, 4], "within": 3, "belong": 3, "part": [3, 4], "shown": 3, "contact_method": 3, "contact": 3, "normal": [3, 4], "full": [3, 4], "endpoint_match": 3, "endpoint_pattern": 3, "uppercas": 3, "boolean": 3, "is_path_param": 3, "path_nod": 3, "node": [3, 4], "rel": [3, 4], "baseurl": 3, "exclud": 3, "trail": 3, "entity_wrapp": 3, "obtain": [3, 4], "element": 3, "signal": 3, "unmodifi": 3, "orthodox": 3, "broadli": 3, "univers": 3, "predict": 3, "subclass": [3, 4], "auto_json": 3, "requires_success": 3, "resource_url": 3, "itself": [3, 4], "elimin": 3, "re": 3, "construct": [3, 4], "wrapped_ent": 3, "encod": [3, 4], "reform": 3, "miscellan": 3, "deprecated_kwarg": 3, "deprecated_nam": 3, "http_error_messag": 3, "context": [3, 4], "describ": 3, "last_4": 3, "secret": [3, 4], "abbrevi": 3, "plural_nam": 3, "obj_typ": 3, "plural": [3, 4], "user_refer": [3, 4], "last": [3, 4], "successful_respons": 3, "truncate_text": 3, "text": 3, "try_decod": 3, "topic": 4, "depth": 4, "altern": 4, "directori": 4, "session_oauth": 4, "oauth_token": 4, "events_sess": 4, "change_events_sess": 4, "do_appl": 4, "integr": 4, "menu": 4, "tab": 4, "profil": 4, "deriv": 4, "necessari": 4, "eu": 4, "outsid": 4, "ok": 4, "collect": 4, "convert": 4, "sn": 4, "look": 4, "jane": 4, "example35": 4, "updated_us": 4, "user_data": 4, "user123": 4, "mcuserson": 4, "ordinarili": 4, "prior": 4, "paramt": 4, "assign": 4, "user_id": 4, "phij789": 4, "5b": 4, "5d": 4, "updated_incid": 4, "fire": 4, "dusti": 4, "old": 4, "net": 4, "abc123": 4, "finish": 4, "head": 4, "autom": 4, "sinc": 4, "similar": 4, "analog": 4, "j": 4, "though": 4, "howev": 4, "lead": 4, "One": 4, "strip": 4, "As": 4, "everyth": 4, "simpli": 4, "serial": 4, "first_dan": 4, "dan": 4, "v4": 4, "82": 4, "foo": 4, "foo_servic": 4, "team": 4, "50": 4, "plain": 4, "That": 4, "uuid": 4, "encapsul": 4, "insid": 4, "articl": 4, "analogu": 4, "speak": 4, "consid": 4, "escal": 4, "polici": 4, "ep": 4, "escalation_rul": 4, "daili": 4, "engin": 4, "rotat": 4, "rule": 4, "new_rul": 4, "escalation_delay_in_minut": 4, "30": 4, "pam4fg": 4, "pi7dh85": 4, "schedule_refer": 4, "respect": 4, "respond": 4, "anoth": 4, "singl": 4, "extract": 4, "singular": 4, "noun": 4, "On": 4, "equival": 4, "decid": 4, "store": 4, "point": 4, "control": 4, "business_servic": 4, "subscrib": 4, "subscript": 4, "unusu": 4, "vice": 4, "versa": 4, "schedul": 4, "incient": 4, "status_upd": 4, "created_overrid": 4, "pghi789": 4, "01t00": 4, "00": 4, "02t00": 4, "peysgva": 4, "time_zon": 4, "utc": 4, "03t00": 4, "peysgvf": 4, "201": 4, "fetch": 4, "dav": 4, "dave": 4, "david": 4, "bob": 4, "synchron": 4, "multipl": 4, "thread": 4, "higher": 4, "moreov": 4, "larg": 4, "volum": 4, "wise": 4, "erron": 4, "condit": 4, "sort": 4, "real": 4, "recalcul": 4, "skip": 4, "repeat": 4, "accordingli": 4, "process": 4, "manual": 4, "edit": 4, "elabor": 4, "let": 4, "sai": 4, "notebook": 4, "essenti": 4, "go": 4, "101st": 4, "201st": 4, "etc": 4, "tear": 4, "shift": 4, "becom": 4, "hundr": 4, "over": 4, "similarli": 4, "401": 4, "500": 4, "601": 4, "700": 4, "attach": 4, "opposit": 4, "bump": 4, "group": 4, "prioriti": 4, "yet": 4, "two": 4, "pdef456": 4, "incident_refer": 4, "effici": 4, "login": 4, "differenti": 4, "pertain": 4, "404": 4, "pjkl678": 4, "introduc": 4, "Its": 4, "unconfigur": 4, "defer": 4, "left": 4, "discret": 4, "later": 4, "streamhandl": 4, "host": 4, "traffic": 4, "42": 4, "187": 4, "port": 4, "4012": 4, "protocol": 4, "unsuccess": 4, "loop": 4, "period": 4, "\u03c1": 4, "indefinit": 4, "cannot": 4, "overridden": 4, "sane": 4, "approach": 4, "ever": 4, "too": 4, "natur": 4, "rogu": 4, "satur": 4, "unauthor": 4, "invalid": 4, "prefer": 4, "hang": 4, "continu": 4, "502": 4, "toler": 4, "supersed": 4, "lower": 4, "carri": 4, "four": 4, "8": 4, "16": 4, "paus": 4, "won": 4, "pnoexst": 4, "62": 4, "6": 4}, "objects": {"": [[3, 0, 0, "module-3", "pdpyras"]], "pdpyras": [[3, 1, 1, "", "APISession"], [3, 5, 1, "", "CANONICAL_PATHS"], [3, 5, 1, "", "CURSOR_BASED_PAGINATION_PATHS"], [3, 1, 1, "", "ChangeEventsAPISession"], [3, 5, 1, "", "ENTITY_WRAPPER_CONFIG"], [3, 1, 1, "", "EventsAPISession"], [3, 5, 1, "", "ITERATION_LIMIT"], [3, 1, 1, "", "PDClientError"], [3, 1, 1, "", "PDHTTPError"], [3, 1, 1, "", "PDServerError"], [3, 1, 1, "", "PDSession"], [3, 5, 1, "", "TEXT_LEN_LIMIT"], [3, 5, 1, "", "TIMEOUT"], [3, 1, 1, "", "URLError"], [3, 6, 1, "", "auto_json"], [3, 6, 1, "", "canonical_path"], [3, 6, 1, "", "deprecated_kwarg"], [3, 6, 1, "", "endpoint_matches"], [3, 6, 1, "", "entity_wrappers"], [3, 6, 1, "", "http_error_message"], [3, 6, 1, "", "infer_entity_wrapper"], [3, 6, 1, "", "is_path_param"], [3, 6, 1, "", "last_4"], [3, 6, 1, "", "normalize_url"], [3, 6, 1, "", "plural_name"], [3, 6, 1, "", "requires_success"], [3, 6, 1, "", "resource_url"], [3, 6, 1, "", "successful_response"], [3, 6, 1, "", "truncate_text"], [3, 6, 1, "", "try_decoding"], [3, 6, 1, "", "unwrap"], [3, 6, 1, "", "wrapped_entities"]], "pdpyras.APISession": [[3, 2, 1, "", "api_call_counts"], [3, 3, 1, "", "api_key_access"], [3, 2, 1, "", "api_time"], [3, 3, 1, "", "auth_type"], [3, 2, 1, "", "default_from"], [3, 2, 1, "", "default_page_size"], [3, 4, 1, "", "dict_all"], [3, 4, 1, "", "find"], [3, 4, 1, "", "iter_all"], [3, 4, 1, "", "iter_cursor"], [3, 4, 1, "", "jget"], [3, 4, 1, "", "jpost"], [3, 4, 1, "", "jput"], [3, 4, 1, "", "list_all"], [3, 4, 1, "", "persist"], [3, 4, 1, "", "postprocess"], [3, 4, 1, "", "rdelete"], [3, 4, 1, "", "rget"], [3, 4, 1, "", "rpost"], [3, 4, 1, "", "rput"], [3, 3, 1, "", "subdomain"], [3, 3, 1, "", "total_call_count"], [3, 3, 1, "", "total_call_time"], [3, 3, 1, "", "trunc_token"], [3, 2, 1, "", "url"]], "pdpyras.ChangeEventsAPISession": [[3, 4, 1, "", "prepare_headers"], [3, 4, 1, "", "send_change_event"], [3, 4, 1, "", "submit"]], "pdpyras.EventsAPISession": [[3, 4, 1, "", "acknowledge"], [3, 4, 1, "", "post"], [3, 4, 1, "", "prepare_headers"], [3, 4, 1, "", "resolve"], [3, 4, 1, "", "send_event"], [3, 4, 1, "", "trigger"]], "pdpyras.PDClientError": [[3, 2, 1, "", "response"]], "pdpyras.PDSession": [[3, 4, 1, "", "after_set_api_key"], [3, 3, 1, "", "api_key"], [3, 3, 1, "", "auth_header"], [3, 2, 1, "", "log"], [3, 2, 1, "", "max_http_attempts"], [3, 2, 1, "", "max_network_attempts"], [3, 4, 1, "", "normalize_params"], [3, 4, 1, "", "normalize_url"], [3, 2, 1, "", "parent"], [3, 2, 1, "", "permitted_methods"], [3, 4, 1, "", "postprocess"], [3, 4, 1, "", "prepare_headers"], [3, 3, 1, "", "print_debug"], [3, 4, 1, "", "request"], [3, 2, 1, "", "retry"], [3, 2, 1, "", "sleep_timer"], [3, 2, 1, "", "sleep_timer_base"], [3, 3, 1, "", "stagger_cooldown"], [3, 2, 1, "", "timeout"], [3, 3, 1, "", "trunc_key"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:property", "4": "py:method", "5": "py:data", "6": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "property", "Python property"], "4": ["py", "method", "Python method"], "5": ["py", "data", "Python data"], "6": ["py", "function", "Python function"]}, "titleterms": {"changelog": 0, "contribut": 1, "guid": [1, 4], "initi": 1, "setup": 1, "run": 1, "unit": 1, "test": 1, "updat": [1, 4], "document": 1, "releas": 1, "new": 1, "version": 1, "perform": [1, 4], "end": 1, "publish": 1, "instal": [1, 4], "merg": 1, "chang": 1, "tag": 1, "pdpyra": 2, "pagerduti": 2, "python": 2, "rest": [2, 4], "api": [2, 3, 4], "session": 2, "extern": 2, "resourc": [2, 4], "tabl": 2, "content": 2, "modul": 3, "refer": 3, "client": [3, 4], "class": 3, "error": [3, 4], "default": [3, 4], "function": [3, 4], "url": [3, 4], "handl": [3, 4], "entiti": [3, 4], "wrap": [3, 4], "decor": 3, "helper": 3, "user": 4, "authent": 4, "The": 4, "from": 4, "header": 4, "us": 4, "non": 4, "u": 4, "servic": 4, "region": 4, "basic": 4, "usag": 4, "exampl": 4, "v2": 4, "event": 4, "gener": 4, "featur": 4, "queri": 4, "paramet": 4, "request": 4, "respons": 4, "data": 4, "type": 4, "schema": 4, "awar": 4, "classic": 4, "pattern": 4, "special": 4, "case": 4, "pagin": 4, "complet": 4, "result": 4, "creat": 4, "delet": 4, "while": 4, "multi": 4, "log": 4, "proxi": 4, "server": 4, "http": 4, "retri": 4, "configur": 4, "exponenti": 4, "cooldown": 4, "behavior": 4, "set": 4, "properti": 4}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 57}, "alltitles": {"Contribution Guide": [[1, "contribution-guide"]], "Initial Setup": [[1, "initial-setup"]], "Running Unit Tests": [[1, "running-unit-tests"]], "Updating Documentation": [[1, "updating-documentation"]], "Releasing a New Version": [[1, "releasing-a-new-version"]], "Perform end-to-end publish and installation testing": [[1, "perform-end-to-end-publish-and-installation-testing"]], "Merge changes and tag": [[1, "merge-changes-and-tag"]], "Publishing": [[1, "publishing"]], "PDPYRAS: PagerDuty Python REST API Sessions": [[2, "pdpyras-pagerduty-python-rest-api-sessions"]], "External Resources": [[2, "external-resources"]], "Table of Contents": [[2, "table-of-contents"]], "Module Reference": [[3, "module-reference"]], "API Client Classes": [[3, "api-client-classes"]], "Errors": [[3, "errors"]], "Client Defaults": [[3, "client-defaults"]], "Functions": [[3, "functions"]], "URL Handling": [[3, "url-handling"]], "Entity Wrapping": [[3, "entity-wrapping"], [4, "entity-wrapping"]], "Function Decorators": [[3, "function-decorators"]], "Helpers": [[3, "helpers"]], "User Guide": [[4, "user-guide"]], "Installation": [[4, "installation"]], "Authentication": [[4, "authentication"]], "The From header": [[4, "the-from-header"]], "Using Non-US Service Regions": [[4, "using-non-us-service-regions"]], "Basic Usage Examples": [[4, "basic-usage-examples"]], "REST API v2": [[4, "rest-api-v2"]], "Events API v2": [[4, "events-api-v2"]], "Generic Client Features": [[4, "generic-client-features"]], "URLs": [[4, "urls"]], "Query Parameters": [[4, "query-parameters"]], "Requests and Responses": [[4, "requests-and-responses"]], "Data types": [[4, "data-types"]], "Resource schemas": [[4, "resource-schemas"]], "Wrapped-entity-aware Functions": [[4, "wrapped-entity-aware-functions"]], "Classic Patterns": [[4, "classic-patterns"]], "Special Cases": [[4, "special-cases"]], "Pagination": [[4, "pagination"]], "Performance and Completeness of Results": [[4, "performance-and-completeness-of-results"]], "Updating, creating or deleting while paginating": [[4, "updating-creating-or-deleting-while-paginating"]], "Multi-updating": [[4, "multi-updating"]], "Error Handling": [[4, "error-handling"]], "Logging": [[4, "logging"]], "Using a Proxy Server": [[4, "using-a-proxy-server"]], "HTTP Retry Configuration": [[4, "http-retry-configuration"]], "Exponential Cooldown": [[4, "exponential-cooldown"]], "Default Behavior": [[4, "default-behavior"]], "Setting the retry property": [[4, "setting-the-retry-property"]], "Changelog": [[0, "changelog"]]}, "indexentries": {"apisession (class in pdpyras)": [[3, "pdpyras.APISession"]], "canonical_paths (in module pdpyras)": [[3, "pdpyras.CANONICAL_PATHS"]], "cursor_based_pagination_paths (in module pdpyras)": [[3, "pdpyras.CURSOR_BASED_PAGINATION_PATHS"]], "changeeventsapisession (class in pdpyras)": [[3, "pdpyras.ChangeEventsAPISession"]], "entity_wrapper_config (in module pdpyras)": [[3, "pdpyras.ENTITY_WRAPPER_CONFIG"]], "eventsapisession (class in pdpyras)": [[3, "pdpyras.EventsAPISession"]], "iteration_limit (in module pdpyras)": [[3, "pdpyras.ITERATION_LIMIT"]], "pdclienterror (class in pdpyras)": [[3, "pdpyras.PDClientError"]], "pdhttperror (class in pdpyras)": [[3, "pdpyras.PDHTTPError"]], "pdservererror (class in pdpyras)": [[3, "pdpyras.PDServerError"]], "pdsession (class in pdpyras)": [[3, "pdpyras.PDSession"]], "text_len_limit (in module pdpyras)": [[3, "pdpyras.TEXT_LEN_LIMIT"]], "timeout (in module pdpyras)": [[3, "pdpyras.TIMEOUT"]], "urlerror (class in pdpyras)": [[3, "pdpyras.URLError"]], "acknowledge() (pdpyras.eventsapisession method)": [[3, "pdpyras.EventsAPISession.acknowledge"]], "after_set_api_key() (pdpyras.pdsession method)": [[3, "pdpyras.PDSession.after_set_api_key"]], "api_call_counts (pdpyras.apisession attribute)": [[3, "pdpyras.APISession.api_call_counts"]], "api_key (pdpyras.pdsession property)": [[3, "pdpyras.PDSession.api_key"]], "api_key_access (pdpyras.apisession property)": [[3, "pdpyras.APISession.api_key_access"]], "api_time (pdpyras.apisession attribute)": [[3, "pdpyras.APISession.api_time"]], "auth_header (pdpyras.pdsession property)": [[3, "pdpyras.PDSession.auth_header"]], "auth_type (pdpyras.apisession property)": [[3, "pdpyras.APISession.auth_type"]], "auto_json() (in module pdpyras)": [[3, "pdpyras.auto_json"]], "canonical_path() (in module pdpyras)": [[3, "pdpyras.canonical_path"]], "default_from (pdpyras.apisession attribute)": [[3, "pdpyras.APISession.default_from"]], "default_page_size (pdpyras.apisession attribute)": [[3, "pdpyras.APISession.default_page_size"]], "deprecated_kwarg() (in module pdpyras)": [[3, "pdpyras.deprecated_kwarg"]], "dict_all() (pdpyras.apisession method)": [[3, "pdpyras.APISession.dict_all"]], "endpoint_matches() (in module pdpyras)": [[3, "pdpyras.endpoint_matches"]], "entity_wrappers() (in module pdpyras)": [[3, "pdpyras.entity_wrappers"]], "find() (pdpyras.apisession method)": [[3, "pdpyras.APISession.find"]], "http_error_message() (in module pdpyras)": [[3, "pdpyras.http_error_message"]], "infer_entity_wrapper() (in module pdpyras)": [[3, "pdpyras.infer_entity_wrapper"]], "is_path_param() (in module pdpyras)": [[3, "pdpyras.is_path_param"]], "iter_all() (pdpyras.apisession method)": [[3, "pdpyras.APISession.iter_all"]], "iter_cursor() (pdpyras.apisession method)": [[3, "pdpyras.APISession.iter_cursor"]], "jget() (pdpyras.apisession method)": [[3, "pdpyras.APISession.jget"]], "jpost() (pdpyras.apisession method)": [[3, "pdpyras.APISession.jpost"]], "jput() (pdpyras.apisession method)": [[3, "pdpyras.APISession.jput"]], "last_4() (in module pdpyras)": [[3, "pdpyras.last_4"]], "list_all() (pdpyras.apisession method)": [[3, "pdpyras.APISession.list_all"]], "log (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.log"]], "max_http_attempts (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.max_http_attempts"]], "max_network_attempts (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.max_network_attempts"]], "module": [[3, "module-0"], [3, "module-1"], [3, "module-2"], [3, "module-3"], [3, "module-pdpyras"]], "normalize_params() (pdpyras.pdsession method)": [[3, "pdpyras.PDSession.normalize_params"]], "normalize_url() (in module pdpyras)": [[3, "pdpyras.normalize_url"]], "normalize_url() (pdpyras.pdsession method)": [[3, "pdpyras.PDSession.normalize_url"]], "parent (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.parent"]], "pdpyras": [[3, "module-0"], [3, "module-1"], [3, "module-2"], [3, "module-3"], [3, "module-pdpyras"]], "permitted_methods (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.permitted_methods"]], "persist() (pdpyras.apisession method)": [[3, "pdpyras.APISession.persist"]], "plural_name() (in module pdpyras)": [[3, "pdpyras.plural_name"]], "post() (pdpyras.eventsapisession method)": [[3, "pdpyras.EventsAPISession.post"]], "postprocess() (pdpyras.apisession method)": [[3, "pdpyras.APISession.postprocess"]], "postprocess() (pdpyras.pdsession method)": [[3, "pdpyras.PDSession.postprocess"]], "prepare_headers() (pdpyras.changeeventsapisession method)": [[3, "pdpyras.ChangeEventsAPISession.prepare_headers"]], "prepare_headers() (pdpyras.eventsapisession method)": [[3, "pdpyras.EventsAPISession.prepare_headers"]], "prepare_headers() (pdpyras.pdsession method)": [[3, "pdpyras.PDSession.prepare_headers"]], "print_debug (pdpyras.pdsession property)": [[3, "pdpyras.PDSession.print_debug"]], "rdelete() (pdpyras.apisession method)": [[3, "pdpyras.APISession.rdelete"]], "request() (pdpyras.pdsession method)": [[3, "pdpyras.PDSession.request"]], "requires_success() (in module pdpyras)": [[3, "pdpyras.requires_success"]], "resolve() (pdpyras.eventsapisession method)": [[3, "pdpyras.EventsAPISession.resolve"]], "resource_url() (in module pdpyras)": [[3, "pdpyras.resource_url"]], "response (pdpyras.pdclienterror attribute)": [[3, "pdpyras.PDClientError.response"]], "retry (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.retry"]], "rget() (pdpyras.apisession method)": [[3, "pdpyras.APISession.rget"]], "rpost() (pdpyras.apisession method)": [[3, "pdpyras.APISession.rpost"]], "rput() (pdpyras.apisession method)": [[3, "pdpyras.APISession.rput"]], "send_change_event() (pdpyras.changeeventsapisession method)": [[3, "pdpyras.ChangeEventsAPISession.send_change_event"]], "send_event() (pdpyras.eventsapisession method)": [[3, "pdpyras.EventsAPISession.send_event"]], "sleep_timer (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.sleep_timer"]], "sleep_timer_base (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.sleep_timer_base"]], "stagger_cooldown (pdpyras.pdsession property)": [[3, "pdpyras.PDSession.stagger_cooldown"]], "subdomain (pdpyras.apisession property)": [[3, "pdpyras.APISession.subdomain"]], "submit() (pdpyras.changeeventsapisession method)": [[3, "pdpyras.ChangeEventsAPISession.submit"]], "successful_response() (in module pdpyras)": [[3, "pdpyras.successful_response"]], "timeout (pdpyras.pdsession attribute)": [[3, "pdpyras.PDSession.timeout"]], "total_call_count (pdpyras.apisession property)": [[3, "pdpyras.APISession.total_call_count"]], "total_call_time (pdpyras.apisession property)": [[3, "pdpyras.APISession.total_call_time"]], "trigger() (pdpyras.eventsapisession method)": [[3, "pdpyras.EventsAPISession.trigger"]], "trunc_key (pdpyras.pdsession property)": [[3, "pdpyras.PDSession.trunc_key"]], "trunc_token (pdpyras.apisession property)": [[3, "pdpyras.APISession.trunc_token"]], "truncate_text() (in module pdpyras)": [[3, "pdpyras.truncate_text"]], "try_decoding() (in module pdpyras)": [[3, "pdpyras.try_decoding"]], "unwrap() (in module pdpyras)": [[3, "pdpyras.unwrap"]], "url (pdpyras.apisession attribute)": [[3, "pdpyras.APISession.url"]], "wrapped_entities() (in module pdpyras)": [[3, "pdpyras.wrapped_entities"]]}}) \ No newline at end of file diff --git a/docs/user_guide.html b/docs/user_guide.html index be9d8b7..09988e0 100644 --- a/docs/user_guide.html +++ b/docs/user_guide.html @@ -6,7 +6,7 @@ - User Guide — PagerDuty Python REST API Sessions 5.1.1 documentation + User Guide — PagerDuty Python REST API Sessions 5.1.2 documentation @@ -180,21 +180,28 @@

    REST API v2updated_user = session.persist('users', 'email', user_data, update=True) -

    Using multi-valued set filters: set the value in the params dictionary at -the appropriate key to a list, and include [] at the end of the paramter -name:

    -
    # Query all open incidents assigned to a user:
    +

    Using multi-valued set filters: set the value in the params dictionary +at the appropriate key to a list. Square brackets will then be automatically +appended to the names of list-type-value parameters as necessary. Ordinarily +(and in pdpyras versions prior to 4.4.0) one must include [] at the end of +the paramter name to denote a set type filter. For example:

    +
    # Query all open incidents assigned to a user
     incidents = session.list_all(
         'incidents',
    -    params={'user_ids[]':['PHIJ789'],'statuses[]':['triggered', 'acknowledged']}
    +    params={
    +      'user_ids[]':['PHIJ789'], # (Necessary in < 4.4.0, compatible with >= 4.4.0)
    +      'statuses':['triggered', 'acknowledged'] # (>= 4.4.0)
    +    }
     )
    +# API calls will look like the following:
    +# GET /incidents?user_ids%5B%5D=PHIJ789&statuses%5B%5D=triggered&statuses%5B%5D=acknowledged&offset=0&limit=100
     

    Performing multi-update: for endpoints that support it only, i.e. PUT /incidents:

    @@ -445,7 +453,7 @@

    Special Cases# >>> created_overrides # [ # {'status': 201, 'override': {...}}, -# {'status': 400, errors: ['Override must end after its start'], 'override': {...}} +# {'status': 400, 'errors': ['Override must end after its start'], 'override': {...}} # ]

    From 2a2d9d4887c5b1de09fde49dbbc87ba640c2def0 Mon Sep 17 00:00:00 2001 From: Demitri Morgan Date: Mon, 11 Sep 2023 10:45:00 -0600 Subject: [PATCH 15/15] Remove version constraint There are currently already uses on 3.11 despite how it would not have been supported until now. We do not want to arbitrarily cut off access to 3.12 pioneers. We already publish in the documentation that up to 3.11 is supported. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index e9c1d87..5b585fe 100644 --- a/setup.py +++ b/setup.py @@ -15,5 +15,5 @@ install_requires=['requests', 'urllib3', 'deprecation'], author='PagerDuty', author_email='support@pagerduty.com', - python_requires='>=3.6, <3.12' + python_requires='>=3.6' )