diff --git a/src/Packages/ZkEvmApi/Documentation~/PassportProfileApi.md b/src/Packages/ZkEvmApi/Documentation~/PassportProfileApi.md
index b0773aacc..bc5d3a5b9 100644
--- a/src/Packages/ZkEvmApi/Documentation~/PassportProfileApi.md
+++ b/src/Packages/ZkEvmApi/Documentation~/PassportProfileApi.md
@@ -7,6 +7,7 @@ All URIs are relative to *https://api.sandbox.immutable.com*
| [**GetUserInfo**](PassportProfileApi.md#getuserinfo) | **GET** /passport-profile/v1/user/info | Get all info for a Passport user |
| [**LinkWalletV2**](PassportProfileApi.md#linkwalletv2) | **POST** /passport-profile/v2/linked-wallets | Link wallet v2 |
| [**SendPhoneOtp**](PassportProfileApi.md#sendphoneotp) | **POST** /passport-profile/v1/phone-otp | Send phone OTP code for user supplied phone number |
+| [**UpdateUsername**](PassportProfileApi.md#updateusername) | **POST** /passport-profile/v1/username | Update username |
| [**VerifyPhoneOtp**](PassportProfileApi.md#verifyphoneotp) | **POST** /passport-profile/v1/phone-otp/verify | Verify phone OTP code against user phone number |
@@ -298,6 +299,104 @@ catch (ApiException e)
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **UpdateUsername**
+> UsernameUpdateResponse UpdateUsername (UsernameUpdateRequest? usernameUpdateRequest = null)
+
+Update username
+
+Update username for the authenticated user's Passport wallet
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using Immutable.Api.ZkEvm.Api;
+using Immutable.Api.ZkEvm.Client;
+using Immutable.Api.ZkEvm.Model;
+
+namespace Example
+{
+ public class UpdateUsernameExample
+ {
+ public static void Main()
+ {
+ Configuration config = new Configuration();
+ config.BasePath = "https://api.sandbox.immutable.com";
+ // Configure Bearer token for authorization: BearerAuth
+ config.AccessToken = "YOUR_BEARER_TOKEN";
+
+ var apiInstance = new PassportProfileApi(config);
+ var usernameUpdateRequest = new UsernameUpdateRequest?(); // UsernameUpdateRequest? | (optional)
+
+ try
+ {
+ // Update username
+ UsernameUpdateResponse result = apiInstance.UpdateUsername(usernameUpdateRequest);
+ Debug.WriteLine(result);
+ }
+ catch (ApiException e)
+ {
+ Debug.Print("Exception when calling PassportProfileApi.UpdateUsername: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+#### Using the UpdateUsernameWithHttpInfo variant
+This returns an ApiResponse object which contains the response data, status code and headers.
+
+```csharp
+try
+{
+ // Update username
+ ApiResponse response = apiInstance.UpdateUsernameWithHttpInfo(usernameUpdateRequest);
+ Debug.Write("Status Code: " + response.StatusCode);
+ Debug.Write("Response Headers: " + response.Headers);
+ Debug.Write("Response Body: " + response.Data);
+}
+catch (ApiException e)
+{
+ Debug.Print("Exception when calling PassportProfileApi.UpdateUsernameWithHttpInfo: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+}
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **usernameUpdateRequest** | [**UsernameUpdateRequest?**](UsernameUpdateRequest?.md) | | [optional] |
+
+### Return type
+
+[**UsernameUpdateResponse**](UsernameUpdateResponse.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | OK | - |
+| **400** | BadRequestError | - |
+| **401** | UnauthorizedError | - |
+| **403** | ForbiddenError | - |
+| **500** | InternalServerError | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
# **VerifyPhoneOtp**
> void VerifyPhoneOtp (PhoneNumberOTPVerificationRequest? phoneNumberOTPVerificationRequest = null)
diff --git a/src/Packages/ZkEvmApi/Documentation~/SessionActivityContract.md b/src/Packages/ZkEvmApi/Documentation~/SessionActivityContract.md
new file mode 100644
index 000000000..1c6701acf
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Documentation~/SessionActivityContract.md
@@ -0,0 +1,17 @@
+# Immutable.Api.ZkEvm.Model.SessionActivityContract
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Id** | **int** | The unique identifier of the session activity contract | [optional]
+**Name** | **string** | The name of the session activity contract | [optional]
+**ContractAddress** | **string** | The smart contract address | [optional]
+**ClientId** | **string** | The client ID associated with the session activity contract | [optional]
+**ChainId** | **string** | The chain ID for the session activity contract | [optional]
+**OrganisationId** | **Guid** | The organisation ID that owns this session activity contract (UUID format) | [optional]
+**Enabled** | **bool** | Whether the session activity contract is enabled | [optional]
+**CreatedAt** | **DateTime** | The timestamp when the session activity contract was created | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/src/Packages/ZkEvmApi/Documentation~/SessionActivityContractResponse.md b/src/Packages/ZkEvmApi/Documentation~/SessionActivityContractResponse.md
new file mode 100644
index 000000000..ffdf64541
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Documentation~/SessionActivityContractResponse.md
@@ -0,0 +1,17 @@
+# Immutable.Api.ZkEvm.Model.SessionActivityContractResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Id** | **int** | The unique identifier of the session activity contract |
+**Name** | **string** | The name of the session activity contract |
+**ContractAddress** | **string** | The smart contract address |
+**ClientId** | **string** | The client ID associated with the session activity contract |
+**ChainId** | **string** | The chain ID for the session activity contract |
+**OrganisationId** | **Guid** | The organisation ID that owns this session activity contract (UUID format) |
+**Enabled** | **bool** | Whether the session activity contract is enabled |
+**CreatedAt** | **DateTime** | The timestamp when the session activity contract was created |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/src/Packages/ZkEvmApi/Documentation~/UpsertSessionActivityContractReq.md b/src/Packages/ZkEvmApi/Documentation~/UpsertSessionActivityContractReq.md
new file mode 100644
index 000000000..1518d363f
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Documentation~/UpsertSessionActivityContractReq.md
@@ -0,0 +1,17 @@
+# Immutable.Api.ZkEvm.Model.UpsertSessionActivityContractReq
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Id** | **int** | The unique identifier of the session activity contract | [optional]
+**Name** | **string** | The name of the session activity contract |
+**ContractAddress** | **string** | The smart contract address |
+**ClientId** | **string** | The client ID associated with the session activity contract |
+**ChainId** | **string** | The chain ID for the session activity contract |
+**OrganisationId** | **Guid** | The organisation ID that owns this session activity contract (UUID format) |
+**Enabled** | **bool** | Whether the session activity contract is enabled |
+**CreatedAt** | **DateTime** | The timestamp when the session activity contract was created | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/src/Packages/ZkEvmApi/Documentation~/UpsertSessionActivityContractResp.md b/src/Packages/ZkEvmApi/Documentation~/UpsertSessionActivityContractResp.md
new file mode 100644
index 000000000..7819444ae
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Documentation~/UpsertSessionActivityContractResp.md
@@ -0,0 +1,17 @@
+# Immutable.Api.ZkEvm.Model.UpsertSessionActivityContractResp
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Id** | **int** | The unique identifier of the session activity contract | [optional]
+**Name** | **string** | The name of the session activity contract | [optional]
+**ContractAddress** | **string** | The smart contract address | [optional]
+**ClientId** | **string** | The client ID associated with the session activity contract | [optional]
+**ChainId** | **string** | The chain ID for the session activity contract | [optional]
+**OrganisationId** | **Guid** | The organisation ID that owns this session activity contract (UUID format) | [optional]
+**Enabled** | **bool** | Whether the session activity contract is enabled | [optional]
+**CreatedAt** | **DateTime** | The timestamp when the session activity contract was created | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/src/Packages/ZkEvmApi/Documentation~/UsernameUpdateRequest.md b/src/Packages/ZkEvmApi/Documentation~/UsernameUpdateRequest.md
new file mode 100644
index 000000000..0141a8a7d
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Documentation~/UsernameUpdateRequest.md
@@ -0,0 +1,11 @@
+# Immutable.Api.ZkEvm.Model.UsernameUpdateRequest
+Request to update username
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Username** | **string** | The new username |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/src/Packages/ZkEvmApi/Documentation~/UsernameUpdateResponse.md b/src/Packages/ZkEvmApi/Documentation~/UsernameUpdateResponse.md
new file mode 100644
index 000000000..bac9dd14c
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Documentation~/UsernameUpdateResponse.md
@@ -0,0 +1,11 @@
+# Immutable.Api.ZkEvm.Model.UsernameUpdateResponse
+Username update response
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Username** | **string** | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
diff --git a/src/Packages/ZkEvmApi/Runtime/Api/PassportProfileApi.cs b/src/Packages/ZkEvmApi/Runtime/Api/PassportProfileApi.cs
index 23fd5d41c..c27b3dbab 100644
--- a/src/Packages/ZkEvmApi/Runtime/Api/PassportProfileApi.cs
+++ b/src/Packages/ZkEvmApi/Runtime/Api/PassportProfileApi.cs
@@ -89,6 +89,27 @@ public interface IPassportProfileApiSync : IApiAccessor
/// ApiResponse of PhoneNumberOTPResponse
ApiResponse SendPhoneOtpWithHttpInfo(PhoneNumberOTPRequest? phoneNumberOTPRequest = default(PhoneNumberOTPRequest?));
///
+ /// Update username
+ ///
+ ///
+ /// Update username for the authenticated user's Passport wallet
+ ///
+ /// Thrown when fails to make API call
+ /// (optional)
+ /// UsernameUpdateResponse
+ UsernameUpdateResponse UpdateUsername(UsernameUpdateRequest? usernameUpdateRequest = default(UsernameUpdateRequest?));
+
+ ///
+ /// Update username
+ ///
+ ///
+ /// Update username for the authenticated user's Passport wallet
+ ///
+ /// Thrown when fails to make API call
+ /// (optional)
+ /// ApiResponse of UsernameUpdateResponse
+ ApiResponse UpdateUsernameWithHttpInfo(UsernameUpdateRequest? usernameUpdateRequest = default(UsernameUpdateRequest?));
+ ///
/// Verify phone OTP code against user phone number
///
///
@@ -186,6 +207,29 @@ public interface IPassportProfileApiAsync : IApiAccessor
/// Task of ApiResponse (PhoneNumberOTPResponse)
System.Threading.Tasks.Task> SendPhoneOtpWithHttpInfoAsync(PhoneNumberOTPRequest? phoneNumberOTPRequest = default(PhoneNumberOTPRequest?), System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
///
+ /// Update username
+ ///
+ ///
+ /// Update username for the authenticated user's Passport wallet
+ ///
+ /// Thrown when fails to make API call
+ /// (optional)
+ /// Cancellation Token to cancel the request.
+ /// Task of UsernameUpdateResponse
+ System.Threading.Tasks.Task UpdateUsernameAsync(UsernameUpdateRequest? usernameUpdateRequest = default(UsernameUpdateRequest?), System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
+
+ ///
+ /// Update username
+ ///
+ ///
+ /// Update username for the authenticated user's Passport wallet
+ ///
+ /// Thrown when fails to make API call
+ /// (optional)
+ /// Cancellation Token to cancel the request.
+ /// Task of ApiResponse (UsernameUpdateResponse)
+ System.Threading.Tasks.Task> UpdateUsernameWithHttpInfoAsync(UsernameUpdateRequest? usernameUpdateRequest = default(UsernameUpdateRequest?), System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken));
+ ///
/// Verify phone OTP code against user phone number
///
///
@@ -740,6 +784,138 @@ public Immutable.Api.ZkEvm.Client.ApiResponse GetUserInfoWithHttpInfo(
return localVarResponse;
}
+ ///
+ /// Update username Update username for the authenticated user's Passport wallet
+ ///
+ /// Thrown when fails to make API call
+ /// (optional)
+ /// UsernameUpdateResponse
+ public UsernameUpdateResponse UpdateUsername(UsernameUpdateRequest? usernameUpdateRequest = default(UsernameUpdateRequest?))
+ {
+ Immutable.Api.ZkEvm.Client.ApiResponse localVarResponse = UpdateUsernameWithHttpInfo(usernameUpdateRequest);
+ return localVarResponse.Data;
+ }
+
+ ///
+ /// Update username Update username for the authenticated user's Passport wallet
+ ///
+ /// Thrown when fails to make API call
+ /// (optional)
+ /// ApiResponse of UsernameUpdateResponse
+ public Immutable.Api.ZkEvm.Client.ApiResponse UpdateUsernameWithHttpInfo(UsernameUpdateRequest? usernameUpdateRequest = default(UsernameUpdateRequest?))
+ {
+ Immutable.Api.ZkEvm.Client.RequestOptions localVarRequestOptions = new Immutable.Api.ZkEvm.Client.RequestOptions();
+
+ string[] _contentTypes = new string[] {
+ "application/json"
+ };
+
+ // to determine the Accept header
+ string[] _accepts = new string[] {
+ "application/json"
+ };
+
+ var localVarContentType = Immutable.Api.ZkEvm.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
+ if (localVarContentType != null) localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
+
+ var localVarAccept = Immutable.Api.ZkEvm.Client.ClientUtils.SelectHeaderAccept(_accepts);
+ if (localVarAccept != null) localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
+
+ localVarRequestOptions.Data = usernameUpdateRequest;
+
+ // authentication (BearerAuth) required
+ // bearer authentication required
+ if (!string.IsNullOrEmpty(this.Configuration.AccessToken) && !localVarRequestOptions.HeaderParameters.ContainsKey("Authorization"))
+ {
+ localVarRequestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken);
+ }
+
+ // make the HTTP request
+ var localVarResponse = this.Client.Post("/passport-profile/v1/username", localVarRequestOptions, this.Configuration);
+
+ if (this.ExceptionFactory != null)
+ {
+ Exception _exception = this.ExceptionFactory("UpdateUsername", localVarResponse);
+ if (_exception != null) throw _exception;
+ }
+
+ return localVarResponse;
+ }
+
+ ///
+ /// Update username Update username for the authenticated user's Passport wallet
+ ///
+ /// Thrown when fails to make API call
+ /// (optional)
+ /// Cancellation Token to cancel the request.
+ /// Task of UsernameUpdateResponse
+ public async System.Threading.Tasks.Task UpdateUsernameAsync(UsernameUpdateRequest? usernameUpdateRequest = default(UsernameUpdateRequest?), System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
+ {
+ var task = UpdateUsernameWithHttpInfoAsync(usernameUpdateRequest, cancellationToken);
+#if UNITY_EDITOR || !UNITY_WEBGL
+ Immutable.Api.ZkEvm.Client.ApiResponse localVarResponse = await task.ConfigureAwait(false);
+#else
+ Immutable.Api.ZkEvm.Client.ApiResponse localVarResponse = await task;
+#endif
+ return localVarResponse.Data;
+ }
+
+ ///
+ /// Update username Update username for the authenticated user's Passport wallet
+ ///
+ /// Thrown when fails to make API call
+ /// (optional)
+ /// Cancellation Token to cancel the request.
+ /// Task of ApiResponse (UsernameUpdateResponse)
+ public async System.Threading.Tasks.Task> UpdateUsernameWithHttpInfoAsync(UsernameUpdateRequest? usernameUpdateRequest = default(UsernameUpdateRequest?), System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
+ {
+
+ Immutable.Api.ZkEvm.Client.RequestOptions localVarRequestOptions = new Immutable.Api.ZkEvm.Client.RequestOptions();
+
+ string[] _contentTypes = new string[] {
+ "application/json"
+ };
+
+ // to determine the Accept header
+ string[] _accepts = new string[] {
+ "application/json"
+ };
+
+
+ var localVarContentType = Immutable.Api.ZkEvm.Client.ClientUtils.SelectHeaderContentType(_contentTypes);
+ if (localVarContentType != null) localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
+
+ var localVarAccept = Immutable.Api.ZkEvm.Client.ClientUtils.SelectHeaderAccept(_accepts);
+ if (localVarAccept != null) localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
+
+ localVarRequestOptions.Data = usernameUpdateRequest;
+
+ // authentication (BearerAuth) required
+ // bearer authentication required
+ if (!string.IsNullOrEmpty(this.Configuration.AccessToken) && !localVarRequestOptions.HeaderParameters.ContainsKey("Authorization"))
+ {
+ localVarRequestOptions.HeaderParameters.Add("Authorization", "Bearer " + this.Configuration.AccessToken);
+ }
+
+ // make the HTTP request
+
+ var task = this.AsynchronousClient.PostAsync("/passport-profile/v1/username", localVarRequestOptions, this.Configuration, cancellationToken);
+
+#if UNITY_EDITOR || !UNITY_WEBGL
+ var localVarResponse = await task.ConfigureAwait(false);
+#else
+ var localVarResponse = await task;
+#endif
+
+ if (this.ExceptionFactory != null)
+ {
+ Exception _exception = this.ExceptionFactory("UpdateUsername", localVarResponse);
+ if (_exception != null) throw _exception;
+ }
+
+ return localVarResponse;
+ }
+
///
/// Verify phone OTP code against user phone number Verify phone OTP code for user supplied phone number
///
diff --git a/src/Packages/ZkEvmApi/Runtime/Model/SessionActivityContract.cs b/src/Packages/ZkEvmApi/Runtime/Model/SessionActivityContract.cs
new file mode 100644
index 000000000..6e49eea7c
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Runtime/Model/SessionActivityContract.cs
@@ -0,0 +1,152 @@
+/*
+ * Immutable zkEVM API
+ *
+ * Immutable Multi Rollup API
+ *
+ * The version of the OpenAPI document: 1.0.0
+ * Contact: support@immutable.com
+ * Generated by: https://github.com/openapitools/openapi-generator.git
+ */
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.IO;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.RegularExpressions;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using Newtonsoft.Json.Linq;
+using OpenAPIDateConverter = Immutable.Api.ZkEvm.Client.OpenAPIDateConverter;
+
+namespace Immutable.Api.ZkEvm.Model
+{
+ ///
+ /// SessionActivityContract
+ ///
+ [DataContract(Name = "SessionActivityContract")]
+ public partial class SessionActivityContract
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The unique identifier of the session activity contract.
+ /// The name of the session activity contract.
+ /// The smart contract address.
+ /// The client ID associated with the session activity contract.
+ /// The chain ID for the session activity contract.
+ /// The organisation ID that owns this session activity contract (UUID format).
+ /// Whether the session activity contract is enabled.
+ /// The timestamp when the session activity contract was created.
+ public SessionActivityContract(int id = default(int), string name = default(string), string contractAddress = default(string), string clientId = default(string), string chainId = default(string), Guid organisationId = default(Guid), bool enabled = default(bool), DateTime createdAt = default(DateTime))
+ {
+ this.Id = id;
+ this.Name = name;
+ this.ContractAddress = contractAddress;
+ this.ClientId = clientId;
+ this.ChainId = chainId;
+ this.OrganisationId = organisationId;
+ this.Enabled = enabled;
+ this.CreatedAt = createdAt;
+ }
+
+ ///
+ /// The unique identifier of the session activity contract
+ ///
+ /// The unique identifier of the session activity contract
+ /// 1
+ [DataMember(Name = "id", EmitDefaultValue = false)]
+ public int Id { get; set; }
+
+ ///
+ /// The name of the session activity contract
+ ///
+ /// The name of the session activity contract
+ /// Session Activity Contract 1
+ [DataMember(Name = "name", EmitDefaultValue = false)]
+ public string Name { get; set; }
+
+ ///
+ /// The smart contract address
+ ///
+ /// The smart contract address
+ /// 0x1234567890abcdef1234567890abcdef12345678
+ [DataMember(Name = "contract_address", EmitDefaultValue = false)]
+ public string ContractAddress { get; set; }
+
+ ///
+ /// The client ID associated with the session activity contract
+ ///
+ /// The client ID associated with the session activity contract
+ /// ZabAMafQRA9bWE1XatAtBYNe6DRamgqE
+ [DataMember(Name = "client_id", EmitDefaultValue = false)]
+ public string ClientId { get; set; }
+
+ ///
+ /// The chain ID for the session activity contract
+ ///
+ /// The chain ID for the session activity contract
+ /// eip155:13371
+ [DataMember(Name = "chain_id", EmitDefaultValue = false)]
+ public string ChainId { get; set; }
+
+ ///
+ /// The organisation ID that owns this session activity contract (UUID format)
+ ///
+ /// The organisation ID that owns this session activity contract (UUID format)
+ /// 550e8400-e29b-41d4-a716-446655440000
+ [DataMember(Name = "organisation_id", EmitDefaultValue = false)]
+ public Guid OrganisationId { get; set; }
+
+ ///
+ /// Whether the session activity contract is enabled
+ ///
+ /// Whether the session activity contract is enabled
+ /// true
+ [DataMember(Name = "enabled", EmitDefaultValue = true)]
+ public bool Enabled { get; set; }
+
+ ///
+ /// The timestamp when the session activity contract was created
+ ///
+ /// The timestamp when the session activity contract was created
+ /// 2023-12-07T10:30Z
+ [DataMember(Name = "created_at", EmitDefaultValue = false)]
+ public DateTime CreatedAt { get; set; }
+
+ ///
+ /// Returns the string presentation of the object
+ ///
+ /// String presentation of the object
+ public override string ToString()
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.Append("class SessionActivityContract {\n");
+ sb.Append(" Id: ").Append(Id).Append("\n");
+ sb.Append(" Name: ").Append(Name).Append("\n");
+ sb.Append(" ContractAddress: ").Append(ContractAddress).Append("\n");
+ sb.Append(" ClientId: ").Append(ClientId).Append("\n");
+ sb.Append(" ChainId: ").Append(ChainId).Append("\n");
+ sb.Append(" OrganisationId: ").Append(OrganisationId).Append("\n");
+ sb.Append(" Enabled: ").Append(Enabled).Append("\n");
+ sb.Append(" CreatedAt: ").Append(CreatedAt).Append("\n");
+ sb.Append("}\n");
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the JSON string presentation of the object
+ ///
+ /// JSON string presentation of the object
+ public virtual string ToJson()
+ {
+ return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
+ }
+
+ }
+
+}
diff --git a/src/Packages/ZkEvmApi/Runtime/Model/SessionActivityContract.cs.meta b/src/Packages/ZkEvmApi/Runtime/Model/SessionActivityContract.cs.meta
new file mode 100644
index 000000000..7ed4fc207
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Runtime/Model/SessionActivityContract.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 10399f5961f71771faa15c5877f99c1b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/src/Packages/ZkEvmApi/Runtime/Model/SessionActivityContractResponse.cs b/src/Packages/ZkEvmApi/Runtime/Model/SessionActivityContractResponse.cs
new file mode 100644
index 000000000..19bcf9317
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Runtime/Model/SessionActivityContractResponse.cs
@@ -0,0 +1,177 @@
+/*
+ * Immutable zkEVM API
+ *
+ * Immutable Multi Rollup API
+ *
+ * The version of the OpenAPI document: 1.0.0
+ * Contact: support@immutable.com
+ * Generated by: https://github.com/openapitools/openapi-generator.git
+ */
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.IO;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.RegularExpressions;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using Newtonsoft.Json.Linq;
+using OpenAPIDateConverter = Immutable.Api.ZkEvm.Client.OpenAPIDateConverter;
+
+namespace Immutable.Api.ZkEvm.Model
+{
+ ///
+ /// SessionActivityContractResponse
+ ///
+ [DataContract(Name = "SessionActivityContractResponse")]
+ public partial class SessionActivityContractResponse
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ [JsonConstructorAttribute]
+ protected SessionActivityContractResponse() { }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The unique identifier of the session activity contract (required).
+ /// The name of the session activity contract (required).
+ /// The smart contract address (required).
+ /// The client ID associated with the session activity contract (required).
+ /// The chain ID for the session activity contract (required).
+ /// The organisation ID that owns this session activity contract (UUID format) (required).
+ /// Whether the session activity contract is enabled (required).
+ /// The timestamp when the session activity contract was created (required).
+ public SessionActivityContractResponse(int id = default(int), string name = default(string), string contractAddress = default(string), string clientId = default(string), string chainId = default(string), Guid organisationId = default(Guid), bool enabled = default(bool), DateTime createdAt = default(DateTime))
+ {
+ this.Id = id;
+ // to ensure "name" is required (not null)
+ if (name == null)
+ {
+ throw new ArgumentNullException("name is a required property for SessionActivityContractResponse and cannot be null");
+ }
+ this.Name = name;
+ // to ensure "contractAddress" is required (not null)
+ if (contractAddress == null)
+ {
+ throw new ArgumentNullException("contractAddress is a required property for SessionActivityContractResponse and cannot be null");
+ }
+ this.ContractAddress = contractAddress;
+ // to ensure "clientId" is required (not null)
+ if (clientId == null)
+ {
+ throw new ArgumentNullException("clientId is a required property for SessionActivityContractResponse and cannot be null");
+ }
+ this.ClientId = clientId;
+ // to ensure "chainId" is required (not null)
+ if (chainId == null)
+ {
+ throw new ArgumentNullException("chainId is a required property for SessionActivityContractResponse and cannot be null");
+ }
+ this.ChainId = chainId;
+ this.OrganisationId = organisationId;
+ this.Enabled = enabled;
+ this.CreatedAt = createdAt;
+ }
+
+ ///
+ /// The unique identifier of the session activity contract
+ ///
+ /// The unique identifier of the session activity contract
+ /// 1
+ [DataMember(Name = "id", IsRequired = true, EmitDefaultValue = true)]
+ public int Id { get; set; }
+
+ ///
+ /// The name of the session activity contract
+ ///
+ /// The name of the session activity contract
+ /// Session Activity Contract 1
+ [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
+ public string Name { get; set; }
+
+ ///
+ /// The smart contract address
+ ///
+ /// The smart contract address
+ /// 0x1234567890abcdef1234567890abcdef12345678
+ [DataMember(Name = "contract_address", IsRequired = true, EmitDefaultValue = true)]
+ public string ContractAddress { get; set; }
+
+ ///
+ /// The client ID associated with the session activity contract
+ ///
+ /// The client ID associated with the session activity contract
+ /// ZabAMafQRA9bWE1XatAtBYNe6DRamgqE
+ [DataMember(Name = "client_id", IsRequired = true, EmitDefaultValue = true)]
+ public string ClientId { get; set; }
+
+ ///
+ /// The chain ID for the session activity contract
+ ///
+ /// The chain ID for the session activity contract
+ /// eip155:13371
+ [DataMember(Name = "chain_id", IsRequired = true, EmitDefaultValue = true)]
+ public string ChainId { get; set; }
+
+ ///
+ /// The organisation ID that owns this session activity contract (UUID format)
+ ///
+ /// The organisation ID that owns this session activity contract (UUID format)
+ /// 550e8400-e29b-41d4-a716-446655440000
+ [DataMember(Name = "organisation_id", IsRequired = true, EmitDefaultValue = true)]
+ public Guid OrganisationId { get; set; }
+
+ ///
+ /// Whether the session activity contract is enabled
+ ///
+ /// Whether the session activity contract is enabled
+ /// true
+ [DataMember(Name = "enabled", IsRequired = true, EmitDefaultValue = true)]
+ public bool Enabled { get; set; }
+
+ ///
+ /// The timestamp when the session activity contract was created
+ ///
+ /// The timestamp when the session activity contract was created
+ /// 2023-12-07T10:30Z
+ [DataMember(Name = "created_at", IsRequired = true, EmitDefaultValue = true)]
+ public DateTime CreatedAt { get; set; }
+
+ ///
+ /// Returns the string presentation of the object
+ ///
+ /// String presentation of the object
+ public override string ToString()
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.Append("class SessionActivityContractResponse {\n");
+ sb.Append(" Id: ").Append(Id).Append("\n");
+ sb.Append(" Name: ").Append(Name).Append("\n");
+ sb.Append(" ContractAddress: ").Append(ContractAddress).Append("\n");
+ sb.Append(" ClientId: ").Append(ClientId).Append("\n");
+ sb.Append(" ChainId: ").Append(ChainId).Append("\n");
+ sb.Append(" OrganisationId: ").Append(OrganisationId).Append("\n");
+ sb.Append(" Enabled: ").Append(Enabled).Append("\n");
+ sb.Append(" CreatedAt: ").Append(CreatedAt).Append("\n");
+ sb.Append("}\n");
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the JSON string presentation of the object
+ ///
+ /// JSON string presentation of the object
+ public virtual string ToJson()
+ {
+ return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
+ }
+
+ }
+
+}
diff --git a/src/Packages/ZkEvmApi/Runtime/Model/SessionActivityContractResponse.cs.meta b/src/Packages/ZkEvmApi/Runtime/Model/SessionActivityContractResponse.cs.meta
new file mode 100644
index 000000000..597d7faae
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Runtime/Model/SessionActivityContractResponse.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4d371f8e31824e472845959d93a56942
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/src/Packages/ZkEvmApi/Runtime/Model/UpsertSessionActivityContractReq.cs b/src/Packages/ZkEvmApi/Runtime/Model/UpsertSessionActivityContractReq.cs
new file mode 100644
index 000000000..3064c337f
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Runtime/Model/UpsertSessionActivityContractReq.cs
@@ -0,0 +1,177 @@
+/*
+ * Immutable zkEVM API
+ *
+ * Immutable Multi Rollup API
+ *
+ * The version of the OpenAPI document: 1.0.0
+ * Contact: support@immutable.com
+ * Generated by: https://github.com/openapitools/openapi-generator.git
+ */
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.IO;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.RegularExpressions;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using Newtonsoft.Json.Linq;
+using OpenAPIDateConverter = Immutable.Api.ZkEvm.Client.OpenAPIDateConverter;
+
+namespace Immutable.Api.ZkEvm.Model
+{
+ ///
+ /// UpsertSessionActivityContractReq
+ ///
+ [DataContract(Name = "UpsertSessionActivityContractReq")]
+ public partial class UpsertSessionActivityContractReq
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ [JsonConstructorAttribute]
+ protected UpsertSessionActivityContractReq() { }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The unique identifier of the session activity contract.
+ /// The name of the session activity contract (required).
+ /// The smart contract address (required).
+ /// The client ID associated with the session activity contract (required).
+ /// The chain ID for the session activity contract (required).
+ /// The organisation ID that owns this session activity contract (UUID format) (required).
+ /// Whether the session activity contract is enabled (required).
+ /// The timestamp when the session activity contract was created.
+ public UpsertSessionActivityContractReq(int id = default(int), string name = default(string), string contractAddress = default(string), string clientId = default(string), string chainId = default(string), Guid organisationId = default(Guid), bool enabled = default(bool), DateTime createdAt = default(DateTime))
+ {
+ // to ensure "name" is required (not null)
+ if (name == null)
+ {
+ throw new ArgumentNullException("name is a required property for UpsertSessionActivityContractReq and cannot be null");
+ }
+ this.Name = name;
+ // to ensure "contractAddress" is required (not null)
+ if (contractAddress == null)
+ {
+ throw new ArgumentNullException("contractAddress is a required property for UpsertSessionActivityContractReq and cannot be null");
+ }
+ this.ContractAddress = contractAddress;
+ // to ensure "clientId" is required (not null)
+ if (clientId == null)
+ {
+ throw new ArgumentNullException("clientId is a required property for UpsertSessionActivityContractReq and cannot be null");
+ }
+ this.ClientId = clientId;
+ // to ensure "chainId" is required (not null)
+ if (chainId == null)
+ {
+ throw new ArgumentNullException("chainId is a required property for UpsertSessionActivityContractReq and cannot be null");
+ }
+ this.ChainId = chainId;
+ this.OrganisationId = organisationId;
+ this.Enabled = enabled;
+ this.Id = id;
+ this.CreatedAt = createdAt;
+ }
+
+ ///
+ /// The unique identifier of the session activity contract
+ ///
+ /// The unique identifier of the session activity contract
+ /// 1
+ [DataMember(Name = "id", EmitDefaultValue = false)]
+ public int Id { get; set; }
+
+ ///
+ /// The name of the session activity contract
+ ///
+ /// The name of the session activity contract
+ /// Session Activity Contract 1
+ [DataMember(Name = "name", IsRequired = true, EmitDefaultValue = true)]
+ public string Name { get; set; }
+
+ ///
+ /// The smart contract address
+ ///
+ /// The smart contract address
+ /// 0x1234567890abcdef1234567890abcdef12345678
+ [DataMember(Name = "contract_address", IsRequired = true, EmitDefaultValue = true)]
+ public string ContractAddress { get; set; }
+
+ ///
+ /// The client ID associated with the session activity contract
+ ///
+ /// The client ID associated with the session activity contract
+ /// ZabAMafQRA9bWE1XatAtBYNe6DRamgqE
+ [DataMember(Name = "client_id", IsRequired = true, EmitDefaultValue = true)]
+ public string ClientId { get; set; }
+
+ ///
+ /// The chain ID for the session activity contract
+ ///
+ /// The chain ID for the session activity contract
+ /// eip155:13371
+ [DataMember(Name = "chain_id", IsRequired = true, EmitDefaultValue = true)]
+ public string ChainId { get; set; }
+
+ ///
+ /// The organisation ID that owns this session activity contract (UUID format)
+ ///
+ /// The organisation ID that owns this session activity contract (UUID format)
+ /// 550e8400-e29b-41d4-a716-446655440000
+ [DataMember(Name = "organisation_id", IsRequired = true, EmitDefaultValue = true)]
+ public Guid OrganisationId { get; set; }
+
+ ///
+ /// Whether the session activity contract is enabled
+ ///
+ /// Whether the session activity contract is enabled
+ /// true
+ [DataMember(Name = "enabled", IsRequired = true, EmitDefaultValue = true)]
+ public bool Enabled { get; set; }
+
+ ///
+ /// The timestamp when the session activity contract was created
+ ///
+ /// The timestamp when the session activity contract was created
+ /// 2023-12-07T10:30Z
+ [DataMember(Name = "created_at", EmitDefaultValue = false)]
+ public DateTime CreatedAt { get; set; }
+
+ ///
+ /// Returns the string presentation of the object
+ ///
+ /// String presentation of the object
+ public override string ToString()
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.Append("class UpsertSessionActivityContractReq {\n");
+ sb.Append(" Id: ").Append(Id).Append("\n");
+ sb.Append(" Name: ").Append(Name).Append("\n");
+ sb.Append(" ContractAddress: ").Append(ContractAddress).Append("\n");
+ sb.Append(" ClientId: ").Append(ClientId).Append("\n");
+ sb.Append(" ChainId: ").Append(ChainId).Append("\n");
+ sb.Append(" OrganisationId: ").Append(OrganisationId).Append("\n");
+ sb.Append(" Enabled: ").Append(Enabled).Append("\n");
+ sb.Append(" CreatedAt: ").Append(CreatedAt).Append("\n");
+ sb.Append("}\n");
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the JSON string presentation of the object
+ ///
+ /// JSON string presentation of the object
+ public virtual string ToJson()
+ {
+ return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
+ }
+
+ }
+
+}
diff --git a/src/Packages/ZkEvmApi/Runtime/Model/UpsertSessionActivityContractReq.cs.meta b/src/Packages/ZkEvmApi/Runtime/Model/UpsertSessionActivityContractReq.cs.meta
new file mode 100644
index 000000000..bc8c775fb
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Runtime/Model/UpsertSessionActivityContractReq.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ca2ea974cfefb6217b343810c2692579
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/src/Packages/ZkEvmApi/Runtime/Model/UpsertSessionActivityContractResp.cs b/src/Packages/ZkEvmApi/Runtime/Model/UpsertSessionActivityContractResp.cs
new file mode 100644
index 000000000..fb484fb14
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Runtime/Model/UpsertSessionActivityContractResp.cs
@@ -0,0 +1,152 @@
+/*
+ * Immutable zkEVM API
+ *
+ * Immutable Multi Rollup API
+ *
+ * The version of the OpenAPI document: 1.0.0
+ * Contact: support@immutable.com
+ * Generated by: https://github.com/openapitools/openapi-generator.git
+ */
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.IO;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.RegularExpressions;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using Newtonsoft.Json.Linq;
+using OpenAPIDateConverter = Immutable.Api.ZkEvm.Client.OpenAPIDateConverter;
+
+namespace Immutable.Api.ZkEvm.Model
+{
+ ///
+ /// UpsertSessionActivityContractResp
+ ///
+ [DataContract(Name = "UpsertSessionActivityContractResp")]
+ public partial class UpsertSessionActivityContractResp
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The unique identifier of the session activity contract.
+ /// The name of the session activity contract.
+ /// The smart contract address.
+ /// The client ID associated with the session activity contract.
+ /// The chain ID for the session activity contract.
+ /// The organisation ID that owns this session activity contract (UUID format).
+ /// Whether the session activity contract is enabled.
+ /// The timestamp when the session activity contract was created.
+ public UpsertSessionActivityContractResp(int id = default(int), string name = default(string), string contractAddress = default(string), string clientId = default(string), string chainId = default(string), Guid organisationId = default(Guid), bool enabled = default(bool), DateTime createdAt = default(DateTime))
+ {
+ this.Id = id;
+ this.Name = name;
+ this.ContractAddress = contractAddress;
+ this.ClientId = clientId;
+ this.ChainId = chainId;
+ this.OrganisationId = organisationId;
+ this.Enabled = enabled;
+ this.CreatedAt = createdAt;
+ }
+
+ ///
+ /// The unique identifier of the session activity contract
+ ///
+ /// The unique identifier of the session activity contract
+ /// 1
+ [DataMember(Name = "id", EmitDefaultValue = false)]
+ public int Id { get; set; }
+
+ ///
+ /// The name of the session activity contract
+ ///
+ /// The name of the session activity contract
+ /// Session Activity Contract 1
+ [DataMember(Name = "name", EmitDefaultValue = false)]
+ public string Name { get; set; }
+
+ ///
+ /// The smart contract address
+ ///
+ /// The smart contract address
+ /// 0x1234567890abcdef1234567890abcdef12345678
+ [DataMember(Name = "contract_address", EmitDefaultValue = false)]
+ public string ContractAddress { get; set; }
+
+ ///
+ /// The client ID associated with the session activity contract
+ ///
+ /// The client ID associated with the session activity contract
+ /// ZabAMafQRA9bWE1XatAtBYNe6DRamgqE
+ [DataMember(Name = "client_id", EmitDefaultValue = false)]
+ public string ClientId { get; set; }
+
+ ///
+ /// The chain ID for the session activity contract
+ ///
+ /// The chain ID for the session activity contract
+ /// eip155:13371
+ [DataMember(Name = "chain_id", EmitDefaultValue = false)]
+ public string ChainId { get; set; }
+
+ ///
+ /// The organisation ID that owns this session activity contract (UUID format)
+ ///
+ /// The organisation ID that owns this session activity contract (UUID format)
+ /// 550e8400-e29b-41d4-a716-446655440000
+ [DataMember(Name = "organisation_id", EmitDefaultValue = false)]
+ public Guid OrganisationId { get; set; }
+
+ ///
+ /// Whether the session activity contract is enabled
+ ///
+ /// Whether the session activity contract is enabled
+ /// true
+ [DataMember(Name = "enabled", EmitDefaultValue = true)]
+ public bool Enabled { get; set; }
+
+ ///
+ /// The timestamp when the session activity contract was created
+ ///
+ /// The timestamp when the session activity contract was created
+ /// 2023-12-07T10:30Z
+ [DataMember(Name = "created_at", EmitDefaultValue = false)]
+ public DateTime CreatedAt { get; set; }
+
+ ///
+ /// Returns the string presentation of the object
+ ///
+ /// String presentation of the object
+ public override string ToString()
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.Append("class UpsertSessionActivityContractResp {\n");
+ sb.Append(" Id: ").Append(Id).Append("\n");
+ sb.Append(" Name: ").Append(Name).Append("\n");
+ sb.Append(" ContractAddress: ").Append(ContractAddress).Append("\n");
+ sb.Append(" ClientId: ").Append(ClientId).Append("\n");
+ sb.Append(" ChainId: ").Append(ChainId).Append("\n");
+ sb.Append(" OrganisationId: ").Append(OrganisationId).Append("\n");
+ sb.Append(" Enabled: ").Append(Enabled).Append("\n");
+ sb.Append(" CreatedAt: ").Append(CreatedAt).Append("\n");
+ sb.Append("}\n");
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the JSON string presentation of the object
+ ///
+ /// JSON string presentation of the object
+ public virtual string ToJson()
+ {
+ return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
+ }
+
+ }
+
+}
diff --git a/src/Packages/ZkEvmApi/Runtime/Model/UpsertSessionActivityContractResp.cs.meta b/src/Packages/ZkEvmApi/Runtime/Model/UpsertSessionActivityContractResp.cs.meta
new file mode 100644
index 000000000..05edc6eb0
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Runtime/Model/UpsertSessionActivityContractResp.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8e98d4703eb0c9a4cb76911550879f25
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/src/Packages/ZkEvmApi/Runtime/Model/UsernameUpdateRequest.cs b/src/Packages/ZkEvmApi/Runtime/Model/UsernameUpdateRequest.cs
new file mode 100644
index 000000000..2f33e2d8d
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Runtime/Model/UsernameUpdateRequest.cs
@@ -0,0 +1,84 @@
+/*
+ * Immutable zkEVM API
+ *
+ * Immutable Multi Rollup API
+ *
+ * The version of the OpenAPI document: 1.0.0
+ * Contact: support@immutable.com
+ * Generated by: https://github.com/openapitools/openapi-generator.git
+ */
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.IO;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.RegularExpressions;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using Newtonsoft.Json.Linq;
+using OpenAPIDateConverter = Immutable.Api.ZkEvm.Client.OpenAPIDateConverter;
+
+namespace Immutable.Api.ZkEvm.Model
+{
+ ///
+ /// Request to update username
+ ///
+ [DataContract(Name = "UsernameUpdateRequest")]
+ public partial class UsernameUpdateRequest
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ [JsonConstructorAttribute]
+ protected UsernameUpdateRequest() { }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The new username (required).
+ public UsernameUpdateRequest(string username = default(string))
+ {
+ // to ensure "username" is required (not null)
+ if (username == null)
+ {
+ throw new ArgumentNullException("username is a required property for UsernameUpdateRequest and cannot be null");
+ }
+ this.Username = username;
+ }
+
+ ///
+ /// The new username
+ ///
+ /// The new username
+ [DataMember(Name = "username", IsRequired = true, EmitDefaultValue = true)]
+ public string Username { get; set; }
+
+ ///
+ /// Returns the string presentation of the object
+ ///
+ /// String presentation of the object
+ public override string ToString()
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.Append("class UsernameUpdateRequest {\n");
+ sb.Append(" Username: ").Append(Username).Append("\n");
+ sb.Append("}\n");
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the JSON string presentation of the object
+ ///
+ /// JSON string presentation of the object
+ public virtual string ToJson()
+ {
+ return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
+ }
+
+ }
+
+}
diff --git a/src/Packages/ZkEvmApi/Runtime/Model/UsernameUpdateRequest.cs.meta b/src/Packages/ZkEvmApi/Runtime/Model/UsernameUpdateRequest.cs.meta
new file mode 100644
index 000000000..64c0f34d4
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Runtime/Model/UsernameUpdateRequest.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b79b09939be69f39dbdd54900c5b5e09
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/src/Packages/ZkEvmApi/Runtime/Model/UsernameUpdateResponse.cs b/src/Packages/ZkEvmApi/Runtime/Model/UsernameUpdateResponse.cs
new file mode 100644
index 000000000..0c36a0097
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Runtime/Model/UsernameUpdateResponse.cs
@@ -0,0 +1,83 @@
+/*
+ * Immutable zkEVM API
+ *
+ * Immutable Multi Rollup API
+ *
+ * The version of the OpenAPI document: 1.0.0
+ * Contact: support@immutable.com
+ * Generated by: https://github.com/openapitools/openapi-generator.git
+ */
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.IO;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.RegularExpressions;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using Newtonsoft.Json.Linq;
+using OpenAPIDateConverter = Immutable.Api.ZkEvm.Client.OpenAPIDateConverter;
+
+namespace Immutable.Api.ZkEvm.Model
+{
+ ///
+ /// Username update response
+ ///
+ [DataContract(Name = "UsernameUpdateResponse")]
+ public partial class UsernameUpdateResponse
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ [JsonConstructorAttribute]
+ protected UsernameUpdateResponse() { }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// username (required).
+ public UsernameUpdateResponse(string username = default(string))
+ {
+ // to ensure "username" is required (not null)
+ if (username == null)
+ {
+ throw new ArgumentNullException("username is a required property for UsernameUpdateResponse and cannot be null");
+ }
+ this.Username = username;
+ }
+
+ ///
+ /// Gets or Sets Username
+ ///
+ [DataMember(Name = "username", IsRequired = true, EmitDefaultValue = true)]
+ public string Username { get; set; }
+
+ ///
+ /// Returns the string presentation of the object
+ ///
+ /// String presentation of the object
+ public override string ToString()
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.Append("class UsernameUpdateResponse {\n");
+ sb.Append(" Username: ").Append(Username).Append("\n");
+ sb.Append("}\n");
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the JSON string presentation of the object
+ ///
+ /// JSON string presentation of the object
+ public virtual string ToJson()
+ {
+ return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
+ }
+
+ }
+
+}
diff --git a/src/Packages/ZkEvmApi/Runtime/Model/UsernameUpdateResponse.cs.meta b/src/Packages/ZkEvmApi/Runtime/Model/UsernameUpdateResponse.cs.meta
new file mode 100644
index 000000000..97998ccec
--- /dev/null
+++ b/src/Packages/ZkEvmApi/Runtime/Model/UsernameUpdateResponse.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6cd920c2952b6d47b8129535555dfaee
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/src/Packages/ZkEvmApi/api~/openapi.yaml b/src/Packages/ZkEvmApi/api~/openapi.yaml
index c84b40487..fd2524e1a 100644
--- a/src/Packages/ZkEvmApi/api~/openapi.yaml
+++ b/src/Packages/ZkEvmApi/api~/openapi.yaml
@@ -3363,6 +3363,52 @@ paths:
summary: Verify phone OTP code against user phone number
tags:
- passport profile
+ /passport-profile/v1/username:
+ post:
+ description: Update username for the authenticated user's Passport wallet
+ operationId: update-username
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UsernameUpdateRequest'
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UsernameUpdateResponse'
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/APIError400'
+ description: BadRequestError
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/APIError401'
+ description: UnauthorizedError
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/APIError403'
+ description: ForbiddenError
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/APIError500'
+ description: InternalServerError
+ security:
+ - BearerAuth:
+ - openid
+ summary: Update username
+ tags:
+ - passport profile
/passport-profile/v1/phone-otp:
post:
description: Send phone OTP code for user supplied phone number
@@ -9379,6 +9425,102 @@ components:
- title
- type
- url
+ UsernameUpdateRequest:
+ description: Request to update username
+ example:
+ username: username
+ properties:
+ username:
+ description: The new username
+ maxLength: 100
+ minLength: 1
+ pattern: "^[a-zA-Z0-9._]+$"
+ type: string
+ required:
+ - username
+ type: object
+ UsernameUpdateResponse:
+ description: Username update response
+ example:
+ username: username
+ properties:
+ username:
+ type: string
+ required:
+ - username
+ type: object
+ SessionActivityContractResponse:
+ allOf:
+ - $ref: '#/components/schemas/SessionActivityContract'
+ - type: object
+ - required:
+ - chain_id
+ - client_id
+ - contract_address
+ - created_at
+ - enabled
+ - id
+ - name
+ - organisation_id
+ UpsertSessionActivityContractReq:
+ allOf:
+ - $ref: '#/components/schemas/SessionActivityContract'
+ - type: object
+ - required:
+ - chain_id
+ - client_id
+ - contract_address
+ - enabled
+ - name
+ - organisation_id
+ UpsertSessionActivityContractResp:
+ allOf:
+ - $ref: '#/components/schemas/SessionActivityContract'
+ - type: object
+ SessionActivityContract:
+ properties:
+ id:
+ description: The unique identifier of the session activity contract
+ example: 1
+ type: integer
+ name:
+ description: The name of the session activity contract
+ example: Session Activity Contract 1
+ type: string
+ contract_address:
+ description: The smart contract address
+ example: 0x1234567890abcdef1234567890abcdef12345678
+ maxLength: 42
+ minLength: 42
+ pattern: "^0x[0-9a-fA-F]{40}$"
+ type: string
+ client_id:
+ description: The client ID associated with the session activity contract
+ example: ZabAMafQRA9bWE1XatAtBYNe6DRamgqE
+ maxLength: 32
+ minLength: 32
+ pattern: "^[a-zA-Z0-9]{32}$"
+ type: string
+ chain_id:
+ description: The chain ID for the session activity contract
+ example: eip155:13371
+ type: string
+ organisation_id:
+ description: The organisation ID that owns this session activity contract
+ (UUID format)
+ example: 550e8400-e29b-41d4-a716-446655440000
+ format: uuid
+ type: string
+ enabled:
+ description: Whether the session activity contract is enabled
+ example: true
+ type: boolean
+ created_at:
+ description: The timestamp when the session activity contract was created
+ example: 2023-12-07T10:30:00Z
+ format: date-time
+ type: string
+ type: object
FilterValue:
example:
- value: Common