lockss-pyclient 0.1.0.dev2__py3-none-any.whl → 0.1.0.dev3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lockss/pyclient/__init__.py +8 -29
- lockss/pyclient/__main__.py +37 -0
- lockss/pyclient/_internal_common.py +395 -0
- lockss/pyclient/_internal_config.py +207 -0
- lockss/pyclient/_internal_crawler.py +251 -0
- lockss/pyclient/_internal_md.py +111 -0
- lockss/pyclient/_internal_poller.py +174 -0
- lockss/pyclient/_internal_rs.py +232 -0
- lockss/pyclient/cli.py +839 -0
- lockss/pyclient/config/__init__.py +15 -0
- lockss/pyclient/config/api/aus_api.py +14 -6
- lockss/pyclient/config/api/config_api.py +12 -12
- lockss/pyclient/config/api/utils_api.py +2 -2
- lockss/pyclient/config/configuration.py +1 -1
- lockss/pyclient/config/models/__init__.py +15 -0
- lockss/pyclient/config/models/access_type.py +90 -0
- lockss/pyclient/config/models/au_agreements.py +136 -0
- lockss/pyclient/config/models/au_config_page_info.py +140 -0
- lockss/pyclient/config/models/au_state_bean.py +942 -0
- lockss/pyclient/config/models/au_status.py +837 -8
- lockss/pyclient/config/models/au_suspect_url_versions.py +136 -0
- lockss/pyclient/config/models/check_substance_result.py +6 -22
- lockss/pyclient/config/models/dated_peer_id_set_impl.py +162 -0
- lockss/pyclient/config/models/hash_result.py +136 -0
- lockss/pyclient/config/models/page_info.py +226 -0
- lockss/pyclient/config/models/peer_agreement.py +188 -0
- lockss/pyclient/config/models/peer_agreements.py +136 -0
- lockss/pyclient/config/models/platform_configuration_ws_result.py +421 -8
- lockss/pyclient/config/models/platform_configuration_ws_result_daemon_version.py +188 -0
- lockss/pyclient/config/models/platform_configuration_ws_result_java_version.py +188 -0
- lockss/pyclient/config/models/platform_configuration_ws_result_platform.py +162 -0
- lockss/pyclient/config/models/substance_checker_state.py +91 -0
- lockss/pyclient/config/models/suspect_url_version.py +214 -0
- lockss/pyclient/config/swagger.yaml +2031 -0
- lockss/pyclient/crawler/__init__.py +1 -0
- lockss/pyclient/crawler/api/crawls_api.py +2 -2
- lockss/pyclient/crawler/configuration.py +1 -1
- lockss/pyclient/crawler/models/__init__.py +1 -0
- lockss/pyclient/crawler/models/crawl_desc.py +4 -12
- lockss/pyclient/crawler/models/crawl_kind_enum.py +90 -0
- lockss/pyclient/crawler/models/page_info.py +22 -24
- lockss/pyclient/crawler/swagger.yaml +1197 -0
- lockss/pyclient/md/configuration.py +1 -1
- lockss/pyclient/md/models/page_info.py +22 -24
- lockss/pyclient/md/swagger.yaml +583 -0
- lockss/pyclient/output.py +131 -0
- lockss/pyclient/poller/__init__.py +11 -5
- lockss/pyclient/poller/api/export_api.py +5 -5
- lockss/pyclient/poller/api/hash_api.py +3 -3
- lockss/pyclient/poller/api/poll_detail_api.py +42 -42
- lockss/pyclient/poller/api/poller_polls_api.py +18 -18
- lockss/pyclient/poller/api/service_api.py +2 -2
- lockss/pyclient/poller/api/voter_polls_api.py +18 -18
- lockss/pyclient/poller/configuration.py +1 -1
- lockss/pyclient/poller/models/__init__.py +11 -5
- lockss/pyclient/poller/models/export_file_type_enum.py +93 -0
- lockss/pyclient/poller/models/export_filename_translation_enum.py +91 -0
- lockss/pyclient/poller/models/page_info.py +226 -0
- lockss/pyclient/poller/models/poll_desc.py +3 -11
- lockss/pyclient/poller/models/poll_variant_enum.py +92 -0
- lockss/pyclient/poller/models/poller_page_info.py +140 -0
- lockss/pyclient/poller/models/repair_page_info.py +140 -0
- lockss/pyclient/poller/models/repair_type_enum.py +91 -0
- lockss/pyclient/poller/models/tally_type_enum.py +93 -0
- lockss/pyclient/poller/models/url_page_info.py +140 -0
- lockss/pyclient/poller/models/voter_page_info.py +140 -0
- lockss/pyclient/poller/models/voter_urls_enum.py +92 -0
- lockss/pyclient/poller/swagger.yaml +1658 -0
- lockss/pyclient/rs/__init__.py +6 -0
- lockss/pyclient/rs/api/artifacts_api.py +20 -20
- lockss/pyclient/rs/api/aus_api.py +5 -5
- lockss/pyclient/rs/api/repo_api.py +4 -4
- lockss/pyclient/rs/api/status_api.py +1 -1
- lockss/pyclient/rs/api/wayback_api.py +12 -12
- lockss/pyclient/rs/configuration.py +8 -1
- lockss/pyclient/rs/models/__init__.py +6 -0
- lockss/pyclient/rs/models/artifact.py +111 -81
- lockss/pyclient/rs/models/au_size.py +6 -0
- lockss/pyclient/rs/models/auid_page_info.py +2 -2
- lockss/pyclient/rs/models/bulk_au_op_enum.py +90 -0
- lockss/pyclient/rs/models/include_content_enum.py +91 -0
- lockss/pyclient/rs/models/page_info.py +26 -29
- lockss/pyclient/rs/models/pywb_match_enum.py +93 -0
- lockss/pyclient/rs/models/pywb_output_enum.py +90 -0
- lockss/pyclient/rs/models/pywb_sort_enum.py +91 -0
- lockss/pyclient/rs/models/storage_info.py +131 -80
- lockss/pyclient/rs/models/versions_enum.py +90 -0
- lockss/pyclient/rs/swagger.yaml +1306 -0
- {lockss_pyclient-0.1.0.dev2.dist-info → lockss_pyclient-0.1.0.dev3.dist-info}/METADATA +10 -3
- {lockss_pyclient-0.1.0.dev2.dist-info → lockss_pyclient-0.1.0.dev3.dist-info}/RECORD +93 -45
- {lockss_pyclient-0.1.0.dev2.dist-info → lockss_pyclient-0.1.0.dev3.dist-info}/WHEEL +1 -1
- lockss_pyclient-0.1.0.dev3.dist-info/entry_points.txt +3 -0
- {lockss_pyclient-0.1.0.dev2.dist-info → lockss_pyclient-0.1.0.dev3.dist-info/licenses}/LICENSE +0 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
# Copyright (c) 2000-2025, Board of Trustees of Leland Stanford Jr. University
|
|
4
|
+
#
|
|
5
|
+
# Redistribution and use in source and binary forms, with or without
|
|
6
|
+
# modification, are permitted provided that the following conditions are met:
|
|
7
|
+
#
|
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice,
|
|
9
|
+
# this list of conditions and the following disclaimer.
|
|
10
|
+
#
|
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
|
13
|
+
# and/or other materials provided with the distribution.
|
|
14
|
+
#
|
|
15
|
+
# 3. Neither the name of the copyright holder nor the names of its contributors
|
|
16
|
+
# may be used to endorse or promote products derived from this software without
|
|
17
|
+
# specific prior written permission.
|
|
18
|
+
#
|
|
19
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
20
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
21
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
22
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
23
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
24
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
25
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
26
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
27
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
28
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
29
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
30
|
+
|
|
31
|
+
# Remove in Python 3.14
|
|
32
|
+
# See https://stackoverflow.com/questions/33533148/how-do-i-type-hint-a-method-with-the-type-of-the-enclosing-class/33533514#33533514
|
|
33
|
+
from __future__ import annotations
|
|
34
|
+
|
|
35
|
+
from collections.abc import Iterable
|
|
36
|
+
import json
|
|
37
|
+
import jsonpath
|
|
38
|
+
import sys
|
|
39
|
+
from typing import Any, ClassVar, Optional, Union
|
|
40
|
+
import warnings
|
|
41
|
+
import yaml
|
|
42
|
+
|
|
43
|
+
from lockss.pybasic.cliutil import at_most_one
|
|
44
|
+
from lockss.pybasic.outpututil import OutputFormat
|
|
45
|
+
from pydantic.v1 import BaseModel as BaseModel1, PositiveInt as PositiveInt1, create_model as create_model1, root_validator as root_validator1, validator as validator1
|
|
46
|
+
from pydantic.v1.fields import Field as Field1, FieldInfo as FieldInfo1, PrivateAttr as PrivateAttr1
|
|
47
|
+
import tabulate
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
#: The objects generated by Swagger-Codegen
|
|
51
|
+
SwaggerObject = object
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class BaseOutputOptions(BaseModel1):
|
|
55
|
+
DEFAULT_INDENT: ClassVar[PositiveInt1] = 4
|
|
56
|
+
DEFAULT_TABULAR: ClassVar[str] = 'tsv'
|
|
57
|
+
|
|
58
|
+
x_json: Optional[bool] = Field1(False, alias='json', aliases=['-j'], description='(output style) output the result as JSON') # 'json' is a BaseModel name
|
|
59
|
+
jsonpath: Optional[str] = Field1(aliases=['-J'], description='(output style) output the result after applying the given JSONPath')
|
|
60
|
+
tabular: Optional[bool] = Field1(False, aliases=['-t'], description='(output style) output the result in tabular form')
|
|
61
|
+
yaml: Optional[bool] = Field1(False, aliases=['-y'], description='(output style) output the result as YAML')
|
|
62
|
+
indent: Optional[PositiveInt1] = Field1(DEFAULT_INDENT, description='(JSON/YAML output) indentation spaces')
|
|
63
|
+
tabular_format: Optional[str] = Field1(DEFAULT_TABULAR, aliases=['-T'], description=f'(tabular output) output the result in the given tabular format; choices: {', '.join(OutputFormat.__members__)}')
|
|
64
|
+
|
|
65
|
+
@root_validator1
|
|
66
|
+
def _validate_output_type(cls: type[BaseOutputOptions], values: dict[str, Any]) -> dict[str, Any]:
|
|
67
|
+
return at_most_one(cls, values, 'x_json', 'jsonpath', 'tabular', 'yaml')
|
|
68
|
+
|
|
69
|
+
@validator1('tabular_format')
|
|
70
|
+
def _validate_tabular(cls: type[BaseOutputOptions], v: Optional[str]) -> Optional[str]:
|
|
71
|
+
if v and v not in OutputFormat.__members__:
|
|
72
|
+
raise ValueError(f'exactly one of {', '.join(OutputFormat.__members__)} required; got {v}')
|
|
73
|
+
return v
|
|
74
|
+
|
|
75
|
+
def display(self,
|
|
76
|
+
iterable_or_obj: Union[Iterable[SwaggerObject], SwaggerObject],
|
|
77
|
+
file: Any=sys.stdout) -> None:
|
|
78
|
+
iterable = iterable_or_obj if isinstance(iterable_or_obj, Iterable) else [iterable_or_obj]
|
|
79
|
+
if self.x_json:
|
|
80
|
+
self.display_json(iterable, file=file)
|
|
81
|
+
elif self.jsonpath:
|
|
82
|
+
self.display_jsonpath(iterable, file=file)
|
|
83
|
+
elif self.tabular:
|
|
84
|
+
self.display_tabular(iterable, file=file)
|
|
85
|
+
elif self.yaml:
|
|
86
|
+
self.display_yaml(iterable, file=file)
|
|
87
|
+
else:
|
|
88
|
+
for obj in iterable:
|
|
89
|
+
print(obj.to_dict())
|
|
90
|
+
|
|
91
|
+
def display_json(self, iterable: Iterable[SwaggerObject], file: Any) -> None:
|
|
92
|
+
for obj in iterable:
|
|
93
|
+
print(json.dumps(obj.to_dict(), indent=self.indent), file=file)
|
|
94
|
+
|
|
95
|
+
def display_jsonpath(self, iterable: Iterable[SwaggerObject], file: Any) -> None:
|
|
96
|
+
for obj in iterable:
|
|
97
|
+
print(jsonpath.findall(self.jsonpath, obj.to_dict()), file=file)
|
|
98
|
+
|
|
99
|
+
def display_tabular(self, iterable: Iterable[SwaggerObject], file: Any) -> None:
|
|
100
|
+
attrs = [attr.removeprefix('include_') if model.field_info.extra.get('disambiguated') else attr for attr, model in self.__fields__.items() if model.field_info.extra.get('column') and getattr(self, attr)] \
|
|
101
|
+
or [attr.removeprefix('include_') if model.field_info.extra.get('disambiguated') else attr for attr, model in self.__fields__.items() if model.field_info.extra.get('column')]
|
|
102
|
+
headers = [] if self.no_headers else [self._target_cls.attribute_map[attr] for attr in attrs]
|
|
103
|
+
data = [[str(getattr(obj, attr)) for attr in attrs] for obj in iterable]
|
|
104
|
+
print(tabulate.tabulate(data, headers=headers, tablefmt=self.tabular_format), file=file)
|
|
105
|
+
|
|
106
|
+
def display_yaml(self, iterable: Iterable[SwaggerObject], file: Any) -> None:
|
|
107
|
+
for obj in iterable:
|
|
108
|
+
print(yaml.dump(obj.to_dict(), indent=self.indent), file=file)
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def output_options(type_name: str,
|
|
112
|
+
target_cls: type[SwaggerObject],
|
|
113
|
+
disambiguate: Optional[list[str]] = None):
|
|
114
|
+
disambiguate = disambiguate or []
|
|
115
|
+
with warnings.catch_warnings():
|
|
116
|
+
warnings.simplefilter("ignore") # Pydantic v1 demands that PrivateAttr begins with a hyphen but warns that _target_cls begins with a hyphen
|
|
117
|
+
return create_model1(type_name,
|
|
118
|
+
__base__=BaseOutputOptions,
|
|
119
|
+
_target_cls=PrivateAttr1(target_cls),
|
|
120
|
+
no_headers=(Optional[bool],
|
|
121
|
+
FieldInfo1(False,
|
|
122
|
+
alias='no-headers',
|
|
123
|
+
description='(tabular output) do not display column headers')),
|
|
124
|
+
**{f'{"include_" if python_attr in disambiguate else ""}{python_attr}':
|
|
125
|
+
(bool,
|
|
126
|
+
FieldInfo1(False,
|
|
127
|
+
alias=python_attr.replace('_', '-') if '_' in python_attr else None,
|
|
128
|
+
description=f'(tabular output) include the field {original_attr} in the output',
|
|
129
|
+
column=True,
|
|
130
|
+
disambiguated=python_attr in disambiguate))
|
|
131
|
+
for python_attr, original_attr in target_cls.attribute_map.items()})
|
|
@@ -31,24 +31,30 @@ from lockss.pyclient.poller.models.api_status import ApiStatus
|
|
|
31
31
|
from lockss.pyclient.poller.models.aus_import_body import AusImportBody
|
|
32
32
|
from lockss.pyclient.poller.models.cached_uri_set_spec import CachedUriSetSpec
|
|
33
33
|
from lockss.pyclient.poller.models.error_result import ErrorResult
|
|
34
|
+
from lockss.pyclient.poller.models.export_file_type_enum import ExportFileTypeEnum
|
|
35
|
+
from lockss.pyclient.poller.models.export_filename_translation_enum import ExportFilenameTranslationEnum
|
|
34
36
|
from lockss.pyclient.poller.models.hasher_ws_params import HasherWsParams
|
|
35
37
|
from lockss.pyclient.poller.models.link_desc import LinkDesc
|
|
36
|
-
from lockss.pyclient.poller.models.
|
|
38
|
+
from lockss.pyclient.poller.models.page_info import PageInfo
|
|
37
39
|
from lockss.pyclient.poller.models.peer_data import PeerData
|
|
38
40
|
from lockss.pyclient.poller.models.peer_ws_result import PeerWsResult
|
|
39
41
|
from lockss.pyclient.poller.models.poll_desc import PollDesc
|
|
42
|
+
from lockss.pyclient.poller.models.poll_variant_enum import PollVariantEnum
|
|
40
43
|
from lockss.pyclient.poller.models.poll_ws_result import PollWsResult
|
|
41
44
|
from lockss.pyclient.poller.models.poller_detail import PollerDetail
|
|
42
|
-
from lockss.pyclient.poller.models.
|
|
45
|
+
from lockss.pyclient.poller.models.poller_page_info import PollerPageInfo
|
|
43
46
|
from lockss.pyclient.poller.models.poller_summary import PollerSummary
|
|
44
47
|
from lockss.pyclient.poller.models.repair_data import RepairData
|
|
45
|
-
from lockss.pyclient.poller.models.
|
|
48
|
+
from lockss.pyclient.poller.models.repair_page_info import RepairPageInfo
|
|
46
49
|
from lockss.pyclient.poller.models.repair_queue import RepairQueue
|
|
50
|
+
from lockss.pyclient.poller.models.repair_type_enum import RepairTypeEnum
|
|
47
51
|
from lockss.pyclient.poller.models.repository_space_ws_result import RepositorySpaceWsResult
|
|
48
52
|
from lockss.pyclient.poller.models.repository_ws_result import RepositoryWsResult
|
|
49
53
|
from lockss.pyclient.poller.models.tally_data import TallyData
|
|
50
|
-
from lockss.pyclient.poller.models.
|
|
54
|
+
from lockss.pyclient.poller.models.tally_type_enum import TallyTypeEnum
|
|
55
|
+
from lockss.pyclient.poller.models.url_page_info import UrlPageInfo
|
|
51
56
|
from lockss.pyclient.poller.models.vote_ws_result import VoteWsResult
|
|
52
57
|
from lockss.pyclient.poller.models.voter_detail import VoterDetail
|
|
53
|
-
from lockss.pyclient.poller.models.
|
|
58
|
+
from lockss.pyclient.poller.models.voter_page_info import VoterPageInfo
|
|
54
59
|
from lockss.pyclient.poller.models.voter_summary import VoterSummary
|
|
60
|
+
from lockss.pyclient.poller.models.voter_urls_enum import VoterUrlsEnum
|
|
@@ -43,10 +43,10 @@ class ExportApi(object):
|
|
|
43
43
|
|
|
44
44
|
:param async_req bool
|
|
45
45
|
:param str auid: Identifier of the Archival Unit containing the artifacts (required)
|
|
46
|
-
:param
|
|
46
|
+
:param ExportFileTypeEnum file_type: The type of archive to create
|
|
47
47
|
:param bool is_compress: Indication of whether contents should be compressed
|
|
48
48
|
:param bool is_exclude_dir_nodes: Indication of whether directories should be excluded
|
|
49
|
-
:param
|
|
49
|
+
:param ExportFilenameTranslationEnum xlate_filenames: Type of filename translation to be done
|
|
50
50
|
:param str file_prefix: The prefix to be used to name the exported file
|
|
51
51
|
:param int max_size: The maximum size of the exported file
|
|
52
52
|
:param int max_versions: The maximum number of versions of an artifact to be exported
|
|
@@ -72,10 +72,10 @@ class ExportApi(object):
|
|
|
72
72
|
|
|
73
73
|
:param async_req bool
|
|
74
74
|
:param str auid: Identifier of the Archival Unit containing the artifacts (required)
|
|
75
|
-
:param
|
|
75
|
+
:param ExportFileTypeEnum file_type: The type of archive to create
|
|
76
76
|
:param bool is_compress: Indication of whether contents should be compressed
|
|
77
77
|
:param bool is_exclude_dir_nodes: Indication of whether directories should be excluded
|
|
78
|
-
:param
|
|
78
|
+
:param ExportFilenameTranslationEnum xlate_filenames: Type of filename translation to be done
|
|
79
79
|
:param str file_prefix: The prefix to be used to name the exported file
|
|
80
80
|
:param int max_size: The maximum size of the exported file
|
|
81
81
|
:param int max_versions: The maximum number of versions of an artifact to be exported
|
|
@@ -134,7 +134,7 @@ class ExportApi(object):
|
|
|
134
134
|
body_params = None
|
|
135
135
|
# HTTP header `Accept`
|
|
136
136
|
header_params['Accept'] = self.api_client.select_header_accept(
|
|
137
|
-
['multipart/form-data', 'application/json']) # noqa: E501
|
|
137
|
+
['multipart/form-data', 'application/json;q=0.9']) # noqa: E501
|
|
138
138
|
|
|
139
139
|
# Authentication setting
|
|
140
140
|
auth_settings = ['basicAuth'] # noqa: E501
|
|
@@ -193,7 +193,7 @@ class HashApi(object):
|
|
|
193
193
|
body_params = None
|
|
194
194
|
# HTTP header `Accept`
|
|
195
195
|
header_params['Accept'] = self.api_client.select_header_accept(
|
|
196
|
-
['multipart/form-data', 'application/json']) # noqa: E501
|
|
196
|
+
['multipart/form-data', 'application/json;q=0.9']) # noqa: E501
|
|
197
197
|
|
|
198
198
|
# Authentication setting
|
|
199
199
|
auth_settings = ['basicAuth'] # noqa: E501
|
|
@@ -288,7 +288,7 @@ class HashApi(object):
|
|
|
288
288
|
body_params = None
|
|
289
289
|
# HTTP header `Accept`
|
|
290
290
|
header_params['Accept'] = self.api_client.select_header_accept(
|
|
291
|
-
['multipart/form-data', 'application/json']) # noqa: E501
|
|
291
|
+
['multipart/form-data', 'application/json;q=0.9']) # noqa: E501
|
|
292
292
|
|
|
293
293
|
# Authentication setting
|
|
294
294
|
auth_settings = ['basicAuth'] # noqa: E501
|
|
@@ -387,7 +387,7 @@ class HashApi(object):
|
|
|
387
387
|
body_params = params['body']
|
|
388
388
|
# HTTP header `Accept`
|
|
389
389
|
header_params['Accept'] = self.api_client.select_header_accept(
|
|
390
|
-
['multipart/form-data', 'application/json']) # noqa: E501
|
|
390
|
+
['multipart/form-data', 'application/json;q=0.9']) # noqa: E501
|
|
391
391
|
|
|
392
392
|
# HTTP header `Content-Type`
|
|
393
393
|
header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
|
|
@@ -44,10 +44,10 @@ class PollDetailApi(object):
|
|
|
44
44
|
:param async_req bool
|
|
45
45
|
:param str poll_key: The pollKey from the PollDetail. (required)
|
|
46
46
|
:param str peer_id: The peerId from the Poll Detail.PeerData. (required)
|
|
47
|
-
:param
|
|
48
|
-
:param int
|
|
49
|
-
:param
|
|
50
|
-
:return:
|
|
47
|
+
:param VoterUrlsEnum urls: The voter urls to return. (required)
|
|
48
|
+
:param int limit: The requested maximum number of URLs per response
|
|
49
|
+
:param str continuation_token: The continuation token of the next page of URLs to be returned
|
|
50
|
+
:return: UrlPageInfo
|
|
51
51
|
If the method is called asynchronously,
|
|
52
52
|
returns the request thread.
|
|
53
53
|
"""
|
|
@@ -70,15 +70,15 @@ class PollDetailApi(object):
|
|
|
70
70
|
:param async_req bool
|
|
71
71
|
:param str poll_key: The pollKey from the PollDetail. (required)
|
|
72
72
|
:param str peer_id: The peerId from the Poll Detail.PeerData. (required)
|
|
73
|
-
:param
|
|
74
|
-
:param int
|
|
75
|
-
:param
|
|
76
|
-
:return:
|
|
73
|
+
:param VoterUrlsEnum urls: The voter urls to return. (required)
|
|
74
|
+
:param int limit: The requested maximum number of URLs per response
|
|
75
|
+
:param str continuation_token: The continuation token of the next page of URLs to be returned
|
|
76
|
+
:return: UrlPageInfo
|
|
77
77
|
If the method is called asynchronously,
|
|
78
78
|
returns the request thread.
|
|
79
79
|
"""
|
|
80
80
|
|
|
81
|
-
all_params = ['poll_key', 'peer_id', 'urls', '
|
|
81
|
+
all_params = ['poll_key', 'peer_id', 'urls', 'limit', 'continuation_token'] # noqa: E501
|
|
82
82
|
all_params.append('async_req')
|
|
83
83
|
all_params.append('_return_http_data_only')
|
|
84
84
|
all_params.append('_preload_content')
|
|
@@ -117,10 +117,10 @@ class PollDetailApi(object):
|
|
|
117
117
|
query_params = []
|
|
118
118
|
if 'urls' in params:
|
|
119
119
|
query_params.append(('urls', params['urls'])) # noqa: E501
|
|
120
|
-
if '
|
|
121
|
-
query_params.append(('
|
|
122
|
-
if '
|
|
123
|
-
query_params.append(('
|
|
120
|
+
if 'limit' in params:
|
|
121
|
+
query_params.append(('limit', params['limit'])) # noqa: E501
|
|
122
|
+
if 'continuation_token' in params:
|
|
123
|
+
query_params.append(('continuationToken', params['continuation_token'])) # noqa: E501
|
|
124
124
|
|
|
125
125
|
header_params = {}
|
|
126
126
|
|
|
@@ -143,7 +143,7 @@ class PollDetailApi(object):
|
|
|
143
143
|
body=body_params,
|
|
144
144
|
post_params=form_params,
|
|
145
145
|
files=local_var_files,
|
|
146
|
-
response_type='
|
|
146
|
+
response_type='UrlPageInfo', # noqa: E501
|
|
147
147
|
auth_settings=auth_settings,
|
|
148
148
|
async_req=params.get('async_req'),
|
|
149
149
|
_return_http_data_only=params.get('_return_http_data_only'),
|
|
@@ -162,10 +162,10 @@ class PollDetailApi(object):
|
|
|
162
162
|
|
|
163
163
|
:param async_req bool
|
|
164
164
|
:param str poll_key: The pollKey as listed in the PollDetail object. (required)
|
|
165
|
-
:param
|
|
166
|
-
:param int
|
|
167
|
-
:param
|
|
168
|
-
:return:
|
|
165
|
+
:param RepairTypeEnum repair: The repair queue elements to return. (required)
|
|
166
|
+
:param int limit: The requested maximum number of repair items per response
|
|
167
|
+
:param str continuation_token: The continuation token of the next page of repair items to be returned
|
|
168
|
+
:return: RepairPageInfo
|
|
169
169
|
If the method is called asynchronously,
|
|
170
170
|
returns the request thread.
|
|
171
171
|
"""
|
|
@@ -187,15 +187,15 @@ class PollDetailApi(object):
|
|
|
187
187
|
|
|
188
188
|
:param async_req bool
|
|
189
189
|
:param str poll_key: The pollKey as listed in the PollDetail object. (required)
|
|
190
|
-
:param
|
|
191
|
-
:param int
|
|
192
|
-
:param
|
|
193
|
-
:return:
|
|
190
|
+
:param RepairTypeEnum repair: The repair queue elements to return. (required)
|
|
191
|
+
:param int limit: The requested maximum number of repair items per response
|
|
192
|
+
:param str continuation_token: The continuation token of the next page of repair items to be returned
|
|
193
|
+
:return: RepairPageInfo
|
|
194
194
|
If the method is called asynchronously,
|
|
195
195
|
returns the request thread.
|
|
196
196
|
"""
|
|
197
197
|
|
|
198
|
-
all_params = ['poll_key', 'repair', '
|
|
198
|
+
all_params = ['poll_key', 'repair', 'limit', 'continuation_token'] # noqa: E501
|
|
199
199
|
all_params.append('async_req')
|
|
200
200
|
all_params.append('_return_http_data_only')
|
|
201
201
|
all_params.append('_preload_content')
|
|
@@ -228,10 +228,10 @@ class PollDetailApi(object):
|
|
|
228
228
|
query_params = []
|
|
229
229
|
if 'repair' in params:
|
|
230
230
|
query_params.append(('repair', params['repair'])) # noqa: E501
|
|
231
|
-
if '
|
|
232
|
-
query_params.append(('
|
|
233
|
-
if '
|
|
234
|
-
query_params.append(('
|
|
231
|
+
if 'limit' in params:
|
|
232
|
+
query_params.append(('limit', params['limit'])) # noqa: E501
|
|
233
|
+
if 'continuation_token' in params:
|
|
234
|
+
query_params.append(('continuationToken', params['continuation_token'])) # noqa: E501
|
|
235
235
|
|
|
236
236
|
header_params = {}
|
|
237
237
|
|
|
@@ -254,7 +254,7 @@ class PollDetailApi(object):
|
|
|
254
254
|
body=body_params,
|
|
255
255
|
post_params=form_params,
|
|
256
256
|
files=local_var_files,
|
|
257
|
-
response_type='
|
|
257
|
+
response_type='RepairPageInfo', # noqa: E501
|
|
258
258
|
auth_settings=auth_settings,
|
|
259
259
|
async_req=params.get('async_req'),
|
|
260
260
|
_return_http_data_only=params.get('_return_http_data_only'),
|
|
@@ -273,10 +273,10 @@ class PollDetailApi(object):
|
|
|
273
273
|
|
|
274
274
|
:param async_req bool
|
|
275
275
|
:param str poll_key: The pollKey as listed in the PollDetail object. (required)
|
|
276
|
-
:param
|
|
277
|
-
:param int
|
|
278
|
-
:param
|
|
279
|
-
:return:
|
|
276
|
+
:param TallyTypeEnum tally: The kind of tally element to return. (required)
|
|
277
|
+
:param int limit: The requested maximum number of URLs per response
|
|
278
|
+
:param str continuation_token: The continuation token of the next page of URLs to be returned
|
|
279
|
+
:return: UrlPageInfo
|
|
280
280
|
If the method is called asynchronously,
|
|
281
281
|
returns the request thread.
|
|
282
282
|
"""
|
|
@@ -298,15 +298,15 @@ class PollDetailApi(object):
|
|
|
298
298
|
|
|
299
299
|
:param async_req bool
|
|
300
300
|
:param str poll_key: The pollKey as listed in the PollDetail object. (required)
|
|
301
|
-
:param
|
|
302
|
-
:param int
|
|
303
|
-
:param
|
|
304
|
-
:return:
|
|
301
|
+
:param TallyTypeEnum tally: The kind of tally element to return. (required)
|
|
302
|
+
:param int limit: The requested maximum number of URLs per response
|
|
303
|
+
:param str continuation_token: The continuation token of the next page of URLs to be returned
|
|
304
|
+
:return: UrlPageInfo
|
|
305
305
|
If the method is called asynchronously,
|
|
306
306
|
returns the request thread.
|
|
307
307
|
"""
|
|
308
308
|
|
|
309
|
-
all_params = ['poll_key', 'tally', '
|
|
309
|
+
all_params = ['poll_key', 'tally', 'limit', 'continuation_token'] # noqa: E501
|
|
310
310
|
all_params.append('async_req')
|
|
311
311
|
all_params.append('_return_http_data_only')
|
|
312
312
|
all_params.append('_preload_content')
|
|
@@ -339,10 +339,10 @@ class PollDetailApi(object):
|
|
|
339
339
|
query_params = []
|
|
340
340
|
if 'tally' in params:
|
|
341
341
|
query_params.append(('tally', params['tally'])) # noqa: E501
|
|
342
|
-
if '
|
|
343
|
-
query_params.append(('
|
|
344
|
-
if '
|
|
345
|
-
query_params.append(('
|
|
342
|
+
if 'limit' in params:
|
|
343
|
+
query_params.append(('limit', params['limit'])) # noqa: E501
|
|
344
|
+
if 'continuation_token' in params:
|
|
345
|
+
query_params.append(('continuationToken', params['continuation_token'])) # noqa: E501
|
|
346
346
|
|
|
347
347
|
header_params = {}
|
|
348
348
|
|
|
@@ -365,7 +365,7 @@ class PollDetailApi(object):
|
|
|
365
365
|
body=body_params,
|
|
366
366
|
post_params=form_params,
|
|
367
367
|
files=local_var_files,
|
|
368
|
-
response_type='
|
|
368
|
+
response_type='UrlPageInfo', # noqa: E501
|
|
369
369
|
auth_settings=auth_settings,
|
|
370
370
|
async_req=params.get('async_req'),
|
|
371
371
|
_return_http_data_only=params.get('_return_http_data_only'),
|
|
@@ -35,7 +35,7 @@ class PollerPollsApi(object):
|
|
|
35
35
|
def get_poller_poll_details(self, poll_key, **kwargs): # noqa: E501
|
|
36
36
|
"""PollerDetails # noqa: E501
|
|
37
37
|
|
|
38
|
-
Return the detailed information about a poll. # noqa: E501
|
|
38
|
+
Return the detailed information about a poll in which this peer is the poller. # noqa: E501
|
|
39
39
|
This method makes a synchronous HTTP request by default. To make an
|
|
40
40
|
asynchronous HTTP request, please pass async_req=True
|
|
41
41
|
>>> thread = api.get_poller_poll_details(poll_key, async_req=True)
|
|
@@ -57,7 +57,7 @@ class PollerPollsApi(object):
|
|
|
57
57
|
def get_poller_poll_details_with_http_info(self, poll_key, **kwargs): # noqa: E501
|
|
58
58
|
"""PollerDetails # noqa: E501
|
|
59
59
|
|
|
60
|
-
Return the detailed information about a poll. # noqa: E501
|
|
60
|
+
Return the detailed information about a poll in which this peer is the poller. # noqa: E501
|
|
61
61
|
This method makes a synchronous HTTP request by default. To make an
|
|
62
62
|
asynchronous HTTP request, please pass async_req=True
|
|
63
63
|
>>> thread = api.get_poller_poll_details_with_http_info(poll_key, async_req=True)
|
|
@@ -128,18 +128,18 @@ class PollerPollsApi(object):
|
|
|
128
128
|
collection_formats=collection_formats)
|
|
129
129
|
|
|
130
130
|
def get_polls_as_poller(self, **kwargs): # noqa: E501
|
|
131
|
-
"""Get the list of recent polls
|
|
131
|
+
"""Get the list of recent polls in which this peer is the poller. # noqa: E501
|
|
132
132
|
|
|
133
|
-
Get the list of recent polls
|
|
133
|
+
Get the list of recent polls in which this peer is the poller from the poll queue. # noqa: E501
|
|
134
134
|
This method makes a synchronous HTTP request by default. To make an
|
|
135
135
|
asynchronous HTTP request, please pass async_req=True
|
|
136
136
|
>>> thread = api.get_polls_as_poller(async_req=True)
|
|
137
137
|
>>> result = thread.get()
|
|
138
138
|
|
|
139
139
|
:param async_req bool
|
|
140
|
-
:param int
|
|
141
|
-
:param
|
|
142
|
-
:return:
|
|
140
|
+
:param int limit: The requested maximum number of poll summaries per response
|
|
141
|
+
:param str continuation_token: The continuation token of the next page of poll summaries to be returned
|
|
142
|
+
:return: PollerPageInfo
|
|
143
143
|
If the method is called asynchronously,
|
|
144
144
|
returns the request thread.
|
|
145
145
|
"""
|
|
@@ -151,23 +151,23 @@ class PollerPollsApi(object):
|
|
|
151
151
|
return data
|
|
152
152
|
|
|
153
153
|
def get_polls_as_poller_with_http_info(self, **kwargs): # noqa: E501
|
|
154
|
-
"""Get the list of recent polls
|
|
154
|
+
"""Get the list of recent polls in which this peer is the poller. # noqa: E501
|
|
155
155
|
|
|
156
|
-
Get the list of recent polls
|
|
156
|
+
Get the list of recent polls in which this peer is the poller from the poll queue. # noqa: E501
|
|
157
157
|
This method makes a synchronous HTTP request by default. To make an
|
|
158
158
|
asynchronous HTTP request, please pass async_req=True
|
|
159
159
|
>>> thread = api.get_polls_as_poller_with_http_info(async_req=True)
|
|
160
160
|
>>> result = thread.get()
|
|
161
161
|
|
|
162
162
|
:param async_req bool
|
|
163
|
-
:param int
|
|
164
|
-
:param
|
|
165
|
-
:return:
|
|
163
|
+
:param int limit: The requested maximum number of poll summaries per response
|
|
164
|
+
:param str continuation_token: The continuation token of the next page of poll summaries to be returned
|
|
165
|
+
:return: PollerPageInfo
|
|
166
166
|
If the method is called asynchronously,
|
|
167
167
|
returns the request thread.
|
|
168
168
|
"""
|
|
169
169
|
|
|
170
|
-
all_params = ['
|
|
170
|
+
all_params = ['limit', 'continuation_token'] # noqa: E501
|
|
171
171
|
all_params.append('async_req')
|
|
172
172
|
all_params.append('_return_http_data_only')
|
|
173
173
|
all_params.append('_preload_content')
|
|
@@ -188,10 +188,10 @@ class PollerPollsApi(object):
|
|
|
188
188
|
path_params = {}
|
|
189
189
|
|
|
190
190
|
query_params = []
|
|
191
|
-
if '
|
|
192
|
-
query_params.append(('
|
|
193
|
-
if '
|
|
194
|
-
query_params.append(('
|
|
191
|
+
if 'limit' in params:
|
|
192
|
+
query_params.append(('limit', params['limit'])) # noqa: E501
|
|
193
|
+
if 'continuation_token' in params:
|
|
194
|
+
query_params.append(('continuationToken', params['continuation_token'])) # noqa: E501
|
|
195
195
|
|
|
196
196
|
header_params = {}
|
|
197
197
|
|
|
@@ -214,7 +214,7 @@ class PollerPollsApi(object):
|
|
|
214
214
|
body=body_params,
|
|
215
215
|
post_params=form_params,
|
|
216
216
|
files=local_var_files,
|
|
217
|
-
response_type='
|
|
217
|
+
response_type='PollerPageInfo', # noqa: E501
|
|
218
218
|
auth_settings=auth_settings,
|
|
219
219
|
async_req=params.get('async_req'),
|
|
220
220
|
_return_http_data_only=params.get('_return_http_data_only'),
|
|
@@ -35,7 +35,7 @@ class ServiceApi(object):
|
|
|
35
35
|
def call_poll(self, body, **kwargs): # noqa: E501
|
|
36
36
|
"""Send a request to call a poll to the poller # noqa: E501
|
|
37
37
|
|
|
38
|
-
Use the information found in the descriptor object to initiate a
|
|
38
|
+
Use the information found in the descriptor object to initiate a poll. # noqa: E501
|
|
39
39
|
This method makes a synchronous HTTP request by default. To make an
|
|
40
40
|
asynchronous HTTP request, please pass async_req=True
|
|
41
41
|
>>> thread = api.call_poll(body, async_req=True)
|
|
@@ -57,7 +57,7 @@ class ServiceApi(object):
|
|
|
57
57
|
def call_poll_with_http_info(self, body, **kwargs): # noqa: E501
|
|
58
58
|
"""Send a request to call a poll to the poller # noqa: E501
|
|
59
59
|
|
|
60
|
-
Use the information found in the descriptor object to initiate a
|
|
60
|
+
Use the information found in the descriptor object to initiate a poll. # noqa: E501
|
|
61
61
|
This method makes a synchronous HTTP request by default. To make an
|
|
62
62
|
asynchronous HTTP request, please pass async_req=True
|
|
63
63
|
>>> thread = api.call_poll_with_http_info(body, async_req=True)
|
|
@@ -33,18 +33,18 @@ class VoterPollsApi(object):
|
|
|
33
33
|
self.api_client = api_client
|
|
34
34
|
|
|
35
35
|
def get_polls_as_voter(self, **kwargs): # noqa: E501
|
|
36
|
-
"""Get the list of recent
|
|
36
|
+
"""Get the list of recent polls in which this peer is a voter. # noqa: E501
|
|
37
37
|
|
|
38
|
-
Get the list of recent polls
|
|
38
|
+
Get the list of recent polls in which this peer is a voter from the poll queue. # noqa: E501
|
|
39
39
|
This method makes a synchronous HTTP request by default. To make an
|
|
40
40
|
asynchronous HTTP request, please pass async_req=True
|
|
41
41
|
>>> thread = api.get_polls_as_voter(async_req=True)
|
|
42
42
|
>>> result = thread.get()
|
|
43
43
|
|
|
44
44
|
:param async_req bool
|
|
45
|
-
:param int
|
|
46
|
-
:param
|
|
47
|
-
:return:
|
|
45
|
+
:param int limit: The requested maximum number of poll summaries per response
|
|
46
|
+
:param str continuation_token: The continuation token of the next page of poll summaries to be returned
|
|
47
|
+
:return: VoterPageInfo
|
|
48
48
|
If the method is called asynchronously,
|
|
49
49
|
returns the request thread.
|
|
50
50
|
"""
|
|
@@ -56,23 +56,23 @@ class VoterPollsApi(object):
|
|
|
56
56
|
return data
|
|
57
57
|
|
|
58
58
|
def get_polls_as_voter_with_http_info(self, **kwargs): # noqa: E501
|
|
59
|
-
"""Get the list of recent
|
|
59
|
+
"""Get the list of recent polls in which this peer is a voter. # noqa: E501
|
|
60
60
|
|
|
61
|
-
Get the list of recent polls
|
|
61
|
+
Get the list of recent polls in which this peer is a voter from the poll queue. # noqa: E501
|
|
62
62
|
This method makes a synchronous HTTP request by default. To make an
|
|
63
63
|
asynchronous HTTP request, please pass async_req=True
|
|
64
64
|
>>> thread = api.get_polls_as_voter_with_http_info(async_req=True)
|
|
65
65
|
>>> result = thread.get()
|
|
66
66
|
|
|
67
67
|
:param async_req bool
|
|
68
|
-
:param int
|
|
69
|
-
:param
|
|
70
|
-
:return:
|
|
68
|
+
:param int limit: The requested maximum number of poll summaries per response
|
|
69
|
+
:param str continuation_token: The continuation token of the next page of poll summaries to be returned
|
|
70
|
+
:return: VoterPageInfo
|
|
71
71
|
If the method is called asynchronously,
|
|
72
72
|
returns the request thread.
|
|
73
73
|
"""
|
|
74
74
|
|
|
75
|
-
all_params = ['
|
|
75
|
+
all_params = ['limit', 'continuation_token'] # noqa: E501
|
|
76
76
|
all_params.append('async_req')
|
|
77
77
|
all_params.append('_return_http_data_only')
|
|
78
78
|
all_params.append('_preload_content')
|
|
@@ -93,10 +93,10 @@ class VoterPollsApi(object):
|
|
|
93
93
|
path_params = {}
|
|
94
94
|
|
|
95
95
|
query_params = []
|
|
96
|
-
if '
|
|
97
|
-
query_params.append(('
|
|
98
|
-
if '
|
|
99
|
-
query_params.append(('
|
|
96
|
+
if 'limit' in params:
|
|
97
|
+
query_params.append(('limit', params['limit'])) # noqa: E501
|
|
98
|
+
if 'continuation_token' in params:
|
|
99
|
+
query_params.append(('continuationToken', params['continuation_token'])) # noqa: E501
|
|
100
100
|
|
|
101
101
|
header_params = {}
|
|
102
102
|
|
|
@@ -119,7 +119,7 @@ class VoterPollsApi(object):
|
|
|
119
119
|
body=body_params,
|
|
120
120
|
post_params=form_params,
|
|
121
121
|
files=local_var_files,
|
|
122
|
-
response_type='
|
|
122
|
+
response_type='VoterPageInfo', # noqa: E501
|
|
123
123
|
auth_settings=auth_settings,
|
|
124
124
|
async_req=params.get('async_req'),
|
|
125
125
|
_return_http_data_only=params.get('_return_http_data_only'),
|
|
@@ -130,7 +130,7 @@ class VoterPollsApi(object):
|
|
|
130
130
|
def get_voter_poll_details(self, poll_key, **kwargs): # noqa: E501
|
|
131
131
|
"""VoterDetails # noqa: E501
|
|
132
132
|
|
|
133
|
-
Return the detailed information about a poll. # noqa: E501
|
|
133
|
+
Return the detailed information about a poll in which this peer is a voter. # noqa: E501
|
|
134
134
|
This method makes a synchronous HTTP request by default. To make an
|
|
135
135
|
asynchronous HTTP request, please pass async_req=True
|
|
136
136
|
>>> thread = api.get_voter_poll_details(poll_key, async_req=True)
|
|
@@ -152,7 +152,7 @@ class VoterPollsApi(object):
|
|
|
152
152
|
def get_voter_poll_details_with_http_info(self, poll_key, **kwargs): # noqa: E501
|
|
153
153
|
"""VoterDetails # noqa: E501
|
|
154
154
|
|
|
155
|
-
Return the detailed information about a poll. # noqa: E501
|
|
155
|
+
Return the detailed information about a poll in which this peer is a voter. # noqa: E501
|
|
156
156
|
This method makes a synchronous HTTP request by default. To make an
|
|
157
157
|
asynchronous HTTP request, please pass async_req=True
|
|
158
158
|
>>> thread = api.get_voter_poll_details_with_http_info(poll_key, async_req=True)
|
|
@@ -46,7 +46,7 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
|
|
|
46
46
|
def __init__(self):
|
|
47
47
|
"""Constructor"""
|
|
48
48
|
# Default Base url
|
|
49
|
-
self.host = "
|
|
49
|
+
self.host = "{proto}://{hostname}:{port}/"
|
|
50
50
|
# Temp file folder for downloading files
|
|
51
51
|
self.temp_folder_path = None
|
|
52
52
|
|