Commit 96b25318 authored by Spencer Sutton's avatar Spencer Sutton
Browse files

Service principal, more api clients

commit 671dd771 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Wed Dec 30 2020 08:52:41 GMT-0600 (Central Standard Time) 

    Adjusting service principal to use ssm for custom scope and token uri


commit 1ba80da5 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Tue Dec 22 2020 15:40:49 GMT-0600 (Central Standard Time) 

    Incrementing to version 3


commit 8bef5ece 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Tue Dec 22 2020 15:06:27 GMT-0600 (Central Standard Time) 

    More bug


commit 2feee09e 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Tue Dec 22 2020 15:03:50 GMT-0600 (Central Standard Time) 

    More bug


commit 33f4893e 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Tue Dec 22 2020 15:00:40 GMT-0600 (Central Standard Time) 

    Fixing more broken unit tests


commit c1675bcd 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Tue Dec 22 2020 14:59:11 GMT-0600 (Central Standard Time) 

    Fixing more broken unit tests


commit 095f7ff8 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Tue Dec 22 2020 14:56:52 GMT-0600 (Central Standard Time) 

    Fixing broken test


commit d93c2b48 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Mon Dec 21 2020 19:37:56 GMT-0600 (Central Standard Time) 

    Renaming test config value


commit 8d846904 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Mon Dec 21 2020 19:26:43 GMT-0600 (Central Standard Time) 

    Updating config in tests


commit 687b27d3 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Mon Dec 21 2020 18:30:34 GMT-0600 (Central Standard Time) 

    Merge branch 'feat/devops' of codecommit::us-east-1://default@os-python-wrapper into feat/entitlements


commit a1640f47 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Mon Dec 21 2020 14:44:22 GMT-0600 (Central Standard Time) 

    Adding a storage endpoint


commit e00d0ee7 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 13:36:50 GMT-0600 (Central Standard Time) 

    Adding skip existing command


commit e233a0a7 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Wed Dec 09 2020 10:07:59 GMT-0600 (Central Standard Time) 

    Merge branch 'feat/entitlements' of codecommit::us-east-1://default@os-python-wrapper into feat/entitlements


commit 063260ba 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 13:01:27 GMT-0600 (Central Standard Time) 

    Adding comments to buildspec


commit ec7be581 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Wed Dec 09 2020 10:07:38 GMT-0600 (Central Standard Time) 

    Updated dataset


commit 2e724fb8 
Author: Brady Spiva <spivbrad@amazon.com> 
Date: Mon Dec 07 2020 15:10:13 GMT-0600 (Central Standard Time) 

    removing .pyc files; adding .pyc to gitignore


commit 086e5f19 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 12:02:45 GMT-0600 (Central Standard Time) 

    typo in twine command


commit 60037b13 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Dec 03 2020 12:36:42 GMT-0600 (Central Standard Time) 

    Updating dataset api


commit a295f6c2 
Author: Brady Spiva <spivbrad@amazon.com> 
Date: Mon Dec 07 2020 15:06:18 GMT-0600 (Central Standard Time) 

    adding legal license


commit 221e46eb 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 11:59:22 GMT-0600 (Central Standard Time) 

    Changing the way to use twine


commit 1e1e3be6 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Wed Dec 02 2020 14:49:44 GMT-0600 (Central Standard Time) 

    Adding schema client and data workflow client


commit a9cb71fa 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 11:51:08 GMT-0600 (Central Standard Time) 

    Using twine to publish artifact to CodeArtifact


commit b5280136 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Fri Nov 20 2020 13:35:44 GMT-0600 (Central Standard Time) 

    Adding entitlements client


commit 6fd36b54 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 11:34:27 GMT-0600 (Central Standard Time) 

    Fixing purposely failed test


commit 8462b083 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 11:32:20 GMT-0600 (Central Standard Time) 

    Testing that failed unit test fails build


commit d7dd8682 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 11:28:02 GMT-0600 (Central Standard Time) 

    wrong syntax for env vars


commit ed6c461a 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 11:22:53 GMT-0600 (Central Standard Time) 

    Setting stubbed env vars for unit tests


commit b64caf8f 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 11:16:04 GMT-0600 (Central Standard Time) 

    Forgot the -r on pip install


commit a21b06e9 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 11:11:43 GMT-0600 (Central Standard Time) 

    Adding python build stmt


commit 8f84b68d 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 11:09:47 GMT-0600 (Central Standard Time) 

    Adding requirements for build


commit 1ee4ff6a 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 11:02:43 GMT-0600 (Central Standard Time) 

    Adding discover command to unittest


commit 157d5026 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 10:59:32 GMT-0600 (Central Standard Time) 

    Handling of config file for unit tests


commit 645a9210 
Author: Sutton <suttonsp@147dda3a90de.ant.amazon.com> 
Date: Thu Nov 19 2020 10:44:30 GMT-0600 (Central Standard Time) 

    Initial build
parent 2ba8feeb
build
dist
osdu_api.egg-info
__pycache__
\ No newline at end of file
__pycache__
*.pyc
\ No newline at end of file
Apache 2.0
\ No newline at end of file
Copyright © 2020 Amazon Web Services
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html
# https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html
version: 0.2
env:
variables:
# these are needed because unit tests check config parsing and config injects env vars
STORAGE_BASE_URL: stub
SEARCH_BASE_URL: stub
LEGAL_BASE_URL: stub
DATA_WORKFLOW_BASE_URL: stub
FILE_DMS_BASE_URL: stub
DATASET_REGISTRY_BASE_URL: stub
AUTH_TOKEN_URL: stub
CUSTOM_SCOPE: stub
ENVIRONMENT: stub
AWS_REGION: stub
phases:
install:
commands:
- if [ $(echo $CODEBUILD_SOURCE_VERSION | grep -c ^refs/heads.*) -eq 1 ]; then echo "Branch name found"; else echo "This build only supports branch builds" && exit 1; fi
- apt-get update -y
build:
commands:
# install packages
- pip install -r requirements.txt
# run basic build
- python setup.py build
# run unit tests
- cp osdu_api/test/osdu_api.ini osdu_api.ini
- python -m unittest discover osdu_api/test
- rm osdu_api.ini
# publish new artifact to code artifact
- aws codeartifact login --tool twine --domain osdu-dev --domain-owner 888733619319 --repository osdu-python
- python setup.py sdist bdist_wheel
- twine upload --skip-existing --repository codeartifact dist/osdu_api-0.0.3.tar.gz
artifacts:
files:
- "**/*"
# base-directory: ${OUTPUT_DIR}
name: test
\ No newline at end of file
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import sys, os
import importlib
from configparser import SafeConfigParser
......@@ -46,7 +59,8 @@ class BaseClient:
self.data_workflow_url = config_parser.get('environment', 'data_workflow_url')
self.file_dms_url = config_parser.get('environment', 'file_dms_url')
self.legal_url = config_parser.get('environment', 'legal_url')
self.dataset_registry_url = config_parser.get('environment', 'dataset_registry_url')
self.entitlements_url = config_parser.get('environment', 'entitlements_url')
self.dataset_url = config_parser.get('environment', 'dataset_url')
self.use_service_principal = config_parser.get('environment', 'use_service_principal')
self.provider = config_parser.get('provider', 'name')
......@@ -82,11 +96,13 @@ class BaseClient:
response = object
if (method == HttpMethod.GET):
response = requests.get(url=url, params=params, headers=headers)
response = requests.get(url=url, params=params, headers=headers, verify=False)
elif (method == HttpMethod.DELETE):
response = requests.delete(url=url, params=params, headers=headers, verify=False)
elif (method == HttpMethod.POST):
response = requests.post(url=url, params=params, data=data, headers=headers)
response = requests.post(url=url, params=params, data=data, headers=headers, verify=False)
elif (method == HttpMethod.PUT):
response = requests.put(url=url, params=params, data=data, headers=headers)
response = requests.put(url=url, params=params, data=data, headers=headers, verify=False)
if (response.status_code == 401 or response.status_code == 403) and self.unauth_retries < 1:
if self.use_service_principal == 'True' or self.use_service_principal == 'true':
......
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
\ No newline at end of file
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import json
from typing import List
from osdu_api.clients.base_client import BaseClient
from osdu_api.model.data_workflow.start_workflow import StartWorkflow
from osdu_api.model.data_workflow.update_status_request import UpdateStatusRequest
from osdu_api.model.http_method import HttpMethod
'''
......@@ -10,4 +25,8 @@ Holds the logic for interfacing with Data Workflow's api
class DataWorkflowClient(BaseClient):
def start_workflow(self, start_workflow: StartWorkflow, bearer_token=None):
return self.make_request(method=HttpMethod.POST, url='{}{}'.format(self.data_workflow_url, '/startWorkflow'),
data=start_workflow.to_JSON(), bearer_token=bearer_token)
\ No newline at end of file
data=start_workflow.to_JSON(), bearer_token=bearer_token)
def update_status(self, update_status_request: UpdateStatusRequest, bearer_token=None):
return self.make_request(method=HttpMethod.POST, url='{}{}'.format(self.data_workflow_url, '/updateStatus'),
data=update_status_request.to_JSON(), bearer_token=bearer_token)
\ No newline at end of file
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import json
from typing import List
from osdu_api.clients.base_client import BaseClient
from osdu_api.model.dataset.get_dataset_registry_request import GetDatasetRegistryRequest
from osdu_api.model.http_method import HttpMethod
'''
Holds the logic for interfacing with Data Registry Service's DMS api
'''
class DatasetDmsClient(BaseClient):
def get_storage_instructions(self, resource_type_id: str, bearer_token=None):
params = {'resourceType': resource_type_id}
return self.make_request(method=HttpMethod.GET, url='{}{}'.format(self.dataset_url, '/getStorageInstructions'),
params=params, bearer_token=bearer_token)
def get_retrieval_instructions(self, record_id: str, bearer_token=None):
params = {'id': record_id}
return self.make_request(method=HttpMethod.GET, url='{}{}'.format(self.dataset_url, '/getRetrievalInstructions'),
params=params, bearer_token=bearer_token)
def get_multiple_retrieval_instructions(self, get_dataset_registry_request: GetDatasetRegistryRequest, bearer_token=None):
return self.make_request(method=HttpMethod.POST, url='{}{}'.format(self.dataset_url, '/getRetrievalInstructions'),
data=get_dataset_registry_request.to_JSON(), bearer_token=bearer_token)
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import json
from typing import List
from osdu_api.clients.base_client import BaseClient
from osdu_api.model.dataset.create_dataset_registries_request import CreateDatasetRegistriesRequest
from osdu_api.model.dataset.get_dataset_registry_request import GetDatasetRegistryRequest
from osdu_api.model.http_method import HttpMethod
'''
Holds the logic for interfacing with Data Registry Service's api
'''
class DatasetRegistryClient(BaseClient):
def register_dataset(self, dataset_registries: CreateDatasetRegistriesRequest, bearer_token=None):
return self.make_request(method=HttpMethod.PUT, url='{}{}'.format(self.dataset_url, '/registerDataset'),
data=dataset_registries.to_JSON(), bearer_token=bearer_token)
def get_dataset_registry(self, record_id: str, bearer_token=None):
params = {'id': record_id}
return self.make_request(method=HttpMethod.GET, url='{}{}'.format(self.dataset_url, '/getDatasetRegistry'),
params=params, bearer_token=bearer_token)
def get_dataset_registries(self, get_dataset_registry_request: GetDatasetRegistryRequest, bearer_token=None):
return self.make_request(method=HttpMethod.POST, url='{}{}'.format(self.dataset_url, '/getDatasetRegistry'),
data=get_dataset_registry_request.to_JSON(), bearer_token=bearer_token)
import json
from typing import List
from osdu_api.clients.base_client import BaseClient
from osdu_api.model.dataset_registry.create_dataset_registries import CreateDatasetRegistries
from osdu_api.model.http_method import HttpMethod
'''
Holds the logic for interfacing with Data Registry Service's api
'''
class DatasetRegistryClient(BaseClient):
def create_registries(self, dataset_registries: CreateDatasetRegistries, bearer_token=None):
return self.make_request(method=HttpMethod.PUT, url='{}{}'.format(self.dataset_registry_url, '/registry'),
data=dataset_registries.to_JSON(), bearer_token=bearer_token)
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import json
from typing import List
from osdu_api.clients.base_client import BaseClient
from osdu_api.model.http_method import HttpMethod
from osdu_api.model.entitlements.group import Group
from osdu_api.model.entitlements.group_member import GroupMember
'''
Holds the logic for interfacing with Entitlement's api
'''
class EntitlementsClient(BaseClient):
def get_groups_for_user(self, bearer_token=None):
return self.make_request(method=HttpMethod.GET, url='{}{}'.format(self.entitlements_url, '/groups'), bearer_token=bearer_token)
def get_group_members(self, group_email: str, limit: int, role: str, bearer_token=None):
params = {}
params['limit'] = limit
params['role'] = role
return self.make_request(method=HttpMethod.GET, url='{}{}{}{}'.format(self.entitlements_url, '/groups/', group_email, '/members'), params=params, bearer_token=bearer_token)
def delete_group_member(self, group_email: str, member_email: str, bearer_token=None):
return self.make_request(method=HttpMethod.DELETE, url='{}{}{}{}{}'.format(self.entitlements_url, '/groups/', group_email, '/members/', member_email), bearer_token=bearer_token)
def create_group(self, group: Group, bearer_token=None):
return self.make_request(method=HttpMethod.POST, url='{}{}'.format(self.entitlements_url, '/groups'),
data=group.to_JSON(), bearer_token=bearer_token)
def create_group_member(self, group_email:str, group_member: GroupMember, bearer_token=None):
return self.make_request(method=HttpMethod.POST, url='{}{}{}{}'.format(self.entitlements_url, '/groups/', group_email, '/members'),
data=group_member.to_JSON(), bearer_token=bearer_token)
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import json
from typing import List
from osdu_api.clients.base_client import BaseClient
......
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import json
from typing import List
from osdu_api.clients.base_client import BaseClient
......
# Copyright © 2020 Amazon Web Services
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment