Affinidi Iota Framework

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

Supported Languages

Package: @affinidi-tdk/iota-client

npm install @affinidi-tdk/iota-client --save

Package: affinidi_tdk_iota_client

pip install affinidi_tdk_iota_client

Classes and Methods

Configurations API

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

createIotaConfiguration

Create an Affinidi Iota Framework configuration.

Parameters

CreateIotaConfigurationInput [Object]

JSON object to provide the configuration details. See more here.

Module Imports
import { ConfigurationsApi, Configuration, CreateIotaConfigurationInput } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new ConfigurationsApi(authConfiguration)

const request: CreateIotaConfigurationInput = {
    name: "Sample App",
    walletAri: "ari:identity:ap-southeast-1:af338c39-2201-49a6-90d2-106c6cbbbcb7:wallet/3ab087dba42f3255f5c7b95998b28026",
    iotaResponseWebhookURL: "http://localhost"
}

const { data } = await api.createIotaConfiguration(request)
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
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: "ari:identity:ap-southeast-1:af338c39-2201-49a6-90d2-106c6cbbbcb7:wallet/3ab087dba42f3255f5c7b95998b28026",
        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)

deleteIotaConfigurationById

Delete existing Affinidi Iota Framework configuration by ID.

Parameters

configurationId [String]

ID of the Affinidi Iota Configuration to delete.

Module Imports
import { ConfigurationsApi, Configuration } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new ConfigurationsApi(authConfiguration)

const configurationId = "<Config_ID>"

const { data } = await api.deleteIotaConfigurationById(configurationId)
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

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

    configuration_id = "<Config_ID>" 

    api_instance.delete_iota_configuration_by_id(configuration_id)

getIotaConfigurationById

Retrieves existing Affinidi Iota Framework by ID.

Parameters

configurationId [String]

ID of the Affinidi Iota Configuration to delete.

Module Imports
import { ConfigurationsApi, Configuration } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new ConfigurationsApi(authConfiguration)

const configurationId = "<Config_ID>"

const result = await api.getIotaConfigurationById(configurationId)
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

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

    configuration_id = "<Config_ID>" 

    api_response = api_instance.get_iota_configuration_by_id(configuration_id)

getIotaConfigurationMetaData

Retrieves the Metadata of the existing Affinidi Iota Framework.

Parameters

projectId [String]

Project ID where the Affinidi Iota Framework was created.

configurationId [String]

ID of the existing Affinidi Iota Framework Configuration.

Module Imports
import { ConfigurationsApi, Configuration } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new ConfigurationsApi(authConfiguration)

const projectID = "<Project_ID>"
const configurationId = "<Config_ID>"

const { data } = await api.getIotaConfigurationMetaData(projectID, configurationId)
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

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

    project_id = "<Project_ID>" 
    configuration_id = "<Config_ID>" 

    api_response = api_instance.get_iota_configuration_metadata(project_id, configuration_id)

listIotaConfigurations

List all the Affinidi Iota Framework configurations.

Parameters

No Parameters Required

Module Imports
import { ConfigurationsApi, Configuration } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new ConfigurationsApi(authConfiguration)

const { data } = await api.listIotaConfigurations()
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
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()

updateIotaConfigurationById

Update an existing Affinidi Iota Framework by ID.

Parameters

configurationId [String]

ID of the existing Affinidi Iota Framework Configuration.

UpdateConfigurationByIdInput [Object]

JSON object to provide the configuration details. See more here.

Module Imports
import { ConfigurationsApi, Configuration, UpdateConfigurationByIdInput } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new ConfigurationsApi(authConfiguration)

const configurationId = "<Config_ID>"
const request: UpdateConfigurationByIdInput = {
    name: "Sample App",
    walletAri: "ari:identity:ap-southeast-1:af338c39-2201-49a6-90d2-106c6cbbbcb7:wallet/3ab087dba42f3255f5c7b95998b28026",
    iotaResponseWebhookURL: "http://localhost"
}

const { data } = await api.updateIotaConfigurationById(configurationId, request)
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

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

    configuration_id = "<Config_ID>"
    request_json = {
        name: "Sample App",
        walletAri: "ari:identity:ap-southeast-1:af338c39-2201-49a6-90d2-106c6cbbbcb7:wallet/3ab087dba42f3255f5c7b95998b28026",
        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(configuration_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.

awsExchangeCredentials

Exchanges limited token into a Cognito token.

Parameters

AwsExchangeCredentials [String]

JWT string. See more here.

Module Imports
import { IotaApi, Configuration, AwsExchangeCredentials } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new IotaApi(authConfiguration)

const request: AwsExchangeCredentials = {
    name: "Sample App",
    walletAri: "ari:identity:ap-southeast-1:af338c39-2201-49a6-90d2-106c6cbbbcb7:wallet/3ab087dba42f3255f5c7b95998b28026",
    iotaResponseWebhookURL: "http://localhost"
}

const { data } = await api.AwsExchangeCredentials(request)
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
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 = {
        name: "Sample App",
        walletAri: "ari:identity:ap-southeast-1:af338c39-2201-49a6-90d2-106c6cbbbcb7:wallet/3ab087dba42f3255f5c7b95998b28026",
        iotaResponseWebhookURL: "http://localhost"
    }

    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)

initiateDataSharingRequest

Initiate data-sharing request for Affinidi Iota Framework and returns the signed request token.

Parameters

InitiateDataSharingRequestInput [Object]

JSON object to provide the required details to initiate data sharing request. See more here.

Module Imports
import { IotaApi, Configuration, InitiateDataSharingRequestInput, IotaConfigurationDtoModeEnum } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new IotaApi(authConfiguration)

const request: InitiateDataSharingRequestInput = {
      configurationId: "<IOTA_CONFIGURATION_ID>",
      mode: "redirect",
      queryId: "<IOTA_CONFIGURATION_QUERY_ID>",
      correlationId: "<uuid4_string>",
      nonce: "<NONCE_FROM_FRONTEND>",
      redirectUri: "<IOTA_CONFIGURATION_REDIRECT_URL>",
}

const { data: dataSharingRequestResponse } = await api.initiateDataSharingRequest(request)
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
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)

    initiateDataSharingRequestResponse = affinidi_tdk_iota_client.initiate_data_sharing_request(initiate_data_sharing_request_input)

fetchIotaVpResponse

Fetch the callback response from Affinidi Vault.

Parameters

FetchIOTAVPResponseInput [Object]

JSON object to provide the required details to the callback response. See more here.

Module Imports
import { IotaApi, Configuration, FetchIOTAVPResponseInput, FetchIOTAVPResponseOK } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new IotaApi(authConfiguration)

const request: FetchIOTAVPResponseInput = {
  configurationId: "<IOTA_CONFIGURATION_ID>",
  correlationId: "<CORRELATION_ID_FROM_LOCAL_STORAGE>",
  transactionId: "<TRANSACTION_ID_FROM_LOCAL_STORAGE>",
  responseCode: "<RESPONSE_CODE_FROM_REDIRECT>",
}

const iotaVpResponse: FetchIOTAVPResponseOK = await api.fetchIotaVpResponse(request);
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
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_FROM_LOCAL_STORAGE>",
      "transactionId": "<TRANSACTION_ID_FROM_LOCAL_STORAGE>",
      "responseCode": "<RESPONSE_CODE_FROM_REDIRECT>",
  }

  iotaVPResponse = affinidi_tdk_iota_client.fetch_iota_vp_response(request_json)

Default API

Manage logged consent from Affinidi Iota Framework.

listLoggedConsents

Returns the list of logged consents for the project.

Parameters

configurationId [String]

Returns logged consent for the particular configuration.

userId [String]

Returns logged consent for the particular user.

limit [Integer]

Maximum number of records to fetch in a list.

exclusiveStartKey [String]

The base64url encoded key of the first item that this operation will evaluate (it is not returned). Use the value that was returned in the previous operation.

Module Imports
import { DefaultApi, Configuration } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new DefaultApi(authConfiguration)

const { data } = await api.listLoggedConsents()
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
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.

iotOIDC4VPCallback

Handles callback from clients with data from the OID4VP transactions, including states, presentation submission, and verification tokens.

Parameters

CallbackInput [Object]

JSON object to provide the Callback data from the client. See more here.

Module Imports
import { CallbackApi } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
const api = new CallbackApi()

const request: CallbackInput = {
    state: "fa0a21cf-31f1-4e99-a0f8-9dedae806188/bb864a4a-180d-hfyt-a5c5-ebde978465e8",
    presentation_submission: {"descriptor_map":[{"id":"email_vc","path":"$.verifiableCredential[0]","format":"ldp_vc"}],"id":"or4_vFuqw71mnp0wKSHDY","definition_id":"token_with_email_vc"},
    vp_token: {"@context":["https://www.w3.org/2018/credentials/v1"],"type":["VerifiablePresentation"],"verifiableCredential":[{"@context":["https://www.w3.org/2018/credentials/v1","https://schema.affinidi.com/EmailV1-0.jsonld"],"id":"claimId:jguth756b6ebf2c2","type":["VerifiableCredential","Email"],"holder":{"id":"..."},"credentialSubject":{...},"credentialSchema":{"id":"https://schema.affinidi.com/EmailV1-0.json","type":"JsonSchemaValidator2018"},"issuanceDate":"2023-11-10T03:11:02.324Z","issuer":"...","proof":{...}}],"holder":{"id":"..."},"id":"claimId:jguth756b6ebf2c2sdkk","proof":{...}},
}

const { data }  = await api.iotOIDC4VPCallback(request)
with affinidi_tdk_iota_client.ApiClient() as api_client:

    api_instance = affinidi_tdk_iota_client.CallbackApi(api_client)

    request_json = {
      state: "fa0a21cf-31f1-4e99-a0f8-9dedae806188/bb864a4a-180d-hfyt-a5c5-ebde978465e8",
      presentation_submission: {"descriptor_map":[{"id":"email_vc","path":"$.verifiableCredential[0]","format":"ldp_vc"}],"id":"or4_vFuqw71mnp0wKSHDY","definition_id":"token_with_email_vc"},
      vp_token: {"@context":["https://www.w3.org/2018/credentials/v1"],"type":["VerifiablePresentation"],"verifiableCredential":[{"@context":["https://www.w3.org/2018/credentials/v1","https://schema.affinidi.com/EmailV1-0.jsonld"],"id":"claimId:jguth756b6ebf2c2","type":["VerifiableCredential","Email"],"holder":{"id":"..."},"credentialSubject":{...},"credentialSchema":{"id":"https://schema.affinidi.com/EmailV1-0.json","type":"JsonSchemaValidator2018"},"issuanceDate":"2023-11-10T03:11:02.324Z","issuer":"...","proof":{...}}],"holder":{"id":"..."},"id":"claimId:jguth756b6ebf2c2sdkk","proof":{...}},
    }

    callback_input = affinidi_tdk_iota_client.CallbackInput.from_dict(request_json)

    api_response = api_instance.iot_oidc4vp_callback(callback_input=callback_input)
    

PexQueryAPI

createPexQuery

Creates a Presentation Definition in the Iota Configuration.

Parameters

configurationId [String]

ID of the existing Affinidi Iota Framework Configuration.

CreatePexQueryInput [Object]

JSON object to provide the PEX query details. See more here.

Module Imports
import { PexQueryApi, Configuration, CreatePexQueryInput } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new PexQueryApi(authConfiguration)

const configurationId = "<Config_ID>"

const request: CreatePexQueryInput = {
    name: "Request Data",
    vpDefinition: "{PRESENTATION_DEFINITION_JSON_STRING}"
}

const { data }  = await api.createPexQuery(configurationId, request)
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:

    api_instance = affinidi_tdk_iota_client.PexQueryApi(api_client)

    configuration_id = "<Config_ID>"
    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(configuration_id, create_pex_query_input=create_pex_query_input)

deletePexQueryById

Deletes a Presentation Definition based on the queryId from the Iota Configuration.

Parameters

configurationId [String]

ID of the existing Affinidi Iota Framework Configuration.

queryId [String]

ID of the existing Presentation Definition of the Affinidi Iota Configuration.

Module Imports
import { PexQueryApi, Configuration } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new PexQueryApi(authConfiguration)

const configurationId = "<Config_ID>"
const queryId = "<Query_ID>"

const result  = await api.deletePexQueryById(configurationId, queryId)
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:

    api_instance = affinidi_tdk_iota_client.PexQueryApi(api_client)

    configuration_id = "<Config_ID>"
    query_id = "<Query_ID>"

    api_response = api_instance.delete_pex_query_by_id(configuration_id, query_id)

getPexQueryById

Retrieves a Presentation Definition based on the queryId from the Iota Configuration.

Parameters

configurationId [String]

ID of the existing Affinidi Iota Framework Configuration.

queryId [String]

ID of the existing Presentation Definition of the Affinidi Iota Configuration.

Module Imports
import { PexQueryApi, Configuration } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new PexQueryApi(authConfiguration)

const configurationId = "<Config_ID>"
const queryId = "<Query_ID>"

const result  = await api.getPexQueryById(configurationId, queryId)
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:

    api_instance = affinidi_tdk_iota_client.PexQueryApi(api_client)

    configuration_id = "<Config_ID>"
    query_id = "<Query_ID>"

    api_response = api_instance.get_pex_query_by_id(configuration_id, query_id)

listPexQueries

Retrieves all Presentation Definition in the Iota Configuration.

Parameters

configurationId [String]

ID of the existing Affinidi Iota Framework Configuration.

Module Imports
import { PexQueryApi, Configuration } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new PexQueryApi(authConfiguration)

const configurationId = "<Config_ID>"

const result  = await api.listPexQueries(configurationId)
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:

    api_instance = affinidi_tdk_iota_client.PexQueryApi(api_client)

    configuration_id = "<Config_ID>"

    api_response = api_instance.list_pex_queries(configuration_id)

updatePexQueryById

Updates a Presentation Definition based on the queryId from the Iota Configuration.

Parameters

configurationId [String]

ID of the existing Affinidi Iota Framework Configuration.

queryId [String]

ID of the existing Presentation Definition of the Affinidi Iota Configuration.

UpdatePexQueryInput [Object]

JSON object to provide the PEX query details. See more here.

Module Imports
import { PexQueryApi, Configuration, UpdatePexQueryInput } from '@affinidi-tdk/iota-client'
import affinidi_tdk_iota_client
Sample Codes
// Pass the projectScopedToken generated from AuthProvider package
const authConfiguration = new Configuration({
  apiKey: authProvider.fetchProjectScopedToken.bind(authProvider)
})

const api = new PexQueryApi(authConfiguration)

const configurationId = "<Config_ID>"
const queryId = "<Query_ID>"

const request: UpdatePexQueryInput = {
    vpDefinition: "{PRESENTATION_DEFINITION_JSON_STRING}"
}

const result  = await api.updatePexQueryById(configurationId, queryId, request)
configuration = affinidi_tdk_iota_client.Configuration()
# Pass the projectScopedToken generated from AuthProvider package
configuration.api_key['ProjectTokenAuth'] = projectScopedToken

with affinidi_tdk_iota_client.ApiClient(configuration) as api_client:

    api_instance = affinidi_tdk_iota_client.PexQueryApi(api_client)

    configuration_id = "<Config_ID>"
    query_id = "<Query_ID>"

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

    update_pex_query_input = affinidi_tdk_iota_client.UpdatePexQueryInput.from_dict(request_json)

    api_response = api_instance.create_pex_query(configuration_id, update_pex_query_input=update_pex_query_input)

    api_response = api_instance.list_logged_consents()