Affinidi Iota Framework

Manage Affinidi Iota Framework configuration to request data from Affinidi Vault.

Install Dependency

Package: affinidi_tdk_iota_client

pip install affinidi_tdk_iota_client

Check the latest version on the PyPI repository or view the source on GitHub.

Classes and Methods

Configurations API

Manage Affinidi Iota Framework configurations to integrate your application to request data from Affinidi Vault.

create_iota_configuration

Creates an Affinidi Iota Framework configuration.

Parameters

create_iota_configuration_input CreateIotaConfigurationInput Required
Configuration details, including name, wallet ARI, and optional webhook URL.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.ConfigurationsApi(api_client)

    request_json = {
        'name': 'Sample App',
        'walletAri': '<WALLET_ARI>',
        'iotaResponseWebhookURL': 'http://localhost',
    }

    create_iota_configuration_input = affinidi_tdk_iota_client.CreateIotaConfigurationInput.from_dict(request_json)
    api_response = api_instance.create_iota_configuration(create_iota_configuration_input=create_iota_configuration_input)

delete_iota_configuration_by_id

Deletes an Affinidi Iota Framework configuration by ID.

Parameters

configurationId str Required
ID of the Iota configuration to delete.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.ConfigurationsApi(api_client)
    api_instance.delete_iota_configuration_by_id('<CONFIG_ID>')

get_iota_configuration_by_id

Retrieves an Affinidi Iota Framework configuration by ID.

Parameters

configurationId str Required
ID of the Iota configuration to retrieve.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.ConfigurationsApi(api_client)
    api_response = api_instance.get_iota_configuration_by_id('<CONFIG_ID>')

get_iota_configuration_metadata

Retrieves the metadata of an Affinidi Iota Framework configuration.

Parameters

projectId str Required
ID of the project where the Iota configuration was created.
configurationId str Required
ID of the Iota configuration.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.ConfigurationsApi(api_client)
    api_response = api_instance.get_iota_configuration_metadata('<PROJECT_ID>', '<CONFIG_ID>')

list_iota_configurations

Returns all Affinidi Iota Framework configurations for the project.

No parameters required.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.ConfigurationsApi(api_client)
    api_response = api_instance.list_iota_configurations()

update_iota_configuration_by_id

Updates an Affinidi Iota Framework configuration by ID.

Parameters

configurationId str Required
ID of the Iota configuration to update.
update_iota_configuration_by_id_input UpdateConfigurationByIdInput Required
Updated configuration details.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.ConfigurationsApi(api_client)

    request_json = {
        'name': 'Sample App',
        'walletAri': '<WALLET_ARI>',
        'iotaResponseWebhookURL': 'http://localhost',
    }

    update_iota_configuration_by_id_input = affinidi_tdk_iota_client.UpdateConfigurationByIdInput.from_dict(request_json)
    api_response = api_instance.update_iota_configuration_by_id('<CONFIG_ID>', update_iota_configuration_by_id_input=update_iota_configuration_by_id_input)

Iota API

Generate access token required to access the Affinidi Iota Framework.

aws_exchange_credentials

Exchanges a limited token into a Cognito token.

Parameters

aws_exchange_credentials AwsExchangeCredentials Required
JWT assertion string.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.IotaApi(api_client)

    request_json = {
        'assertion': '<JWT_STRING>',
    }

    aws_exchange_credentials = affinidi_tdk_iota_client.AwsExchangeCredentials.from_dict(request_json)
    api_response = api_instance.aws_exchange_credentials(aws_exchange_credentials=aws_exchange_credentials)

initiate_data_sharing_request

Initiates a data-sharing request and returns the signed request token.

Parameters

initiate_data_sharing_request_input InitiateDataSharingRequestInput Required
Configuration ID, mode, query ID, correlation ID, nonce, and redirect URI.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.IotaApi(api_client)

    request_json = {
        'configurationId': '<IOTA_CONFIGURATION_ID>',
        'mode': 'redirect',
        'queryId': '<IOTA_CONFIGURATION_QUERY_ID>',
        'correlationId': '<UUID4_STRING>',
        'nonce': '<NONCE_FROM_FRONTEND>',
        'redirectUri': '<IOTA_CONFIGURATION_REDIRECT_URL>',
    }

    initiate_data_sharing_request_input = affinidi_tdk_iota_client.InitiateDataSharingRequestInput.from_dict(request_json)
    api_response = api_instance.initiate_data_sharing_request(initiate_data_sharing_request_input)

fetch_iota_vp_response

Fetches the callback response from Affinidi Vault.

Parameters

fetch_iota_vp_response_input FetchIOTAVPResponseInput Required
Configuration ID, correlation ID, transaction ID, and response code.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.IotaApi(api_client)

    request_json = {
        'configurationId': '<IOTA_CONFIGURATION_ID>',
        'correlationId': '<CORRELATION_ID>',
        'transactionId': '<TRANSACTION_ID>',
        'responseCode': '<RESPONSE_CODE_FROM_REDIRECT>',
    }

    fetch_iota_vp_response_input = affinidi_tdk_iota_client.FetchIOTAVPResponseInput.from_dict(request_json)
    api_response = api_instance.fetch_iota_vp_response(fetch_iota_vp_response_input)

Default API

Manage logged consent from Affinidi Iota Framework.

list_logged_consents

Returns the list of logged consents for the project.

Parameters

configurationId str Optional
Filter consents by configuration ID.
userId str Optional
Filter consents by user ID.
limit int Optional
Maximum number of records to return.
exclusiveStartKey str Optional
Base64url-encoded key of the first item that this operation will evaluate (it is not returned). Use the value returned in the previous operation to paginate.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.DefaultApi(api_client)
    api_response = api_instance.list_logged_consents()

Callback API

Manage logged consent from Affinidi Iota Framework.

iot_oidc4vp_callback

Handles the callback from clients with OID4VP transaction data.

Parameters

callback_input CallbackInput Required
Callback data including state, presentation submission, and VP token.

Example

import affinidi_tdk_iota_client

with affinidi_tdk_iota_client.ApiClient() as api_client:
    api_instance = affinidi_tdk_iota_client.CallbackApi(api_client)

    request_json = {
        'state': '<RANDOM_STRING>',
        'presentation_submission': {},
        'vp_token': {},
    }

    callback_input = affinidi_tdk_iota_client.CallbackInput.from_dict(request_json)
    api_response = api_instance.iot_oidc4vp_callback(callback_input=callback_input)

PexQuery API

Manages Presentation Exchange (PEX) queries for Iota configurations.

create_pex_query

Creates a Presentation Definition in an Iota configuration.

Parameters

configurationId str Required
ID of the Iota configuration.
create_pex_query_input CreatePexQueryInput Required
PEX query name and Presentation Definition JSON string.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.PexQueryApi(api_client)

    request_json = {
        'name': 'Request Data',
        'vpDefinition': '{PRESENTATION_DEFINITION_JSON_STRING}',
    }

    create_pex_query_input = affinidi_tdk_iota_client.CreatePexQueryInput.from_dict(request_json)
    api_response = api_instance.create_pex_query('<CONFIG_ID>', create_pex_query_input=create_pex_query_input)

delete_pex_query_by_id

Deletes a Presentation Definition from an Iota configuration.

Parameters

configurationId str Required
ID of the Iota configuration.
queryId str Required
ID of the Presentation Definition to delete.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.PexQueryApi(api_client)
    api_response = api_instance.delete_pex_query_by_id('<CONFIG_ID>', '<QUERY_ID>')

get_pex_query_by_id

Retrieves a Presentation Definition from an Iota configuration by ID.

Parameters

configurationId str Required
ID of the Iota configuration.
queryId str Required
ID of the Presentation Definition to retrieve.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.PexQueryApi(api_client)
    api_response = api_instance.get_pex_query_by_id('<CONFIG_ID>', '<QUERY_ID>')

list_pex_queries

Retrieves all Presentation Definitions in an Iota configuration.

Parameters

configurationId str Required
ID of the Iota configuration.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.PexQueryApi(api_client)
    api_response = api_instance.list_pex_queries('<CONFIG_ID>')

update_pex_query_by_id

Updates a Presentation Definition in an Iota configuration.

Parameters

configurationId str Required
ID of the Iota configuration.
queryId str Required
ID of the Presentation Definition to update.
update_pex_query_input UpdatePexQueryInput Required
Updated Presentation Definition JSON string.

Example

import affinidi_tdk_iota_client

configuration = affinidi_tdk_iota_client.Configuration()
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:
    api_instance = affinidi_tdk_iota_client.PexQueryApi(api_client)

    request_json = {
        'vpDefinition': '{PRESENTATION_DEFINITION_JSON_STRING}',
    }

    update_pex_query_input = affinidi_tdk_iota_client.UpdatePexQueryInput.from_dict(request_json)
    api_response = api_instance.update_pex_query_by_id('<CONFIG_ID>', '<QUERY_ID>', update_pex_query_input=update_pex_query_input)