diff --git a/.github/workflows/sonar.yaml b/.github/workflows/sonar.yaml
index f5055259..22a353b4 100644
--- a/.github/workflows/sonar.yaml
+++ b/.github/workflows/sonar.yaml
@@ -1,15 +1,10 @@
name: Sonar Scan
-on: [push, pull_request_target]
+on: [push, pull_request]
jobs:
sonar:
name: Sonar Scan
- runs-on: ubuntu-latest
- # always run on push events
- # only run on pull_request_target event when pull request pulls from fork repository
- if: >
- github.event_name == 'push' ||
- github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.full_name != github.repository
+ runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
@@ -22,7 +17,7 @@ jobs:
- run: pip install -r requirements.txt
- - run: pip install -e .[dev]
+ - run: pip install -e ".[dev]"
- run: pytest --cov=yoti_python_sdk yoti_python_sdk/tests --cov-report=xml:coverage-reports/coverage-new.xml
diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml
index 9506b63c..083d6efa 100644
--- a/.github/workflows/tests.yaml
+++ b/.github/workflows/tests.yaml
@@ -1,19 +1,14 @@
name: Unit Tests
-on: [push, pull_request_target]
+on: [push, pull_request]
jobs:
test:
name: Test (Python ${{ matrix.python-version }})
runs-on: ubuntu-latest
- # always run on push events
- # only run on pull_request_target event when pull request pulls from fork repository
- if: >
- github.event_name == 'push' ||
- github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.full_name != github.repository
strategy:
fail-fast: false
matrix:
- python-version: [3.7, 3.8, 3.9, "3.10"]
+ python-version: [3.9, "3.10","3.11","3.12"]
steps:
- uses: actions/checkout@v2
@@ -32,10 +27,7 @@ jobs:
examples:
name: Check Examples
- runs-on: ubuntu-latest
- if: >
- github.event_name == 'push' ||
- github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.full_name != github.repository
+ runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
@@ -46,6 +38,8 @@ jobs:
- run: pip install --upgrade setuptools
+ - run: pip install -e .
+
- run: pushd examples/aml && pip install -r requirements.txt && popd
- run: pushd examples/yoti_example_django && pip install --upgrade pip && pip install -r requirements.txt && popd
diff --git a/yoti_python_sdk/protobuf/common_public_api/__init__.py b/AI_PLAN.md
similarity index 100%
rename from yoti_python_sdk/protobuf/common_public_api/__init__.py
rename to AI_PLAN.md
diff --git a/README.md b/README.md
index d50a9736..e75e3377 100644
--- a/README.md
+++ b/README.md
@@ -140,6 +140,7 @@ timestamp = activity_details.timestamp
base64_selfie_uri = activity_details.base64_selfie_uri
```
+
You can retrieve the anchors, sources and verifiers for each attribute as follows:
```python
given_names_attribute = profile.given_names
@@ -238,3 +239,4 @@ set LIB=C:\OpenSSL-Win64\lib;%LIB%
set INCLUDE=C:\OpenSSL-Win64\include;%INCLUDE%
```
Where `OpenSSL-Win64` is the location that you have installed OpenSSL to. See [here](https://cryptography.io/en/latest/installation/#building-cryptography-on-windows) for more information.
+
diff --git a/examples/aml/requirements.in b/examples/aml/requirements.in
new file mode 100644
index 00000000..7e25054c
--- /dev/null
+++ b/examples/aml/requirements.in
@@ -0,0 +1,2 @@
+yoti>=2.14.0
+python-dotenv>=0.7.1
diff --git a/examples/aml/requirements.txt b/examples/aml/requirements.txt
index b6c39efd..33889910 100644
--- a/examples/aml/requirements.txt
+++ b/examples/aml/requirements.txt
@@ -1,2 +1,46 @@
-yoti>=2.13.0
-python-dotenv>=0.7.1
+#
+# This file is autogenerated by pip-compile with python 3.10
+# To update, run:
+#
+# pip-compile --output-file=requirements.txt requirements.in
+#
+asn1==2.2.0
+ # via yoti
+certifi==2021.10.8
+ # via requests
+cffi==1.15.0
+ # via cryptography
+charset-normalizer==2.0.10
+ # via requests
+cryptography==36.0.1
+ # via
+ # pyopenssl
+ # yoti
+deprecated==1.2.10
+ # via yoti
+future==0.18.2
+ # via yoti
+idna==3.3
+ # via requests
+iso8601==0.1.13
+ # via yoti
+protobuf==3.19.3
+ # via yoti
+pycparser==2.21
+ # via cffi
+pyopenssl==21.0.0
+ # via yoti
+python-dotenv==0.19.2
+ # via -r requirements.in
+pytz==2020.4
+ # via yoti
+requests==2.27.1
+ # via yoti
+six==1.16.0
+ # via pyopenssl
+urllib3==1.26.8
+ # via requests
+wrapt==1.13.3
+ # via deprecated
+yoti==2.14.0
+ # via -r requirements.in
diff --git a/examples/doc_scan/app.py b/examples/doc_scan/app.py
index 3de18b4d..365b794a 100644
--- a/examples/doc_scan/app.py
+++ b/examples/doc_scan/app.py
@@ -173,5 +173,10 @@ def media():
)
+@app.route("/privacy-policy")
+def privacy_policy():
+ return render_template("privacy.html")
+
+
if __name__ == "__main__":
app.run()
diff --git a/examples/doc_scan/requirements.in b/examples/doc_scan/requirements.in
index 4bfbe87a..0a5d434f 100644
--- a/examples/doc_scan/requirements.in
+++ b/examples/doc_scan/requirements.in
@@ -1,5 +1,26 @@
-flask>=1.1.2
-python-dotenv>=0.13.0
-yoti>=2.13.0
+# Core requirements
+flask>=2.2.0
+python-dotenv>=0.21.0
+# yoti will be installed separately in CI from local source
filetype>=1.0.7
-pyopenssl>=19.1.0
+pyopenssl>=24.0.0
+click>=8.0
+future>=1.0.0
+
+# Required for yoti compatibility
+deprecated>=1.2.14
+iso8601>=1.1.0
+pytz>=2025.2ements
+flask>=2.2.0
+python-dotenv>=0.21.0
+yoti>=2.14.0
+filetype>=1.0.7
+pyopenssl>=24.0.0
+click>=8.0
+future>=1.0.0
+
+# Required for yoti compatibility
+deprecated>=1.2.14
+iso8601>=1.1.0
+pytz>=2025.2
+
diff --git a/examples/doc_scan/requirements.txt b/examples/doc_scan/requirements.txt
index 38b136a4..c5a22510 100644
--- a/examples/doc_scan/requirements.txt
+++ b/examples/doc_scan/requirements.txt
@@ -1,34 +1,81 @@
#
-# This file is autogenerated by pip-compile
-# To update, run:
+# This file is autogenerated by pip-compile with Python 3.12
+# by the following command:
#
# pip-compile --output-file=requirements.txt requirements.in
#
-asn1==2.2.0 # via yoti
-certifi==2020.4.5.1 # via requests
-cffi==1.14.0 # via cryptography
-chardet==3.0.4 # via requests
-click==7.1.2 # via flask
-cryptography==3.2 # via pyopenssl, yoti
-deprecated==1.2.10 # via yoti
-filetype==1.0.7 # via -r requirements.in
-flask==1.1.2 # via -r requirements.in
-future==0.18.2 # via yoti
-idna==2.9 # via requests
-iso8601==0.1.13 # via yoti
-itsdangerous==1.1.0 # via flask
-jinja2==2.11.2 # via flask
-markupsafe==1.1.1 # via jinja2
-protobuf==3.11.3 # via yoti
-pycparser==2.20 # via cffi
-pyopenssl==19.1.0 # via -r requirements.in, yoti
-python-dotenv==0.13.0 # via -r requirements.in
-requests==2.23.0 # via yoti
-six==1.14.0 # via cryptography, protobuf, pyopenssl
-urllib3==1.25.9 # via requests
-werkzeug==1.0.1 # via flask
-wrapt==1.12.1 # via deprecated
-yoti==2.13.0 # via -r requirements.in
+asn1==2.2.0
+ # via yoti
+
+blinker==1.9.0
+ # via flask
+certifi==2020.4.5.1
+ # via requests
+cffi==1.17.1
+ # via cryptography
+chardet==3.0.4
+ # via requests
+click==8.1.8
+ # via
+ # -r requirements.in
+ # flask
+cryptography==41.0.7
+
+ # via
+ # pyopenssl
+ # yoti
+deprecated>=1.2.14
+ # via
+ # -r requirements.in
+ # yoti
+filetype==1.0.7
+ # via -r requirements.in
+flask>=2.2.0
+ # via -r requirements.in
+future>=1.0.0
+ # via
+ # -r requirements.in
+ # yoti
+idna==2.9
+ # via requests
+iso8601>=1.1.0
+ # via
+ # -r requirements.in
+ # yoti
+itsdangerous==2.2.0
+ # via flask
+jinja2==3.1.6
+ # via flask
+markupsafe==3.0.2
+ # via
+ # jinja2
+ # werkzeug
+
+protobuf==4.21.12
+ # via yoti
+pycparser==2.22
+ # via cffi
+pyopenssl>=24.0.0
+ # via
+ # -r requirements.in
+ # yoti
+python-dotenv==1.1.0
+ # via -r requirements.in
+pytz>=2025.2
+ # via
+ # -r requirements.in
+ # yoti
+requests>=2.31.0
+ # via yoti
+six>=1.16.0
+ # via protobuf
+urllib3==1.25.9
+ # via requests
+werkzeug==3.1.3
+ # via flask
+wrapt==1.17.2
+ # via deprecated
+# yoti will be installed separately in CI from local source
# The following packages are considered to be unsafe in a requirements file:
# setuptools
diff --git a/examples/doc_scan/templates/privacy.html b/examples/doc_scan/templates/privacy.html
new file mode 100644
index 00000000..f3b4c54a
--- /dev/null
+++ b/examples/doc_scan/templates/privacy.html
@@ -0,0 +1,10 @@
+{% include "layout/header.html" %}
+
+
+
+
Privacy Policy
+
Demo privacy policy
+
+
+
+{% include "layout/footer.html" %}
\ No newline at end of file
diff --git a/examples/yoti_example_django/requirements.in b/examples/yoti_example_django/requirements.in
index 6210c53b..884d3bd9 100644
--- a/examples/yoti_example_django/requirements.in
+++ b/examples/yoti_example_django/requirements.in
@@ -1,6 +1,8 @@
-django>=3.0.7
+django>=4.0.1
django-sslserver>=0.22.0
python-dotenv>=0.7.1
requests>=2.20.0
urllib3>=1.24.2
-yoti>=2.13.0
+yoti>=2.14.0
+six>=1.16.0
+cffi>=1.15.0
\ No newline at end of file
diff --git a/examples/yoti_example_django/requirements.txt b/examples/yoti_example_django/requirements.txt
index 743d3e65..d966b31c 100644
--- a/examples/yoti_example_django/requirements.txt
+++ b/examples/yoti_example_django/requirements.txt
@@ -1,5 +1,5 @@
#
-# This file is autogenerated by pip-compile
+# This file is autogenerated by pip-compile with python 3.10
# To update, run:
#
# pip-compile --output-file=requirements.txt requirements.in
@@ -8,10 +8,14 @@ asgiref==3.4.1
# via django
asn1==2.2.0
# via yoti
+backports.zoneinfo==0.2.1
+ # via django
certifi==2018.4.16
# via requests
-cffi==1.14.0
- # via cryptography
+cffi==1.15.0
+ # via
+ # -r requirements.in
+ # cryptography
chardet==3.0.4
# via requests
cryptography==3.2
@@ -20,7 +24,7 @@ cryptography==3.2
# yoti
deprecated==1.2.10
# via yoti
-django==3.1.12
+django==4.0.1
# via
# -r requirements.in
# django-sslserver
@@ -40,14 +44,15 @@ pyopenssl==18.0.0
# via yoti
python-dotenv==0.8.2
# via -r requirements.in
-pytz==2018.4
- # via django
+pytz==2020.4
+ # via yoti
requests==2.21.0
# via
# -r requirements.in
# yoti
-six==1.11.0
+six==1.16.0
# via
+ # -r requirements.in
# cryptography
# protobuf
# pyopenssl
@@ -59,7 +64,7 @@ urllib3==1.24.2
# requests
wrapt==1.12.1
# via deprecated
-yoti==2.13.0
+yoti==2.14.0
# via -r requirements.in
# The following packages are considered to be unsafe in a requirements file:
diff --git a/examples/yoti_example_django/yoti_example/urls.py b/examples/yoti_example_django/yoti_example/urls.py
index f8063333..77688930 100644
--- a/examples/yoti_example_django/yoti_example/urls.py
+++ b/examples/yoti_example_django/yoti_example/urls.py
@@ -13,17 +13,17 @@
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
-from django.conf.urls import url
+from django.urls import re_path
from django.contrib import admin
from .views import IndexView, AuthView, DynamicShareView, SourceConstraintsView
urlpatterns = [
- url(r"^$", IndexView.as_view(), name="index"),
- url(r"^yoti/auth/$", AuthView.as_view(), name="auth"),
- url(r"^admin/", admin.site.urls),
- url(r"^dynamic-share/$", DynamicShareView.as_view(), name="dynamic-share"),
- url(
+ re_path(r"^$", IndexView.as_view(), name="index"),
+ re_path(r"^yoti/auth/$", AuthView.as_view(), name="auth"),
+ re_path(r"^admin/", admin.site.urls),
+ re_path(r"^dynamic-share/$", DynamicShareView.as_view(), name="dynamic-share"),
+ re_path(
r"^source-constraint/$",
SourceConstraintsView.as_view(),
name="source-constraints",
diff --git a/examples/yoti_example_flask/requirements.in b/examples/yoti_example_flask/requirements.in
index 89d0b0ee..772c1aac 100644
--- a/examples/yoti_example_flask/requirements.in
+++ b/examples/yoti_example_flask/requirements.in
@@ -1,11 +1,13 @@
click>=7
cffi>=1.15.0
+cryptography>=42.0.0
flask>=1.0.4
+future>=1.0.0
jinja2>=3.0.3
-pyopenssl>=19.0.0
+pyopenssl>=24.0.0
python-dotenv>=0.7.1
-requests>=2.20.0
+requests>=2.31.0
urllib3>=1.24.2
-yoti>=2.14.0
+# yoti will be installed separately in CI from local source
werkzeug>=1.0.1
-six==1.16.0
\ No newline at end of file
+six==1.16.0
diff --git a/examples/yoti_example_flask/requirements.txt b/examples/yoti_example_flask/requirements.txt
index 81f2e9f6..c4d5a9fa 100644
--- a/examples/yoti_example_flask/requirements.txt
+++ b/examples/yoti_example_flask/requirements.txt
@@ -18,21 +18,23 @@ click==8.1.2
# via
# -r requirements.in
# flask
-cryptography==3.2
+cryptography>=42.0.0
# via
# pyopenssl
# yoti
-deprecated==1.2.10
+deprecated==1.2.18
# via yoti
flask==1.1.1
# via -r requirements.in
-future==0.16.0
- # via yoti
+future==1.0.0
+ # via
+ # -r requirements.in
+ # yoti
idna==2.7
# via requests
-iso8601==0.1.13
+iso8601>=1.1.0
# via yoti
-itsdangerous==0.24
+itsdangerous==1.1.0
# via flask
jinja2==3.0.3
# via
@@ -40,19 +42,19 @@ jinja2==3.0.3
# flask
markupsafe==2.0.1
# via jinja2
-protobuf==3.6.0
+protobuf==4.21.12
# via yoti
pycparser==2.18
# via cffi
-pyopenssl==19.0.0
+pyopenssl>=24.0.0
# via
# -r requirements.in
# yoti
-python-dotenv==0.8.2
+python-dotenv>=0.7.1
# via -r requirements.in
-pytz==2020.4
+pytz>=2025.2
# via yoti
-requests==2.21.0
+requests>=2.31.0
# via
# -r requirements.in
# yoti
@@ -72,8 +74,7 @@ werkzeug==1.0.1
# flask
wrapt==1.12.1
# via deprecated
-yoti==2.14.0
- # via -r requirements.in
+# yoti will be installed separately in CI from local source
# The following packages are considered to be unsafe in a requirements file:
# setuptools
diff --git a/requirements.in b/requirements.in
index d7235772..45803552 100644
--- a/requirements.in
+++ b/requirements.in
@@ -1,15 +1,18 @@
-asn1==2.2.0 # asn1 2.3.0 introduces enum34 as a dependency, which causes problems on some envs
-cryptography==2.8.0
-cffi==1.14.3
-future==0.18.2
-itsdangerous==1.1.0
-pbr==1.10.0
-protobuf==3.13.0
-pyopenssl==19.1.0
-PyYAML==5.2 # PyYAML 5.3 does not support Python 3.4
-pytz==2022.1
-requests>=2.20.0
-urllib3>=1.24.3
-deprecated==1.2.10
-wheel==0.33.6
-iso8601==0.1.13
+
+asn1==2.2.0
+cryptography>=41.0.7
+cffi>=1.16.0
+future>=0.18.3
+itsdangerous>=2.1.2
+pbr>=5.11.1
+protobuf>=4.21.12
+pyopenssl>=24.0.0
+PyYAML>=6.0
+pytz>=2025.2
+requests>=2.31.0
+urllib3>=2.2.1
+deprecated>=1.2.14
+wheel>=0.41.0
+iso8601>=1.1.0
+wrapt>=1.15.0
+
diff --git a/requirements.txt b/requirements.txt
index 7d09771c..1376d95a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,6 +1,6 @@
#
-# This file is autogenerated by pip-compile with python 3.9
-# To update, run:
+# This file is autogenerated by pip-compile with Python 3.12
+# by the following command:
#
# pip-compile --output-file=requirements.txt requirements.in
#
@@ -8,53 +8,52 @@ asn1==2.2.0
# via -r requirements.in
certifi==2018.11.29
# via requests
-cffi==1.14.3
+cffi==1.17.1
# via
# -r requirements.in
# cryptography
-chardet==3.0.4
+charset-normalizer==3.4.1
# via requests
-cryptography==2.8
+cryptography==44.0.2
# via
# -r requirements.in
# pyopenssl
-deprecated==1.2.10
+deprecated==1.2.18
# via -r requirements.in
-future==0.18.2
+future==1.0.0
# via -r requirements.in
idna==2.7
# via requests
-iso8601==0.1.13
+iso8601==2.1.0
# via -r requirements.in
-itsdangerous==1.1.0
+itsdangerous==2.2.0
# via -r requirements.in
-pbr==1.10.0
+pbr==6.1.1
# via -r requirements.in
-protobuf==3.13.0
+protobuf==4.21.12
# via -r requirements.in
pycparser==2.18
# via cffi
-pyopenssl==19.1.0
+pyopenssl==25.0.0
# via -r requirements.in
-pytz==2022.1
+pytz==2025.2
# via -r requirements.in
-pyyaml==5.2
+pyyaml==6.0.2
# via -r requirements.in
-requests==2.21.0
+requests==2.32.0
# via -r requirements.in
-six==1.10.0
- # via
- # cryptography
- # protobuf
- # pyopenssl
-urllib3==1.24.3
+typing-extensions==4.13.2
+ # via pyopenssl
+urllib3==2.4.0
# via
# -r requirements.in
# requests
-wheel==0.33.6
+wheel==0.45.1
# via -r requirements.in
-wrapt==1.11.2
- # via deprecated
+wrapt==1.17.2
+ # via
+ # -r requirements.in
+ # deprecated
# The following packages are considered to be unsafe in a requirements file:
# setuptools
diff --git a/setup.py b/setup.py
index 5f11c781..fd3be6db 100644
--- a/setup.py
+++ b/setup.py
@@ -17,16 +17,19 @@
url="https://github.com/getyoti/yoti-python-sdk",
author="Yoti",
author_email="websdk@yoti.com",
+ python_requires=">=3.9",
install_requires=[
- "deprecated==1.2.10",
- "cryptography>=2.2.1",
- "protobuf==3.13.0",
- "requests>=2.11.1",
- "future>=0.11.0",
- "asn1==2.2.0",
- "pyopenssl>=18.0.0",
- "iso8601==0.1.13",
- "pytz==2022.1",
+
+
+ "asn1==2.2.0", # still pinned due to enum34 issue
+ "cryptography>=42.0.0",
+ "protobuf>=4.21.12",
+ "requests>=2.31.0",
+ "pyopenssl>=24.0.0",
+ "pytz>=2025.2",
+ "iso8601>=1.1.0",
+ "deprecated>=1.2.14",
+
],
extras_require={
"examples": [
@@ -34,18 +37,20 @@
"Flask>=1.0.4",
"python-dotenv>=0.7.1",
"django-sslserver>=0.22.0",
- "Werkzeug==1.0.1",
+ "Werkzeug==2.1.2",
],
"dev": [
- "pre-commit==1.17.0",
+ "pre-commit==2.16.0",
"pytest>=4.6.11",
"pytest-cov>=2.7.1",
"pylint==1.9.4",
"pylint-exit>=1.1.0",
"python-coveralls==2.9.3",
- "coverage==4.5.4",
+ "coverage>=7.4.0",
"mock==2.0.0",
- "virtualenv==20.1.0",
+ "virtualenv==20.15.1",
+ "flake8==4.0.1",
+ "pip-tools==6.6.2",
],
},
classifiers=[
@@ -54,13 +59,11 @@
"Operating System :: OS Independent",
"Intended Audience :: Developers",
"Programming Language :: Python",
- "Programming Language :: Python :: 2",
- "Programming Language :: Python :: 2.7",
- "Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.4",
- "Programming Language :: Python :: 3.5",
- "Programming Language :: Python :: 3.6",
- "Programming Language :: Python :: 3.7",
+ "Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
+ "Programming Language :: Python :: 3.11",
+ "Programming Language :: Python :: 3.12",
+
"Topic :: Software Development :: Libraries :: Python Modules",
],
keywords="yoti sdk 2FA multifactor authentication verification identity login register verify 2Factor",
diff --git a/sonar-project.properties b/sonar-project.properties
index e85e5860..ab430c3e 100644
--- a/sonar-project.properties
+++ b/sonar-project.properties
@@ -2,7 +2,7 @@ sonar.host.url = https://sonarcloud.io
sonar.organization = getyoti
sonar.projectKey = getyoti:python
sonar.projectName = Python SDK
-sonar.projectVersion = 2.14.1
+sonar.projectVersion = 2.14.4
sonar.exclusions = yoti_python_sdk/tests/**,examples/**,yoti_python_sdk/protobuf/**/*
sonar.python.pylint.reportPath = coverage.out
diff --git a/yoti_python_sdk/__init__.py b/yoti_python_sdk/__init__.py
index a33747d5..e2084235 100644
--- a/yoti_python_sdk/__init__.py
+++ b/yoti_python_sdk/__init__.py
@@ -1,8 +1,7 @@
# -*- coding: utf-8 -*-
import os
-from distutils.util import convert_path
from os import environ
-
+from .version import __version__
from yoti_python_sdk.client import Client
DEFAULTS = {
@@ -17,11 +16,8 @@
directory_name = os.path.dirname(__file__)
version_path = os.path.join(directory_name, "version.py")
-ver_path = convert_path(version_path)
-with open(ver_path) as ver_file:
- exec(ver_file.read(), main_ns)
+exec(open(version_path).read())
-__version__ = main_ns["__version__"]
YOTI_API_URL = environ.get("YOTI_API_URL", DEFAULTS["YOTI_API_URL"])
YOTI_PROFILE_ENDPOINT = "/api/v1"
diff --git a/yoti_python_sdk/anchor.py b/yoti_python_sdk/anchor.py
index 924330ae..a6eb75b4 100644
--- a/yoti_python_sdk/anchor.py
+++ b/yoti_python_sdk/anchor.py
@@ -3,7 +3,7 @@
import OpenSSL
import asn1
-import yoti_python_sdk.protobuf.common_public_api.SignedTimestamp_pb2 as compubapi
+import yoti_python_sdk.protobuf.compubapi_v1.SignedTimestamp_pb2 as compubapi
from OpenSSL import crypto
from yoti_python_sdk import config
diff --git a/yoti_python_sdk/doc_scan/constants.py b/yoti_python_sdk/doc_scan/constants.py
index 6aa18d1d..279d4e5e 100644
--- a/yoti_python_sdk/doc_scan/constants.py
+++ b/yoti_python_sdk/doc_scan/constants.py
@@ -36,3 +36,5 @@
IGNORE = "IGNORE"
PROOF_OF_ADDRESS = "PROOF_OF_ADDRESS"
+
+WATCHLIST_SCREENING_CHECK_TYPE = "WATCHLIST_SCREENING"
diff --git a/yoti_python_sdk/doc_scan/session/create/check/__init__.py b/yoti_python_sdk/doc_scan/session/create/check/__init__.py
index c0c38292..89d5689f 100644
--- a/yoti_python_sdk/doc_scan/session/create/check/__init__.py
+++ b/yoti_python_sdk/doc_scan/session/create/check/__init__.py
@@ -2,10 +2,13 @@
from .document_comparison import RequestedIDDocumentComparisonCheckBuilder
from .face_match import RequestedFaceMatchCheckBuilder
from .liveness import RequestedLivenessCheckBuilder
+from .watchlist_screen import WatchlistScreeningCheckBuilder
+
__all__ = [
"RequestedDocumentAuthenticityCheckBuilder",
"RequestedIDDocumentComparisonCheckBuilder",
"RequestedFaceMatchCheckBuilder",
"RequestedLivenessCheckBuilder",
+ "WatchlistScreeningCheckBuilder",
]
diff --git a/yoti_python_sdk/doc_scan/session/create/check/watchlist_screen.py b/yoti_python_sdk/doc_scan/session/create/check/watchlist_screen.py
new file mode 100644
index 00000000..8151abcf
--- /dev/null
+++ b/yoti_python_sdk/doc_scan/session/create/check/watchlist_screen.py
@@ -0,0 +1,104 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from yoti_python_sdk.doc_scan import constants
+from yoti_python_sdk.utils import YotiSerializable, remove_null_values
+from .requested_check import RequestedCheck
+
+
+class WatchlistScreeningCheckConfig(YotiSerializable):
+ """
+ The configuration applied when creating a Watchlist screening check.
+ """
+
+ def __init__(self, manual_check, categories):
+ """
+ :param manual_check: the watchlist screening check manual_check eg. "NEVER"
+ :type type: str
+ :param categories: list of categories for watchlist screening check config
+ :type max_retries: list
+ """
+ self.__categories = categories
+ self.__manual_check = manual_check
+
+ @property
+ def manual_check(self):
+ """
+ Watchlist screening check manual check value
+
+ :return: str
+ """
+ return self.__manual_check
+
+ @property
+ def categories(self):
+ """
+ Watchlist screening check categories
+
+ :return: list
+ """
+ return self.__categories
+
+ def to_json(self):
+ return remove_null_values(
+ {"manual_check": self.manual_check, "categories": self.__categories}
+ )
+
+
+class WatchlistScreeningCheck(RequestedCheck):
+ """
+ Requests creation of a Watchlist screening check
+ """
+
+ def __init__(self, config):
+ """
+ :param config: the Watchlist screening check configuration
+ :type config: WatchlistScreeningCheckConfig
+ """
+ self.__config = config
+
+ @property
+ def type(self):
+ return constants.WATCHLIST_SCREENING_CHECK_TYPE
+
+ @property
+ def config(self):
+ return self.__config
+
+
+class WatchlistScreeningCheckBuilder(object):
+ """
+ Builder to assist creation of :class:`WatchlistScreeningCheck`
+ """
+
+ def __init__(self):
+ self.__categories = None
+ self.__manual_check = None
+
+ def with_categories(self, categories):
+ """
+ Sets the WatchListScreeningCheck categories
+
+ :return: the builder
+ :rtype: WatchlistScreeningCheckBuilder
+ """
+ self.__categories = categories
+
+ return self
+
+ def with_manual_check(self, manual_check):
+ """
+ Sets the WatchListScreeningCheck manual_check
+
+ :param liveness_type: the manual_check
+ :type liveness_type: str
+ :return: the builder
+ :rtype: WatchlistScreeningCheckBuilder
+ """
+ self.__manual_check = manual_check
+
+ return self
+
+ def build(self):
+ config = WatchlistScreeningCheckConfig(self.__manual_check, self.__categories or [])
+ return WatchlistScreeningCheck(config)
diff --git a/yoti_python_sdk/doc_scan/session/create/filter/orthogonal_restrictions_filter.py b/yoti_python_sdk/doc_scan/session/create/filter/orthogonal_restrictions_filter.py
index 6e0bcf4e..c86eca3b 100644
--- a/yoti_python_sdk/doc_scan/session/create/filter/orthogonal_restrictions_filter.py
+++ b/yoti_python_sdk/doc_scan/session/create/filter/orthogonal_restrictions_filter.py
@@ -68,11 +68,12 @@ def to_json(self):
class OrthogonalRestrictionsFilter(DocumentFilter):
- def __init__(self, country_restriction, type_restriction):
+ def __init__(self, country_restriction, type_restriction, allow_non_latin_documents=None):
DocumentFilter.__init__(self, filter_type=ORTHOGONAL_RESTRICTIONS)
self.__country_restriction = country_restriction
self.__type_restriction = type_restriction
+ self.__allow_non_latin_documents = allow_non_latin_documents
@property
def country_restriction(self):
@@ -94,10 +95,23 @@ def type_restriction(self):
"""
return self.__type_restriction
+ @property
+ def allow_non_latin_documents(self):
+ """
+ Returns the flag for whether non-latin documents are allowed.
+
+ :return: allow_non_latin_documents
+ :rtype: bool
+ """
+ return self.__allow_non_latin_documents
+
def to_json(self):
parent = DocumentFilter.to_json(self)
parent["country_restriction"] = self.country_restriction
parent["type_restriction"] = self.type_restriction
+ if self.__allow_non_latin_documents is not None:
+ parent["allow_non_latin_documents"] = self.__allow_non_latin_documents
+
return remove_null_values(parent)
@@ -117,6 +131,7 @@ class OrthogonalRestrictionsFilterBuilder(object):
def __init__(self):
self.__country_restriction = None
self.__type_restriction = None
+ self.__allow_non_latin_documents = None
def with_whitelisted_country_codes(self, country_codes):
"""
@@ -170,6 +185,26 @@ def with_blacklisted_document_types(self, document_types):
self.__type_restriction = TypeRestriction(INCLUSION_BLACKLIST, document_types)
return self
+ def allow_non_latin_documents(self):
+ """
+ Sets a True value for "allow non-latin documents" flag.
+
+ :return: the builder
+ :rtype: OrthogonalRestrictionsFilterBuilder
+ """
+ self.__allow_non_latin_documents = True
+ return self
+
+ def disable_non_latin_documents(self):
+ """
+ Sets a False value for "allow non-latin documents" flag.
+
+ :return: the builder
+ :rtype: OrthogonalRestrictionsFilterBuilder
+ """
+ self.__allow_non_latin_documents = False
+ return self
+
def build(self):
"""
Builds the orthogonal filter, using the supplied whitelisted/blacklisted values
@@ -178,5 +213,5 @@ def build(self):
:rtype: OrthogonalRestrictionsFilter
"""
return OrthogonalRestrictionsFilter(
- self.__country_restriction, self.__type_restriction
+ self.__country_restriction, self.__type_restriction, self.__allow_non_latin_documents
)
diff --git a/yoti_python_sdk/doc_scan/session/create/notification_config.py b/yoti_python_sdk/doc_scan/session/create/notification_config.py
index 476a38b0..af68656e 100644
--- a/yoti_python_sdk/doc_scan/session/create/notification_config.py
+++ b/yoti_python_sdk/doc_scan/session/create/notification_config.py
@@ -16,7 +16,7 @@ class NotificationConfig(YotiSerializable):
to poll for the state of the Session.
"""
- def __init__(self, auth_token, endpoint, topics=None):
+ def __init__(self, auth_token, endpoint, topics=None, auth_type=None):
"""
:param auth_token: the authorization token
:type auth_token: str
@@ -31,6 +31,7 @@ def __init__(self, auth_token, endpoint, topics=None):
self.__auth_token = auth_token
self.__endpoint = endpoint
self.__topics = list(set(topics)) # Get unique values
+ self.__auth_type = auth_type
@property
def auth_token(self):
@@ -62,9 +63,21 @@ def topics(self):
"""
return self.__topics
+ @property
+ def auth_type(self):
+ """
+ The authentication type that the notification will use to
+ authenticate itself.
+
+ :return: the endpoint
+ :rtype: str
+ """
+ return self.__auth_type
+
def to_json(self):
return remove_null_values(
{
+ "auth_type": self.auth_type,
"auth_token": self.auth_token,
"endpoint": self.endpoint,
"topics": self.topics,
@@ -81,6 +94,7 @@ def __init__(self):
self.__auth_token = None
self.__endpoint = None
self.__topics = []
+ self.__auth_type = None
def with_auth_token(self, token):
"""
@@ -154,6 +168,26 @@ def for_check_completion(self):
"""
return self.with_topic(CHECK_COMPLETION)
+ def with_basic_auth_type(self):
+ """
+ Setup "BASIC" auth type for notifications.
+
+ :return: the builder
+ :rtype: NotificationConfigBuilder
+ """
+ self.__auth_type = "BASIC"
+ return self
+
+ def with_bearer_auth_type(self):
+ """
+ Setup "BEARER" auth type for notifications.
+
+ :return: the builder
+ :rtype: NotificationConfigBuilder
+ """
+ self.__auth_type = "BEARER"
+ return self
+
def build(self):
"""
Builds the :class:`NotificationConfig` using the supplied values
@@ -161,4 +195,4 @@ def build(self):
:return: the build notification config
:rtype: NotificationConfig
"""
- return NotificationConfig(self.__auth_token, self.__endpoint, self.__topics)
+ return NotificationConfig(self.__auth_token, self.__endpoint, self.__topics, self.__auth_type)
diff --git a/yoti_python_sdk/doc_scan/session/create/sdk_config.py b/yoti_python_sdk/doc_scan/session/create/sdk_config.py
index c76fe897..37cde6b5 100644
--- a/yoti_python_sdk/doc_scan/session/create/sdk_config.py
+++ b/yoti_python_sdk/doc_scan/session/create/sdk_config.py
@@ -21,6 +21,8 @@ def __init__(
preset_issuing_country,
success_url,
error_url,
+ allow_handoff=None,
+ privacy_policy_url=None,
):
"""
:param allowed_capture_methods: the allowed capture methods
@@ -39,6 +41,10 @@ def __init__(
:type success_url: str
:param error_url: the error url
:type error_url: str
+ :param privacy_policy_url: the privacy policy url
+ :type privacy_policy_url: str
+ :param allow_handoff: boolean flag for allow_handoff
+ :type allow_handoff: bool
"""
self.__allowed_capture_methods = allowed_capture_methods
self.__primary_colour = primary_colour
@@ -48,6 +54,8 @@ def __init__(
self.__preset_issuing_country = preset_issuing_country
self.__success_url = success_url
self.__error_url = error_url
+ self.__privacy_policy_url = privacy_policy_url
+ self.__allow_handoff = allow_handoff
@property
def allowed_capture_methods(self):
@@ -121,6 +129,25 @@ def error_url(self):
"""
return self.__error_url
+ @property
+ def privacy_policy_url(self):
+ """
+ The privacy policy URL
+
+ :return: the privacy policy url
+ """
+ return self.__privacy_policy_url
+
+ @property
+ def allow_handoff(self):
+ """
+ Flag to enable/disable relying business to handoff
+ support when creating a session.
+
+ :return: the allow_handoff
+ """
+ return self.__allow_handoff
+
def to_json(self):
return remove_null_values(
{
@@ -132,6 +159,8 @@ def to_json(self):
"preset_issuing_country": self.preset_issuing_country,
"success_url": self.success_url,
"error_url": self.error_url,
+ "privacy_policy_url": self.privacy_policy_url,
+ "allow_handoff": self.allow_handoff,
}
)
@@ -150,6 +179,8 @@ def __init__(self):
self.__preset_issuing_country = None
self.__success_url = None
self.__error_url = None
+ self.__privacy_policy_url = None
+ self.__allow_handoff = None
def with_allowed_capture_methods(self, allowed_capture_methods):
"""
@@ -265,6 +296,30 @@ def with_error_url(self, url):
self.__error_url = url
return self
+ def with_privacy_policy_url(self, url):
+ """
+ Sets the privacy policy URL
+
+ :param url: the privacy policy URL
+ :type url: str
+ :return: the builder
+ :rtype: SdkConfigBuilder
+ """
+ self.__privacy_policy_url = url
+ return self
+
+ def with_allow_handoff(self, flag):
+ """
+ Sets the allow handoff flag
+
+ :param flag: boolean value for flag
+ :type flag: bool
+ :return: the builder
+ :rtype: SdkConfigBuilder
+ """
+ self.__allow_handoff = flag
+ return self
+
def build(self):
return SdkConfig(
self.__allowed_capture_methods,
@@ -275,4 +330,6 @@ def build(self):
self.__preset_issuing_country,
self.__success_url,
self.__error_url,
+ self.__allow_handoff,
+ self.__privacy_policy_url,
)
diff --git a/yoti_python_sdk/doc_scan/session/create/session_spec.py b/yoti_python_sdk/doc_scan/session/create/session_spec.py
index ef3bbce4..75a2b8be 100644
--- a/yoti_python_sdk/doc_scan/session/create/session_spec.py
+++ b/yoti_python_sdk/doc_scan/session/create/session_spec.py
@@ -21,6 +21,7 @@ def __init__(
requested_tasks=None,
required_documents=None,
block_biometric_consent=None,
+ session_deadline=None,
):
"""
:param client_session_token_ttl: the client session token TTL
@@ -41,6 +42,8 @@ def __init__(
:type required_documents: list[RequiredDocument] or None
:param block_biometric_consent: block the collection of biometric consent
:type block_biometric_consent: bool
+ :param session_deadline: session deadline using a Zoned timestamp
+ "type session_deadline: str
"""
if requested_tasks is None:
requested_tasks = []
@@ -58,6 +61,7 @@ def __init__(
self.__requested_tasks = requested_tasks
self.__required_documents = required_documents
self.__block_biometric_consent = block_biometric_consent
+ self.__session_deadline = session_deadline
@property
def client_session_token_ttl(self):
@@ -152,6 +156,16 @@ def block_biometric_consent(self):
"""
return self.__block_biometric_consent
+ @property
+ def session_deadline(self):
+ """
+ Session deadline used by IDV
+
+ :return: session deadline
+ :rtype: str
+ """
+ return self.__session_deadline
+
def to_json(self):
return remove_null_values(
{
@@ -164,6 +178,7 @@ def to_json(self):
"sdk_config": self.sdk_config,
"required_documents": self.required_documents,
"block_biometric_consent": self.block_biometric_consent,
+ "session_deadline": self.session_deadline,
}
)
@@ -183,6 +198,7 @@ def __init__(self):
self.__requested_tasks = []
self.__required_documents = []
self.__block_biometric_consent = None
+ self.__session_deadline = None
def with_client_session_token_ttl(self, value):
"""
@@ -196,6 +212,19 @@ def with_client_session_token_ttl(self, value):
self.__client_session_token_ttl = value
return self
+ def with_session_deadline(self, value):
+ """
+ Sets the deadline that the session needs to be completed by.
+ Can be used as an alternative to with_client_session_token_ttl.
+
+ :param value: the session deadline
+ :type value: str
+ :return: the builder
+ :rtype: SessionSpecBuilder
+ """
+ self.__session_deadline = value
+ return self
+
def with_resources_ttl(self, value):
"""
Sets the resources TTL (time-to-live)
@@ -309,4 +338,5 @@ def build(self):
self.__requested_tasks,
self.__required_documents,
self.__block_biometric_consent,
+ self.__session_deadline,
)
diff --git a/yoti_python_sdk/doc_scan/session/create/subcheck/__init__.py b/yoti_python_sdk/doc_scan/session/create/subcheck/__init__.py
new file mode 100644
index 00000000..2e248d33
--- /dev/null
+++ b/yoti_python_sdk/doc_scan/session/create/subcheck/__init__.py
@@ -0,0 +1,5 @@
+from .issuing_authority_sub_check import IssuingAuthoritySubCheckBuilder
+
+__all__ = [
+ "IssuingAuthoritySubCheckBuilder",
+]
diff --git a/yoti_python_sdk/doc_scan/session/create/subcheck/issuing_authority_sub_check.py b/yoti_python_sdk/doc_scan/session/create/subcheck/issuing_authority_sub_check.py
new file mode 100644
index 00000000..376171b7
--- /dev/null
+++ b/yoti_python_sdk/doc_scan/session/create/subcheck/issuing_authority_sub_check.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+
+from yoti_python_sdk.doc_scan.session.create.filter.document_filter import DocumentFilter
+from yoti_python_sdk.utils import YotiSerializable
+from .sub_check import SubRequestedCheck
+
+
+class IssuingAuthoritySubCheck(SubRequestedCheck):
+ """
+ Requests creation of an Issuing Authority Sub Check.
+ """
+
+ def __init__(self, filter=None):
+ self._filter = filter
+
+ @property
+ def requested(self):
+ return True
+
+ @property
+ def filter(self):
+ return self._filter
+
+
+class IssuingAuthoritySubCheckBuilder:
+ """
+ Builder for Issuing Authority Sub Check.
+ """
+ def __init__(self):
+ self._filter = None
+
+ def with_filter(self, filter):
+ if not issubclass(type(filter), DocumentFilter):
+ raise ValueError('invalid filter')
+
+ self._filter = filter
+
+ return self
+
+ def build(self):
+ return IssuingAuthoritySubCheck(filter=self._filter)
diff --git a/yoti_python_sdk/doc_scan/session/create/subcheck/sub_check.py b/yoti_python_sdk/doc_scan/session/create/subcheck/sub_check.py
new file mode 100644
index 00000000..d4fa882d
--- /dev/null
+++ b/yoti_python_sdk/doc_scan/session/create/subcheck/sub_check.py
@@ -0,0 +1,20 @@
+from abc import ABCMeta
+from abc import abstractmethod
+
+from yoti_python_sdk.utils import YotiSerializable
+
+
+class SubRequestedCheck(YotiSerializable):
+ """
+ Requests creation of a SubCheck to be performed on a document
+ """
+
+ __metaclass__ = ABCMeta
+
+ @property
+ @abstractmethod
+ def type(self):
+ raise NotImplementedError
+
+ def to_json(self):
+ return remove_null_values({"type": self.type, "config": self.config})
diff --git a/yoti_python_sdk/doc_scan/session/retrieve/check_response.py b/yoti_python_sdk/doc_scan/session/retrieve/check_response.py
index f1cb515d..f05c4cf5 100644
--- a/yoti_python_sdk/doc_scan/session/retrieve/check_response.py
+++ b/yoti_python_sdk/doc_scan/session/retrieve/check_response.py
@@ -184,3 +184,11 @@ class SupplementaryDocumentTextDataCheckResponse(CheckResponse):
"""
pass
+
+
+class WatchlistScreeningCheckResponse(CheckResponse):
+ """
+ Represents a watchlist screening check for a given session
+ """
+
+ pass
diff --git a/yoti_python_sdk/doc_scan/session/retrieve/create_session_result.py b/yoti_python_sdk/doc_scan/session/retrieve/create_session_result.py
index c64dd9da..2990f473 100644
--- a/yoti_python_sdk/doc_scan/session/retrieve/create_session_result.py
+++ b/yoti_python_sdk/doc_scan/session/retrieve/create_session_result.py
@@ -16,6 +16,7 @@ def __init__(self, data=None):
data = dict()
self.__client_session_token_ttl = data.get("client_session_token_ttl", None)
+ self.__session_deadline = data.get("session_deadline", None)
self.__session_id = data.get("session_id", None)
self.__client_session_token = data.get("client_session_token", None)
@@ -49,3 +50,13 @@ def session_id(self):
:rtype: str or None
"""
return self.__session_id
+
+ @property
+ def session_deadline(self):
+ """
+ The deadline that the session needs to be completed by.
+
+ :return: the session deadline
+ :rtype: str or None
+ """
+ return self.__session_deadline
diff --git a/yoti_python_sdk/doc_scan/session/retrieve/get_session_result.py b/yoti_python_sdk/doc_scan/session/retrieve/get_session_result.py
index f39eed98..7f238281 100644
--- a/yoti_python_sdk/doc_scan/session/retrieve/get_session_result.py
+++ b/yoti_python_sdk/doc_scan/session/retrieve/get_session_result.py
@@ -16,6 +16,7 @@
LivenessCheckResponse,
TextDataCheckResponse,
SupplementaryDocumentTextDataCheckResponse,
+ WatchlistScreeningCheckResponse,
)
from .resource_container import ResourceContainer
@@ -80,6 +81,7 @@ def __parse_check(check):
constants.ID_DOCUMENT_FACE_MATCH: FaceMatchCheckResponse,
constants.ID_DOCUMENT_TEXT_DATA_CHECK: TextDataCheckResponse,
constants.LIVENESS: LivenessCheckResponse,
+ constants.WATCHLIST_SCREENING_CHECK_TYPE: WatchlistScreeningCheckResponse,
constants.ID_DOCUMENT_COMPARISON: IDDocumentComparisonCheckResponse,
constants.SUPPLEMENTARY_DOCUMENT_TEXT_DATA_CHECK: SupplementaryDocumentTextDataCheckResponse,
}
diff --git a/yoti_python_sdk/doc_scan/support/supported_documents.py b/yoti_python_sdk/doc_scan/support/supported_documents.py
index 55505b78..a35a21e1 100644
--- a/yoti_python_sdk/doc_scan/support/supported_documents.py
+++ b/yoti_python_sdk/doc_scan/support/supported_documents.py
@@ -4,11 +4,16 @@ def __init__(self, data=None):
data = dict()
self.__type = data.get("type", None)
+ self.__is_strictly_latin = data.get("is_strictly_latin", None)
@property
def type(self):
return self.__type
+ @property
+ def is_strictly_latin(self):
+ return self.__is_strictly_latin
+
class SupportedCountry(object):
def __init__(self, data=None):
diff --git a/yoti_python_sdk/protobuf/attribute_public_api/Attribute_pb2.py b/yoti_python_sdk/protobuf/attribute_public_api/Attribute_pb2.py
deleted file mode 100644
index de3e260b..00000000
--- a/yoti_python_sdk/protobuf/attribute_public_api/Attribute_pb2.py
+++ /dev/null
@@ -1,256 +0,0 @@
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: Attribute.proto
-
-import sys
-_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-import ContentType_pb2 as ContentType__pb2
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='Attribute.proto',
- package='attrpubapi_v1',
- syntax='proto3',
- serialized_options=_b('\n$com.yoti.api.client.spi.remote.protoB\tAttrProtoZ\ryotiprotoattr\252\002\034Yoti.Auth.ProtoBuf.Attribute\312\002\nAttrpubapi'),
- serialized_pb=_b('\n\x0f\x41ttribute.proto\x12\rattrpubapi_v1\x1a\x11\x43ontentType.proto\"\x82\x01\n\tAttribute\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\x30\n\x0c\x63ontent_type\x18\x03 \x01(\x0e\x32\x1a.attrpubapi_v1.ContentType\x12&\n\x07\x61nchors\x18\x04 \x03(\x0b\x32\x15.attrpubapi_v1.Anchor\"\x98\x01\n\x06\x41nchor\x12\x15\n\rartifact_link\x18\x01 \x01(\x0c\x12\x1b\n\x13origin_server_certs\x18\x02 \x03(\x0c\x12\x1a\n\x12\x61rtifact_signature\x18\x03 \x01(\x0c\x12\x10\n\x08sub_type\x18\x04 \x01(\t\x12\x11\n\tsignature\x18\x05 \x01(\x0c\x12\x19\n\x11signed_time_stamp\x18\x06 \x01(\x0c\"\x86\x01\n\nMultiValue\x12/\n\x06values\x18\x01 \x03(\x0b\x32\x1f.attrpubapi_v1.MultiValue.Value\x1aG\n\x05Value\x12\x30\n\x0c\x63ontent_type\x18\x01 \x01(\x0e\x32\x1a.attrpubapi_v1.ContentType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x42l\n$com.yoti.api.client.spi.remote.protoB\tAttrProtoZ\ryotiprotoattr\xaa\x02\x1cYoti.Auth.ProtoBuf.Attribute\xca\x02\nAttrpubapib\x06proto3')
- ,
- dependencies=[ContentType__pb2.DESCRIPTOR,])
-
-
-
-
-_ATTRIBUTE = _descriptor.Descriptor(
- name='Attribute',
- full_name='attrpubapi_v1.Attribute',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='name', full_name='attrpubapi_v1.Attribute.name', index=0,
- number=1, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=_b("").decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='value', full_name='attrpubapi_v1.Attribute.value', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='content_type', full_name='attrpubapi_v1.Attribute.content_type', index=2,
- number=3, type=14, cpp_type=8, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='anchors', full_name='attrpubapi_v1.Attribute.anchors', index=3,
- number=4, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=54,
- serialized_end=184,
-)
-
-
-_ANCHOR = _descriptor.Descriptor(
- name='Anchor',
- full_name='attrpubapi_v1.Anchor',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='artifact_link', full_name='attrpubapi_v1.Anchor.artifact_link', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='origin_server_certs', full_name='attrpubapi_v1.Anchor.origin_server_certs', index=1,
- number=2, type=12, cpp_type=9, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='artifact_signature', full_name='attrpubapi_v1.Anchor.artifact_signature', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='sub_type', full_name='attrpubapi_v1.Anchor.sub_type', index=3,
- number=4, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=_b("").decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='signature', full_name='attrpubapi_v1.Anchor.signature', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='signed_time_stamp', full_name='attrpubapi_v1.Anchor.signed_time_stamp', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=187,
- serialized_end=339,
-)
-
-
-_MULTIVALUE_VALUE = _descriptor.Descriptor(
- name='Value',
- full_name='attrpubapi_v1.MultiValue.Value',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='content_type', full_name='attrpubapi_v1.MultiValue.Value.content_type', index=0,
- number=1, type=14, cpp_type=8, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='data', full_name='attrpubapi_v1.MultiValue.Value.data', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=405,
- serialized_end=476,
-)
-
-_MULTIVALUE = _descriptor.Descriptor(
- name='MultiValue',
- full_name='attrpubapi_v1.MultiValue',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='values', full_name='attrpubapi_v1.MultiValue.values', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[_MULTIVALUE_VALUE, ],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=342,
- serialized_end=476,
-)
-
-_ATTRIBUTE.fields_by_name['content_type'].enum_type = ContentType__pb2._CONTENTTYPE
-_ATTRIBUTE.fields_by_name['anchors'].message_type = _ANCHOR
-_MULTIVALUE_VALUE.fields_by_name['content_type'].enum_type = ContentType__pb2._CONTENTTYPE
-_MULTIVALUE_VALUE.containing_type = _MULTIVALUE
-_MULTIVALUE.fields_by_name['values'].message_type = _MULTIVALUE_VALUE
-DESCRIPTOR.message_types_by_name['Attribute'] = _ATTRIBUTE
-DESCRIPTOR.message_types_by_name['Anchor'] = _ANCHOR
-DESCRIPTOR.message_types_by_name['MultiValue'] = _MULTIVALUE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-Attribute = _reflection.GeneratedProtocolMessageType('Attribute', (_message.Message,), dict(
- DESCRIPTOR = _ATTRIBUTE,
- __module__ = 'Attribute_pb2'
- # @@protoc_insertion_point(class_scope:attrpubapi_v1.Attribute)
- ))
-_sym_db.RegisterMessage(Attribute)
-
-Anchor = _reflection.GeneratedProtocolMessageType('Anchor', (_message.Message,), dict(
- DESCRIPTOR = _ANCHOR,
- __module__ = 'Attribute_pb2'
- # @@protoc_insertion_point(class_scope:attrpubapi_v1.Anchor)
- ))
-_sym_db.RegisterMessage(Anchor)
-
-MultiValue = _reflection.GeneratedProtocolMessageType('MultiValue', (_message.Message,), dict(
-
- Value = _reflection.GeneratedProtocolMessageType('Value', (_message.Message,), dict(
- DESCRIPTOR = _MULTIVALUE_VALUE,
- __module__ = 'Attribute_pb2'
- # @@protoc_insertion_point(class_scope:attrpubapi_v1.MultiValue.Value)
- ))
- ,
- DESCRIPTOR = _MULTIVALUE,
- __module__ = 'Attribute_pb2'
- # @@protoc_insertion_point(class_scope:attrpubapi_v1.MultiValue)
- ))
-_sym_db.RegisterMessage(MultiValue)
-_sym_db.RegisterMessage(MultiValue.Value)
-
-
-DESCRIPTOR._options = None
-# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/attribute_public_api/Attribute_pb2_grpc.py b/yoti_python_sdk/protobuf/attribute_public_api/Attribute_pb2_grpc.py
deleted file mode 100644
index a8943526..00000000
--- a/yoti_python_sdk/protobuf/attribute_public_api/Attribute_pb2_grpc.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-import grpc
-
diff --git a/yoti_python_sdk/protobuf/attribute_public_api/ContentType_pb2.py b/yoti_python_sdk/protobuf/attribute_public_api/ContentType_pb2.py
deleted file mode 100644
index cb207895..00000000
--- a/yoti_python_sdk/protobuf/attribute_public_api/ContentType_pb2.py
+++ /dev/null
@@ -1,88 +0,0 @@
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: ContentType.proto
-
-import sys
-_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
-from google.protobuf.internal import enum_type_wrapper
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='ContentType.proto',
- package='attrpubapi_v1',
- syntax='proto3',
- serialized_options=_b('\n$com.yoti.api.client.spi.remote.protoB\020ContentTypeProtoZ\ryotiprotoattr\252\002\034Yoti.Auth.ProtoBuf.Attribute\312\002\nAttrpubapi'),
- serialized_pb=_b('\n\x11\x43ontentType.proto\x12\rattrpubapi_v1*i\n\x0b\x43ontentType\x12\r\n\tUNDEFINED\x10\x00\x12\n\n\x06STRING\x10\x01\x12\x08\n\x04JPEG\x10\x02\x12\x08\n\x04\x44\x41TE\x10\x03\x12\x07\n\x03PNG\x10\x04\x12\x08\n\x04JSON\x10\x05\x12\x0f\n\x0bMULTI_VALUE\x10\x06\x12\x07\n\x03INT\x10\x07\x42s\n$com.yoti.api.client.spi.remote.protoB\x10\x43ontentTypeProtoZ\ryotiprotoattr\xaa\x02\x1cYoti.Auth.ProtoBuf.Attribute\xca\x02\nAttrpubapib\x06proto3')
-)
-
-_CONTENTTYPE = _descriptor.EnumDescriptor(
- name='ContentType',
- full_name='attrpubapi_v1.ContentType',
- filename=None,
- file=DESCRIPTOR,
- values=[
- _descriptor.EnumValueDescriptor(
- name='UNDEFINED', index=0, number=0,
- serialized_options=None,
- type=None),
- _descriptor.EnumValueDescriptor(
- name='STRING', index=1, number=1,
- serialized_options=None,
- type=None),
- _descriptor.EnumValueDescriptor(
- name='JPEG', index=2, number=2,
- serialized_options=None,
- type=None),
- _descriptor.EnumValueDescriptor(
- name='DATE', index=3, number=3,
- serialized_options=None,
- type=None),
- _descriptor.EnumValueDescriptor(
- name='PNG', index=4, number=4,
- serialized_options=None,
- type=None),
- _descriptor.EnumValueDescriptor(
- name='JSON', index=5, number=5,
- serialized_options=None,
- type=None),
- _descriptor.EnumValueDescriptor(
- name='MULTI_VALUE', index=6, number=6,
- serialized_options=None,
- type=None),
- _descriptor.EnumValueDescriptor(
- name='INT', index=7, number=7,
- serialized_options=None,
- type=None),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=36,
- serialized_end=141,
-)
-_sym_db.RegisterEnumDescriptor(_CONTENTTYPE)
-
-ContentType = enum_type_wrapper.EnumTypeWrapper(_CONTENTTYPE)
-UNDEFINED = 0
-STRING = 1
-JPEG = 2
-DATE = 3
-PNG = 4
-JSON = 5
-MULTI_VALUE = 6
-INT = 7
-
-
-DESCRIPTOR.enum_types_by_name['ContentType'] = _CONTENTTYPE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-
-DESCRIPTOR._options = None
-# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/attribute_public_api/ContentType_pb2_grpc.py b/yoti_python_sdk/protobuf/attribute_public_api/ContentType_pb2_grpc.py
deleted file mode 100644
index a8943526..00000000
--- a/yoti_python_sdk/protobuf/attribute_public_api/ContentType_pb2_grpc.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-import grpc
-
diff --git a/yoti_python_sdk/protobuf/attribute_public_api/List_pb2.py b/yoti_python_sdk/protobuf/attribute_public_api/List_pb2.py
deleted file mode 100644
index 68c3fd3b..00000000
--- a/yoti_python_sdk/protobuf/attribute_public_api/List_pb2.py
+++ /dev/null
@@ -1,160 +0,0 @@
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: List.proto
-
-import sys
-_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-import Attribute_pb2 as Attribute__pb2
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='List.proto',
- package='attrpubapi_v1',
- syntax='proto3',
- serialized_options=_b('\n$com.yoti.api.client.spi.remote.protoB\022AttributeListProtoZ\ryotiprotoattr\252\002\034Yoti.Auth.ProtoBuf.Attribute\312\002\nAttrpubapi'),
- serialized_pb=_b('\n\nList.proto\x12\rattrpubapi_v1\x1a\x0f\x41ttribute.proto\"S\n\x0e\x41ttributeAndId\x12+\n\tattribute\x18\x01 \x01(\x0b\x32\x18.attrpubapi_v1.Attribute\x12\x14\n\x0c\x61ttribute_id\x18\x02 \x01(\x0c\"R\n\x12\x41ttributeAndIdList\x12<\n\x15\x61ttribute_and_id_list\x18\x01 \x03(\x0b\x32\x1d.attrpubapi_v1.AttributeAndId\"=\n\rAttributeList\x12,\n\nattributes\x18\x01 \x03(\x0b\x32\x18.attrpubapi_v1.AttributeBu\n$com.yoti.api.client.spi.remote.protoB\x12\x41ttributeListProtoZ\ryotiprotoattr\xaa\x02\x1cYoti.Auth.ProtoBuf.Attribute\xca\x02\nAttrpubapib\x06proto3')
- ,
- dependencies=[Attribute__pb2.DESCRIPTOR,])
-
-
-
-
-_ATTRIBUTEANDID = _descriptor.Descriptor(
- name='AttributeAndId',
- full_name='attrpubapi_v1.AttributeAndId',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='attribute', full_name='attrpubapi_v1.AttributeAndId.attribute', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='attribute_id', full_name='attrpubapi_v1.AttributeAndId.attribute_id', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=46,
- serialized_end=129,
-)
-
-
-_ATTRIBUTEANDIDLIST = _descriptor.Descriptor(
- name='AttributeAndIdList',
- full_name='attrpubapi_v1.AttributeAndIdList',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='attribute_and_id_list', full_name='attrpubapi_v1.AttributeAndIdList.attribute_and_id_list', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=131,
- serialized_end=213,
-)
-
-
-_ATTRIBUTELIST = _descriptor.Descriptor(
- name='AttributeList',
- full_name='attrpubapi_v1.AttributeList',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='attributes', full_name='attrpubapi_v1.AttributeList.attributes', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=215,
- serialized_end=276,
-)
-
-_ATTRIBUTEANDID.fields_by_name['attribute'].message_type = Attribute__pb2._ATTRIBUTE
-_ATTRIBUTEANDIDLIST.fields_by_name['attribute_and_id_list'].message_type = _ATTRIBUTEANDID
-_ATTRIBUTELIST.fields_by_name['attributes'].message_type = Attribute__pb2._ATTRIBUTE
-DESCRIPTOR.message_types_by_name['AttributeAndId'] = _ATTRIBUTEANDID
-DESCRIPTOR.message_types_by_name['AttributeAndIdList'] = _ATTRIBUTEANDIDLIST
-DESCRIPTOR.message_types_by_name['AttributeList'] = _ATTRIBUTELIST
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-AttributeAndId = _reflection.GeneratedProtocolMessageType('AttributeAndId', (_message.Message,), dict(
- DESCRIPTOR = _ATTRIBUTEANDID,
- __module__ = 'List_pb2'
- # @@protoc_insertion_point(class_scope:attrpubapi_v1.AttributeAndId)
- ))
-_sym_db.RegisterMessage(AttributeAndId)
-
-AttributeAndIdList = _reflection.GeneratedProtocolMessageType('AttributeAndIdList', (_message.Message,), dict(
- DESCRIPTOR = _ATTRIBUTEANDIDLIST,
- __module__ = 'List_pb2'
- # @@protoc_insertion_point(class_scope:attrpubapi_v1.AttributeAndIdList)
- ))
-_sym_db.RegisterMessage(AttributeAndIdList)
-
-AttributeList = _reflection.GeneratedProtocolMessageType('AttributeList', (_message.Message,), dict(
- DESCRIPTOR = _ATTRIBUTELIST,
- __module__ = 'List_pb2'
- # @@protoc_insertion_point(class_scope:attrpubapi_v1.AttributeList)
- ))
-_sym_db.RegisterMessage(AttributeList)
-
-
-DESCRIPTOR._options = None
-# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/attribute_public_api/List_pb2_grpc.py b/yoti_python_sdk/protobuf/attribute_public_api/List_pb2_grpc.py
deleted file mode 100644
index a8943526..00000000
--- a/yoti_python_sdk/protobuf/attribute_public_api/List_pb2_grpc.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-import grpc
-
diff --git a/yoti_python_sdk/protobuf/attribute_public_api/Signing_pb2.py b/yoti_python_sdk/protobuf/attribute_public_api/Signing_pb2.py
deleted file mode 100644
index e4029576..00000000
--- a/yoti_python_sdk/protobuf/attribute_public_api/Signing_pb2.py
+++ /dev/null
@@ -1,108 +0,0 @@
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: Signing.proto
-
-import sys
-_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-import ContentType_pb2 as ContentType__pb2
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='Signing.proto',
- package='attrpubapi_v1',
- syntax='proto3',
- serialized_options=_b('\n$com.yoti.api.client.spi.remote.protoB\014SigningProtoZ\ryotiprotoattr\252\002\034Yoti.Auth.ProtoBuf.Attribute\312\002\nAttrpubapi'),
- serialized_pb=_b('\n\rSigning.proto\x12\rattrpubapi_v1\x1a\x11\x43ontentType.proto\"\xaa\x01\n\x10\x41ttributeSigning\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\x30\n\x0c\x63ontent_type\x18\x03 \x01(\x0e\x32\x1a.attrpubapi_v1.ContentType\x12\x1a\n\x12\x61rtifact_signature\x18\x04 \x01(\x0c\x12\x10\n\x08sub_type\x18\x05 \x01(\t\x12\x19\n\x11signed_time_stamp\x18\x06 \x01(\x0c\x42o\n$com.yoti.api.client.spi.remote.protoB\x0cSigningProtoZ\ryotiprotoattr\xaa\x02\x1cYoti.Auth.ProtoBuf.Attribute\xca\x02\nAttrpubapib\x06proto3')
- ,
- dependencies=[ContentType__pb2.DESCRIPTOR,])
-
-
-
-
-_ATTRIBUTESIGNING = _descriptor.Descriptor(
- name='AttributeSigning',
- full_name='attrpubapi_v1.AttributeSigning',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='name', full_name='attrpubapi_v1.AttributeSigning.name', index=0,
- number=1, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=_b("").decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='value', full_name='attrpubapi_v1.AttributeSigning.value', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='content_type', full_name='attrpubapi_v1.AttributeSigning.content_type', index=2,
- number=3, type=14, cpp_type=8, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='artifact_signature', full_name='attrpubapi_v1.AttributeSigning.artifact_signature', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='sub_type', full_name='attrpubapi_v1.AttributeSigning.sub_type', index=4,
- number=5, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=_b("").decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='signed_time_stamp', full_name='attrpubapi_v1.AttributeSigning.signed_time_stamp', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=52,
- serialized_end=222,
-)
-
-_ATTRIBUTESIGNING.fields_by_name['content_type'].enum_type = ContentType__pb2._CONTENTTYPE
-DESCRIPTOR.message_types_by_name['AttributeSigning'] = _ATTRIBUTESIGNING
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-AttributeSigning = _reflection.GeneratedProtocolMessageType('AttributeSigning', (_message.Message,), dict(
- DESCRIPTOR = _ATTRIBUTESIGNING,
- __module__ = 'Signing_pb2'
- # @@protoc_insertion_point(class_scope:attrpubapi_v1.AttributeSigning)
- ))
-_sym_db.RegisterMessage(AttributeSigning)
-
-
-DESCRIPTOR._options = None
-# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/attribute_public_api/Signing_pb2_grpc.py b/yoti_python_sdk/protobuf/attribute_public_api/Signing_pb2_grpc.py
deleted file mode 100644
index a8943526..00000000
--- a/yoti_python_sdk/protobuf/attribute_public_api/Signing_pb2_grpc.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-import grpc
-
diff --git a/yoti_python_sdk/protobuf/attribute_public_api/__init__.py b/yoti_python_sdk/protobuf/attribute_public_api/__init__.py
deleted file mode 100644
index 08ec9e65..00000000
--- a/yoti_python_sdk/protobuf/attribute_public_api/__init__.py
+++ /dev/null
@@ -1,5 +0,0 @@
-import os
-import sys
-
-# needed so we can import relative modules from distinct protobuf-generated files
-sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
diff --git a/yoti_python_sdk/protobuf/attrpubapi_v1/AttributeChange_pb2.py b/yoti_python_sdk/protobuf/attrpubapi_v1/AttributeChange_pb2.py
new file mode 100644
index 00000000..ef184005
--- /dev/null
+++ b/yoti_python_sdk/protobuf/attrpubapi_v1/AttributeChange_pb2.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: attrpubapi_v1/AttributeChange.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import Refresh_pb2 as attrpubapi__v1_dot_Refresh__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#attrpubapi_v1/AttributeChange.proto\x12\x17yoti.core.attrpubapi_v1\x1a\x1b\x61ttrpubapi_v1/Refresh.proto\"j\n\x0f\x41ttributeChange\x12?\n\x06status\x18\x01 \x01(\x0e\x32/.yoti.core.attrpubapi_v1.RefreshResponse.Status\x12\x16\n\x0e\x61ttribute_name\x18\x02 \x01(\tBm\n\x16\x63om.yoti.attrpubapi_v1B\x14\x41ttributeChangeProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\xba\x02\rAttrpubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'AttributeChange_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\026com.yoti.attrpubapi_v1B\024AttributeChangeProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\272\002\rAttrpubapiV1_'
+ _ATTRIBUTECHANGE._serialized_start=93
+ _ATTRIBUTECHANGE._serialized_end=199
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/attrpubapi_v1/AttributeDisplayRequest_pb2.py b/yoti_python_sdk/protobuf/attrpubapi_v1/AttributeDisplayRequest_pb2.py
new file mode 100644
index 00000000..7f7b37c8
--- /dev/null
+++ b/yoti_python_sdk/protobuf/attrpubapi_v1/AttributeDisplayRequest_pb2.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: attrpubapi_v1/AttributeDisplayRequest.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from devicepubapi_v1 import StaticCredentialAuth_pb2 as devicepubapi__v1_dot_StaticCredentialAuth__pb2
+from yoti_python_sdk.protobuf.compubapi_v1 import Metadata_pb2 as compubapi__v1_dot_Metadata__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+attrpubapi_v1/AttributeDisplayRequest.proto\x12\x17yoti.core.attrpubapi_v1\x1a*devicepubapi_v1/StaticCredentialAuth.proto\x1a\x1b\x63ompubapi_v1/Metadata.proto\"\xac\x02\n\x17\x41ttributeDisplayRequest\x12\x13\n\x0bwrapped_key\x18\x01 \x01(\x0c\x12\x12\n\ncredential\x18\x02 \x01(\x0c\x12\x11\n\tauth_list\x18\x03 \x01(\x0c\x12\x16\n\x0e\x61ttribute_name\x18\x04 \x01(\t\x12:\n\x0f\x64\x65vice_metadata\x18\xc0\x0c \x01(\x0b\x32 .yoti.core.compubapi_v1.Metadata\x12\x16\n\rfeature_flags\x18\xc1\x0c \x01(\x06\x12\x17\n\x0e\x63orrelation_id\x18\xc2\x0c \x01(\t\x12P\n\x16static_credential_auth\x18\xb8\x17 \x01(\x0b\x32/.yoti.core.devicepubapi_v1.StaticCredentialAuthBu\n\x16\x63om.yoti.attrpubapi_v1B\x1c\x41ttributeDisplayRequestProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\xba\x02\rAttrpubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'AttributeDisplayRequest_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\026com.yoti.attrpubapi_v1B\034AttributeDisplayRequestProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\272\002\rAttrpubapiV1_'
+ _ATTRIBUTEDISPLAYREQUEST._serialized_start=146
+ _ATTRIBUTEDISPLAYREQUEST._serialized_end=446
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/attrpubapi_v1/AttributeDisplayResponse_pb2.py b/yoti_python_sdk/protobuf/attrpubapi_v1/AttributeDisplayResponse_pb2.py
new file mode 100644
index 00000000..5815558b
--- /dev/null
+++ b/yoti_python_sdk/protobuf/attrpubapi_v1/AttributeDisplayResponse_pb2.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: attrpubapi_v1/AttributeDisplayResponse.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n,attrpubapi_v1/AttributeDisplayResponse.proto\x12\x17yoti.core.attrpubapi_v1\"(\n\x18\x41ttributeDisplayResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x42v\n\x16\x63om.yoti.attrpubapi_v1B\x1d\x41ttributeDisplayResponseProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\xba\x02\rAttrpubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'AttributeDisplayResponse_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\026com.yoti.attrpubapi_v1B\035AttributeDisplayResponseProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\272\002\rAttrpubapiV1_'
+ _ATTRIBUTEDISPLAYRESPONSE._serialized_start=73
+ _ATTRIBUTEDISPLAYRESPONSE._serialized_end=113
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/attrpubapi_v1/Attribute_pb2.py b/yoti_python_sdk/protobuf/attrpubapi_v1/Attribute_pb2.py
new file mode 100644
index 00000000..b7f52041
--- /dev/null
+++ b/yoti_python_sdk/protobuf/attrpubapi_v1/Attribute_pb2.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: attrpubapi_v1/Attribute.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x61ttrpubapi_v1/Attribute.proto\x12\x17yoti.core.attrpubapi_v1\"\x9a\x01\n\nMultiValue\x12\x39\n\x06values\x18\x01 \x03(\x0b\x32).yoti.core.attrpubapi_v1.MultiValue.Value\x1aQ\n\x05Value\x12:\n\x0c\x63ontent_type\x18\x01 \x01(\x0e\x32$.yoti.core.attrpubapi_v1.ContentType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x9f\x02\n\tAttribute\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12:\n\x0c\x63ontent_type\x18\x03 \x01(\x0e\x32$.yoti.core.attrpubapi_v1.ContentType\x12\x30\n\x07\x61nchors\x18\x04 \x03(\x0b\x32\x1f.yoti.core.attrpubapi_v1.Anchor\x12<\n\ruser_metadata\x18\x05 \x03(\x0b\x32%.yoti.core.attrpubapi_v1.UserMetadata\x12\x33\n\x08metadata\x18\x06 \x01(\x0b\x32!.yoti.core.attrpubapi_v1.Metadata\x12\x14\n\x0c\x65phemeral_id\x18\x07 \x01(\t\"\xa0\x01\n\x08Metadata\x12\x1d\n\x15superseded_time_stamp\x18\x01 \x01(\t\x12\x11\n\tdeletable\x18\x02 \x01(\x08\x12\x12\n\nreceipt_id\x18\x03 \x01(\x0c\x12\x0f\n\x07revoked\x18\x04 \x01(\x08\x12\x0e\n\x06locked\x18\x05 \x01(\x08\x12\x1c\n\x14\x65xtended_expiry_date\x18\x06 \x01(\t\x12\x0f\n\x07\x64\x65leted\x18\x07 \x01(\x08\"\xb3\x01\n\x06\x41nchor\x12\x15\n\rartifact_link\x18\x01 \x01(\x0c\x12\x1b\n\x13origin_server_certs\x18\x02 \x03(\x0c\x12\x1a\n\x12\x61rtifact_signature\x18\x03 \x01(\x0c\x12\x10\n\x08sub_type\x18\x04 \x01(\t\x12\x11\n\tsignature\x18\x05 \x01(\x0c\x12\x19\n\x11signed_time_stamp\x18\x06 \x01(\x0c\x12\x19\n\x11\x61ssociated_source\x18\x07 \x01(\t\"*\n\x0cUserMetadata\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t*u\n\x0b\x43ontentType\x12\r\n\tUNDEFINED\x10\x00\x12\n\n\x06STRING\x10\x01\x12\x08\n\x04JPEG\x10\x02\x12\x08\n\x04\x44\x41TE\x10\x03\x12\x07\n\x03PNG\x10\x04\x12\x08\n\x04JSON\x10\x05\x12\x0f\n\x0bMULTI_VALUE\x10\x06\x12\x07\n\x03INT\x10\x07\x12\n\n\x06JWT_VC\x10\x08\x42g\n\x16\x63om.yoti.attrpubapi_v1B\x0e\x41ttributeProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\xba\x02\rAttrpubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Attribute_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\026com.yoti.attrpubapi_v1B\016AttributeProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\272\002\rAttrpubapiV1_'
+ _CONTENTTYPE._serialized_start=894
+ _CONTENTTYPE._serialized_end=1011
+ _MULTIVALUE._serialized_start=59
+ _MULTIVALUE._serialized_end=213
+ _MULTIVALUE_VALUE._serialized_start=132
+ _MULTIVALUE_VALUE._serialized_end=213
+ _ATTRIBUTE._serialized_start=216
+ _ATTRIBUTE._serialized_end=503
+ _METADATA._serialized_start=506
+ _METADATA._serialized_end=666
+ _ANCHOR._serialized_start=669
+ _ANCHOR._serialized_end=848
+ _USERMETADATA._serialized_start=850
+ _USERMETADATA._serialized_end=892
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/attrpubapi_v1/DeleteSuperseded_pb2.py b/yoti_python_sdk/protobuf/attrpubapi_v1/DeleteSuperseded_pb2.py
new file mode 100644
index 00000000..db833fd9
--- /dev/null
+++ b/yoti_python_sdk/protobuf/attrpubapi_v1/DeleteSuperseded_pb2.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: attrpubapi_v1/DeleteSuperseded.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from yoti_python_sdk.protobuf.compubapi_v1 import Metadata_pb2 as compubapi__v1_dot_Metadata__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$attrpubapi_v1/DeleteSuperseded.proto\x12\x17yoti.core.attrpubapi_v1\x1a\x1b\x63ompubapi_v1/Metadata.proto\"\x9d\x02\n\x17\x44\x65leteSupersededRequest\x12\x12\n\ncredential\x18\x01 \x01(\x0c\x12\x13\n\x0bwrapped_key\x18\x02 \x01(\x0c\x12\x16\n\x0e\x61uth_data_list\x18\x03 \x01(\x0c\x12\x15\n\rattribute_ids\x18\x04 \x03(\x0c\x12\x1c\n\x14\x61ttributes_backup_id\x18\x05 \x01(\x0c\x12\x1f\n\x17\x65ncrypted_attribute_ids\x18\x06 \x03(\x0c\x12:\n\x0f\x64\x65vice_metadata\x18\xc0\x0c \x01(\x0b\x32 .yoti.core.compubapi_v1.Metadata\x12\x16\n\rfeature_flags\x18\xc1\x0c \x01(\x06\x12\x17\n\x0e\x63orrelation_id\x18\xc2\x0c \x01(\tBn\n\x16\x63om.yoti.attrpubapi_v1B\x15\x44\x65leteSupersededProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\xba\x02\rAttrpubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'DeleteSuperseded_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\026com.yoti.attrpubapi_v1B\025DeleteSupersededProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\272\002\rAttrpubapiV1_'
+ _DELETESUPERSEDEDREQUEST._serialized_start=95
+ _DELETESUPERSEDEDREQUEST._serialized_end=380
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/attrpubapi_v1/Delete_pb2.py b/yoti_python_sdk/protobuf/attrpubapi_v1/Delete_pb2.py
new file mode 100644
index 00000000..c1afae1c
--- /dev/null
+++ b/yoti_python_sdk/protobuf/attrpubapi_v1/Delete_pb2.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: attrpubapi_v1/Delete.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from yoti_python_sdk.protobuf.compubapi_v1 import Metadata_pb2 as compubapi__v1_dot_Metadata__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x61ttrpubapi_v1/Delete.proto\x12\x17yoti.core.attrpubapi_v1\x1a\x1b\x63ompubapi_v1/Metadata.proto\"\x93\x02\n\rDeleteRequest\x12\x12\n\ncredential\x18\x01 \x01(\x0c\x12\x13\n\x0bwrapped_key\x18\x02 \x01(\x0c\x12\x16\n\x0e\x61uth_data_list\x18\x03 \x01(\x0c\x12\x15\n\rattribute_ids\x18\x04 \x03(\x0c\x12\x1c\n\x14\x61ttributes_backup_id\x18\x05 \x01(\x0c\x12\x1f\n\x17\x65ncrypted_attribute_ids\x18\x06 \x03(\x0c\x12:\n\x0f\x64\x65vice_metadata\x18\xc0\x0c \x01(\x0b\x32 .yoti.core.compubapi_v1.Metadata\x12\x16\n\rfeature_flags\x18\xc1\x0c \x01(\x06\x12\x17\n\x0e\x63orrelation_id\x18\xc2\x0c \x01(\tBd\n\x16\x63om.yoti.attrpubapi_v1B\x0b\x44\x65leteProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\xba\x02\rAttrpubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Delete_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\026com.yoti.attrpubapi_v1B\013DeleteProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\272\002\rAttrpubapiV1_'
+ _DELETEREQUEST._serialized_start=85
+ _DELETEREQUEST._serialized_end=360
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/attrpubapi_v1/List_pb2.py b/yoti_python_sdk/protobuf/attrpubapi_v1/List_pb2.py
new file mode 100644
index 00000000..e2e15974
--- /dev/null
+++ b/yoti_python_sdk/protobuf/attrpubapi_v1/List_pb2.py
@@ -0,0 +1,31 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: attrpubapi_v1/List.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import Attribute_pb2 as attrpubapi__v1_dot_Attribute__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x61ttrpubapi_v1/List.proto\x12\x17yoti.core.attrpubapi_v1\x1a\x1d\x61ttrpubapi_v1/Attribute.proto\"]\n\x0e\x41ttributeAndId\x12\x35\n\tattribute\x18\x01 \x01(\x0b\x32\".yoti.core.attrpubapi_v1.Attribute\x12\x14\n\x0c\x61ttribute_id\x18\x02 \x01(\x0c\"\\\n\x12\x41ttributeAndIdList\x12\x46\n\x15\x61ttribute_and_id_list\x18\x01 \x03(\x0b\x32\'.yoti.core.attrpubapi_v1.AttributeAndId\"G\n\rAttributeList\x12\x36\n\nattributes\x18\x01 \x03(\x0b\x32\".yoti.core.attrpubapi_v1.AttributeBk\n\x16\x63om.yoti.attrpubapi_v1B\x12\x41ttributeListProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\xba\x02\rAttrpubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'List_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\026com.yoti.attrpubapi_v1B\022AttributeListProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\272\002\rAttrpubapiV1_'
+ _ATTRIBUTEANDID._serialized_start=84
+ _ATTRIBUTEANDID._serialized_end=177
+ _ATTRIBUTEANDIDLIST._serialized_start=179
+ _ATTRIBUTEANDIDLIST._serialized_end=271
+ _ATTRIBUTELIST._serialized_start=273
+ _ATTRIBUTELIST._serialized_end=344
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/attrpubapi_v1/Refresh_pb2.py b/yoti_python_sdk/protobuf/attrpubapi_v1/Refresh_pb2.py
new file mode 100644
index 00000000..7d9239c2
--- /dev/null
+++ b/yoti_python_sdk/protobuf/attrpubapi_v1/Refresh_pb2.py
@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: attrpubapi_v1/Refresh.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from devicepubapi_v1 import StaticCredentialAuth_pb2 as devicepubapi__v1_dot_StaticCredentialAuth__pb2
+from yoti_python_sdk.protobuf.compubapi_v1 import Metadata_pb2 as compubapi__v1_dot_Metadata__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x61ttrpubapi_v1/Refresh.proto\x12\x17yoti.core.attrpubapi_v1\x1a*devicepubapi_v1/StaticCredentialAuth.proto\x1a\x1b\x63ompubapi_v1/Metadata.proto\"\xa7\x02\n\x0eRefreshRequest\x12\x12\n\ncredential\x18\x01 \x01(\x0c\x12\x13\n\x0bwrapped_key\x18\x02 \x01(\x0c\x12\x16\n\x0e\x61uth_data_list\x18\x03 \x01(\x0c\x12\x15\n\rattribute_ids\x18\x04 \x03(\x0c\x12:\n\x0f\x64\x65vice_metadata\x18\xc0\x0c \x01(\x0b\x32 .yoti.core.compubapi_v1.Metadata\x12\x16\n\rfeature_flags\x18\xc1\x0c \x01(\x06\x12\x17\n\x0e\x63orrelation_id\x18\xc2\x0c \x01(\t\x12P\n\x16static_credential_auth\x18\xb8\x17 \x01(\x0b\x32/.yoti.core.devicepubapi_v1.StaticCredentialAuth\"\xa3\x01\n\x0fRefreshResponse\x12\x41\n\x08statuses\x18\x01 \x03(\x0e\x32/.yoti.core.attrpubapi_v1.RefreshResponse.Status\"M\n\x06Status\x12\r\n\tNO_CHANGE\x10\x00\x12\x0b\n\x07REVOKED\x10\x01\x12\x0b\n\x07UPDATED\x10\x02\x12\r\n\tNOT_FOUND\x10\x03\x12\x0b\n\x07\x45XPIRED\x10\x04\x42o\n\x16\x63om.yoti.attrpubapi_v1B\x16RefreshAttributesProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\xba\x02\rAttrpubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Refresh_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\026com.yoti.attrpubapi_v1B\026RefreshAttributesProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\272\002\rAttrpubapiV1_'
+ _REFRESHREQUEST._serialized_start=130
+ _REFRESHREQUEST._serialized_end=425
+ _REFRESHRESPONSE._serialized_start=428
+ _REFRESHRESPONSE._serialized_end=591
+ _REFRESHRESPONSE_STATUS._serialized_start=514
+ _REFRESHRESPONSE_STATUS._serialized_end=591
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/attrpubapi_v1/Signing_pb2.py b/yoti_python_sdk/protobuf/attrpubapi_v1/Signing_pb2.py
new file mode 100644
index 00000000..1391a9de
--- /dev/null
+++ b/yoti_python_sdk/protobuf/attrpubapi_v1/Signing_pb2.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: attrpubapi_v1/Signing.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import Attribute_pb2 as attrpubapi__v1_dot_Attribute__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x61ttrpubapi_v1/Signing.proto\x12\x17yoti.core.attrpubapi_v1\x1a\x1d\x61ttrpubapi_v1/Attribute.proto\"\xb4\x01\n\x10\x41ttributeSigning\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12:\n\x0c\x63ontent_type\x18\x03 \x01(\x0e\x32$.yoti.core.attrpubapi_v1.ContentType\x12\x1a\n\x12\x61rtifact_signature\x18\x04 \x01(\x0c\x12\x10\n\x08sub_type\x18\x05 \x01(\t\x12\x19\n\x11\x61ssociated_source\x18\x07 \x01(\tBn\n\x16\x63om.yoti.attrpubapi_v1B\x15\x41ttributeSigningProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\xba\x02\rAttrpubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Signing_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\026com.yoti.attrpubapi_v1B\025AttributeSigningProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\272\002\rAttrpubapiV1_'
+ _ATTRIBUTESIGNING._serialized_start=88
+ _ATTRIBUTESIGNING._serialized_end=268
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/attrpubapi_v1/Unlock_pb2.py b/yoti_python_sdk/protobuf/attrpubapi_v1/Unlock_pb2.py
new file mode 100644
index 00000000..097c2e70
--- /dev/null
+++ b/yoti_python_sdk/protobuf/attrpubapi_v1/Unlock_pb2.py
@@ -0,0 +1,34 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: attrpubapi_v1/Unlock.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from devicepubapi_v1 import StaticCredentialAuth_pb2 as devicepubapi__v1_dot_StaticCredentialAuth__pb2
+from yoti_python_sdk.protobuf.compubapi_v1 import Metadata_pb2 as compubapi__v1_dot_Metadata__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x61ttrpubapi_v1/Unlock.proto\x12\x17yoti.core.attrpubapi_v1\x1a*devicepubapi_v1/StaticCredentialAuth.proto\x1a\x1b\x63ompubapi_v1/Metadata.proto\"\xda\x02\n\rUnlockRequest\x12\x12\n\ncredential\x18\x01 \x01(\x0c\x12\x13\n\x0bwrapped_key\x18\x02 \x01(\x0c\x12\x16\n\x0e\x61uth_data_list\x18\x03 \x01(\x0c\x12\x14\n\x0c\x61ttribute_id\x18\x04 \x01(\x0c\x12\x33\n\x0binformation\x18\x05 \x03(\x0b\x32\x1e.yoti.core.attrpubapi_v1.Entry\x12:\n\x0f\x64\x65vice_metadata\x18\xc0\x0c \x01(\x0b\x32 .yoti.core.compubapi_v1.Metadata\x12\x16\n\rfeature_flags\x18\xc1\x0c \x01(\x06\x12\x17\n\x0e\x63orrelation_id\x18\xc2\x0c \x01(\t\x12P\n\x16static_credential_auth\x18\xb8\x17 \x01(\x0b\x32/.yoti.core.devicepubapi_v1.StaticCredentialAuth\"$\n\x05\x45ntry\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x93\x01\n\x0eUnlockResponse\x12>\n\x06result\x18\x01 \x01(\x0e\x32..yoti.core.attrpubapi_v1.UnlockResponse.Result\"A\n\x06Result\x12\r\n\tUNDEFINED\x10\x00\x12\x0e\n\nSUCCESSFUL\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\x0c\n\x08UNLOCKED\x10\x03\x42\x64\n\x16\x63om.yoti.attrpubapi_v1B\x0bUnlockProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\xba\x02\rAttrpubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Unlock_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\026com.yoti.attrpubapi_v1B\013UnlockProtoZ-go.internal.yoti.com/proto/core/attrpubapi_v1\272\002\rAttrpubapiV1_'
+ _UNLOCKREQUEST._serialized_start=129
+ _UNLOCKREQUEST._serialized_end=475
+ _ENTRY._serialized_start=477
+ _ENTRY._serialized_end=513
+ _UNLOCKRESPONSE._serialized_start=516
+ _UNLOCKRESPONSE._serialized_end=663
+ _UNLOCKRESPONSE_RESULT._serialized_start=598
+ _UNLOCKRESPONSE_RESULT._serialized_end=663
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/attrpubapi_v1/__init__.py b/yoti_python_sdk/protobuf/attrpubapi_v1/__init__.py
new file mode 100644
index 00000000..40a96afc
--- /dev/null
+++ b/yoti_python_sdk/protobuf/attrpubapi_v1/__init__.py
@@ -0,0 +1 @@
+# -*- coding: utf-8 -*-
diff --git a/yoti_python_sdk/protobuf/common_public_api/EncryptedData_pb2.py b/yoti_python_sdk/protobuf/common_public_api/EncryptedData_pb2.py
deleted file mode 100644
index a70e88d3..00000000
--- a/yoti_python_sdk/protobuf/common_public_api/EncryptedData_pb2.py
+++ /dev/null
@@ -1,77 +0,0 @@
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: EncryptedData.proto
-
-import sys
-_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='EncryptedData.proto',
- package='compubapi_v1',
- syntax='proto3',
- serialized_options=_b('\n$com.yoti.api.client.spi.remote.protoB\022EncryptedDataProtoZ\014yotiprotocom\252\002\031Yoti.Auth.ProtoBuf.Common\312\002\tCompubapi'),
- serialized_pb=_b('\n\x13\x45ncryptedData.proto\x12\x0c\x63ompubapi_v1\"0\n\rEncryptedData\x12\n\n\x02iv\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63ipher_text\x18\x02 \x01(\x0c\x42p\n$com.yoti.api.client.spi.remote.protoB\x12\x45ncryptedDataProtoZ\x0cyotiprotocom\xaa\x02\x19Yoti.Auth.ProtoBuf.Common\xca\x02\tCompubapib\x06proto3')
-)
-
-
-
-
-_ENCRYPTEDDATA = _descriptor.Descriptor(
- name='EncryptedData',
- full_name='compubapi_v1.EncryptedData',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='iv', full_name='compubapi_v1.EncryptedData.iv', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='cipher_text', full_name='compubapi_v1.EncryptedData.cipher_text', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=37,
- serialized_end=85,
-)
-
-DESCRIPTOR.message_types_by_name['EncryptedData'] = _ENCRYPTEDDATA
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-EncryptedData = _reflection.GeneratedProtocolMessageType('EncryptedData', (_message.Message,), dict(
- DESCRIPTOR = _ENCRYPTEDDATA,
- __module__ = 'EncryptedData_pb2'
- # @@protoc_insertion_point(class_scope:compubapi_v1.EncryptedData)
- ))
-_sym_db.RegisterMessage(EncryptedData)
-
-
-DESCRIPTOR._options = None
-# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/common_public_api/EncryptedData_pb2_grpc.py b/yoti_python_sdk/protobuf/common_public_api/EncryptedData_pb2_grpc.py
deleted file mode 100644
index a8943526..00000000
--- a/yoti_python_sdk/protobuf/common_public_api/EncryptedData_pb2_grpc.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-import grpc
-
diff --git a/yoti_python_sdk/protobuf/common_public_api/SignedTimestamp_pb2.py b/yoti_python_sdk/protobuf/common_public_api/SignedTimestamp_pb2.py
deleted file mode 100644
index e536b0ab..00000000
--- a/yoti_python_sdk/protobuf/common_public_api/SignedTimestamp_pb2.py
+++ /dev/null
@@ -1,105 +0,0 @@
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: SignedTimestamp.proto
-
-import sys
-_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='SignedTimestamp.proto',
- package='compubapi_v1',
- syntax='proto3',
- serialized_options=_b('\n$com.yoti.api.client.spi.remote.protoB\024SignedTimestampProtoZ\014yotiprotocom\252\002\031Yoti.Auth.ProtoBuf.Common\312\002\tCompubapi'),
- serialized_pb=_b('\n\x15SignedTimestamp.proto\x12\x0c\x63ompubapi_v1\"\x9b\x01\n\x0fSignedTimestamp\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x16\n\x0emessage_digest\x18\x03 \x01(\x0c\x12\x14\n\x0c\x63hain_digest\x18\x04 \x01(\x0c\x12\x1a\n\x12\x63hain_digest_skip1\x18\x05 \x01(\x0c\x12\x1a\n\x12\x63hain_digest_skip2\x18\x06 \x01(\x0c\x42r\n$com.yoti.api.client.spi.remote.protoB\x14SignedTimestampProtoZ\x0cyotiprotocom\xaa\x02\x19Yoti.Auth.ProtoBuf.Common\xca\x02\tCompubapib\x06proto3')
-)
-
-
-
-
-_SIGNEDTIMESTAMP = _descriptor.Descriptor(
- name='SignedTimestamp',
- full_name='compubapi_v1.SignedTimestamp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='version', full_name='compubapi_v1.SignedTimestamp.version', index=0,
- number=1, type=5, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='timestamp', full_name='compubapi_v1.SignedTimestamp.timestamp', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='message_digest', full_name='compubapi_v1.SignedTimestamp.message_digest', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='chain_digest', full_name='compubapi_v1.SignedTimestamp.chain_digest', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='chain_digest_skip1', full_name='compubapi_v1.SignedTimestamp.chain_digest_skip1', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='chain_digest_skip2', full_name='compubapi_v1.SignedTimestamp.chain_digest_skip2', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=40,
- serialized_end=195,
-)
-
-DESCRIPTOR.message_types_by_name['SignedTimestamp'] = _SIGNEDTIMESTAMP
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-SignedTimestamp = _reflection.GeneratedProtocolMessageType('SignedTimestamp', (_message.Message,), dict(
- DESCRIPTOR = _SIGNEDTIMESTAMP,
- __module__ = 'SignedTimestamp_pb2'
- # @@protoc_insertion_point(class_scope:compubapi_v1.SignedTimestamp)
- ))
-_sym_db.RegisterMessage(SignedTimestamp)
-
-
-DESCRIPTOR._options = None
-# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/common_public_api/SignedTimestamp_pb2_grpc.py b/yoti_python_sdk/protobuf/common_public_api/SignedTimestamp_pb2_grpc.py
deleted file mode 100644
index a8943526..00000000
--- a/yoti_python_sdk/protobuf/common_public_api/SignedTimestamp_pb2_grpc.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-import grpc
-
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/Address_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/Address_pb2.py
new file mode 100644
index 00000000..54546592
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/Address_pb2.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/Address.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x63ompubapi_v1/Address.proto\x12\x16yoti.core.compubapi_v1\"\xf4\x03\n\x07\x41\x64\x64ress\x12\x16\n\x0e\x61\x64\x64ress_format\x18\x01 \x01(\r\x12\x0f\n\x07\x63\x61re_of\x18\x02 \x01(\t\x12\x14\n\x0csub_building\x18\x03 \x01(\t\x12\x17\n\x0f\x62uilding_number\x18\x04 \x01(\t\x12\x10\n\x08\x62uilding\x18\x05 \x01(\t\x12\x0e\n\x06street\x18\x06 \x01(\t\x12\x10\n\x08landmark\x18\x07 \x01(\t\x12\x15\n\raddress_line1\x18\x08 \x01(\t\x12\x15\n\raddress_line2\x18\t \x01(\t\x12\x15\n\raddress_line3\x18\n \x01(\t\x12\x15\n\raddress_line4\x18\x0b \x01(\t\x12\x15\n\raddress_line5\x18\x0c \x01(\t\x12\x15\n\raddress_line6\x18\r \x01(\t\x12\x10\n\x08locality\x18\x0e \x01(\t\x12\x11\n\ttown_city\x18\x0f \x01(\t\x12\x13\n\x0bsubdistrict\x18\x10 \x01(\t\x12\x10\n\x08\x64istrict\x18\x11 \x01(\t\x12\r\n\x05state\x18\x12 \x01(\t\x12\x13\n\x0bpostal_code\x18\x13 \x01(\t\x12\x13\n\x0bpost_office\x18\x14 \x01(\t\x12\x13\n\x0b\x63ountry_iso\x18\x15 \x01(\t\x12\x0f\n\x07\x63ountry\x18\x16 \x01(\t\x12\x19\n\x11\x66ormatted_address\x18\x17 \x01(\t\x12\r\n\x05udprn\x18\x18 \x01(\tBb\n\x15\x63om.yoti.compubapi_v1B\x0c\x41\x64\x64ressProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Address_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\014AddressProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _ADDRESS._serialized_start=55
+ _ADDRESS._serialized_end=555
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/AdminReasonCode_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/AdminReasonCode_pb2.py
new file mode 100644
index 00000000..caa033cb
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/AdminReasonCode_pb2.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/AdminReasonCode.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"compubapi_v1/AdminReasonCode.proto\x12\x16yoti.core.compubapi_v1\"A\n\x0f\x41\x64minReasonCode\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x10\n\x08\x63\x61tegory\x18\x02 \x01(\t\x12\x0e\n\x06reason\x18\x03 \x01(\tBj\n\x15\x63om.yoti.compubapi_v1B\x14\x41\x64minReasonCodeProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'AdminReasonCode_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\024AdminReasonCodeProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _ADMINREASONCODE._serialized_start=62
+ _ADMINREASONCODE._serialized_end=127
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/AttributeLink_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/AttributeLink_pb2.py
new file mode 100644
index 00000000..9bf759a7
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/AttributeLink_pb2.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/AttributeLink.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n compubapi_v1/AttributeLink.proto\x12\x16yoti.core.compubapi_v1\"?\n\rAttributeLink\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x0c\x12\x14\n\x0c\x65phemeral_id\x18\x03 \x01(\tBh\n\x15\x63om.yoti.compubapi_v1B\x12\x41ttributeLinkProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'AttributeLink_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\022AttributeLinkProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _ATTRIBUTELINK._serialized_start=60
+ _ATTRIBUTELINK._serialized_end=123
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/AttributeMigration_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/AttributeMigration_pb2.py
new file mode 100644
index 00000000..9c6c8898
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/AttributeMigration_pb2.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/AttributeMigration.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%compubapi_v1/AttributeMigration.proto\x12\x16yoti.core.compubapi_v1\"2\n\x19\x41ttributeMigrationPayload\x12\x15\n\rattribute_ids\x18\x01 \x03(\x0c\x42t\n\x15\x63om.yoti.compubapi_v1B\x1e\x41ttributeMigrationPayloadProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'AttributeMigration_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\036AttributeMigrationPayloadProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _ATTRIBUTEMIGRATIONPAYLOAD._serialized_start=65
+ _ATTRIBUTEMIGRATIONPAYLOAD._serialized_end=115
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/ChipInfo_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/ChipInfo_pb2.py
new file mode 100644
index 00000000..2f43b3e2
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/ChipInfo_pb2.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/ChipInfo.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x63ompubapi_v1/ChipInfo.proto\x12\x0c\x63ompubapi_v1\"d\n\x08\x43hipInfo\x12)\n\x04type\x18\x01 \x01(\x0e\x32\x1b.compubapi_v1.ChipInfo.Type\x12\n\n\x02id\x18\x02 \x01(\t\"!\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12\n\n\x06MULTOS\x10\x01\x42T\n\x15\x63om.yoti.compubapi_v1Z,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'ChipInfo_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1Z,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _CHIPINFO._serialized_start=45
+ _CHIPINFO._serialized_end=145
+ _CHIPINFO_TYPE._serialized_start=112
+ _CHIPINFO_TYPE._serialized_end=145
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/DataPrivacy_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/DataPrivacy_pb2.py
new file mode 100644
index 00000000..5159b396
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/DataPrivacy_pb2.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/DataPrivacy.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x63ompubapi_v1/DataPrivacy.proto\x12\x16yoti.core.compubapi_v1*q\n\x0b\x44\x61taPrivacy\x12\x1a\n\x16\x44\x41TA_PRIVACY_UNDEFINED\x10\x00\x12$\n DATA_PRIVACY_CONTROLLERS_ALLOWED\x10\x01\x12 \n\x1c\x44\x41TA_PRIVACY_PROCESSORS_ONLY\x10\x02\x42\x66\n\x15\x63om.yoti.compubapi_v1B\x10\x44\x61taPrivacyProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'DataPrivacy_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\020DataPrivacyProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _DATAPRIVACY._serialized_start=58
+ _DATAPRIVACY._serialized_end=171
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/DocumentFields_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/DocumentFields_pb2.py
new file mode 100644
index 00000000..52aa20bb
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/DocumentFields_pb2.py
@@ -0,0 +1,34 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/DocumentFields.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import Address_pb2 as compubapi__v1_dot_Address__pb2
+from . import MRZ_pb2 as compubapi__v1_dot_MRZ__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!compubapi_v1/DocumentFields.proto\x12\x16yoti.core.compubapi_v1\x1a\x1a\x63ompubapi_v1/Address.proto\x1a\x16\x63ompubapi_v1/MRZ.proto\"\xe4\x07\n\x0e\x44ocumentFields\x12\x11\n\tfull_name\x18\x01 \x01(\t\x12\x15\n\rdate_of_birth\x18\x02 \x01(\t\x12\x13\n\x0bnationality\x18\x03 \x01(\t\x12\x13\n\x0bgiven_names\x18\x04 \x01(\t\x12\x12\n\nfirst_name\x18\x05 \x01(\t\x12\x13\n\x0bmiddle_name\x18\x06 \x01(\t\x12\x13\n\x0b\x66\x61mily_name\x18\x07 \x01(\t\x12\x16\n\x0eplace_of_birth\x18\x08 \x01(\t\x12\x18\n\x10\x63ountry_of_birth\x18\t \x01(\t\x12\x0e\n\x06gender\x18\n \x01(\t\x12\x13\n\x0bname_prefix\x18\x0b \x01(\t\x12\x13\n\x0bname_suffix\x18\x0c \x01(\t\x12\x18\n\x10\x66irst_name_alias\x18\r \x01(\t\x12\x19\n\x11middle_name_alias\x18\x0e \x01(\t\x12\x19\n\x11\x66\x61mily_name_alias\x18\x0f \x01(\t\x12\x0e\n\x06weight\x18\x10 \x01(\t\x12\x0e\n\x06height\x18\x11 \x01(\t\x12\x11\n\teye_color\x18\x12 \x01(\t\x12\x42\n\x19structured_postal_address\x18\x13 \x01(\x0b\x32\x1f.yoti.core.compubapi_v1.Address\x12\x15\n\rdocument_type\x18\x14 \x01(\t\x12\x17\n\x0fissuing_country\x18\x15 \x01(\t\x12\x17\n\x0f\x64ocument_number\x18\x16 \x01(\t\x12\x17\n\x0f\x65xpiration_date\x18\x17 \x01(\t\x12\x15\n\rdate_of_issue\x18\x18 \x01(\t\x12\x19\n\x11issuing_authority\x18\x19 \x01(\t\x12(\n\x03mrz\x18\x1a \x01(\x0b\x32\x1b.yoti.core.compubapi_v1.MRZ\x12\x14\n\x0corganisation\x18\x1b \x01(\t\x12&\n\x1epersonal_identification_number\x18\x1c \x01(\t\x12\x13\n\x0bparent_name\x18\x1e \x01(\t\x12\x1d\n\x15\x64riving_licence_class\x18\x1f \x01(\t\x12(\n driving_licence_restriction_code\x18 \x01(\t\x12\x13\n\x0bprovisional\x18\" \x01(\x08\x12\x16\n\x0eplace_of_issue\x18# \x01(\t\x12 \n\x18\x64riving_licence_endorsed\x18$ \x01(\t\x12\x13\n\x0b\x63\x61rd_number\x18% \x01(\t\x12\x43\n\x11\x64ocument_template\x18& \x01(\x0b\x32(.yoti.core.compubapi_v1.DocumentTemplateJ\x04\x08\x1d\x10\x1eJ\x04\x08!\x10\"\"C\n\x10\x44ocumentTemplate\x12\x17\n\x0f\x66ront_page_name\x18\x01 \x01(\t\x12\x16\n\x0e\x62\x61\x63k_page_name\x18\x02 \x01(\t\"W\n\x16\x45xpandedDocumentFields\x12=\n\x06\x66ields\x18\x01 \x03(\x0b\x32-.yoti.core.compubapi_v1.ExpandedDocumentField\"\x86\x01\n\x15\x45xpandedDocumentField\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12\x0e\n\x06locale\x18\x03 \x01(\t\x12\x0e\n\x06source\x18\x04 \x01(\t\x12\x14\n\x0cis_non_latin\x18\x05 \x01(\x08\x12\x1a\n\x12is_transliteration\x18\x06 \x01(\x08\x42i\n\x15\x63om.yoti.compubapi_v1B\x13\x44ocumentFieldsProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'DocumentFields_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\023DocumentFieldsProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _DOCUMENTFIELDS._serialized_start=114
+ _DOCUMENTFIELDS._serialized_end=1110
+ _DOCUMENTTEMPLATE._serialized_start=1112
+ _DOCUMENTTEMPLATE._serialized_end=1179
+ _EXPANDEDDOCUMENTFIELDS._serialized_start=1181
+ _EXPANDEDDOCUMENTFIELDS._serialized_end=1268
+ _EXPANDEDDOCUMENTFIELD._serialized_start=1271
+ _EXPANDEDDOCUMENTFIELD._serialized_end=1405
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/DocumentTypes_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/DocumentTypes_pb2.py
new file mode 100644
index 00000000..d0340325
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/DocumentTypes_pb2.py
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/DocumentTypes.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n compubapi_v1/DocumentTypes.proto\x12\x16yoti.core.compubapi_v1\"\xcc\x03\n\nIdDocument\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32\'.yoti.core.compubapi_v1.IdDocument.Type\x12\x18\n\x10\x63ountry_iso_code\x18\x02 \x01(\t\"\xec\x02\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08PASSPORT\x10\x01\x12\x13\n\x0f\x44RIVING_LICENCE\x10\x02\x12\x0f\n\x0bNATIONAL_ID\x10\x03\x12\x0c\n\x08STATE_ID\x10\x04\x12\t\n\x05MYKAD\x10\x05\x12\x0b\n\x07\x41\x41\x44HAAR\x10\x06\x12\x07\n\x03PAN\x10\x07\x12\x0f\n\x0bSSS_ID_CARD\x10\x08\x12\r\n\tPOSTAL_ID\x10\t\x12\x14\n\x10RESIDENCE_PERMIT\x10\n\x12\x0c\n\x08VOTER_ID\x10\x0b\x12\x13\n\x0fPROFESSIONAL_ID\x10\x0c\x12\x0e\n\nNEXUS_CARD\x10\r\x12\x0f\n\x0bHEALTH_CARD\x10\x0e\x12\x0e\n\nPOSTOFFICE\x10\x0f\x12\x0e\n\nPHILSYS_ID\x10\x10\x12\x08\n\x04UMID\x10\x11\x12\x0f\n\x0b\x43ITIZENCARD\x10\x12\x12\r\n\tYOUNGSCOT\x10\x13\x12\x08\n\x04SCIS\x10\x14\x12\x13\n\x0fTRAVEL_DOCUMENT\x10\x15\x12\x0f\n\x0bWORK_PERMIT\x10\x16\"\x98\x05\n\x15SupplementaryDocument\x12@\n\x04type\x18\x01 \x01(\x0e\x32\x32.yoti.core.compubapi_v1.SupplementaryDocument.Type\x12\x18\n\x10\x63ountry_iso_code\x18\x02 \x01(\t\"\xa2\x04\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12\x10\n\x0cUTILITY_BILL\x10\x01\x12\x14\n\x10\x43OUNCIL_TAX_BILL\x10\x02\x12\x0e\n\nPHONE_BILL\x10\x03\x12\x12\n\x0e\x42\x41NK_STATEMENT\x10\x04\x12\x14\n\x10\x46IREARMS_LICENCE\x10\x05\x12\x11\n\rMILITARY_CARD\x10\x06\x12\x36\n2BIRTH_CERTIFICATE_ISSUED_WITHIN_12_MONTHS_OF_BIRTH\x10\x07\x12\x15\n\x11\x42IRTH_CERTIFICATE\x10\x08\x12\x18\n\x14\x41\x44OPTION_CERTIFICATE\x10\t\x12\x19\n\x15PAPER_DRIVING_LICENCE\x10\n\x12\x18\n\x14MARRIAGE_CERTIFICATE\x10\x0b\x12\x1a\n\x16\x41\x43\x43OUNT_OPENING_LETTER\x10\x0c\x12\x15\n\x11\x42\x45NEFIT_STATEMENT\x10\r\x12\x16\n\x12MORTGAGE_STATEMENT\x10\x0e\x12\x17\n\x13\x46INANCIAL_STATEMENT\x10\x0f\x12\x15\n\x11\x45MPLOYEE_TAX_FORM\x10\x10\x12!\n\x1d\x45MPLOYMENT_SPONSORSHIP_LETTER\x10\x11\x12\x18\n\x14IMMIGRATION_DOCUMENT\x10\x12\x12\x14\n\x10\x45\x44UCATION_LETTER\x10\x13\x12\r\n\tDVLA_FORM\x10\x14\x12\x1b\n\x17SUPPLEMENTARY_PASS_CARD\x10\x15\"l\n\x12IdDocumentSelector\x12\x15\n\rcountry_codes\x18\x01 \x03(\t\x12?\n\x0e\x64ocument_types\x18\x02 \x03(\x0e\x32\'.yoti.core.compubapi_v1.IdDocument.Type\"n\n\x1a\x44ocumentRestrictionsFilter\x12\x11\n\tallowlist\x18\x01 \x01(\x08\x12=\n\tdocuments\x18\x02 \x03(\x0b\x32*.yoti.core.compubapi_v1.IdDocumentSelectorBh\n\x15\x63om.yoti.compubapi_v1B\x12\x44ocumentTypesProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'DocumentTypes_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\022DocumentTypesProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _IDDOCUMENT._serialized_start=61
+ _IDDOCUMENT._serialized_end=521
+ _IDDOCUMENT_TYPE._serialized_start=157
+ _IDDOCUMENT_TYPE._serialized_end=521
+ _SUPPLEMENTARYDOCUMENT._serialized_start=524
+ _SUPPLEMENTARYDOCUMENT._serialized_end=1188
+ _SUPPLEMENTARYDOCUMENT_TYPE._serialized_start=642
+ _SUPPLEMENTARYDOCUMENT_TYPE._serialized_end=1188
+ _IDDOCUMENTSELECTOR._serialized_start=1190
+ _IDDOCUMENTSELECTOR._serialized_end=1298
+ _DOCUMENTRESTRICTIONSFILTER._serialized_start=1300
+ _DOCUMENTRESTRICTIONSFILTER._serialized_end=1410
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/EncryptedData_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/EncryptedData_pb2.py
new file mode 100644
index 00000000..704177f8
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/EncryptedData_pb2.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/EncryptedData.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n compubapi_v1/EncryptedData.proto\x12\x16yoti.core.compubapi_v1\"0\n\rEncryptedData\x12\n\n\x02iv\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63ipher_text\x18\x02 \x01(\x0c\x42h\n\x15\x63om.yoti.compubapi_v1B\x12\x45ncryptedDataProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'EncryptedData_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\022EncryptedDataProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _ENCRYPTEDDATA._serialized_start=60
+ _ENCRYPTEDDATA._serialized_end=108
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/Hmac_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/Hmac_pb2.py
new file mode 100644
index 00000000..89ca364d
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/Hmac_pb2.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/Hmac.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x63ompubapi_v1/Hmac.proto\x12\x16yoti.core.compubapi_v1\"\x14\n\x04Hmac\x12\x0c\n\x04hmac\x18\x01 \x01(\x0c\x42_\n\x15\x63om.yoti.compubapi_v1B\tHmacProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Hmac_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\tHmacProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _HMAC._serialized_start=51
+ _HMAC._serialized_end=71
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/IdentityProfilePreview_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/IdentityProfilePreview_pb2.py
new file mode 100644
index 00000000..d8569ebb
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/IdentityProfilePreview_pb2.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/IdentityProfilePreview.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import IdentityProfileReport_pb2 as compubapi__v1_dot_IdentityProfileReport__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)compubapi_v1/IdentityProfilePreview.proto\x12\x16yoti.core.compubapi_v1\x1a(compubapi_v1/IdentityProfileReport.proto\"\xf4\x01\n\x16IdentityProfilePreview\x12J\n\x12schemes_compliance\x18\x01 \x03(\x0b\x32..yoti.core.compubapi_v1.SchemeComplianceReport\x12H\n\x12identity_assertion\x18\x02 \x01(\x0b\x32,.yoti.core.compubapi_v1.IdentityAssertionExt\x12\x44\n\x12\x63ompliance_reports\x18\x03 \x03(\x0b\x32(.yoti.core.compubapi_v1.ComplianceReportB=Z,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'IdentityProfilePreview_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'Z,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _IDENTITYPROFILEPREVIEW._serialized_start=112
+ _IDENTITYPROFILEPREVIEW._serialized_end=356
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/IdentityProfileReport_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/IdentityProfileReport_pb2.py
new file mode 100644
index 00000000..cb7085fc
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/IdentityProfileReport_pb2.py
@@ -0,0 +1,66 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/IdentityProfileReport.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import Address_pb2 as compubapi__v1_dot_Address__pb2
+from . import DocumentFields_pb2 as compubapi__v1_dot_DocumentFields__pb2
+from . import IdentityProfile_pb2 as compubapi__v1_dot_IdentityProfile__pb2
+from . import UserProfile_pb2 as compubapi__v1_dot_UserProfile__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(compubapi_v1/IdentityProfileReport.proto\x12\x16yoti.core.compubapi_v1\x1a\x1a\x63ompubapi_v1/Address.proto\x1a!compubapi_v1/DocumentFields.proto\x1a\"compubapi_v1/IdentityProfile.proto\x1a\x1e\x63ompubapi_v1/UserProfile.proto\"\x87\x04\n\x15IdentityProfileReport\x12H\n\x12identity_assertion\x18\x01 \x01(\x0b\x32,.yoti.core.compubapi_v1.IdentityAssertionExt\x12G\n\x13verification_report\x18\x02 \x01(\x0b\x32*.yoti.core.compubapi_v1.VerificationReport\x12,\n\x05proof\x18\x03 \x01(\x0b\x32\x1d.yoti.core.compubapi_v1.Proof\x12K\n\x15\x61uthentication_report\x18\x04 \x01(\x0b\x32,.yoti.core.compubapi_v1.AuthenticationReport\x12H\n\x14profile_match_report\x18\x05 \x01(\x0b\x32*.yoti.core.compubapi_v1.ProfileMatchReport\x12H\n\x14verification_reports\x18\x06 \x03(\x0b\x32*.yoti.core.compubapi_v1.VerificationReport\x12L\n\x16\x61uthentication_reports\x18\x07 \x03(\x0b\x32,.yoti.core.compubapi_v1.AuthenticationReport\"\xac\x01\n\x14IdentityAssertionExt\x12<\n\x0c\x63urrent_name\x18\x01 \x01(\x0b\x32&.yoti.core.compubapi_v1.StructuredName\x12\x15\n\rdate_of_birth\x18\x02 \x01(\t\x12?\n\x0f\x63urrent_address\x18\x03 \x01(\x0b\x32&.yoti.core.compubapi_v1.CurrentAddress\"\x90\x04\n\x12VerificationReport\x12\x11\n\treport_id\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x12\n\nsubject_id\x18\x03 \x01(\t\x12\\\n\x14\x61\x64\x64ress_verification\x18\x04 \x01(\x0b\x32>.yoti.core.compubapi_v1.VerificationReport.AddressVerification\x12?\n\x0ftrust_framework\x18\x05 \x01(\x0e\x32&.yoti.core.compubapi_v1.TrustFramework\x12J\n\x12schemes_compliance\x18\x06 \x03(\x0b\x32..yoti.core.compubapi_v1.SchemeComplianceReport\x12\x43\n\x11\x61ssurance_process\x18\x07 \x01(\x0b\x32(.yoti.core.compubapi_v1.AssuranceProcess\x12?\n\x08\x65vidence\x18\x08 \x01(\x0b\x32-.yoti.core.compubapi_v1.EvidenceCollectionExt\x1aO\n\x13\x41\x64\x64ressVerification\x12 \n\x18\x63urrent_address_verified\x18\x01 \x01(\x08\x12\x16\n\x0e\x65vidence_links\x18\x02 \x03(\t\"\x8e\x01\n\x19RequirementsNotMetDetails\x12\x14\n\x0c\x66\x61ilure_type\x18\x01 \x01(\t\x12\x15\n\rdocument_type\x18\x02 \x01(\t\x12!\n\x19\x64ocument_country_iso_code\x18\x03 \x01(\t\x12\x10\n\x08\x61udit_id\x18\x04 \x01(\t\x12\x0f\n\x07\x64\x65tails\x18\x05 \x01(\t\"\xde\x01\n\x16SchemeComplianceReport\x12.\n\x06scheme\x18\x01 \x01(\x0b\x32\x1e.yoti.core.compubapi_v1.Scheme\x12\x18\n\x10requirements_met\x18\x02 \x01(\x08\x12!\n\x19requirements_not_met_info\x18\x03 \x01(\t\x12W\n\x1crequirements_not_met_details\x18\x04 \x03(\x0b\x32\x31.yoti.core.compubapi_v1.RequirementsNotMetDetails\"\x9f\x01\n\x10\x43omplianceReport\x12?\n\x0ftrust_framework\x18\x01 \x01(\x0e\x32&.yoti.core.compubapi_v1.TrustFramework\x12J\n\x12schemes_compliance\x18\x02 \x03(\x0b\x32..yoti.core.compubapi_v1.SchemeComplianceReport\"\x87\x01\n\x10\x41ssuranceProcess\x12\x1a\n\x12level_of_assurance\x18\x01 \x01(\t\x12\x0e\n\x06policy\x18\x02 \x01(\t\x12\x11\n\tprocedure\x18\x03 \x01(\t\x12\x34\n\tassurance\x18\x04 \x03(\x0b\x32!.yoti.core.compubapi_v1.Assurance\"I\n\tAssurance\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x16\n\x0e\x63lassification\x18\x02 \x01(\t\x12\x16\n\x0e\x65vidence_links\x18\x03 \x03(\t\"\xe6\x01\n\x15\x45videnceCollectionExt\x12<\n\x04\x66\x61\x63\x65\x18\x01 \x01(\x0b\x32..yoti.core.compubapi_v1.FaceCaptureEvidenceExt\x12>\n\tdocuments\x18\x02 \x03(\x0b\x32+.yoti.core.compubapi_v1.DocumentEvidenceExt\x12O\n\x12\x65lectronic_records\x18\x03 \x03(\x0b\x32\x33.yoti.core.compubapi_v1.ElectronicRecordEvidenceExt\"\xae\x02\n\x16\x46\x61\x63\x65\x43\x61ptureEvidenceExt\x12\x13\n\x0b\x65vidence_id\x18\x01 \x01(\t\x12@\n\x10initial_liveness\x18\x02 \x01(\x0b\x32&.yoti.core.compubapi_v1.PassedLiveness\x12\x45\n\x15last_matched_liveness\x18\x03 \x01(\x0b\x32&.yoti.core.compubapi_v1.PassedLiveness\x12\x15\n\rverifying_org\x18\x04 \x01(\t\x12\x14\n\x0cresource_ids\x18\x05 \x03(\t\x12\x11\n\tcheck_ids\x18\x06 \x03(\t\x12\x19\n\x11user_activity_ids\x18\x07 \x03(\t\x12\x1b\n\x13selfie_attribute_id\x18\x08 \x01(\t\"\xbd\x02\n\x13\x44ocumentEvidenceExt\x12\x13\n\x0b\x65vidence_id\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12?\n\x0f\x64ocument_fields\x18\x03 \x01(\x0b\x32&.yoti.core.compubapi_v1.DocumentFields\x12<\n\rpassed_checks\x18\x04 \x03(\x0b\x32%.yoti.core.compubapi_v1.DocumentCheck\x12$\n\x1c\x64ocument_images_attribute_id\x18\x05 \x01(\t\x12\x15\n\rverifying_org\x18\x06 \x01(\t\x12\x14\n\x0cresource_ids\x18\x07 \x03(\t\x12\x11\n\tcheck_ids\x18\x08 \x03(\t\x12\x19\n\x11user_activity_ids\x18\t \x03(\t\"\xf9\x01\n\x1b\x45lectronicRecordEvidenceExt\x12\x13\n\x0b\x65vidence_id\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x41\n\x10identity_details\x18\x03 \x01(\x0b\x32\'.yoti.core.compubapi_v1.IdentityDetails\x12\x15\n\rverifying_org\x18\x04 \x01(\t\x12\x14\n\x0cprovider_org\x18\x05 \x01(\t\x12\x14\n\x0cresource_ids\x18\x06 \x03(\t\x12\x11\n\tcheck_ids\x18\x07 \x03(\t\x12\x19\n\x11user_activity_ids\x18\x08 \x03(\t\"S\n\x0e\x43urrentAddress\x12\x30\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x1f.yoti.core.compubapi_v1.Address\x12\x0f\n\x07move_in\x18\x02 \x01(\t\"\x9c\x01\n\x14\x41uthenticationReport\x12\x11\n\treport_id\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\r\n\x05level\x18\x03 \x01(\t\x12\x0e\n\x06policy\x18\x04 \x01(\t\x12?\n\x0ftrust_framework\x18\x05 \x01(\x0e\x32&.yoti.core.compubapi_v1.TrustFramework\",\n\x05Proof\x12\x0b\n\x03jws\x18\x01 \x01(\t\x12\x16\n\x0epublic_key_url\x18\x02 \x01(\t\"\x94\x01\n\x11MatchReportResult\x12@\n\x06result\x18\x01 \x01(\x0e\x32\x30.yoti.core.compubapi_v1.MatchReportResult.Result\"=\n\x06Result\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08NO_MATCH\x10\x01\x12\t\n\x05MATCH\x10\x02\x12\x0b\n\x07PARTIAL\x10\x03\"\x89\x02\n\x12ProfileMatchReport\x12\x46\n\x10provided_profile\x18\x01 \x01(\x0b\x32,.yoti.core.compubapi_v1.IdentityAssertionExt\x12\x37\n\x04name\x18\x02 \x01(\x0b\x32).yoti.core.compubapi_v1.MatchReportResult\x12\x36\n\x03\x64ob\x18\x03 \x01(\x0b\x32).yoti.core.compubapi_v1.MatchReportResult\x12:\n\x07\x61\x64\x64ress\x18\x04 \x01(\x0b\x32).yoti.core.compubapi_v1.MatchReportResultBp\n\x15\x63om.yoti.compubapi_v1B\x1aIdentityProfileReportProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'IdentityProfileReport_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\032IdentityProfileReportProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _IDENTITYPROFILEREPORT._serialized_start=200
+ _IDENTITYPROFILEREPORT._serialized_end=719
+ _IDENTITYASSERTIONEXT._serialized_start=722
+ _IDENTITYASSERTIONEXT._serialized_end=894
+ _VERIFICATIONREPORT._serialized_start=897
+ _VERIFICATIONREPORT._serialized_end=1425
+ _VERIFICATIONREPORT_ADDRESSVERIFICATION._serialized_start=1346
+ _VERIFICATIONREPORT_ADDRESSVERIFICATION._serialized_end=1425
+ _REQUIREMENTSNOTMETDETAILS._serialized_start=1428
+ _REQUIREMENTSNOTMETDETAILS._serialized_end=1570
+ _SCHEMECOMPLIANCEREPORT._serialized_start=1573
+ _SCHEMECOMPLIANCEREPORT._serialized_end=1795
+ _COMPLIANCEREPORT._serialized_start=1798
+ _COMPLIANCEREPORT._serialized_end=1957
+ _ASSURANCEPROCESS._serialized_start=1960
+ _ASSURANCEPROCESS._serialized_end=2095
+ _ASSURANCE._serialized_start=2097
+ _ASSURANCE._serialized_end=2170
+ _EVIDENCECOLLECTIONEXT._serialized_start=2173
+ _EVIDENCECOLLECTIONEXT._serialized_end=2403
+ _FACECAPTUREEVIDENCEEXT._serialized_start=2406
+ _FACECAPTUREEVIDENCEEXT._serialized_end=2708
+ _DOCUMENTEVIDENCEEXT._serialized_start=2711
+ _DOCUMENTEVIDENCEEXT._serialized_end=3028
+ _ELECTRONICRECORDEVIDENCEEXT._serialized_start=3031
+ _ELECTRONICRECORDEVIDENCEEXT._serialized_end=3280
+ _CURRENTADDRESS._serialized_start=3282
+ _CURRENTADDRESS._serialized_end=3365
+ _AUTHENTICATIONREPORT._serialized_start=3368
+ _AUTHENTICATIONREPORT._serialized_end=3524
+ _PROOF._serialized_start=3526
+ _PROOF._serialized_end=3570
+ _MATCHREPORTRESULT._serialized_start=3573
+ _MATCHREPORTRESULT._serialized_end=3721
+ _MATCHREPORTRESULT_RESULT._serialized_start=3660
+ _MATCHREPORTRESULT_RESULT._serialized_end=3721
+ _PROFILEMATCHREPORT._serialized_start=3724
+ _PROFILEMATCHREPORT._serialized_end=3989
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/IdentityProfile_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/IdentityProfile_pb2.py
new file mode 100644
index 00000000..73d0483a
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/IdentityProfile_pb2.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/IdentityProfile.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import Address_pb2 as compubapi__v1_dot_Address__pb2
+from . import DocumentTypes_pb2 as compubapi__v1_dot_DocumentTypes__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"compubapi_v1/IdentityProfile.proto\x12\x16yoti.core.compubapi_v1\x1a\x1a\x63ompubapi_v1/Address.proto\x1a compubapi_v1/DocumentTypes.proto\"\x88\x02\n\x06Scheme\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32#.yoti.core.compubapi_v1.Scheme.Type\x12\x11\n\tobjective\x18\x02 \x01(\t\x12\r\n\x05label\x18\x03 \x01(\t\x12\x34\n\x06\x63onfig\x18\x04 \x01(\x0b\x32$.yoti.core.compubapi_v1.SchemeConfig\"s\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12\x07\n\x03\x44\x42S\x10\x01\x12\x07\n\x03RTW\x10\x02\x12\x07\n\x03RTR\x10\x03\x12\x0b\n\x07\x44\x42S_RTW\x10\x04\x12\x0c\n\x08IDENTITY\x10\x05\x12\x19\n\x15IDENTITY_PLUS_ADDRESS\x10\x06\x12\x0b\n\x07\x43\x41N_CRC\x10\x07\"[\n\x0cSchemeConfig\x12K\n\x0f\x64ocument_filter\x18\x01 \x01(\x0b\x32\x32.yoti.core.compubapi_v1.DocumentRestrictionsFilter\"\x8e\x01\n\x1bIdentityProfileRequirements\x12?\n\x0ftrust_framework\x18\x01 \x01(\x0e\x32&.yoti.core.compubapi_v1.TrustFramework\x12.\n\x06scheme\x18\x02 \x01(\x0b\x32\x1e.yoti.core.compubapi_v1.Scheme\"`\n#AdvancedIdentityProfileRequirements\x12\x39\n\x08profiles\x18\x01 \x03(\x0b\x32\'.yoti.core.compubapi_v1.AdvancedProfile\"\x83\x01\n\x0f\x41\x64vancedProfile\x12?\n\x0ftrust_framework\x18\x01 \x01(\x0e\x32&.yoti.core.compubapi_v1.TrustFramework\x12/\n\x07schemes\x18\x02 \x03(\x0b\x32\x1e.yoti.core.compubapi_v1.Scheme\"\x1d\n\x07Subject\x12\x12\n\nsubject_id\x18\x01 \x01(\t\"\xc8\x01\n\x0fIdentityDetails\x12\x13\n\x0bgiven_names\x18\x01 \x01(\t\x12\x12\n\nfirst_name\x18\x02 \x01(\t\x12\x13\n\x0bmiddle_name\x18\x03 \x01(\t\x12\x13\n\x0b\x66\x61mily_name\x18\x04 \x01(\t\x12\x11\n\tfull_name\x18\x05 \x01(\t\x12\x15\n\rdate_of_birth\x18\x06 \x01(\t\x12\x38\n\x0f\x63urrent_address\x18\x07 \x01(\x0b\x32\x1f.yoti.core.compubapi_v1.Address\"u\n\x1eVerificationReportRequirements\x12S\n\x1dgeneral_evidence_requirements\x18\x01 \x01(\x0e\x32,.yoti.core.compubapi_v1.EvidenceRequirements*A\n\x0eTrustFramework\x12\x10\n\x0cUNDEFINED_TF\x10\x00\x12\x0c\n\x08UK_TFIDA\x10\x01\x12\x0f\n\x0bYOTI_GLOBAL\x10\x02*z\n\x14\x45videnceRequirements\x12\x10\n\x0cUNDEFINED_ER\x10\x00\x12\x11\n\rOMIT_EVIDENCE\x10\x01\x12\x18\n\x14METADATA_AND_DETAILS\x10\x02\x12#\n\x1fMETADATA_AND_DETAILS_AND_IMAGES\x10\x03\x42j\n\x15\x63om.yoti.compubapi_v1B\x14IdentityProfileProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'IdentityProfile_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\024IdentityProfileProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _TRUSTFRAMEWORK._serialized_start=1214
+ _TRUSTFRAMEWORK._serialized_end=1279
+ _EVIDENCEREQUIREMENTS._serialized_start=1281
+ _EVIDENCEREQUIREMENTS._serialized_end=1403
+ _SCHEME._serialized_start=125
+ _SCHEME._serialized_end=389
+ _SCHEME_TYPE._serialized_start=274
+ _SCHEME_TYPE._serialized_end=389
+ _SCHEMECONFIG._serialized_start=391
+ _SCHEMECONFIG._serialized_end=482
+ _IDENTITYPROFILEREQUIREMENTS._serialized_start=485
+ _IDENTITYPROFILEREQUIREMENTS._serialized_end=627
+ _ADVANCEDIDENTITYPROFILEREQUIREMENTS._serialized_start=629
+ _ADVANCEDIDENTITYPROFILEREQUIREMENTS._serialized_end=725
+ _ADVANCEDPROFILE._serialized_start=728
+ _ADVANCEDPROFILE._serialized_end=859
+ _SUBJECT._serialized_start=861
+ _SUBJECT._serialized_end=890
+ _IDENTITYDETAILS._serialized_start=893
+ _IDENTITYDETAILS._serialized_end=1093
+ _VERIFICATIONREPORTREQUIREMENTS._serialized_start=1095
+ _VERIFICATIONREPORTREQUIREMENTS._serialized_end=1212
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/MRZ_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/MRZ_pb2.py
new file mode 100644
index 00000000..89947775
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/MRZ_pb2.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/MRZ.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x63ompubapi_v1/MRZ.proto\x12\x16yoti.core.compubapi_v1\"\x92\x01\n\x03MRZ\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\r\n\x05line1\x18\x02 \x01(\t\x12\r\n\x05line2\x18\x03 \x01(\t\x12\r\n\x05line3\x18\x04 \x01(\t\"P\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12\x07\n\x03TD1\x10\x01\x12\x07\n\x03TD3\x10\x02\x12\n\n\x06RUS_ID\x10\x03\x12\x07\n\x03TD2\x10\x04\x12\x12\n\rUNCATEGORISED\x10\xe8\x07\x42T\n\x15\x63om.yoti.compubapi_v1Z,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'MRZ_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1Z,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _MRZ._serialized_start=51
+ _MRZ._serialized_end=197
+ _MRZ_TYPE._serialized_start=117
+ _MRZ_TYPE._serialized_end=197
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/Metadata_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/Metadata_pb2.py
new file mode 100644
index 00000000..2c2387db
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/Metadata_pb2.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/Metadata.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x63ompubapi_v1/Metadata.proto\x12\x16yoti.core.compubapi_v1\"\xfb\x04\n\x08Metadata\x12\x18\n\x10manufacture_name\x18\x01 \x01(\t\x12\x12\n\nmodel_name\x18\x02 \x01(\t\x12\x0f\n\x07os_name\x18\x03 \x01(\t\x12\x12\n\nos_version\x18\x04 \x01(\t\x12\x17\n\x0fos_vendor_layer\x18\x05 \x01(\t\x12\x16\n\x0e\x63lient_version\x18\x06 \x01(\t\x12\x12\n\nstart_time\x18\x07 \x01(\t\x12\x19\n\x11\x61vailable_sensors\x18\x08 \x03(\t\x12\x14\n\x0c\x64\x65mog_gender\x18\t \x01(\t\x12\x11\n\tdemog_age\x18\n \x01(\t\x12\x15\n\rdemog_country\x18\x0b \x01(\t\x12\x39\n\x07product\x18\x0c \x01(\x0e\x32(.yoti.core.compubapi_v1.Metadata.Product\x12\x14\n\x0c\x62rowser_name\x18\r \x01(\t\x12\x17\n\x0f\x62rowser_version\x18\x0e \x01(\t\x12\x0e\n\x06locale\x18\x0f \x01(\t\x12\x11\n\tstat_uuid\x18\x10 \x01(\t\x12\r\n\x05\x64\x65\x62ug\x18\x11 \x01(\t\x12\x19\n\x11\x64\x65vice_identifier\x18\x12 \x01(\t\"\xc4\x01\n\x07Product\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08YOTI_APP\x10\x01\x12\x13\n\x0fYPM_BROWSER_EXT\x10\x02\x12\r\n\tYOTI_DOCS\x10\x03\x12\x14\n\x10POSTOFFICEID_APP\x10\x04\x12\x0b\n\x07\x43ONNECT\x10\x05\x12\r\n\tYOTI_SIGN\x10\x06\x12\x07\n\x03\x41VS\x10\x07\x12\r\n\tSCAN_YOTI\x10\x08\x12\r\n\tLBGID_APP\x10\t\x12\x07\n\x03KYC\x10\n\x12\x16\n\x12\x43ONTENT_MODERATION\x10\x0b\x42T\n\x15\x63om.yoti.compubapi_v1Z,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Metadata_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1Z,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _METADATA._serialized_start=56
+ _METADATA._serialized_end=691
+ _METADATA_PRODUCT._serialized_start=495
+ _METADATA_PRODUCT._serialized_end=691
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/OptionalTypes_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/OptionalTypes_pb2.py
new file mode 100644
index 00000000..045f4dd6
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/OptionalTypes_pb2.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/OptionalTypes.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n compubapi_v1/OptionalTypes.proto\x12\x16yoti.core.compubapi_v1\"-\n\x0cOptionalBool\x12\x0e\n\x06is_set\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x08\x42h\n\x15\x63om.yoti.compubapi_v1B\x12OptionalTypesProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'OptionalTypes_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\022OptionalTypesProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _OPTIONALBOOL._serialized_start=60
+ _OPTIONALBOOL._serialized_end=105
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/RsaAuthDigest_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/RsaAuthDigest_pb2.py
new file mode 100644
index 00000000..eef23564
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/RsaAuthDigest_pb2.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/RsaAuthDigest.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import Signature_pb2 as compubapi__v1_dot_Signature__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n compubapi_v1/RsaAuthDigest.proto\x12\x16yoti.core.compubapi_v1\x1a\x1c\x63ompubapi_v1/Signature.proto\"x\n\rRsaAuthDigest\x12\x0f\n\x07pub_key\x18\x01 \x01(\x0c\x12\r\n\x05nonce\x18\x02 \x01(\x0c\x12\x11\n\ttimestamp\x18\x03 \x01(\t\x12\x34\n\tsignature\x18\x04 \x01(\x0b\x32!.yoti.core.compubapi_v1.SignatureBh\n\x15\x63om.yoti.compubapi_v1B\x12RsaAuthDigestProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'RsaAuthDigest_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\022RsaAuthDigestProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _RSAAUTHDIGEST._serialized_start=90
+ _RSAAUTHDIGEST._serialized_end=210
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/Signature_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/Signature_pb2.py
new file mode 100644
index 00000000..fb756302
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/Signature_pb2.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/Signature.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x63ompubapi_v1/Signature.proto\x12\x16yoti.core.compubapi_v1\"\xb0\x01\n\tSignature\x12\x39\n\x04\x61lgo\x18\x01 \x01(\x0e\x32+.yoti.core.compubapi_v1.Signature.Algorithm\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\"[\n\tAlgorithm\x12\r\n\tUNDEFINED\x10\x00\x12\x12\n\x0eRSA_PSS_SHA512\x10\x01\x12\x12\n\x0eRSA_PSS_SHA256\x10\x02\x12\x17\n\x13RSA_PKCS1V15_SHA256\x10\x03\x42\x64\n\x15\x63om.yoti.compubapi_v1B\x0eSignatureProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Signature_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\016SignatureProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _SIGNATURE._serialized_start=57
+ _SIGNATURE._serialized_end=233
+ _SIGNATURE_ALGORITHM._serialized_start=142
+ _SIGNATURE_ALGORITHM._serialized_end=233
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/SignedTimestamp_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/SignedTimestamp_pb2.py
new file mode 100644
index 00000000..9db6ed16
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/SignedTimestamp_pb2.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/SignedTimestamp.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"compubapi_v1/SignedTimestamp.proto\x12\x16yoti.core.compubapi_v1\"\xbc\x01\n\x0fSignedTimestamp\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12\x11\n\ttimestamp\x18\x02 \x01(\x04\x12\x16\n\x0emessage_digest\x18\x03 \x01(\x0c\x12\x18\n\x10signed_timestamp\x18\x04 \x01(\x0c\x12\x1a\n\x12\x63hain_digest_skip1\x18\x05 \x01(\x0c\x12\x1a\n\x12\x63hain_digest_skip2\x18\x06 \x01(\x0c\x12\x1b\n\x13hmac_key_identifier\x18\x07 \x01(\x05\x42j\n\x15\x63om.yoti.compubapi_v1B\x14SignedTimestampProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'SignedTimestamp_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\024SignedTimestampProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _SIGNEDTIMESTAMP._serialized_start=63
+ _SIGNEDTIMESTAMP._serialized_end=251
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/UserProfile_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/UserProfile_pb2.py
new file mode 100644
index 00000000..2e7d78ca
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/UserProfile_pb2.py
@@ -0,0 +1,98 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/UserProfile.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import Address_pb2 as compubapi__v1_dot_Address__pb2
+from . import IdentityProfile_pb2 as compubapi__v1_dot_IdentityProfile__pb2
+from . import DocumentFields_pb2 as compubapi__v1_dot_DocumentFields__pb2
+from . import DocumentTypes_pb2 as compubapi__v1_dot_DocumentTypes__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x63ompubapi_v1/UserProfile.proto\x12\x16yoti.core.compubapi_v1\x1a\x1a\x63ompubapi_v1/Address.proto\x1a\"compubapi_v1/IdentityProfile.proto\x1a!compubapi_v1/DocumentFields.proto\x1a compubapi_v1/DocumentTypes.proto\"\xbc\x01\n\x0bUserProfile\x12\x45\n\x12identity_assertion\x18\x01 \x01(\x0b\x32).yoti.core.compubapi_v1.IdentityAssertion\x12!\n\x19\x65vidence_collection_db_id\x18\x02 \x01(\x0c\x12\x43\n\x11unlinked_evidence\x18\x03 \x03(\x0b\x32(.yoti.core.compubapi_v1.UnlinkedEvidence\"\xc2\x02\n\x11IdentityAssertion\x12\x32\n\x0c\x63urrent_name\x18\x01 \x01(\x0b\x32\x1c.yoti.core.compubapi_v1.Name\x12:\n\rdate_of_birth\x18\x02 \x01(\x0b\x32#.yoti.core.compubapi_v1.DateOfBirth\x12\x41\n\x0f\x63urrent_address\x18\x03 \x01(\x0b\x32(.yoti.core.compubapi_v1.AddressWithDates\x12\x44\n\x12previous_addresses\x18\x04 \x03(\x0b\x32(.yoti.core.compubapi_v1.AddressWithDates\x12\x34\n\x0eprevious_names\x18\x05 \x03(\x0b\x32\x1c.yoti.core.compubapi_v1.Name\"\x82\x03\n\x10\x41\x64\x64ressWithDates\x12\x38\n\x0fprofile_address\x18\x01 \x01(\x0b\x32\x1f.yoti.core.compubapi_v1.Address\x12\x0f\n\x07move_in\x18\x02 \x01(\t\x12\x10\n\x08move_out\x18\x03 \x01(\t\x12<\n\x0e\x65vidence_links\x18\x04 \x03(\x0b\x32$.yoti.core.compubapi_v1.EvidenceLink\x12<\n\x08\x61\x64\x64\x65\x64_at\x18\x07 \x01(\x0b\x32*.yoti.core.compubapi_v1.AssertionTimestamp\x12@\n\x0c\x63onfirmed_at\x18\x08 \x01(\x0b\x32*.yoti.core.compubapi_v1.AssertionTimestamp\x12\x41\n\rconfirmations\x18\t \x03(\x0b\x32*.yoti.core.compubapi_v1.AssertionTimestampJ\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\n\x10\x0b\"\xac\x01\n\x12\x41ssertionTimestamp\x12\n\n\x02ts\x18\x01 \x01(\t\x12\x41\n\x06source\x18\x02 \x01(\x0e\x32\x31.yoti.core.compubapi_v1.AssertionTimestamp.Source\"G\n\x06Source\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08\x44OCUMENT\x10\x01\x12\n\n\x06MANUAL\x10\x02\x12\x14\n\x10RELYING_BUSINESS\x10\x03\"\xd3\x02\n\x12\x43onfirmationStatus\x12\x41\n\x06source\x18\x01 \x01(\x0e\x32\x31.yoti.core.compubapi_v1.ConfirmationStatus.Source\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x41\n\x06status\x18\x03 \x01(\x0e\x32\x31.yoti.core.compubapi_v1.ConfirmationStatus.Status\";\n\x06Source\x12\r\n\tUNDEFINED\x10\x00\x12\x0c\n\x08\x45ND_USER\x10\x01\x12\x14\n\x10RELYING_BUSINESS\x10\x02\"g\n\x06Status\x12\x1a\n\x16NO_MANUAL_CONFIRMATION\x10\x00\x12!\n\x1dMANUAL_CONFIRMATION_SUCCEEDED\x10\x01\x12\x1e\n\x1aMANUAL_CONFIRMATION_FAILED\x10\x02\"\xef\x02\n\x04Name\x12\x34\n\x04name\x18\x01 \x01(\x0b\x32&.yoti.core.compubapi_v1.StructuredName\x12\x11\n\theld_from\x18\x02 \x01(\t\x12\x0f\n\x07held_to\x18\x03 \x01(\t\x12<\n\x0e\x65vidence_links\x18\x04 \x03(\x0b\x32$.yoti.core.compubapi_v1.EvidenceLink\x12<\n\x08\x61\x64\x64\x65\x64_at\x18\x05 \x01(\x0b\x32*.yoti.core.compubapi_v1.AssertionTimestamp\x12\x41\n\rconfirmations\x18\x06 \x03(\x0b\x32*.yoti.core.compubapi_v1.AssertionTimestamp\x12N\n\x1amanual_confirmation_status\x18\x07 \x01(\x0b\x32*.yoti.core.compubapi_v1.ConfirmationStatus\"\xb3\x02\n\x0b\x44\x61teOfBirth\x12\x15\n\rdate_of_birth\x18\x01 \x01(\t\x12<\n\x0e\x65vidence_links\x18\x02 \x03(\x0b\x32$.yoti.core.compubapi_v1.EvidenceLink\x12<\n\x08\x61\x64\x64\x65\x64_at\x18\x03 \x01(\x0b\x32*.yoti.core.compubapi_v1.AssertionTimestamp\x12\x41\n\rconfirmations\x18\x04 \x03(\x0b\x32*.yoti.core.compubapi_v1.AssertionTimestamp\x12N\n\x1amanual_confirmation_status\x18\x05 \x01(\x0b\x32*.yoti.core.compubapi_v1.ConfirmationStatus\"v\n\x0eStructuredName\x12\x13\n\x0bgiven_names\x18\x01 \x01(\t\x12\x12\n\nfirst_name\x18\x02 \x01(\t\x12\x13\n\x0bmiddle_name\x18\x03 \x01(\t\x12\x13\n\x0b\x66\x61mily_name\x18\x04 \x01(\t\x12\x11\n\tfull_name\x18\x05 \x01(\t\"#\n\x0c\x45videnceLink\x12\x13\n\x0b\x65vidence_id\x18\x01 \x01(\t\"\xda\x01\n\x12\x45videnceCollection\x12\x39\n\x04\x66\x61\x63\x65\x18\x01 \x01(\x0b\x32+.yoti.core.compubapi_v1.FaceCaptureEvidence\x12;\n\tdocuments\x18\x02 \x03(\x0b\x32(.yoti.core.compubapi_v1.DocumentEvidence\x12L\n\x12\x65lectronic_records\x18\x03 \x03(\x0b\x32\x30.yoti.core.compubapi_v1.ElectronicRecordEvidence\"\xd7\x02\n\x13\x46\x61\x63\x65\x43\x61ptureEvidence\x12\x13\n\x0b\x65vidence_id\x18\x01 \x01(\t\x12\x36\n\x0b\x61udit_links\x18\x02 \x03(\x0b\x32!.yoti.core.compubapi_v1.AuditLink\x12@\n\x10initial_liveness\x18\x03 \x01(\x0b\x32&.yoti.core.compubapi_v1.PassedLiveness\x12\x45\n\x15last_matched_liveness\x18\x04 \x01(\x0b\x32&.yoti.core.compubapi_v1.PassedLiveness\x12\x36\n\x06source\x18\x05 \x01(\x0b\x32&.yoti.core.compubapi_v1.EvidenceSource\x12\x15\n\rverifying_org\x18\x06 \x01(\t\x12\x1b\n\x13selfie_attribute_id\x18\x07 \x01(\x0c\"\xe0\x03\n\x10\x44ocumentEvidence\x12\x13\n\x0b\x65vidence_id\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x36\n\x0b\x61udit_links\x18\x03 \x03(\x0b\x32!.yoti.core.compubapi_v1.AuditLink\x12\x39\n\rdocument_info\x18\x04 \x01(\x0b\x32\".yoti.core.compubapi_v1.IdDocument\x12?\n\x0f\x64ocument_fields\x18\x05 \x01(\x0b\x32&.yoti.core.compubapi_v1.DocumentFields\x12<\n\rpassed_checks\x18\x06 \x03(\x0b\x32%.yoti.core.compubapi_v1.DocumentCheck\x12$\n\x1c\x64ocument_images_attribute_id\x18\x07 \x01(\x0c\x12\x36\n\x06source\x18\x08 \x01(\x0b\x32&.yoti.core.compubapi_v1.EvidenceSource\x12\x15\n\rverifying_org\x18\t \x01(\t\x12=\n\x0eimport_details\x18\n \x01(\x0b\x32%.yoti.core.compubapi_v1.ImportDetails\"\xb8\x02\n\x18\x45lectronicRecordEvidence\x12\x13\n\x0b\x65vidence_id\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x36\n\x0b\x61udit_links\x18\x03 \x03(\x0b\x32!.yoti.core.compubapi_v1.AuditLink\x12\x41\n\x10identity_details\x18\x04 \x01(\x0b\x32\'.yoti.core.compubapi_v1.IdentityDetails\x12\x15\n\rverifying_org\x18\x05 \x01(\t\x12\x14\n\x0cprovider_org\x18\x06 \x01(\t\x12L\n\x16identity_check_outcome\x18\x07 \x01(\x0b\x32,.yoti.core.compubapi_v1.IdentityCheckOutcome\"\xcc\x02\n\x14IdentityCheckOutcome\x12?\n\x04type\x18\x01 \x01(\x0e\x32\x31.yoti.core.compubapi_v1.IdentityCheckOutcome.Type\x12;\n\rcifas_outcome\x18\x02 \x01(\x0b\x32$.yoti.core.compubapi_v1.CIFASOutcome\x12\x37\n\x0b\x63ra_outcome\x18\x03 \x01(\x0b\x32\".yoti.core.compubapi_v1.CRAOutcome\x12\x43\n\x11synectics_outcome\x18\x04 \x01(\x0b\x32(.yoti.core.compubapi_v1.SynecticsOutcome\"8\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12\t\n\x05\x43IFAS\x10\x01\x12\x07\n\x03\x43RA\x10\x02\x12\r\n\tSYNECTICS\x10\x03\"\xa0\x01\n\x0c\x43IFASOutcome\x12\x39\n\x05state\x18\x01 \x01(\x0e\x32*.yoti.core.compubapi_v1.CIFASOutcome.State\"U\n\x05State\x12\r\n\tUNDEFINED\x10\x00\x12\x11\n\rNOT_FRAUDSTER\x10\x01\x12\r\n\tFRAUDSTER\x10\x02\x12\x10\n\x0c\x46RAUD_VICTIM\x10\x03\x12\t\n\x05\x45RROR\x10\x04\"\xbd\x04\n\nCRAOutcome\x12?\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0e\x32..yoti.core.compubapi_v1.CRAOutcome.MatchResult\x12<\n\x04name\x18\x02 \x01(\x0e\x32..yoti.core.compubapi_v1.CRAOutcome.MatchResult\x12;\n\x03\x64ob\x18\x03 \x01(\x0e\x32..yoti.core.compubapi_v1.CRAOutcome.MatchResult\x12G\n\x0bpep_warning\x18\x04 \x01(\x0e\x32\x32.yoti.core.compubapi_v1.CRAOutcome.AdditionalCheck\x12\x44\n\x08\x64\x65\x63\x65\x61sed\x18\x05 \x01(\x0e\x32\x32.yoti.core.compubapi_v1.CRAOutcome.AdditionalCheck\x12J\n\x0e\x65lectoral_roll\x18\x06 \x01(\x0e\x32\x32.yoti.core.compubapi_v1.CRAOutcome.AdditionalCheck\x12\x19\n\x11unable_to_perform\x18\x07 \x01(\x08\">\n\x0bMatchResult\x12\x11\n\rNOT_AVAILABLE\x10\x00\x12\x0b\n\x07MATCHED\x10\x01\x12\x0f\n\x0bNOT_MATCHED\x10\x02\"=\n\x0f\x41\x64\x64itionalCheck\x12\x12\n\x0eNOT_APPLICABLE\x10\x00\x12\n\n\x06PASSED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"v\n\x10SynecticsOutcome\x12\x18\n\x10\x61\x63tivity_history\x18\x01 \x01(\x05\x12\x16\n\x0eidentity_fraud\x18\x02 \x01(\x05\x12\x15\n\rfailed_checks\x18\x03 \x03(\t\x12\x19\n\x11unable_to_perform\x18\x04 \x01(\x08\"\xa8\x01\n\x0ePassedLiveness\x12\x39\n\x04type\x18\x01 \x01(\x0e\x32+.yoti.core.compubapi_v1.PassedLiveness.Type\x12\x11\n\ttimestamp\x18\x02 \x01(\t\"H\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12\x08\n\x04ZOOM\x10\x01\x12\n\n\x06STATIC\x10\x02\x12\x0f\n\x0bTHREE_WORDS\x10\x03\x12\n\n\x06\x41\x43TIVE\x10\x04\"\xae\x01\n\tAuditLink\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32&.yoti.core.compubapi_v1.AuditLink.Type\x12\n\n\x02id\x18\x02 \x01(\t\"_\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12!\n\x1d\x44ID_USER_ACTIVITY_TRACKING_ID\x10\x01\x12\x10\n\x0cIDV_CHECK_ID\x10\x02\x12\x13\n\x0fIDV_RESOURCE_ID\x10\x03\"\x95\x01\n\x0e\x45videnceSource\x12=\n\x06source\x18\x01 \x01(\x0e\x32-.yoti.core.compubapi_v1.EvidenceSource.Source\"D\n\x06Source\x12\r\n\tUNDEFINED\x10\x00\x12\x0b\n\x07IDV_WEB\x10\x01\x12\x11\n\rIDV_WEB_SICAP\x10\x02\x12\x0b\n\x07\x44ID_APP\x10\x03\"\xfb\x02\n\rDocumentCheck\x12:\n\x05\x63heck\x18\x01 \x01(\x0e\x32+.yoti.core.compubapi_v1.DocumentCheck.Check\"\xad\x02\n\x05\x43heck\x12\r\n\tUNDEFINED\x10\x00\x12\'\n#MANUAL_VISUAL_DOCUMENT_AUTHENTICITY\x10\x01\x12\x1a\n\x16\x43HIP_DIGITAL_SIGNATURE\x10\x02\x12\x15\n\x11ISSUING_AUTHORITY\x10\x03\x12\x14\n\x10\x44OCUMENT_IN_DATE\x10\x04\x12\x18\n\x14\x46RAUD_DOCUMENTS_LIST\x10\x05\x12\x15\n\x11MANUAL_FACE_MATCH\x10\x06\x12\x18\n\x14\x41UTOMATED_FACE_MATCH\x10\x07\x12)\n%AUTOMATED_FACE_MATCH_HIGHER_THRESHOLD\x10\x08\x12-\n)HIGH_ASSURANCE_AUTO_DOCUMENT_AUTHENTICITY\x10\t\"4\n\rImportDetails\x12\x13\n\x0bimported_at\x18\x01 \x01(\t\x12\x0e\n\x06org_id\x18\x02 \x01(\t\"\xbd\x01\n\x10UnlinkedEvidence\x12\x13\n\x0b\x65vidence_id\x18\x01 \x01(\t\x12?\n\x06reason\x18\x02 \x01(\x0e\x32/.yoti.core.compubapi_v1.UnlinkedEvidence.Reason\"S\n\x06Reason\x12\r\n\tUNDEFINED\x10\x00\x12\x11\n\rNAME_MISMATCH\x10\x01\x12\x10\n\x0c\x44OB_MISMATCH\x10\x02\x12\x15\n\x11NAME_DOB_MISMATCH\x10\x03\x42\x66\n\x15\x63om.yoti.compubapi_v1B\x10UserProfileProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'UserProfile_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\020UserProfileProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _USERPROFILE._serialized_start=192
+ _USERPROFILE._serialized_end=380
+ _IDENTITYASSERTION._serialized_start=383
+ _IDENTITYASSERTION._serialized_end=705
+ _ADDRESSWITHDATES._serialized_start=708
+ _ADDRESSWITHDATES._serialized_end=1094
+ _ASSERTIONTIMESTAMP._serialized_start=1097
+ _ASSERTIONTIMESTAMP._serialized_end=1269
+ _ASSERTIONTIMESTAMP_SOURCE._serialized_start=1198
+ _ASSERTIONTIMESTAMP_SOURCE._serialized_end=1269
+ _CONFIRMATIONSTATUS._serialized_start=1272
+ _CONFIRMATIONSTATUS._serialized_end=1611
+ _CONFIRMATIONSTATUS_SOURCE._serialized_start=1447
+ _CONFIRMATIONSTATUS_SOURCE._serialized_end=1506
+ _CONFIRMATIONSTATUS_STATUS._serialized_start=1508
+ _CONFIRMATIONSTATUS_STATUS._serialized_end=1611
+ _NAME._serialized_start=1614
+ _NAME._serialized_end=1981
+ _DATEOFBIRTH._serialized_start=1984
+ _DATEOFBIRTH._serialized_end=2291
+ _STRUCTUREDNAME._serialized_start=2293
+ _STRUCTUREDNAME._serialized_end=2411
+ _EVIDENCELINK._serialized_start=2413
+ _EVIDENCELINK._serialized_end=2448
+ _EVIDENCECOLLECTION._serialized_start=2451
+ _EVIDENCECOLLECTION._serialized_end=2669
+ _FACECAPTUREEVIDENCE._serialized_start=2672
+ _FACECAPTUREEVIDENCE._serialized_end=3015
+ _DOCUMENTEVIDENCE._serialized_start=3018
+ _DOCUMENTEVIDENCE._serialized_end=3498
+ _ELECTRONICRECORDEVIDENCE._serialized_start=3501
+ _ELECTRONICRECORDEVIDENCE._serialized_end=3813
+ _IDENTITYCHECKOUTCOME._serialized_start=3816
+ _IDENTITYCHECKOUTCOME._serialized_end=4148
+ _IDENTITYCHECKOUTCOME_TYPE._serialized_start=4092
+ _IDENTITYCHECKOUTCOME_TYPE._serialized_end=4148
+ _CIFASOUTCOME._serialized_start=4151
+ _CIFASOUTCOME._serialized_end=4311
+ _CIFASOUTCOME_STATE._serialized_start=4226
+ _CIFASOUTCOME_STATE._serialized_end=4311
+ _CRAOUTCOME._serialized_start=4314
+ _CRAOUTCOME._serialized_end=4887
+ _CRAOUTCOME_MATCHRESULT._serialized_start=4762
+ _CRAOUTCOME_MATCHRESULT._serialized_end=4824
+ _CRAOUTCOME_ADDITIONALCHECK._serialized_start=4826
+ _CRAOUTCOME_ADDITIONALCHECK._serialized_end=4887
+ _SYNECTICSOUTCOME._serialized_start=4889
+ _SYNECTICSOUTCOME._serialized_end=5007
+ _PASSEDLIVENESS._serialized_start=5010
+ _PASSEDLIVENESS._serialized_end=5178
+ _PASSEDLIVENESS_TYPE._serialized_start=5106
+ _PASSEDLIVENESS_TYPE._serialized_end=5178
+ _AUDITLINK._serialized_start=5181
+ _AUDITLINK._serialized_end=5355
+ _AUDITLINK_TYPE._serialized_start=5260
+ _AUDITLINK_TYPE._serialized_end=5355
+ _EVIDENCESOURCE._serialized_start=5358
+ _EVIDENCESOURCE._serialized_end=5507
+ _EVIDENCESOURCE_SOURCE._serialized_start=5439
+ _EVIDENCESOURCE_SOURCE._serialized_end=5507
+ _DOCUMENTCHECK._serialized_start=5510
+ _DOCUMENTCHECK._serialized_end=5889
+ _DOCUMENTCHECK_CHECK._serialized_start=5588
+ _DOCUMENTCHECK_CHECK._serialized_end=5889
+ _IMPORTDETAILS._serialized_start=5891
+ _IMPORTDETAILS._serialized_end=5943
+ _UNLINKEDEVIDENCE._serialized_start=5946
+ _UNLINKEDEVIDENCE._serialized_end=6135
+ _UNLINKEDEVIDENCE_REASON._serialized_start=6052
+ _UNLINKEDEVIDENCE_REASON._serialized_end=6135
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/YotiYUV_pb2.py b/yoti_python_sdk/protobuf/compubapi_v1/YotiYUV_pb2.py
new file mode 100644
index 00000000..6a87d03c
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/YotiYUV_pb2.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: compubapi_v1/YotiYUV.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x63ompubapi_v1/YotiYUV.proto\x12\x16yoti.core.compubapi_v1\"Y\n\x07YotiYUV\x12\x0e\n\x06Header\x18\x01 \x01(\t\x12\r\n\x05width\x18\x02 \x01(\x05\x12\x0e\n\x06height\x18\x03 \x01(\x05\x12\x0e\n\x06gzip_Y\x18\x10 \x01(\x0c\x12\x0f\n\x07gzip_UV\x18\x11 \x01(\x0c\x42\x62\n\x15\x63om.yoti.compubapi_v1B\x0cYotiYUVProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\xba\x02\x0c\x43ompubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'YotiYUV_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\025com.yoti.compubapi_v1B\014YotiYUVProtoZ,go.internal.yoti.com/proto/core/compubapi_v1\272\002\014CompubapiV1_'
+ _YOTIYUV._serialized_start=54
+ _YOTIYUV._serialized_end=143
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/compubapi_v1/__init__.py b/yoti_python_sdk/protobuf/compubapi_v1/__init__.py
new file mode 100644
index 00000000..40a96afc
--- /dev/null
+++ b/yoti_python_sdk/protobuf/compubapi_v1/__init__.py
@@ -0,0 +1 @@
+# -*- coding: utf-8 -*-
diff --git a/yoti_python_sdk/protobuf/protobuf.py b/yoti_python_sdk/protobuf/protobuf.py
index 4e46db01..be642182 100644
--- a/yoti_python_sdk/protobuf/protobuf.py
+++ b/yoti_python_sdk/protobuf/protobuf.py
@@ -2,10 +2,10 @@
from __future__ import unicode_literals
from cryptography.fernet import base64
-from yoti_python_sdk.protobuf.attribute_public_api import Attribute_pb2, List_pb2
-from yoti_python_sdk.protobuf.common_public_api import EncryptedData_pb2
-from yoti_python_sdk.protobuf.share_public_api import ExtraData_pb2
-from yoti_python_sdk.protobuf.share_public_api import ThirdPartyAttribute_pb2
+from yoti_python_sdk.protobuf.attrpubapi_v1 import Attribute_pb2, List_pb2
+from yoti_python_sdk.protobuf.compubapi_v1 import EncryptedData_pb2
+from yoti_python_sdk.protobuf.sharepubapi_v1 import ExtraData_pb2
+from yoti_python_sdk.protobuf.sharepubapi_v1 import ThirdPartyAttribute_pb2
class Protobuf(object):
diff --git a/yoti_python_sdk/protobuf/share_public_api/DataEntry_pb2.py b/yoti_python_sdk/protobuf/share_public_api/DataEntry_pb2.py
deleted file mode 100644
index 689e27e6..00000000
--- a/yoti_python_sdk/protobuf/share_public_api/DataEntry_pb2.py
+++ /dev/null
@@ -1,122 +0,0 @@
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: DataEntry.proto
-
-import sys
-_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='DataEntry.proto',
- package='sharepubapi_v1',
- syntax='proto3',
- serialized_options=_b('\n$com.yoti.api.client.spi.remote.protoB\016DataEntryProtoZ\016yotiprotoshare\252\002\030Yoti.Auth.ProtoBuf.Share\312\002\020Yoti\\Sharepubapi\342\002\034Yoti\\Sharepubapi\\GPBMetadata\352\002\031Yoti.Protobuf.Sharepubapi'),
- serialized_pb=_b('\n\x0f\x44\x61taEntry.proto\x12\x0esharepubapi_v1\"\xdd\x01\n\tDataEntry\x12,\n\x04type\x18\x01 \x01(\x0e\x32\x1e.sharepubapi_v1.DataEntry.Type\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x92\x01\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12\x0b\n\x07INVOICE\x10\x01\x12\x17\n\x13PAYMENT_TRANSACTION\x10\x02\x12\x0c\n\x08LOCATION\x10\x03\x12\x0f\n\x0bTRANSACTION\x10\x04\x12\x1b\n\x17\x41GE_VERIFICATION_SECRET\x10\x05\x12\x19\n\x15THIRD_PARTY_ATTRIBUTE\x10\x06\x42\xaf\x01\n$com.yoti.api.client.spi.remote.protoB\x0e\x44\x61taEntryProtoZ\x0eyotiprotoshare\xaa\x02\x18Yoti.Auth.ProtoBuf.Share\xca\x02\x10Yoti\\Sharepubapi\xe2\x02\x1cYoti\\Sharepubapi\\GPBMetadata\xea\x02\x19Yoti.Protobuf.Sharepubapib\x06proto3')
-)
-
-
-
-_DATAENTRY_TYPE = _descriptor.EnumDescriptor(
- name='Type',
- full_name='sharepubapi_v1.DataEntry.Type',
- filename=None,
- file=DESCRIPTOR,
- values=[
- _descriptor.EnumValueDescriptor(
- name='UNDEFINED', index=0, number=0,
- serialized_options=None,
- type=None),
- _descriptor.EnumValueDescriptor(
- name='INVOICE', index=1, number=1,
- serialized_options=None,
- type=None),
- _descriptor.EnumValueDescriptor(
- name='PAYMENT_TRANSACTION', index=2, number=2,
- serialized_options=None,
- type=None),
- _descriptor.EnumValueDescriptor(
- name='LOCATION', index=3, number=3,
- serialized_options=None,
- type=None),
- _descriptor.EnumValueDescriptor(
- name='TRANSACTION', index=4, number=4,
- serialized_options=None,
- type=None),
- _descriptor.EnumValueDescriptor(
- name='AGE_VERIFICATION_SECRET', index=5, number=5,
- serialized_options=None,
- type=None),
- _descriptor.EnumValueDescriptor(
- name='THIRD_PARTY_ATTRIBUTE', index=6, number=6,
- serialized_options=None,
- type=None),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=111,
- serialized_end=257,
-)
-_sym_db.RegisterEnumDescriptor(_DATAENTRY_TYPE)
-
-
-_DATAENTRY = _descriptor.Descriptor(
- name='DataEntry',
- full_name='sharepubapi_v1.DataEntry',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='type', full_name='sharepubapi_v1.DataEntry.type', index=0,
- number=1, type=14, cpp_type=8, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='value', full_name='sharepubapi_v1.DataEntry.value', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- _DATAENTRY_TYPE,
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=36,
- serialized_end=257,
-)
-
-_DATAENTRY.fields_by_name['type'].enum_type = _DATAENTRY_TYPE
-_DATAENTRY_TYPE.containing_type = _DATAENTRY
-DESCRIPTOR.message_types_by_name['DataEntry'] = _DATAENTRY
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-DataEntry = _reflection.GeneratedProtocolMessageType('DataEntry', (_message.Message,), dict(
- DESCRIPTOR = _DATAENTRY,
- __module__ = 'DataEntry_pb2'
- # @@protoc_insertion_point(class_scope:sharepubapi_v1.DataEntry)
- ))
-_sym_db.RegisterMessage(DataEntry)
-
-
-DESCRIPTOR._options = None
-# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/share_public_api/DataEntry_pb2_grpc.py b/yoti_python_sdk/protobuf/share_public_api/DataEntry_pb2_grpc.py
deleted file mode 100644
index a8943526..00000000
--- a/yoti_python_sdk/protobuf/share_public_api/DataEntry_pb2_grpc.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-import grpc
-
diff --git a/yoti_python_sdk/protobuf/share_public_api/ExtraData_pb2.py b/yoti_python_sdk/protobuf/share_public_api/ExtraData_pb2.py
deleted file mode 100644
index 78afdd0d..00000000
--- a/yoti_python_sdk/protobuf/share_public_api/ExtraData_pb2.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: ExtraData.proto
-
-import sys
-_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-from . import DataEntry_pb2 as DataEntry__pb2
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='ExtraData.proto',
- package='sharepubapi_v1',
- syntax='proto3',
- serialized_options=_b('\n$com.yoti.api.client.spi.remote.protoB\016ExtraDataProtoZ\016yotiprotoshare\252\002\030Yoti.Auth.ProtoBuf.Share\312\002\020Yoti\\Sharepubapi\342\002\034Yoti\\Sharepubapi\\GPBMetadata\352\002\031Yoti.Protobuf.Sharepubapi'),
- serialized_pb=_b('\n\x0f\x45xtraData.proto\x12\x0esharepubapi_v1\x1a\x0f\x44\x61taEntry.proto\"4\n\tExtraData\x12\'\n\x04list\x18\x01 \x03(\x0b\x32\x19.sharepubapi_v1.DataEntryB\xaf\x01\n$com.yoti.api.client.spi.remote.protoB\x0e\x45xtraDataProtoZ\x0eyotiprotoshare\xaa\x02\x18Yoti.Auth.ProtoBuf.Share\xca\x02\x10Yoti\\Sharepubapi\xe2\x02\x1cYoti\\Sharepubapi\\GPBMetadata\xea\x02\x19Yoti.Protobuf.Sharepubapib\x06proto3')
- ,
- dependencies=[DataEntry__pb2.DESCRIPTOR,])
-
-
-
-
-_EXTRADATA = _descriptor.Descriptor(
- name='ExtraData',
- full_name='sharepubapi_v1.ExtraData',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='list', full_name='sharepubapi_v1.ExtraData.list', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=52,
- serialized_end=104,
-)
-
-_EXTRADATA.fields_by_name['list'].message_type = DataEntry__pb2._DATAENTRY
-DESCRIPTOR.message_types_by_name['ExtraData'] = _EXTRADATA
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-ExtraData = _reflection.GeneratedProtocolMessageType('ExtraData', (_message.Message,), dict(
- DESCRIPTOR = _EXTRADATA,
- __module__ = 'ExtraData_pb2'
- # @@protoc_insertion_point(class_scope:sharepubapi_v1.ExtraData)
- ))
-_sym_db.RegisterMessage(ExtraData)
-
-
-DESCRIPTOR._options = None
-# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/share_public_api/ExtraData_pb2_grpc.py b/yoti_python_sdk/protobuf/share_public_api/ExtraData_pb2_grpc.py
deleted file mode 100644
index a8943526..00000000
--- a/yoti_python_sdk/protobuf/share_public_api/ExtraData_pb2_grpc.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-import grpc
-
diff --git a/yoti_python_sdk/protobuf/share_public_api/IssuingAttributes_pb2.py b/yoti_python_sdk/protobuf/share_public_api/IssuingAttributes_pb2.py
deleted file mode 100644
index dabec634..00000000
--- a/yoti_python_sdk/protobuf/share_public_api/IssuingAttributes_pb2.py
+++ /dev/null
@@ -1,117 +0,0 @@
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: IssuingAttributes.proto
-
-import sys
-_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='IssuingAttributes.proto',
- package='sharepubapi_v1',
- syntax='proto3',
- serialized_options=_b('\n$com.yoti.api.client.spi.remote.protoB\026IssuingAttributesProtoZ\016yotiprotoshare\252\002\030Yoti.Auth.ProtoBuf.Share\312\002\020Yoti\\Sharepubapi\342\002\034Yoti\\Sharepubapi\\GPBMetadata\352\002\031Yoti.Protobuf.Sharepubapi'),
- serialized_pb=_b('\n\x17IssuingAttributes.proto\x12\x0esharepubapi_v1\"Y\n\x11IssuingAttributes\x12\x13\n\x0b\x65xpiry_date\x18\x01 \x01(\t\x12/\n\x0b\x64\x65\x66initions\x18\x02 \x03(\x0b\x32\x1a.sharepubapi_v1.Definition\"\x1a\n\nDefinition\x12\x0c\n\x04name\x18\x01 \x01(\tB\xb7\x01\n$com.yoti.api.client.spi.remote.protoB\x16IssuingAttributesProtoZ\x0eyotiprotoshare\xaa\x02\x18Yoti.Auth.ProtoBuf.Share\xca\x02\x10Yoti\\Sharepubapi\xe2\x02\x1cYoti\\Sharepubapi\\GPBMetadata\xea\x02\x19Yoti.Protobuf.Sharepubapib\x06proto3')
-)
-
-
-
-
-_ISSUINGATTRIBUTES = _descriptor.Descriptor(
- name='IssuingAttributes',
- full_name='sharepubapi_v1.IssuingAttributes',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='expiry_date', full_name='sharepubapi_v1.IssuingAttributes.expiry_date', index=0,
- number=1, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=_b("").decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='definitions', full_name='sharepubapi_v1.IssuingAttributes.definitions', index=1,
- number=2, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=43,
- serialized_end=132,
-)
-
-
-_DEFINITION = _descriptor.Descriptor(
- name='Definition',
- full_name='sharepubapi_v1.Definition',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='name', full_name='sharepubapi_v1.Definition.name', index=0,
- number=1, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=_b("").decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=134,
- serialized_end=160,
-)
-
-_ISSUINGATTRIBUTES.fields_by_name['definitions'].message_type = _DEFINITION
-DESCRIPTOR.message_types_by_name['IssuingAttributes'] = _ISSUINGATTRIBUTES
-DESCRIPTOR.message_types_by_name['Definition'] = _DEFINITION
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-IssuingAttributes = _reflection.GeneratedProtocolMessageType('IssuingAttributes', (_message.Message,), dict(
- DESCRIPTOR = _ISSUINGATTRIBUTES,
- __module__ = 'IssuingAttributes_pb2'
- # @@protoc_insertion_point(class_scope:sharepubapi_v1.IssuingAttributes)
- ))
-_sym_db.RegisterMessage(IssuingAttributes)
-
-Definition = _reflection.GeneratedProtocolMessageType('Definition', (_message.Message,), dict(
- DESCRIPTOR = _DEFINITION,
- __module__ = 'IssuingAttributes_pb2'
- # @@protoc_insertion_point(class_scope:sharepubapi_v1.Definition)
- ))
-_sym_db.RegisterMessage(Definition)
-
-
-DESCRIPTOR._options = None
-# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/share_public_api/IssuingAttributes_pb2_grpc.py b/yoti_python_sdk/protobuf/share_public_api/IssuingAttributes_pb2_grpc.py
deleted file mode 100644
index a8943526..00000000
--- a/yoti_python_sdk/protobuf/share_public_api/IssuingAttributes_pb2_grpc.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-import grpc
-
diff --git a/yoti_python_sdk/protobuf/share_public_api/ThirdPartyAttribute_pb2.py b/yoti_python_sdk/protobuf/share_public_api/ThirdPartyAttribute_pb2.py
deleted file mode 100644
index 01f5910a..00000000
--- a/yoti_python_sdk/protobuf/share_public_api/ThirdPartyAttribute_pb2.py
+++ /dev/null
@@ -1,80 +0,0 @@
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: ThirdPartyAttribute.proto
-
-import sys
-_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-from . import IssuingAttributes_pb2 as IssuingAttributes__pb2
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='ThirdPartyAttribute.proto',
- package='sharepubapi_v1',
- syntax='proto3',
- serialized_options=_b('\n$com.yoti.api.client.spi.remote.protoB\030ThirdPartyAttributeProtoZ\016yotiprotoshare\252\002\030Yoti.Auth.ProtoBuf.Share\312\002\020Yoti\\Sharepubapi\342\002\034Yoti\\Sharepubapi\\GPBMetadata\352\002\031Yoti.Protobuf.Sharepubapi'),
- serialized_pb=_b('\n\x19ThirdPartyAttribute.proto\x12\x0esharepubapi_v1\x1a\x17IssuingAttributes.proto\"l\n\x13ThirdPartyAttribute\x12\x16\n\x0eissuance_token\x18\x01 \x01(\x0c\x12=\n\x12issuing_attributes\x18\x02 \x01(\x0b\x32!.sharepubapi_v1.IssuingAttributesB\xb9\x01\n$com.yoti.api.client.spi.remote.protoB\x18ThirdPartyAttributeProtoZ\x0eyotiprotoshare\xaa\x02\x18Yoti.Auth.ProtoBuf.Share\xca\x02\x10Yoti\\Sharepubapi\xe2\x02\x1cYoti\\Sharepubapi\\GPBMetadata\xea\x02\x19Yoti.Protobuf.Sharepubapib\x06proto3')
- ,
- dependencies=[IssuingAttributes__pb2.DESCRIPTOR,])
-
-
-
-
-_THIRDPARTYATTRIBUTE = _descriptor.Descriptor(
- name='ThirdPartyAttribute',
- full_name='sharepubapi_v1.ThirdPartyAttribute',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- fields=[
- _descriptor.FieldDescriptor(
- name='issuance_token', full_name='sharepubapi_v1.ThirdPartyAttribute.issuance_token', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=_b(""),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- _descriptor.FieldDescriptor(
- name='issuing_attributes', full_name='sharepubapi_v1.ThirdPartyAttribute.issuing_attributes', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto3',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=70,
- serialized_end=178,
-)
-
-_THIRDPARTYATTRIBUTE.fields_by_name['issuing_attributes'].message_type = IssuingAttributes__pb2._ISSUINGATTRIBUTES
-DESCRIPTOR.message_types_by_name['ThirdPartyAttribute'] = _THIRDPARTYATTRIBUTE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-ThirdPartyAttribute = _reflection.GeneratedProtocolMessageType('ThirdPartyAttribute', (_message.Message,), dict(
- DESCRIPTOR = _THIRDPARTYATTRIBUTE,
- __module__ = 'ThirdPartyAttribute_pb2'
- # @@protoc_insertion_point(class_scope:sharepubapi_v1.ThirdPartyAttribute)
- ))
-_sym_db.RegisterMessage(ThirdPartyAttribute)
-
-
-DESCRIPTOR._options = None
-# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/share_public_api/ThirdPartyAttribute_pb2_grpc.py b/yoti_python_sdk/protobuf/share_public_api/ThirdPartyAttribute_pb2_grpc.py
deleted file mode 100644
index a8943526..00000000
--- a/yoti_python_sdk/protobuf/share_public_api/ThirdPartyAttribute_pb2_grpc.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-import grpc
-
diff --git a/yoti_python_sdk/protobuf/share_public_api/__init__.py b/yoti_python_sdk/protobuf/share_public_api/__init__.py
deleted file mode 100644
index d8d07d96..00000000
--- a/yoti_python_sdk/protobuf/share_public_api/__init__.py
+++ /dev/null
@@ -1,5 +0,0 @@
-import os
-import sys
-
-# needed so we can import relative modules from distinct protobuf-generated files
-sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
\ No newline at end of file
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/AgeVerificationSecret_pb2.py b/yoti_python_sdk/protobuf/sharepubapi_v1/AgeVerificationSecret_pb2.py
new file mode 100644
index 00000000..2254360c
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/AgeVerificationSecret_pb2.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: sharepubapi_v1/AgeVerificationSecret.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*sharepubapi_v1/AgeVerificationSecret.proto\x12\x18yoti.core.sharepubapi_v1\"J\n\x15\x41geVerificationSecret\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12\x14\n\x0c\x62\x61nner_value\x18\x03 \x01(\x05\x42v\n\x17\x63om.yoti.sharepubapi_v1B\x1a\x41geVerificationSecretProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\xba\x02\x0eSharepubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'AgeVerificationSecret_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\027com.yoti.sharepubapi_v1B\032AgeVerificationSecretProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\272\002\016SharepubapiV1_'
+ _AGEVERIFICATIONSECRET._serialized_start=72
+ _AGEVERIFICATIONSECRET._serialized_end=146
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/CancelSharing_pb2.py b/yoti_python_sdk/protobuf/sharepubapi_v1/CancelSharing_pb2.py
new file mode 100644
index 00000000..e7a6e8cb
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/CancelSharing_pb2.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: sharepubapi_v1/CancelSharing.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from yoti_python_sdk.protobuf.compubapi_v1 import Metadata_pb2 as compubapi__v1_dot_Metadata__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"sharepubapi_v1/CancelSharing.proto\x12\x18yoti.core.sharepubapi_v1\x1a\x1b\x63ompubapi_v1/Metadata.proto\"\xaa\x01\n\x14\x43\x61ncelSharingRequest\x12\x15\n\rsharing_token\x18\x01 \x01(\x0c\x12\x16\n\x0e\x63orrelation_id\x18\x02 \x01(\t\x12\x13\n\x0bwrapped_key\x18\x03 \x01(\x0c\x12\x12\n\ncredential\x18\x04 \x01(\x0c\x12:\n\x0f\x64\x65vice_metadata\x18\xc0\x0c \x01(\x0b\x32 .yoti.core.compubapi_v1.Metadata\"@\n\x19\x43\x61ncelSharingNotification\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x12\n\nerror_code\x18\x02 \x01(\tBn\n\x17\x63om.yoti.sharepubapi_v1B\x12\x43\x61ncelSharingProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\xba\x02\x0eSharepubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'CancelSharing_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\027com.yoti.sharepubapi_v1B\022CancelSharingProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\272\002\016SharepubapiV1_'
+ _CANCELSHARINGREQUEST._serialized_start=94
+ _CANCELSHARINGREQUEST._serialized_end=264
+ _CANCELSHARINGNOTIFICATION._serialized_start=266
+ _CANCELSHARINGNOTIFICATION._serialized_end=330
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/DataEntry_pb2.py b/yoti_python_sdk/protobuf/sharepubapi_v1/DataEntry_pb2.py
new file mode 100644
index 00000000..f453319b
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/DataEntry_pb2.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: sharepubapi_v1/DataEntry.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1esharepubapi_v1/DataEntry.proto\x12\x18yoti.core.sharepubapi_v1\"\xe7\x01\n\tDataEntry\x12\x36\n\x04type\x18\x01 \x01(\x0e\x32(.yoti.core.sharepubapi_v1.DataEntry.Type\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x92\x01\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12\x0b\n\x07INVOICE\x10\x01\x12\x17\n\x13PAYMENT_TRANSACTION\x10\x02\x12\x0c\n\x08LOCATION\x10\x03\x12\x0f\n\x0bTRANSACTION\x10\x04\x12\x1b\n\x17\x41GE_VERIFICATION_SECRET\x10\x05\x12\x19\n\x15THIRD_PARTY_ATTRIBUTE\x10\x06\x42j\n\x17\x63om.yoti.sharepubapi_v1B\x0e\x44\x61taEntryProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\xba\x02\x0eSharepubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'DataEntry_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\027com.yoti.sharepubapi_v1B\016DataEntryProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\272\002\016SharepubapiV1_'
+ _DATAENTRY._serialized_start=61
+ _DATAENTRY._serialized_end=292
+ _DATAENTRY_TYPE._serialized_start=146
+ _DATAENTRY_TYPE._serialized_end=292
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/ExtraData_pb2.py b/yoti_python_sdk/protobuf/sharepubapi_v1/ExtraData_pb2.py
new file mode 100644
index 00000000..73402d15
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/ExtraData_pb2.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: sharepubapi_v1/ExtraData.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import DataEntry_pb2 as sharepubapi__v1_dot_DataEntry__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1esharepubapi_v1/ExtraData.proto\x12\x18yoti.core.sharepubapi_v1\x1a\x1esharepubapi_v1/DataEntry.proto\">\n\tExtraData\x12\x31\n\x04list\x18\x01 \x03(\x0b\x32#.yoti.core.sharepubapi_v1.DataEntryBj\n\x17\x63om.yoti.sharepubapi_v1B\x0e\x45xtraDataProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\xba\x02\x0eSharepubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'ExtraData_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\027com.yoti.sharepubapi_v1B\016ExtraDataProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\272\002\016SharepubapiV1_'
+ _EXTRADATA._serialized_start=92
+ _EXTRADATA._serialized_end=154
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/IdentityProfileShare_pb2.py b/yoti_python_sdk/protobuf/sharepubapi_v1/IdentityProfileShare_pb2.py
new file mode 100644
index 00000000..d3f71163
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/IdentityProfileShare_pb2.py
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: sharepubapi_v1/IdentityProfileShare.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import Policy_pb2 as sharepubapi__v1_dot_Policy__pb2
+from . import Sharing_pb2 as sharepubapi__v1_dot_Sharing__pb2
+from yoti_python_sdk.protobuf.compubapi_v1 import Metadata_pb2 as compubapi__v1_dot_Metadata__pb2
+from yoti_python_sdk.protobuf.compubapi_v1 import DocumentTypes_pb2 as compubapi__v1_dot_DocumentTypes__pb2
+from devicepubapi_v1 import StaticCredentialAuth_pb2 as devicepubapi__v1_dot_StaticCredentialAuth__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)sharepubapi_v1/IdentityProfileShare.proto\x12\x18yoti.core.sharepubapi_v1\x1a\x1bsharepubapi_v1/Policy.proto\x1a\x1csharepubapi_v1/Sharing.proto\x1a\x1b\x63ompubapi_v1/Metadata.proto\x1a compubapi_v1/DocumentTypes.proto\x1a*devicepubapi_v1/StaticCredentialAuth.proto\"\xf9\x04\n\x0fNextStepRequest\x12\x12\n\ncredential\x18\x01 \x01(\x0c\x12\x13\n\x0bwrapped_key\x18\x02 \x01(\x0c\x12\x16\n\x0e\x61uth_data_list\x18\x03 \x01(\x0c\x12\x30\n\x06policy\x18\x04 \x01(\x0b\x32 .yoti.core.sharepubapi_v1.Policy\x12\x15\n\rsharing_token\x18\x05 \x01(\x0c\x12\x14\n\x0csession_data\x18\x06 \x01(\t\x12\x30\n\x06issuer\x18\x07 \x01(\x0e\x32 .yoti.core.sharepubapi_v1.Issuer\x12\x36\n\ttransport\x18\x08 \x01(\x0e\x32#.yoti.core.sharepubapi_v1.Transport\x12!\n\x19user_profile_attribute_id\x18\t \x01(\x0c\x12M\n\x11unable_to_provide\x18\n \x01(\x0b\x32\x32.yoti.core.compubapi_v1.DocumentRestrictionsFilter\x12\x15\n\rattribute_ids\x18\x0b \x03(\x0c\x12\x14\n\x0creference_id\x18\x0c \x01(\t\x12:\n\x0f\x64\x65vice_metadata\x18\xc0\x0c \x01(\x0b\x32 .yoti.core.compubapi_v1.Metadata\x12\x16\n\rfeature_flags\x18\xc1\x0c \x01(\x06\x12\x17\n\x0e\x63orrelation_id\x18\xc2\x0c \x01(\t\x12P\n\x16static_credential_auth\x18\xb8\x17 \x01(\x0b\x32/.yoti.core.devicepubapi_v1.StaticCredentialAuth\"\xfc\x04\n\x10NextStepResponse\x12?\n\x05state\x18\x01 \x01(\x0e\x32\x30.yoti.core.sharepubapi_v1.NextStepResponse.State\x12?\n\x0e\x66\x61ilure_reason\x18\x02 \x01(\x0b\x32\'.yoti.core.sharepubapi_v1.FailureReason\x12:\n\x0brequirement\x18\x03 \x01(\x0b\x32%.yoti.core.sharepubapi_v1.Requirement\x12\x43\n\x10progress_summary\x18\x04 \x01(\x0b\x32).yoti.core.sharepubapi_v1.ProgressSummary\x12\x0f\n\x07payload\x18\x05 \x01(\x0c\x12\x46\n\x12unusable_documents\x18\x06 \x03(\x0b\x32*.yoti.core.sharepubapi_v1.UnusableDocument\x12m\n\x1esubsequent_next_step_may_abort\x18\x07 \x01(\x0e\x32\x45.yoti.core.sharepubapi_v1.NextStepResponse.SubsequentNextStepMayAbort\"V\n\x05State\x12\r\n\tUNDEFINED\x10\x00\x12\x08\n\x04\x44ONE\x10\x01\x12\x16\n\x12NEXT_STEP_REQUIRED\x10\x02\x12\x0c\n\x08\x44\x45\x41\x44_END\x10\x03\x12\x0e\n\nCALL_AGAIN\x10\x04\"E\n\x1aSubsequentNextStepMayAbort\x12\x12\n\x0eNOT_APPLICABLE\x10\x00\x12\t\n\x05\x46\x41LSE\x10\x01\x12\x08\n\x04TRUE\x10\x02\"\xc8\x01\n\x10UnusableDocument\x12\x34\n\x08\x64ocument\x18\x01 \x01(\x0b\x32\".yoti.core.compubapi_v1.IdDocument\x12\x41\n\x06reason\x18\x02 \x01(\x0e\x32\x31.yoti.core.sharepubapi_v1.UnusableDocument.Reason\";\n\x06Reason\x12\r\n\tUNDEFINED\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x12\x15\n\x11OVERSEAS_PASSPORT\x10\x02\"\xde\x01\n\x0fProgressSummary\x12=\n\x0bproof_of_id\x18\x01 \x01(\x0b\x32(.yoti.core.sharepubapi_v1.CategoryStatus\x12\x42\n\x10proof_of_address\x18\x02 \x01(\x0b\x32(.yoti.core.sharepubapi_v1.CategoryStatus\x12H\n\x16\x62iometric_verification\x18\x03 \x01(\x0b\x32(.yoti.core.sharepubapi_v1.CategoryStatus\"$\n\rFailureReason\x12\x13\n\x0breason_code\x18\x01 \x01(\t\"\xf7\x01\n\x0e\x43\x61tegoryStatus\x12=\n\x05state\x18\x01 \x01(\x0e\x32..yoti.core.sharepubapi_v1.CategoryStatus.State\x12N\n\x16\x66ulfilled_requirements\x18\x02 \x03(\x0b\x32..yoti.core.sharepubapi_v1.FulfilledRequirement\"V\n\x05State\x12\r\n\tUNDEFINED\x10\x00\x12\x08\n\x04\x44ONE\x10\x01\x12\x0e\n\nTO_BE_DONE\x10\x02\x12\x0e\n\nNOT_NEEDED\x10\x03\x12\x14\n\x10NO_LONGER_NEEDED\x10\x04\"\x99\x01\n\x14\x46ulfilledRequirement\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32*.yoti.core.sharepubapi_v1.Requirement.Type\x12\x34\n\x08\x64ocument\x18\x02 \x01(\x0b\x32\".yoti.core.compubapi_v1.IdDocument\x12\x11\n\ttimestamp\x18\x03 \x01(\t\"\xaf\x03\n\x0bRequirement\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32*.yoti.core.sharepubapi_v1.Requirement.Type\x12W\n\x14requirement_category\x18\x02 \x01(\x0e\x32\x39.yoti.core.sharepubapi_v1.Requirement.RequirementCategory\x12M\n\x15\x64ocument_restrictions\x18\x03 \x01(\x0b\x32..yoti.core.sharepubapi_v1.DocumentRestrictions\"R\n\x04Type\x12\x10\n\x0cUNDEFINED_RT\x10\x00\x12\x0f\n\x0bID_DOCUMENT\x10\x01\x12\x12\n\x0eMANUAL_ADDRESS\x10\x02\x12\x13\n\x0f\x43ONFIRM_ADDRESS\x10\x03\"j\n\x13RequirementCategory\x12\x10\n\x0cUNDEFINED_RC\x10\x00\x12\x0f\n\x0bPROOF_OF_ID\x10\x01\x12\x14\n\x10PROOF_OF_ADDRESS\x10\x02\x12\x1a\n\x16\x42IOMETRIC_VERIFICATION\x10\x03\"\x81\x01\n\x14\x44ocumentRestrictions\x12%\n\x1d\x63hip_verification_recommended\x18\x01 \x01(\x08\x12\x42\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x32.yoti.core.compubapi_v1.DocumentRestrictionsFilterBu\n\x17\x63om.yoti.sharepubapi_v1B\x19IdentityProfileShareProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\xba\x02\x0eSharepubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'IdentityProfileShare_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\027com.yoti.sharepubapi_v1B\031IdentityProfileShareProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\272\002\016SharepubapiV1_'
+ _NEXTSTEPREQUEST._serialized_start=238
+ _NEXTSTEPREQUEST._serialized_end=871
+ _NEXTSTEPRESPONSE._serialized_start=874
+ _NEXTSTEPRESPONSE._serialized_end=1510
+ _NEXTSTEPRESPONSE_STATE._serialized_start=1353
+ _NEXTSTEPRESPONSE_STATE._serialized_end=1439
+ _NEXTSTEPRESPONSE_SUBSEQUENTNEXTSTEPMAYABORT._serialized_start=1441
+ _NEXTSTEPRESPONSE_SUBSEQUENTNEXTSTEPMAYABORT._serialized_end=1510
+ _UNUSABLEDOCUMENT._serialized_start=1513
+ _UNUSABLEDOCUMENT._serialized_end=1713
+ _UNUSABLEDOCUMENT_REASON._serialized_start=1654
+ _UNUSABLEDOCUMENT_REASON._serialized_end=1713
+ _PROGRESSSUMMARY._serialized_start=1716
+ _PROGRESSSUMMARY._serialized_end=1938
+ _FAILUREREASON._serialized_start=1940
+ _FAILUREREASON._serialized_end=1976
+ _CATEGORYSTATUS._serialized_start=1979
+ _CATEGORYSTATUS._serialized_end=2226
+ _CATEGORYSTATUS_STATE._serialized_start=2140
+ _CATEGORYSTATUS_STATE._serialized_end=2226
+ _FULFILLEDREQUIREMENT._serialized_start=2229
+ _FULFILLEDREQUIREMENT._serialized_end=2382
+ _REQUIREMENT._serialized_start=2385
+ _REQUIREMENT._serialized_end=2816
+ _REQUIREMENT_TYPE._serialized_start=2626
+ _REQUIREMENT_TYPE._serialized_end=2708
+ _REQUIREMENT_REQUIREMENTCATEGORY._serialized_start=2710
+ _REQUIREMENT_REQUIREMENTCATEGORY._serialized_end=2816
+ _DOCUMENTRESTRICTIONS._serialized_start=2819
+ _DOCUMENTRESTRICTIONS._serialized_end=2948
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/IssuingAttributes_pb2.py b/yoti_python_sdk/protobuf/sharepubapi_v1/IssuingAttributes_pb2.py
new file mode 100644
index 00000000..757420e0
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/IssuingAttributes_pb2.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: sharepubapi_v1/IssuingAttributes.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&sharepubapi_v1/IssuingAttributes.proto\x12\x18yoti.core.sharepubapi_v1\"c\n\x11IssuingAttributes\x12\x13\n\x0b\x65xpiry_date\x18\x01 \x01(\t\x12\x39\n\x0b\x64\x65\x66initions\x18\x02 \x03(\x0b\x32$.yoti.core.sharepubapi_v1.Definition\"\x1a\n\nDefinition\x12\x0c\n\x04name\x18\x01 \x01(\tBr\n\x17\x63om.yoti.sharepubapi_v1B\x16IssuingAttributesProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\xba\x02\x0eSharepubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'IssuingAttributes_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\027com.yoti.sharepubapi_v1B\026IssuingAttributesProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\272\002\016SharepubapiV1_'
+ _ISSUINGATTRIBUTES._serialized_start=68
+ _ISSUINGATTRIBUTES._serialized_end=167
+ _DEFINITION._serialized_start=169
+ _DEFINITION._serialized_end=195
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/Location_pb2.py b/yoti_python_sdk/protobuf/sharepubapi_v1/Location_pb2.py
new file mode 100644
index 00000000..566d780e
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/Location_pb2.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: sharepubapi_v1/Location.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dsharepubapi_v1/Location.proto\x12\x18yoti.core.sharepubapi_v1\"K\n\x08Location\x12\x10\n\x08latitude\x18\x01 \x01(\x01\x12\x11\n\tlongitude\x18\x02 \x01(\x01\x12\x1a\n\x12uncertainty_radius\x18\x03 \x01(\x01\x42i\n\x17\x63om.yoti.sharepubapi_v1B\rLocationProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\xba\x02\x0eSharepubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Location_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\027com.yoti.sharepubapi_v1B\rLocationProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\272\002\016SharepubapiV1_'
+ _LOCATION._serialized_start=59
+ _LOCATION._serialized_end=134
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/Policy_pb2.py b/yoti_python_sdk/protobuf/sharepubapi_v1/Policy_pb2.py
new file mode 100644
index 00000000..fc108825
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/Policy_pb2.py
@@ -0,0 +1,49 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: sharepubapi_v1/Policy.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from yoti_python_sdk.protobuf.compubapi_v1 import IdentityProfile_pb2 as compubapi__v1_dot_IdentityProfile__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bsharepubapi_v1/Policy.proto\x12\x18yoti.core.sharepubapi_v1\x1a\"compubapi_v1/IdentityProfile.proto\"\x83\x0c\n\x06Policy\x12:\n\x06wanted\x18\x01 \x03(\x0b\x32*.yoti.core.sharepubapi_v1.Policy.Attribute\x12\x39\n\x05given\x18\x02 \x03(\x0b\x32*.yoti.core.sharepubapi_v1.Policy.Attribute\x12\x1a\n\x12wanted_remember_me\x18\x03 \x01(\x08\x12\x19\n\x11given_remember_me\x18\x04 \x01(\x08\x12\x18\n\x10given_auth_types\x18\x05 \x03(\x05\x12\x19\n\x11wanted_auth_types\x18\x06 \x03(\x05\x12#\n\x1bwanted_remember_me_optional\x18\x07 \x01(\x08\x12M\n\x10identity_profile\x18\x08 \x01(\x0b\x32\x33.yoti.core.compubapi_v1.IdentityProfileRequirements\x12S\n\x13verification_report\x18\t \x01(\x0b\x32\x36.yoti.core.compubapi_v1.VerificationReportRequirements\x12^\n\x19\x61\x64vanced_identity_profile\x18\x0b \x01(\x0b\x32;.yoti.core.compubapi_v1.AdvancedIdentityProfileRequirements\x1a\x8e\x01\n\nConstraint\x12>\n\x04type\x18\x01 \x01(\x0e\x32\x30.yoti.core.sharepubapi_v1.Policy.Constraint.Type\x12\x12\n\nconstraint\x18\x02 \x01(\x0c\",\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12\t\n\x05VALUE\x10\x01\x12\n\n\x06SOURCE\x10\x02\x1a\x8b\x01\n\x0fValueConstraint\x12\x43\n\x04type\x18\x01 \x01(\x0e\x32\x35.yoti.core.sharepubapi_v1.Policy.ValueConstraint.Type\x12\x12\n\nconstraint\x18\x02 \x01(\x0c\"\x1f\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12\x08\n\x04\x44\x41TE\x10\x01\x1a\xde\x01\n\x0e\x44\x61teConstraint\x12\x44\n\x02op\x18\x01 \x01(\x0e\x32\x38.yoti.core.sharepubapi_v1.Policy.DateConstraint.Operator\x12\x0c\n\x04\x64\x61te\x18\x02 \x01(\t\x12;\n\x06offset\x18\x03 \x01(\x0b\x32+.yoti.core.sharepubapi_v1.Policy.DateOffset\";\n\x08Operator\x12\r\n\tUNDEFINED\x10\x00\x12\n\n\x06\x42\x45\x46ORE\x10\x01\x12\t\n\x05\x41\x46TER\x10\x02\x12\t\n\x05\x45QUAL\x10\x03\x1a*\n\nDateOffset\x12\x0c\n\x04\x64\x61ys\x18\x01 \x01(\x05\x12\x0e\n\x06months\x18\x02 \x01(\x05\x1a(\n\x06\x41nchor\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08sub_type\x18\x02 \x01(\t\x1a\x63\n\x0ePreferenceList\x12\x38\n\x07\x61nchors\x18\x01 \x03(\x0b\x32\'.yoti.core.sharepubapi_v1.Policy.Anchor\x12\x17\n\x0fsoft_preference\x18\x02 \x01(\x08\x1a^\n\x10SourceConstraint\x12J\n\x11preferred_sources\x18\x01 \x01(\x0b\x32/.yoti.core.sharepubapi_v1.Policy.PreferenceList\x1a\xcb\x01\n\tAttribute\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x61nchors\x18\x02 \x03(\t\x12\x12\n\nderivation\x18\x03 \x01(\t\x12\x10\n\x08optional\x18\x04 \x01(\x08\x12\x1c\n\x14\x61\x63\x63\x65pt_self_asserted\x18\x05 \x01(\x08\x12@\n\x0b\x63onstraints\x18\x06 \x03(\x0b\x32+.yoti.core.sharepubapi_v1.Policy.Constraint\x12\x19\n\x11\x61lternative_names\x18\x07 \x03(\tJ\x04\x08\n\x10\x0b\x42g\n\x17\x63om.yoti.sharepubapi_v1B\x0bPolicyProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\xba\x02\x0eSharepubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Policy_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\027com.yoti.sharepubapi_v1B\013PolicyProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\272\002\016SharepubapiV1_'
+ _POLICY._serialized_start=94
+ _POLICY._serialized_end=1633
+ _POLICY_CONSTRAINT._serialized_start=629
+ _POLICY_CONSTRAINT._serialized_end=771
+ _POLICY_CONSTRAINT_TYPE._serialized_start=727
+ _POLICY_CONSTRAINT_TYPE._serialized_end=771
+ _POLICY_VALUECONSTRAINT._serialized_start=774
+ _POLICY_VALUECONSTRAINT._serialized_end=913
+ _POLICY_VALUECONSTRAINT_TYPE._serialized_start=882
+ _POLICY_VALUECONSTRAINT_TYPE._serialized_end=913
+ _POLICY_DATECONSTRAINT._serialized_start=916
+ _POLICY_DATECONSTRAINT._serialized_end=1138
+ _POLICY_DATECONSTRAINT_OPERATOR._serialized_start=1079
+ _POLICY_DATECONSTRAINT_OPERATOR._serialized_end=1138
+ _POLICY_DATEOFFSET._serialized_start=1140
+ _POLICY_DATEOFFSET._serialized_end=1182
+ _POLICY_ANCHOR._serialized_start=1184
+ _POLICY_ANCHOR._serialized_end=1224
+ _POLICY_PREFERENCELIST._serialized_start=1226
+ _POLICY_PREFERENCELIST._serialized_end=1325
+ _POLICY_SOURCECONSTRAINT._serialized_start=1327
+ _POLICY_SOURCECONSTRAINT._serialized_end=1421
+ _POLICY_ATTRIBUTE._serialized_start=1424
+ _POLICY_ATTRIBUTE._serialized_end=1627
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/ReceiptPush_pb2.py b/yoti_python_sdk/protobuf/sharepubapi_v1/ReceiptPush_pb2.py
new file mode 100644
index 00000000..6acfb70f
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/ReceiptPush_pb2.py
@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: sharepubapi_v1/ReceiptPush.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import Sharing_pb2 as sharepubapi__v1_dot_Sharing__pb2
+from yoti_python_sdk.protobuf.compubapi_v1 import IdentityProfileReport_pb2 as compubapi__v1_dot_IdentityProfileReport__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n sharepubapi_v1/ReceiptPush.proto\x12\x18yoti.core.sharepubapi_v1\x1a\x1csharepubapi_v1/Sharing.proto\x1a(compubapi_v1/IdentityProfileReport.proto\"\x9f\x03\n\x0eSuccessReceipt\x12\x12\n\nreceipt_id\x18\x01 \x01(\x0c\x12\x1f\n\x17other_party_profile_uri\x18\x02 \x01(\t\x12\x13\n\x0bprofile_uri\x18\x03 \x01(\t\x12\"\n\x1aother_party_extra_data_uri\x18\x04 \x01(\t\x12\x16\n\x0e\x65xtra_data_uri\x18\x05 \x01(\t\x12\x13\n\x0breceipt_key\x18\x06 \x01(\x0c\x12\x12\n\npolicy_uri\x18\x07 \x01(\t\x12\x14\n\x0cpersonal_key\x18\x08 \x01(\x0c\x12\x16\n\x0eremember_me_id\x18\t \x01(\x0c\x12\x11\n\ttimestamp\x18\n \x01(\t\x12\x14\n\x0csession_data\x18\x0b \x01(\t\x12\x30\n\x06issuer\x18\x0c \x01(\x0e\x32 .yoti.core.sharepubapi_v1.Issuer\x12\x36\n\ttransport\x18\r \x01(\x0e\x32#.yoti.core.sharepubapi_v1.Transport\x12\x1d\n\x15parent_remember_me_id\x18\x0e \x01(\x0c\"\x93\x02\n\x0e\x46\x61ilureReceipt\x12\x12\n\nreceipt_id\x18\x01 \x01(\x0c\x12\x12\n\npolicy_uri\x18\x07 \x01(\t\x12\x14\n\x0cpersonal_key\x18\x08 \x01(\x0c\x12\x11\n\ttimestamp\x18\n \x01(\t\x12\x14\n\x0csession_data\x18\x0b \x01(\t\x12\x12\n\nerror_code\x18\x0c \x01(\t\x12\x30\n\x06issuer\x18\r \x01(\x0e\x32 .yoti.core.sharepubapi_v1.Issuer\x12\x36\n\ttransport\x18\x0e \x01(\x0e\x32#.yoti.core.sharepubapi_v1.Transport\x12\x1c\n\x14\x66\x61ilure_reasons_json\x18\x0f \x01(\x0c\"i\n\x0e\x46\x61ilureReasons\x12W\n\x1crequirements_not_met_details\x18\x01 \x03(\x0b\x32\x31.yoti.core.compubapi_v1.RequirementsNotMetDetailsBh\n\x17\x63om.yoti.sharepubapi_v1B\x0cReceiptProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\xba\x02\x0eSharepubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'ReceiptPush_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\027com.yoti.sharepubapi_v1B\014ReceiptProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\272\002\016SharepubapiV1_'
+ _SUCCESSRECEIPT._serialized_start=135
+ _SUCCESSRECEIPT._serialized_end=550
+ _FAILURERECEIPT._serialized_start=553
+ _FAILURERECEIPT._serialized_end=828
+ _FAILUREREASONS._serialized_start=830
+ _FAILUREREASONS._serialized_end=935
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/ScanYotiCompleteShare_pb2.py b/yoti_python_sdk/protobuf/sharepubapi_v1/ScanYotiCompleteShare_pb2.py
new file mode 100644
index 00000000..2a56db01
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/ScanYotiCompleteShare_pb2.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: sharepubapi_v1/ScanYotiCompleteShare.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from yoti_python_sdk.protobuf.compubapi_v1 import Metadata_pb2 as compubapi__v1_dot_Metadata__pb2
+from . import Sharing_pb2 as sharepubapi__v1_dot_Sharing__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*sharepubapi_v1/ScanYotiCompleteShare.proto\x12\x18yoti.core.sharepubapi_v1\x1a\x1b\x63ompubapi_v1/Metadata.proto\x1a\x1csharepubapi_v1/Sharing.proto\"\xed\x01\n\x15ScanYotiCompleteShare\x12\x15\n\rsharing_token\x18\x01 \x01(\x0c\x12\x30\n\x06issuer\x18\x02 \x01(\x0e\x32 .yoti.core.sharepubapi_v1.Issuer\x12\x36\n\ttransport\x18\x03 \x01(\x0e\x32#.yoti.core.sharepubapi_v1.Transport\x12:\n\x0f\x64\x65vice_metadata\x18\xc0\x0c \x01(\x0b\x32 .yoti.core.compubapi_v1.Metadata\x12\x17\n\x0e\x63orrelation_id\x18\xc2\x0c \x01(\tBAZ.go.internal.yoti.com/proto/core/sharepubapi_v1\xba\x02\x0eSharepubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'ScanYotiCompleteShare_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'Z.go.internal.yoti.com/proto/core/sharepubapi_v1\272\002\016SharepubapiV1_'
+ _SCANYOTICOMPLETESHARE._serialized_start=132
+ _SCANYOTICOMPLETESHARE._serialized_end=369
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/SessionData_pb2.py b/yoti_python_sdk/protobuf/sharepubapi_v1/SessionData_pb2.py
new file mode 100644
index 00000000..070fd5f6
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/SessionData_pb2.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: sharepubapi_v1/SessionData.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n sharepubapi_v1/SessionData.proto\x12\x18yoti.core.sharepubapi_v1\"L\n\x0bSessionData\x12\x11\n\trandom_id\x18\x01 \x01(\t\x12\x15\n\rdatacentre_id\x18\x02 \x01(\t\x12\x13\n\x0binstance_id\x18\x03 \x01(\tBl\n\x17\x63om.yoti.sharepubapi_v1B\x10SessionDataProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\xba\x02\x0eSharepubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'SessionData_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\027com.yoti.sharepubapi_v1B\020SessionDataProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\272\002\016SharepubapiV1_'
+ _SESSIONDATA._serialized_start=62
+ _SESSIONDATA._serialized_end=138
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/SharingNotificationPush_pb2.py b/yoti_python_sdk/protobuf/sharepubapi_v1/SharingNotificationPush_pb2.py
new file mode 100644
index 00000000..78241e37
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/SharingNotificationPush_pb2.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: sharepubapi_v1/SharingNotificationPush.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import Policy_pb2 as sharepubapi__v1_dot_Policy__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n,sharepubapi_v1/SharingNotificationPush.proto\x12\x18yoti.core.sharepubapi_v1\x1a\x1bsharepubapi_v1/Policy.proto\"\x90\x01\n\x13SharingNotification\x12\x15\n\rsharing_token\x18\x01 \x01(\x0c\x12\x1a\n\x12notification_token\x18\x02 \x01(\x0c\x12\x14\n\x0csession_data\x18\x03 \x01(\t\x12\x30\n\x06policy\x18\x04 \x01(\x0b\x32 .yoti.core.sharepubapi_v1.PolicyBt\n\x17\x63om.yoti.sharepubapi_v1B\x18SharingNotificationProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\xba\x02\x0eSharepubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'SharingNotificationPush_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\027com.yoti.sharepubapi_v1B\030SharingNotificationProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\272\002\016SharepubapiV1_'
+ _SHARINGNOTIFICATION._serialized_start=104
+ _SHARINGNOTIFICATION._serialized_end=248
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/Sharing_pb2.py b/yoti_python_sdk/protobuf/sharepubapi_v1/Sharing_pb2.py
new file mode 100644
index 00000000..931f09e8
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/Sharing_pb2.py
@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: sharepubapi_v1/Sharing.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import Policy_pb2 as sharepubapi__v1_dot_Policy__pb2
+from . import DataEntry_pb2 as sharepubapi__v1_dot_DataEntry__pb2
+from yoti_python_sdk.protobuf.compubapi_v1 import Metadata_pb2 as compubapi__v1_dot_Metadata__pb2
+from yoti_python_sdk.protobuf.compubapi_v1 import IdentityProfile_pb2 as compubapi__v1_dot_IdentityProfile__pb2
+from devicepubapi_v1 import StaticCredentialAuth_pb2 as devicepubapi__v1_dot_StaticCredentialAuth__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1csharepubapi_v1/Sharing.proto\x12\x18yoti.core.sharepubapi_v1\x1a\x1bsharepubapi_v1/Policy.proto\x1a\x1esharepubapi_v1/DataEntry.proto\x1a\x1b\x63ompubapi_v1/Metadata.proto\x1a\"compubapi_v1/IdentityProfile.proto\x1a*devicepubapi_v1/StaticCredentialAuth.proto\"\xba\x04\n\x13StartSharingRequest\x12\x16\n\x0e\x63orrelation_id\x18\x01 \x01(\t\x12\x30\n\x06policy\x18\x02 \x01(\x0b\x32 .yoti.core.sharepubapi_v1.Policy\x12\x15\n\rattribute_ids\x18\x03 \x03(\x0c\x12\x13\n\x0bwrapped_key\x18\x04 \x01(\x0c\x12\x12\n\ncredential\x18\x05 \x01(\x0c\x12\x11\n\tauth_list\x18\x06 \x01(\x0c\x12\x18\n\x0bttl_seconds\x18\x07 \x01(\x03H\x00\x88\x01\x01\x12\x1a\n\rone_time_only\x18\x08 \x01(\x08H\x01\x88\x01\x01\x12\x37\n\nextra_data\x18\t \x03(\x0b\x32#.yoti.core.sharepubapi_v1.DataEntry\x12\x1a\n\x12\x62illing_account_id\x18\n \x01(\t\x12\x19\n\x11\x62illing_source_id\x18\x0b \x01(\t\x12\x30\n\x07subject\x18\x0c \x01(\x0b\x32\x1f.yoti.core.compubapi_v1.Subject\x12:\n\x0f\x64\x65vice_metadata\x18\xc0\x0c \x01(\x0b\x32 .yoti.core.compubapi_v1.Metadata\x12P\n\x16static_credential_auth\x18\xb8\x17 \x01(\x0b\x32/.yoti.core.devicepubapi_v1.StaticCredentialAuthB\x0e\n\x0c_ttl_secondsB\x10\n\x0e_one_time_only\"\x80\x01\n\x14StartSharingResponse\x12\x15\n\rsharing_token\x18\x01 \x01(\x0c\x12\x30\n\x06policy\x18\x02 \x01(\x0b\x32 .yoti.core.sharepubapi_v1.Policy\x12\x1f\n\x17sharing_token_for_stats\x18\x03 \x01(\t\"\xf1\x03\n\x16\x43ompleteSharingRequest\x12\x15\n\rsharing_token\x18\x01 \x01(\x0c\x12\x16\n\x0e\x63orrelation_id\x18\x02 \x01(\t\x12\x30\n\x06policy\x18\x03 \x01(\x0b\x32 .yoti.core.sharepubapi_v1.Policy\x12\x15\n\rattribute_ids\x18\x04 \x03(\x0c\x12\x13\n\x0bwrapped_key\x18\x05 \x01(\x0c\x12\x12\n\ncredential\x18\x06 \x01(\x0c\x12\x11\n\tauth_list\x18\x07 \x01(\x0c\x12\x14\n\x0csession_data\x18\x08 \x01(\t\x12\x30\n\x06issuer\x18\t \x01(\x0e\x32 .yoti.core.sharepubapi_v1.Issuer\x12\x36\n\ttransport\x18\n \x01(\x0e\x32#.yoti.core.sharepubapi_v1.Transport\x12\x37\n\nextra_data\x18\x0b \x03(\x0b\x32#.yoti.core.sharepubapi_v1.DataEntry\x12\x14\n\x0creference_id\x18\x0c \x01(\t\x12\x18\n\x10mobile_device_id\x18\r \x01(\t\x12:\n\x0f\x64\x65vice_metadata\x18\xc0\x0c \x01(\x0b\x32 .yoti.core.compubapi_v1.Metadata*7\n\x06Issuer\x12\x08\n\x04\x43ORE\x10\x00\x12\x0b\n\x07\x43ONNECT\x10\x01\x12\n\n\x06PORTAL\x10\x02\x12\n\n\x06MOBILE\x10\x03*0\n\tTransport\x12\r\n\tUNDEFINED\x10\x00\x12\x07\n\x03URI\x10\x01\x12\x0b\n\x07QR_CODE\x10\x02\x42h\n\x17\x63om.yoti.sharepubapi_v1B\x0cSharingProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\xba\x02\x0eSharepubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Sharing_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\027com.yoti.sharepubapi_v1B\014SharingProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\272\002\016SharepubapiV1_'
+ _ISSUER._serialized_start=1432
+ _ISSUER._serialized_end=1487
+ _TRANSPORT._serialized_start=1489
+ _TRANSPORT._serialized_end=1537
+ _STARTSHARINGREQUEST._serialized_start=229
+ _STARTSHARINGREQUEST._serialized_end=799
+ _STARTSHARINGRESPONSE._serialized_start=802
+ _STARTSHARINGRESPONSE._serialized_end=930
+ _COMPLETESHARINGREQUEST._serialized_start=933
+ _COMPLETESHARINGREQUEST._serialized_end=1430
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/ThirdPartyAttribute_pb2.py b/yoti_python_sdk/protobuf/sharepubapi_v1/ThirdPartyAttribute_pb2.py
new file mode 100644
index 00000000..f5d3e815
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/ThirdPartyAttribute_pb2.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: sharepubapi_v1/ThirdPartyAttribute.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import builder as _builder
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import IssuingAttributes_pb2 as sharepubapi__v1_dot_IssuingAttributes__pb2
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(sharepubapi_v1/ThirdPartyAttribute.proto\x12\x18yoti.core.sharepubapi_v1\x1a&sharepubapi_v1/IssuingAttributes.proto\"v\n\x13ThirdPartyAttribute\x12\x16\n\x0eissuance_token\x18\x01 \x01(\x0c\x12G\n\x12issuing_attributes\x18\x02 \x01(\x0b\x32+.yoti.core.sharepubapi_v1.IssuingAttributesBt\n\x17\x63om.yoti.sharepubapi_v1B\x18ThirdPartyAttributeProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\xba\x02\x0eSharepubapiV1_b\x06proto3')
+
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'ThirdPartyAttribute_pb2.py', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'\n\027com.yoti.sharepubapi_v1B\030ThirdPartyAttributeProtoZ.go.internal.yoti.com/proto/core/sharepubapi_v1\272\002\016SharepubapiV1_'
+ _THIRDPARTYATTRIBUTE._serialized_start=110
+ _THIRDPARTYATTRIBUTE._serialized_end=228
+# @@protoc_insertion_point(module_scope)
diff --git a/yoti_python_sdk/protobuf/sharepubapi_v1/__init__.py b/yoti_python_sdk/protobuf/sharepubapi_v1/__init__.py
new file mode 100644
index 00000000..40a96afc
--- /dev/null
+++ b/yoti_python_sdk/protobuf/sharepubapi_v1/__init__.py
@@ -0,0 +1 @@
+# -*- coding: utf-8 -*-
diff --git a/yoti_python_sdk/share/extra_data.py b/yoti_python_sdk/share/extra_data.py
index 2ae49332..44d02086 100644
--- a/yoti_python_sdk/share/extra_data.py
+++ b/yoti_python_sdk/share/extra_data.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
from yoti_python_sdk.attribute_issuance_details import AttributeIssuanceDetails
-from yoti_python_sdk.protobuf.share_public_api import ThirdPartyAttribute_pb2
-from yoti_python_sdk.protobuf.share_public_api import ExtraData_pb2
+from yoti_python_sdk.protobuf.sharepubapi_v1 import ThirdPartyAttribute_pb2
+from yoti_python_sdk.protobuf.sharepubapi_v1 import ExtraData_pb2
class ExtraData(object):
diff --git a/yoti_python_sdk/tests/doc_scan/session/create/check/test_wathclist_check.py b/yoti_python_sdk/tests/doc_scan/session/create/check/test_wathclist_check.py
new file mode 100644
index 00000000..95d04539
--- /dev/null
+++ b/yoti_python_sdk/tests/doc_scan/session/create/check/test_wathclist_check.py
@@ -0,0 +1,106 @@
+import json
+import unittest
+
+from yoti_python_sdk.doc_scan import constants
+from yoti_python_sdk.doc_scan.session.create.check import (
+ WatchlistScreeningCheckBuilder,
+)
+from yoti_python_sdk.doc_scan.session.create.check.requested_check import RequestedCheck
+from yoti_python_sdk.doc_scan.session.create.check.watchlist_screen import (
+ WatchlistScreeningCheck,
+ WatchlistScreeningCheckConfig,
+)
+from yoti_python_sdk.utils import YotiEncoder
+from yoti_python_sdk.doc_scan.constants import WATCHLIST_SCREENING_CHECK_TYPE
+
+
+class WatchlistScreeningCheckTest(unittest.TestCase):
+ def test_should_build_correctly_with_manual_check(self):
+ dummy_manual_check = "DUMMY_VALUE"
+
+ result = (
+ WatchlistScreeningCheckBuilder()
+ .with_manual_check(dummy_manual_check)
+ .build()
+ )
+
+ assert isinstance(result, RequestedCheck)
+ assert isinstance(result, WatchlistScreeningCheck)
+
+ assert result.type == constants.WATCHLIST_SCREENING_CHECK_TYPE
+ assert result.config.manual_check == dummy_manual_check
+ assert result.config.categories == []
+
+ def test_should_build_corretly_with_categories(self):
+ dummy_categories = ["FIRST", "SECOND"]
+
+ result = (
+ WatchlistScreeningCheckBuilder()
+ .with_categories(dummy_categories)
+ .build()
+ )
+
+ assert isinstance(result, RequestedCheck)
+ assert isinstance(result, WatchlistScreeningCheck)
+
+ assert result.type == constants.WATCHLIST_SCREENING_CHECK_TYPE
+ assert result.config.categories == dummy_categories
+ assert result.config.manual_check is None
+
+ def test_should_build_correctly_with_manual_check_and_categories(self):
+ dummy_manual_check = "DUMMY_VALUE"
+ dummy_categories = ["FIRST", "SECOND"]
+
+ result = (
+ WatchlistScreeningCheckBuilder()
+ .with_manual_check(dummy_manual_check)
+ .with_categories(dummy_categories)
+ .build()
+ )
+
+ assert isinstance(result, RequestedCheck)
+ assert isinstance(result, WatchlistScreeningCheck)
+
+ assert result.type == constants.WATCHLIST_SCREENING_CHECK_TYPE
+ assert result.config.manual_check == dummy_manual_check
+ assert result.config.categories == dummy_categories
+
+ def test_should_serialize_to_json_without_error(self):
+ another_dummy_manual_check = "DUMMY_VALUE"
+ another_dummy_categories = ["FIRST", "SECOND"]
+
+ result = (
+ WatchlistScreeningCheckBuilder()
+ .with_manual_check(another_dummy_manual_check)
+ .with_categories(another_dummy_categories)
+ .build()
+ )
+
+ s = json.dumps(result, cls=YotiEncoder)
+ assert s is not None and s != ""
+
+ result = (
+ WatchlistScreeningCheckBuilder()
+ .with_categories(another_dummy_categories)
+ .build()
+ )
+
+ s = json.dumps(result, cls=YotiEncoder)
+ assert s is not None and s != ""
+
+ s = json.loads(s)
+ assert s.get("type") == WATCHLIST_SCREENING_CHECK_TYPE
+ assert s.get("config") == {"categories": another_dummy_categories}
+
+ result = (
+ WatchlistScreeningCheckBuilder()
+ .with_manual_check(another_dummy_manual_check)
+ .build()
+ )
+
+ s = json.dumps(result, cls=YotiEncoder)
+ assert s is not None and s != ""
+
+ s = json.loads(s)
+ assert s.get("type") == WATCHLIST_SCREENING_CHECK_TYPE
+ assert s.get("config") == {"manual_check": "DUMMY_VALUE", "categories": []}
diff --git a/yoti_python_sdk/tests/doc_scan/session/create/subcheck/__init__.py b/yoti_python_sdk/tests/doc_scan/session/create/subcheck/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/yoti_python_sdk/tests/doc_scan/session/create/subcheck/test_issuing_authority_sub_check.py b/yoti_python_sdk/tests/doc_scan/session/create/subcheck/test_issuing_authority_sub_check.py
new file mode 100644
index 00000000..083ea1a0
--- /dev/null
+++ b/yoti_python_sdk/tests/doc_scan/session/create/subcheck/test_issuing_authority_sub_check.py
@@ -0,0 +1,56 @@
+import unittest
+
+from yoti_python_sdk.doc_scan.session.create.filter.orthogonal_restrictions_filter import \
+ OrthogonalRestrictionsFilterBuilder
+from yoti_python_sdk.doc_scan.session.create.subcheck import (
+ IssuingAuthoritySubCheckBuilder
+)
+from yoti_python_sdk.doc_scan.session.create.subcheck.issuing_authority_sub_check import IssuingAuthoritySubCheck
+
+
+class IssuingAuthoritySubCheckTest(unittest.TestCase):
+ def test_should_build_correctly_without_additional_data(self):
+ issuing_authority_sub_check = IssuingAuthoritySubCheckBuilder().build()
+
+ assert isinstance(issuing_authority_sub_check, IssuingAuthoritySubCheck)
+
+ def test_should_build_correctly_with_filter(self):
+ filter = OrthogonalRestrictionsFilterBuilder().with_whitelisted_country_codes(
+ ["GBR", "FRA"]).with_whitelisted_document_types(["PASSPORT", "STATE_ID"]).build()
+
+ issuing_authority_sub_check = IssuingAuthoritySubCheckBuilder().with_filter(
+ filter=filter).build()
+
+ assert isinstance(issuing_authority_sub_check, IssuingAuthoritySubCheck)
+ assert issuing_authority_sub_check.filter == filter
+
+ def test_should_always_build_with_requested_as_boolean_true(self):
+ issuing_authority_sub_check = IssuingAuthoritySubCheckBuilder().build()
+
+ assert issuing_authority_sub_check.requested is True
+
+ def test_allow_non_latin_documents_set_to_true(self):
+ filter = OrthogonalRestrictionsFilterBuilder().allow_non_latin_documents().build()
+
+ assert filter.allow_non_latin_documents is True
+
+ def test_allow_non_latin_documents_set_to_false(self):
+ filter = OrthogonalRestrictionsFilterBuilder().disable_non_latin_documents().build()
+
+ assert filter.allow_non_latin_documents is False
+
+ def test_default_non_latin_documents(self):
+ filter = OrthogonalRestrictionsFilterBuilder().build()
+
+ assert 'allow_non_latin_documents' not in filter.to_json()
+
+ def test_build_invalid_filter(self):
+ filter = 'invalid'
+
+ with self.assertRaises(ValueError):
+ IssuingAuthoritySubCheckBuilder().with_filter(
+ filter=filter).build()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/yoti_python_sdk/tests/doc_scan/session/create/test_notification_config.py b/yoti_python_sdk/tests/doc_scan/session/create/test_notification_config.py
index f207ff14..1fa09b29 100644
--- a/yoti_python_sdk/tests/doc_scan/session/create/test_notification_config.py
+++ b/yoti_python_sdk/tests/doc_scan/session/create/test_notification_config.py
@@ -12,6 +12,7 @@ class NotificationConfigTest(unittest.TestCase):
SOME_AUTH_TOKEN = "someAuthToken"
SOME_ENDPOINT = "someEndpoint"
SOME_TOPIC = "someTopic"
+ SOME_AUTH_TYPE = "someAuthType"
def test_should_build_correctly(self):
result = (
@@ -26,6 +27,7 @@ def test_should_build_correctly(self):
assert result.auth_token is self.SOME_AUTH_TOKEN
assert result.endpoint is self.SOME_ENDPOINT
assert self.SOME_TOPIC in result.topics
+ assert result.auth_type is None
def test_should_add_resource_update_topic(self):
result = (
@@ -104,6 +106,30 @@ def test_should_store_unique_topics(self):
assert len(result.topics) == 1
+ def test_build_with_basic_auth_type(self):
+ result = (
+ NotificationConfigBuilder()
+ .with_auth_token(self.SOME_AUTH_TOKEN)
+ .with_endpoint(self.SOME_ENDPOINT)
+ .with_topic(self.SOME_TOPIC)
+ .with_basic_auth_type()
+ .build()
+ )
+
+ assert result.auth_type is "BASIC"
+
+ def test_build_with_bearer_auth_type(self):
+ result = (
+ NotificationConfigBuilder()
+ .with_auth_token(self.SOME_AUTH_TOKEN)
+ .with_endpoint(self.SOME_ENDPOINT)
+ .with_topic(self.SOME_TOPIC)
+ .with_bearer_auth_type()
+ .build()
+ )
+
+ assert result.auth_type is "BEARER"
+
def test_should_serialize_to_json_without_error(self):
result = (
NotificationConfigBuilder()
diff --git a/yoti_python_sdk/tests/doc_scan/session/create/test_sdk_config.py b/yoti_python_sdk/tests/doc_scan/session/create/test_sdk_config.py
index 6de7b4ca..d621a441 100644
--- a/yoti_python_sdk/tests/doc_scan/session/create/test_sdk_config.py
+++ b/yoti_python_sdk/tests/doc_scan/session/create/test_sdk_config.py
@@ -14,6 +14,8 @@ class SdkConfigTest(unittest.TestCase):
SOME_PRESET_ISSUING_COUNTRY = "USA"
SOME_SUCCESS_URL = "https://mysite.com/yoti/success"
SOME_ERROR_URL = "https://mysite.com/yoti/error"
+ SOME_PRIVACY_POLICY_URL = "https://mysite.com/privacy"
+ SOME_ALLOW_HANDOFF = True
def test_should_build_correctly(self):
result = (
@@ -26,6 +28,8 @@ def test_should_build_correctly(self):
.with_preset_issuing_country(self.SOME_PRESET_ISSUING_COUNTRY)
.with_success_url(self.SOME_SUCCESS_URL)
.with_error_url(self.SOME_ERROR_URL)
+ .with_privacy_policy_url(self.SOME_PRIVACY_POLICY_URL)
+ .with_allow_handoff(self.SOME_ALLOW_HANDOFF)
.build()
)
@@ -38,12 +42,24 @@ def test_should_build_correctly(self):
assert result.preset_issuing_country is self.SOME_PRESET_ISSUING_COUNTRY
assert result.success_url is self.SOME_SUCCESS_URL
assert result.error_url is self.SOME_ERROR_URL
+ assert result.privacy_policy_url is self.SOME_PRIVACY_POLICY_URL
+ assert result.allow_handoff is True
def test_should_allows_camera(self):
result = SdkConfigBuilder().with_allows_camera().build()
assert result.allowed_capture_methods == "CAMERA"
+ def test_not_passing_allow_handoff(self):
+ result = SdkConfigBuilder().with_allows_camera().build()
+
+ assert result.allow_handoff is None
+
+ def test_passing_allow_handoff_false_value(self):
+ result = SdkConfigBuilder().with_allow_handoff(False).build()
+
+ assert result.allow_handoff is False
+
def test_should_serialize_to_json_without_error(self):
result = (
SdkConfigBuilder()
@@ -55,6 +71,7 @@ def test_should_serialize_to_json_without_error(self):
.with_preset_issuing_country(self.SOME_PRESET_ISSUING_COUNTRY)
.with_success_url(self.SOME_SUCCESS_URL)
.with_error_url(self.SOME_ERROR_URL)
+ .with_privacy_policy_url(self.SOME_PRIVACY_POLICY_URL)
.build()
)
diff --git a/yoti_python_sdk/tests/doc_scan/session/create/test_session_spec.py b/yoti_python_sdk/tests/doc_scan/session/create/test_session_spec.py
index 41f0a5e5..034c4b05 100644
--- a/yoti_python_sdk/tests/doc_scan/session/create/test_session_spec.py
+++ b/yoti_python_sdk/tests/doc_scan/session/create/test_session_spec.py
@@ -21,6 +21,7 @@ class SessionSpecTest(unittest.TestCase):
SOME_CLIENT_SESSION_TOKEN_TTL = 300
SOME_RESOURCES_TTL = 100000
SOME_USER_TRACKING_ID = "someUserTrackingId"
+ SOME_SESSION_DEADLINE = "2021-09-03T11:40:54.727619+02:00"
def test_should_build_correctly(self):
sdk_config_mock = Mock(spec=SdkConfig)
@@ -31,6 +32,7 @@ def test_should_build_correctly(self):
result = (
SessionSpecBuilder()
.with_client_session_token_ttl(self.SOME_CLIENT_SESSION_TOKEN_TTL)
+ .with_session_deadline(self.SOME_SESSION_DEADLINE)
.with_resources_ttl(self.SOME_RESOURCES_TTL)
.with_user_tracking_id(self.SOME_USER_TRACKING_ID)
.with_notifications(notification_mock)
@@ -49,6 +51,7 @@ def test_should_build_correctly(self):
assert requested_check_mock in result.requested_checks
assert len(result.requested_tasks) == 1
assert requested_task_mock in result.requested_tasks
+ assert result.session_deadline == self.SOME_SESSION_DEADLINE
def test_should_serialize_to_json_without_error(self):
sdk_config_mock = Mock(spec=SdkConfig)
@@ -66,6 +69,7 @@ def test_should_serialize_to_json_without_error(self):
result = (
SessionSpecBuilder()
.with_client_session_token_ttl(self.SOME_CLIENT_SESSION_TOKEN_TTL)
+ .with_session_deadline(self.SOME_SESSION_DEADLINE)
.with_resources_ttl(self.SOME_RESOURCES_TTL)
.with_user_tracking_id(self.SOME_USER_TRACKING_ID)
.with_notifications(notification_mock)
diff --git a/yoti_python_sdk/tests/doc_scan/support/test_supported_documents.py b/yoti_python_sdk/tests/doc_scan/support/test_supported_documents.py
index 762d509d..a2887318 100644
--- a/yoti_python_sdk/tests/doc_scan/support/test_supported_documents.py
+++ b/yoti_python_sdk/tests/doc_scan/support/test_supported_documents.py
@@ -18,6 +18,24 @@ def test_supported_document_should_not_throw_exception_on_missing_data():
assert result.type is None
+def test_supported_document_created_with_is_strictly_latin_as_true():
+ result = SupportedDocument({"is_strictly_latin": True})
+
+ assert result.is_strictly_latin is True
+
+
+def test_supported_document_created_with_is_strictly_latin_as_false():
+ result = SupportedDocument({"is_strictly_latin": False})
+
+ assert result.is_strictly_latin is False
+
+
+def test_supported_document_created_without_is_strictly_latin():
+ result = SupportedDocument({"type": "someSupportedDocument"})
+
+ assert result.is_strictly_latin is None
+
+
def test_supported_country_should_parse_data():
data = {
"code": "someCode",
diff --git a/yoti_python_sdk/tests/dynamic_sharing_service/extension/test_third_party_attribute_extension.py b/yoti_python_sdk/tests/dynamic_sharing_service/extension/test_third_party_attribute_extension.py
index 7c7a57ae..1bf054ba 100644
--- a/yoti_python_sdk/tests/dynamic_sharing_service/extension/test_third_party_attribute_extension.py
+++ b/yoti_python_sdk/tests/dynamic_sharing_service/extension/test_third_party_attribute_extension.py
@@ -117,9 +117,18 @@ def test_should_format_utc_expiry_dates_correctly(expiry_date, expected_value):
@pytest.mark.parametrize(
"expiry_date, tz_name",
[
- (datetime(2030, 6, 6, 8, 0, 0, 0), "US/Eastern",),
- (datetime(2030, 6, 6, 15, 0, 0, 0), "Europe/Moscow",),
- (datetime(2030, 6, 6, 7, 0, 0, 0), "America/Jamaica",),
+ (
+ datetime(2030, 6, 6, 8, 0, 0, 0),
+ "US/Eastern",
+ ),
+ (
+ datetime(2030, 6, 6, 15, 0, 0, 0),
+ "Europe/Moscow",
+ ),
+ (
+ datetime(2030, 6, 6, 7, 0, 0, 0),
+ "America/Jamaica",
+ ),
(datetime(2030, 6, 6, 23, 0, 0, 0), "Etc/GMT-11"),
(datetime(2030, 6, 6, 7, 0, 0, 0), "Etc/GMT+5"),
# In order to conform with the POSIX style, those zones beginning
diff --git a/yoti_python_sdk/tests/share/test_extra_data.py b/yoti_python_sdk/tests/share/test_extra_data.py
index 4e4767fa..02297508 100644
--- a/yoti_python_sdk/tests/share/test_extra_data.py
+++ b/yoti_python_sdk/tests/share/test_extra_data.py
@@ -7,10 +7,10 @@
from yoti_python_sdk.share.extra_data import ExtraData
from yoti_python_sdk.tests import file_helper
-from yoti_python_sdk.protobuf.share_public_api import IssuingAttributes_pb2
-from yoti_python_sdk.protobuf.share_public_api import ThirdPartyAttribute_pb2
-from yoti_python_sdk.protobuf.share_public_api import ExtraData_pb2
-from yoti_python_sdk.protobuf.share_public_api import DataEntry_pb2
+from yoti_python_sdk.protobuf.sharepubapi_v1 import IssuingAttributes_pb2
+from yoti_python_sdk.protobuf.sharepubapi_v1 import ThirdPartyAttribute_pb2
+from yoti_python_sdk.protobuf.sharepubapi_v1 import ExtraData_pb2
+from yoti_python_sdk.protobuf.sharepubapi_v1 import DataEntry_pb2
FIXTURES_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "fixtures")
EXTRADATA = os.path.join(FIXTURES_DIR, "testextradata.txt")
diff --git a/yoti_python_sdk/tests/test_anchor.py b/yoti_python_sdk/tests/test_anchor.py
index 0adf48aa..ef552ed3 100644
--- a/yoti_python_sdk/tests/test_anchor.py
+++ b/yoti_python_sdk/tests/test_anchor.py
@@ -1,13 +1,14 @@
# -*- coding: utf-8 -*-
import logging
+import pytz
import time
from datetime import datetime
-
-from yoti_python_sdk.protobuf.attribute_public_api import Attribute_pb2
+from datetime import timedelta
import yoti_python_sdk
from yoti_python_sdk import config
from yoti_python_sdk.anchor import Anchor
+from yoti_python_sdk.protobuf.attrpubapi_v1 import Attribute_pb2
from yoti_python_sdk.tests import anchor_fixture_parser
@@ -118,11 +119,10 @@ def test_processing_unknown_anchor_data():
(anchor.value, anchor.anchor_type, anchor.sub_type) for anchor in anchors
]
- expected_timestamp = datetime(2019, 3, 5, 10, 45, 11, 840037)
- actual_timestamp = anchors[0].signed_timestamp
+ expected_timestamp = datetime(2019, 3, 5, 10, 45, 11, 840037, tzinfo=pytz.utc)
+ actual_timestamp = anchors[0].signed_timestamp.astimezone(pytz.utc)
assert expected_timestamp == actual_timestamp
-
assert "document-registration-server" in [
a.value for a in anchors[0].origin_server_certs.issuer
]
diff --git a/yoti_python_sdk/tests/test_attribute_issuance_details.py b/yoti_python_sdk/tests/test_attribute_issuance_details.py
index 8e89d378..8279dfb9 100644
--- a/yoti_python_sdk/tests/test_attribute_issuance_details.py
+++ b/yoti_python_sdk/tests/test_attribute_issuance_details.py
@@ -3,8 +3,8 @@
import os.path
from yoti_python_sdk.tests import file_helper
from yoti_python_sdk.attribute_issuance_details import AttributeIssuanceDetails
-from yoti_python_sdk.protobuf.share_public_api import ThirdPartyAttribute_pb2
-from yoti_python_sdk.protobuf.share_public_api import IssuingAttributes_pb2
+from yoti_python_sdk.protobuf.sharepubapi_v1 import ThirdPartyAttribute_pb2
+from yoti_python_sdk.protobuf.sharepubapi_v1 import IssuingAttributes_pb2
from datetime import datetime
import base64
import pytest
diff --git a/yoti_python_sdk/version.py b/yoti_python_sdk/version.py
index e8cf2158..7c020d54 100644
--- a/yoti_python_sdk/version.py
+++ b/yoti_python_sdk/version.py
@@ -1,2 +1,3 @@
# -*- coding: utf-8 -*-
-__version__ = "2.14.1"
+__version__ = "2.14.4"
+